2026-01-30 01:42:53 +00:00
{
2026-01-30 13:28:29 +00:00
"gram" : {
2026-01-30 13:11:58 +00:00
"verb" : {
"be" : { "base" : "be" , "past" : "was" , "gerund" : "being" } ,
"go" : { "base" : "go" , "past" : "went" , "gerund" : "going" } ,
"do" : { "base" : "do" , "past" : "did" , "gerund" : "doing" } ,
"have" : { "base" : "have" , "past" : "had" , "gerund" : "having" } ,
"make" : { "base" : "make" , "past" : "made" , "gerund" : "making" } ,
"get" : { "base" : "get" , "past" : "got" , "gerund" : "getting" } ,
"run" : { "base" : "run" , "past" : "ran" , "gerund" : "running" } ,
"write" : { "base" : "write" , "past" : "wrote" , "gerund" : "writing" } ,
"build" : { "base" : "build" , "past" : "built" , "gerund" : "building" } ,
"send" : { "base" : "send" , "past" : "sent" , "gerund" : "sending" } ,
"find" : { "base" : "find" , "past" : "found" , "gerund" : "finding" } ,
"take" : { "base" : "take" , "past" : "took" , "gerund" : "taking" } ,
"begin" : { "base" : "begin" , "past" : "began" , "gerund" : "beginning" } ,
"keep" : { "base" : "keep" , "past" : "kept" , "gerund" : "keeping" } ,
"hold" : { "base" : "hold" , "past" : "held" , "gerund" : "holding" } ,
"bring" : { "base" : "bring" , "past" : "brought" , "gerund" : "bringing" } ,
"think" : { "base" : "think" , "past" : "thought" , "gerund" : "thinking" } ,
"buy" : { "base" : "buy" , "past" : "bought" , "gerund" : "buying" } ,
"catch" : { "base" : "catch" , "past" : "caught" , "gerund" : "catching" } ,
"choose" : { "base" : "choose" , "past" : "chose" , "gerund" : "choosing" } ,
"lose" : { "base" : "lose" , "past" : "lost" , "gerund" : "losing" } ,
"win" : { "base" : "win" , "past" : "won" , "gerund" : "winning" } ,
"meet" : { "base" : "meet" , "past" : "met" , "gerund" : "meeting" } ,
"lead" : { "base" : "lead" , "past" : "led" , "gerund" : "leading" } ,
"leave" : { "base" : "leave" , "past" : "left" , "gerund" : "leaving" } ,
"spend" : { "base" : "spend" , "past" : "spent" , "gerund" : "spending" } ,
"pay" : { "base" : "pay" , "past" : "paid" , "gerund" : "paying" } ,
2026-01-30 14:24:23 +00:00
"sell" : { "base" : "sell" , "past" : "sold" , "gerund" : "selling" } ,
"commit" : { "base" : "commit" , "past" : "committed" , "gerund" : "committing" } ,
"stop" : { "base" : "stop" , "past" : "stopped" , "gerund" : "stopping" } ,
"scan" : { "base" : "scan" , "past" : "scanned" , "gerund" : "scanning" } ,
"format" : { "base" : "format" , "past" : "formatted" , "gerund" : "formatting" } ,
"set" : { "base" : "set" , "past" : "set" , "gerund" : "setting" } ,
"put" : { "base" : "put" , "past" : "put" , "gerund" : "putting" } ,
"cut" : { "base" : "cut" , "past" : "cut" , "gerund" : "cutting" } ,
"hit" : { "base" : "hit" , "past" : "hit" , "gerund" : "hitting" } ,
"sit" : { "base" : "sit" , "past" : "sat" , "gerund" : "sitting" } ,
"split" : { "base" : "split" , "past" : "split" , "gerund" : "splitting" } ,
"shut" : { "base" : "shut" , "past" : "shut" , "gerund" : "shutting" }
2026-01-30 13:11:58 +00:00
} ,
"noun" : {
2026-01-30 14:24:23 +00:00
"file" : { "one" : "file" , "other" : "files" } ,
"repo" : { "one" : "repo" , "other" : "repos" } ,
"repository" : { "one" : "repository" , "other" : "repositories" } ,
"commit" : { "one" : "commit" , "other" : "commits" } ,
"branch" : { "one" : "branch" , "other" : "branches" } ,
"change" : { "one" : "change" , "other" : "changes" } ,
"item" : { "one" : "item" , "other" : "items" } ,
"issue" : { "one" : "issue" , "other" : "issues" } ,
"task" : { "one" : "task" , "other" : "tasks" } ,
"person" : { "one" : "person" , "other" : "people" } ,
"child" : { "one" : "child" , "other" : "children" } ,
"package" : { "one" : "package" , "other" : "packages" } ,
"artifact" : { "one" : "artifact" , "other" : "artifacts" } ,
"vulnerability" : { "one" : "vulnerability" , "other" : "vulnerabilities" } ,
"dependency" : { "one" : "dependency" , "other" : "dependencies" } ,
"directory" : { "one" : "directory" , "other" : "directories" } ,
"category" : { "one" : "category" , "other" : "categories" } ,
2026-02-01 07:39:49 +00:00
"query" : { "one" : "query" , "other" : "queries" } ,
"passed" : { "one" : "passed" , "other" : "passed" } ,
"failed" : { "one" : "failed" , "other" : "failed" } ,
"skipped" : { "one" : "skipped" , "other" : "skipped" } ,
"check" : { "one" : "check" , "other" : "checks" } ,
"test" : { "one" : "test" , "other" : "tests" }
2026-01-30 13:11:58 +00:00
} ,
"article" : {
"indefinite" : { "default" : "a" , "vowel" : "an" } ,
"definite" : "the"
refactor(i18n): use grammar engine for progress messages
- Replace cli.progress.* keys with i18n.P() dynamic generation
- Remove 7 static progress keys from en_GB.json (building, checking, etc.)
- Add additional core.* intents (format, analyse, link, unlink, fetch, etc.)
- Add grammar helpers: Progress(), ProgressSubject(), ActionResult(), Label()
- Add package-level convenience functions: P(), PS(), L()
- Update commands to use common.prompt.abort instead of cli.confirm.abort
The grammar engine now generates progress messages dynamically:
i18n.P("check") → "Checking..."
i18n.P("fetch") → "Fetching..."
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-30 12:43:03 +00:00
} ,
2026-01-30 14:24:23 +00:00
"word" : {
"url" : "URL" ,
"id" : "ID" ,
"ok" : "OK" ,
"ci" : "CI" ,
"qa" : "QA" ,
"php" : "PHP" ,
"sdk" : "SDK" ,
"html" : "HTML" ,
"cgo" : "CGO" ,
"pid" : "PID" ,
"cpus" : "CPUs" ,
"ssh" : "SSH" ,
"ssl" : "SSL" ,
"api" : "API" ,
"pr" : "PR" ,
"vite" : "Vite" ,
"pnpm" : "pnpm" ,
"app_url" : "app URL" ,
"blocked_by" : "blocked by" ,
"claimed_by" : "claimed by" ,
"related_files" : "related files" ,
refactor(i18n): consolidate duplicate translation keys into common section
Add common.* keys for reusable translations:
- common.label.* - UI labels (error, done, status, version, etc.)
- common.status.* - status words (running, stopped, dirty, synced)
- common.error.* - error messages (failed, not_found, working_dir)
- common.flag.* - CLI flag descriptions (registry, verbose, etc.)
- common.count.* - count templates (failed, passed, skipped)
- common.result.* - result messages (all_passed, no_issues)
- common.progress.* - progress messages (running, checking)
- common.hint.* - help hints (install_with, fix_deps)
Update all cmd/* files to use common keys instead of duplicated
command-specific keys. Reduces translation maintenance burden
and ensures consistency across the CLI.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-30 11:32:25 +00:00
"up_to_date" : "up to date" ,
2026-01-30 14:24:23 +00:00
"dry_run" : "dry run" ,
2026-02-01 07:39:49 +00:00
"go_mod" : "go.mod" ,
"test" : "test" ,
"package" : "package" ,
"filter" : "filter" ,
"coverage" : "coverage" ,
"passed" : "passed" ,
"failed" : "failed" ,
"skipped" : "skipped"
refactor(i18n): consolidate duplicate translation keys into common section
Add common.* keys for reusable translations:
- common.label.* - UI labels (error, done, status, version, etc.)
- common.status.* - status words (running, stopped, dirty, synced)
- common.error.* - error messages (failed, not_found, working_dir)
- common.flag.* - CLI flag descriptions (registry, verbose, etc.)
- common.count.* - count templates (failed, passed, skipped)
- common.result.* - result messages (all_passed, no_issues)
- common.progress.* - progress messages (running, checking)
- common.hint.* - help hints (install_with, fix_deps)
Update all cmd/* files to use common keys instead of duplicated
command-specific keys. Reduces translation maintenance burden
and ensures consistency across the CLI.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-30 11:32:25 +00:00
} ,
2026-01-30 14:24:23 +00:00
"punct" : {
"label" : ":" ,
"progress" : "..."
feat(i18n): add localized number formatting helpers
New i18n.* namespace patterns for number formatting:
- T("i18n.number", 1234567) → "1,234,567" (en) / "1.234.567" (de)
- T("i18n.decimal", 1234.56) → "1,234.56" (en) / "1.234,56" (de)
- T("i18n.percent", 0.85) → "85%" (en) / "85 %" (de)
- T("i18n.bytes", 1536000) → "1.5 MB" (en) / "1,5 MB" (de)
- T("i18n.ordinal", 3) → "3rd" (en) / "3." (de)
Also available as direct functions:
- FormatNumber(n), FormatDecimal(f), FormatPercent(f)
- FormatBytes(n), FormatOrdinal(n)
Language-aware formatting for en, de, fr, es, zh.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-30 14:39:15 +00:00
} ,
"number" : {
"thousands" : "," ,
"decimal" : "." ,
"percent" : "%s%%"
refactor(i18n): consolidate duplicate translation keys into common section
Add common.* keys for reusable translations:
- common.label.* - UI labels (error, done, status, version, etc.)
- common.status.* - status words (running, stopped, dirty, synced)
- common.error.* - error messages (failed, not_found, working_dir)
- common.flag.* - CLI flag descriptions (registry, verbose, etc.)
- common.count.* - count templates (failed, passed, skipped)
- common.result.* - result messages (all_passed, no_issues)
- common.progress.* - progress messages (running, checking)
- common.hint.* - help hints (install_with, fix_deps)
Update all cmd/* files to use common keys instead of duplicated
command-specific keys. Reduces translation maintenance burden
and ensures consistency across the CLI.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-30 11:32:25 +00:00
}
} ,
2026-01-30 14:24:23 +00:00
"prompt" : {
"yes" : "y" ,
"no" : "n" ,
"continue" : "Continue?" ,
"proceed" : "Proceed?" ,
"confirm" : "Are you sure?" ,
"overwrite" : "Overwrite?" ,
"discard" : "Discard changes?"
} ,
"time" : {
"just_now" : "just now" ,
"ago" : {
"second" : { "one" : "{{.Count}} second ago" , "other" : "{{.Count}} seconds ago" } ,
"minute" : { "one" : "{{.Count}} minute ago" , "other" : "{{.Count}} minutes ago" } ,
"hour" : { "one" : "{{.Count}} hour ago" , "other" : "{{.Count}} hours ago" } ,
"day" : { "one" : "{{.Count}} day ago" , "other" : "{{.Count}} days ago" } ,
"week" : { "one" : "{{.Count}} week ago" , "other" : "{{.Count}} weeks ago" }
}
2026-01-30 01:42:53 +00:00
} ,
2026-01-30 11:11:07 +00:00
"cmd" : {
"ai" : {
"short" : "AI agent task management" ,
feat: wire release command, add tar.xz support, unified installers (#277)
* feat(cli): wire release command and add installer scripts
- Wire up `core build release` subcommand (was orphaned)
- Wire up `core monitor` command (missing import in full variant)
- Add installer scripts for Unix (.sh) and Windows (.bat)
- setup: Interactive with variant selection
- ci: Minimal for CI/CD environments
- dev: Full development variant
- go/php/agent: Targeted development variants
- All scripts include security hardening:
- Secure temp directories (mktemp -d)
- Architecture validation
- Version validation after GitHub API call
- Proper cleanup on exit
- PowerShell PATH updates on Windows (avoids setx truncation)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat(build): add tar.xz support and unified installer scripts
- Add tar.xz archive support using Borg's compress package
- ArchiveXZ() and ArchiveWithFormat() for configurable compression
- Better compression ratio than gzip for release artifacts
- Consolidate 12 installer scripts into 2 unified scripts
- install.sh and install.bat with BunnyCDN edge variable support
- Subdomains: setup.core.help, ci.core.help, dev.core.help, etc.
- MODE and VARIANT transformed at edge based on subdomain
- Installers prefer tar.xz with automatic fallback to tar.gz
- Fixed CodeRabbit issues: HTTP status patterns, tar error handling,
verify_install params, VARIANT validation, CI PATH persistence
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* chore: add build and release config files
- .core/build.yaml - cross-platform build configuration
- .core/release.yaml - release workflow configuration
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* chore: move plans from docs/ to tasks/
Consolidate planning documents in tasks/plans/ directory.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix(install): address CodeRabbit review feedback
- Add curl timeout (--max-time) to prevent hanging on slow networks
- Rename TMPDIR to WORK_DIR to avoid clobbering system env var
- Add chmod +x to ensure binary has execute permissions
- Add error propagation after subroutine calls in batch file
- Remove System32 install attempt in CI mode (use consistent INSTALL_DIR)
- Fix HTTP status regex for HTTP/2 compatibility
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat(rag): add Go RAG implementation with Qdrant + Ollama
Add RAG (Retrieval Augmented Generation) tools for storing documentation
in Qdrant vector database and querying with semantic search. This replaces
the Python tools/rag implementation with a native Go solution.
New commands:
- core rag ingest [directory] - Ingest markdown files into Qdrant
- core rag query [question] - Query vector database with semantic search
- core rag collections - List and manage Qdrant collections
Features:
- Markdown chunking by sections and paragraphs with overlap
- UTF-8 safe text handling for international content
- Automatic category detection from file paths
- Multiple output formats: text, JSON, LLM context injection
- Environment variable support for host configuration
Dependencies:
- github.com/qdrant/go-client (gRPC client)
- github.com/ollama/ollama/api (embeddings API)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat(deploy): add pure-Go Ansible executor and Coolify API integration
Implement infrastructure deployment system with:
- pkg/ansible: Pure Go Ansible executor
- Playbook/inventory parsing (types.go, parser.go)
- Full execution engine with variable templating, loops, blocks,
conditionals, handlers, and fact gathering (executor.go)
- SSH client with key/password auth and privilege escalation (ssh.go)
- 35+ module implementations: shell, command, copy, template, file,
apt, service, systemd, user, group, git, docker_compose, etc. (modules.go)
- pkg/deploy/coolify: Coolify API client wrapping Python swagger client
- List/get servers, projects, applications, databases, services
- Generic Call() for any OpenAPI operation
- pkg/deploy/python: Embedded Python runtime for swagger client integration
- internal/cmd/deploy: CLI commands
- core deploy servers/projects/apps/databases/services/team
- core deploy call <operation> [params-json]
This enables Docker-free infrastructure deployment with Ansible-compatible
playbooks executed natively in Go.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix(deploy): address linter warnings and build errors
- Fix fmt.Sprintf format verb error in ssh.go (remove unused stat command)
- Fix errcheck warnings by explicitly ignoring best-effort operations
- Fix ineffassign warning in cmd_ansible.go
All golangci-lint checks now pass for deploy packages.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* style(deploy): fix gofmt formatting
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix(deploy): use known_hosts for SSH host key verification
Address CodeQL security alert by using the user's known_hosts file
for SSH host key verification when available. Falls back to accepting
any key only when known_hosts doesn't exist (common in containerized
or ephemeral environments).
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat(ai,security,ide): add agentic MVP, security jobs, and Core IDE desktop app
Wire up AI infrastructure with unified pkg/ai package (metrics JSONL,
RAG integration), move RAG under `core ai rag`, add `core ai metrics`
command, and enrich task context with Qdrant documentation.
Add `--target` flag to all security commands for external repo scanning,
`core security jobs` for distributing findings as GitHub Issues, and
consistent error logging across scan/deps/alerts/secrets commands.
Add Core IDE Wails v3 desktop app with Angular 20 frontend, MCP bridge
(loopback-only HTTP server), WebSocket hub, and Claude Code bridge.
Production-ready with Lethean CIC branding, macOS code signing support,
and security hardening (origin validation, body size limits, URL scheme
checks, memory leak prevention, XSS mitigation).
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix: address PR review comments from CodeRabbit, Copilot, and Gemini
Fixes across 25 files addressing 46+ review comments:
- pkg/ai/metrics.go: handle error from Close() on writable file handle
- pkg/ansible: restore loop vars after loop, restore become settings,
fix Upload with become=true and no password (use sudo -n), honour
SSH timeout config, use E() helper for contextual errors, quote git
refs in checkout commands
- pkg/rag: validate chunk config, guard negative-to-uint64 conversion,
use E() helper for errors, add context timeout to Ollama HTTP calls
- pkg/deploy/python: fix exec.ExitError type assertion (was os.PathError),
handle os.UserHomeDir() error
- pkg/build/buildcmd: use cmd.Context() instead of context.Background()
for proper Ctrl+C cancellation
- install.bat: add curl timeouts, CRLF line endings, use --connect-timeout
for archive downloads
- install.sh: use absolute path for version check in CI mode
- tools/rag: fix broken ingest.py function def, escape HTML in query.py,
pin qdrant-client version, add markdown code block languages
- internal/cmd/rag: add chunk size validation, env override handling
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix(build): make release dry-run by default and remove darwin/amd64 target
Replace --dry-run (default false) with --we-are-go-for-launch (default
false) so `core build release` is safe by default. Remove darwin/amd64
from default build targets (arm64 only for macOS). Fix cmd_project.go
to use command context instead of context.Background().
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-04 00:49:57 +00:00
"long" : "AI agent task management for core-agentic integration. Provides commands to list, claim, update, and complete tasks from the agentic task queue. Includes RAG tools and metrics." ,
2026-01-30 14:24:23 +00:00
"claude.short" : "Claude Code integration" ,
2026-02-01 07:39:49 +00:00
"claude.long" : "Claude Code integration for AI-assisted development workflows." ,
"claude.config.short" : "Configure Claude Code settings" ,
"claude.run.short" : "Run Claude Code on current directory" ,
2026-01-30 14:24:23 +00:00
"task.short" : "Show task details or auto-select a task" ,
2026-02-01 07:39:49 +00:00
"task.long" : "Show details of a specific task or auto-select the next available task from the queue." ,
"task.flag.auto" : "Auto-select the next available task" ,
"task.flag.claim" : "Claim the task for yourself" ,
"task.flag.context" : "Include full context in output" ,
2026-01-30 14:24:23 +00:00
"task.id_required" : "task ID required (or use --auto)" ,
"task.no_pending" : "No pending tasks available." ,
"tasks.short" : "List available tasks from core-agentic" ,
"task_commit.short" : "Auto-commit changes with task reference" ,
"task_commit.no_changes" : "No uncommitted changes to commit." ,
"task_complete.short" : "Mark a task as completed" ,
"task_pr.short" : "Create a pull request for a task" ,
"task_pr.branch_error" : "cannot create PR from {{.Branch}} branch; create a feature branch first" ,
feat: wire release command, add tar.xz support, unified installers (#277)
* feat(cli): wire release command and add installer scripts
- Wire up `core build release` subcommand (was orphaned)
- Wire up `core monitor` command (missing import in full variant)
- Add installer scripts for Unix (.sh) and Windows (.bat)
- setup: Interactive with variant selection
- ci: Minimal for CI/CD environments
- dev: Full development variant
- go/php/agent: Targeted development variants
- All scripts include security hardening:
- Secure temp directories (mktemp -d)
- Architecture validation
- Version validation after GitHub API call
- Proper cleanup on exit
- PowerShell PATH updates on Windows (avoids setx truncation)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat(build): add tar.xz support and unified installer scripts
- Add tar.xz archive support using Borg's compress package
- ArchiveXZ() and ArchiveWithFormat() for configurable compression
- Better compression ratio than gzip for release artifacts
- Consolidate 12 installer scripts into 2 unified scripts
- install.sh and install.bat with BunnyCDN edge variable support
- Subdomains: setup.core.help, ci.core.help, dev.core.help, etc.
- MODE and VARIANT transformed at edge based on subdomain
- Installers prefer tar.xz with automatic fallback to tar.gz
- Fixed CodeRabbit issues: HTTP status patterns, tar error handling,
verify_install params, VARIANT validation, CI PATH persistence
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* chore: add build and release config files
- .core/build.yaml - cross-platform build configuration
- .core/release.yaml - release workflow configuration
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* chore: move plans from docs/ to tasks/
Consolidate planning documents in tasks/plans/ directory.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix(install): address CodeRabbit review feedback
- Add curl timeout (--max-time) to prevent hanging on slow networks
- Rename TMPDIR to WORK_DIR to avoid clobbering system env var
- Add chmod +x to ensure binary has execute permissions
- Add error propagation after subroutine calls in batch file
- Remove System32 install attempt in CI mode (use consistent INSTALL_DIR)
- Fix HTTP status regex for HTTP/2 compatibility
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat(rag): add Go RAG implementation with Qdrant + Ollama
Add RAG (Retrieval Augmented Generation) tools for storing documentation
in Qdrant vector database and querying with semantic search. This replaces
the Python tools/rag implementation with a native Go solution.
New commands:
- core rag ingest [directory] - Ingest markdown files into Qdrant
- core rag query [question] - Query vector database with semantic search
- core rag collections - List and manage Qdrant collections
Features:
- Markdown chunking by sections and paragraphs with overlap
- UTF-8 safe text handling for international content
- Automatic category detection from file paths
- Multiple output formats: text, JSON, LLM context injection
- Environment variable support for host configuration
Dependencies:
- github.com/qdrant/go-client (gRPC client)
- github.com/ollama/ollama/api (embeddings API)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat(deploy): add pure-Go Ansible executor and Coolify API integration
Implement infrastructure deployment system with:
- pkg/ansible: Pure Go Ansible executor
- Playbook/inventory parsing (types.go, parser.go)
- Full execution engine with variable templating, loops, blocks,
conditionals, handlers, and fact gathering (executor.go)
- SSH client with key/password auth and privilege escalation (ssh.go)
- 35+ module implementations: shell, command, copy, template, file,
apt, service, systemd, user, group, git, docker_compose, etc. (modules.go)
- pkg/deploy/coolify: Coolify API client wrapping Python swagger client
- List/get servers, projects, applications, databases, services
- Generic Call() for any OpenAPI operation
- pkg/deploy/python: Embedded Python runtime for swagger client integration
- internal/cmd/deploy: CLI commands
- core deploy servers/projects/apps/databases/services/team
- core deploy call <operation> [params-json]
This enables Docker-free infrastructure deployment with Ansible-compatible
playbooks executed natively in Go.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix(deploy): address linter warnings and build errors
- Fix fmt.Sprintf format verb error in ssh.go (remove unused stat command)
- Fix errcheck warnings by explicitly ignoring best-effort operations
- Fix ineffassign warning in cmd_ansible.go
All golangci-lint checks now pass for deploy packages.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* style(deploy): fix gofmt formatting
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix(deploy): use known_hosts for SSH host key verification
Address CodeQL security alert by using the user's known_hosts file
for SSH host key verification when available. Falls back to accepting
any key only when known_hosts doesn't exist (common in containerized
or ephemeral environments).
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat(ai,security,ide): add agentic MVP, security jobs, and Core IDE desktop app
Wire up AI infrastructure with unified pkg/ai package (metrics JSONL,
RAG integration), move RAG under `core ai rag`, add `core ai metrics`
command, and enrich task context with Qdrant documentation.
Add `--target` flag to all security commands for external repo scanning,
`core security jobs` for distributing findings as GitHub Issues, and
consistent error logging across scan/deps/alerts/secrets commands.
Add Core IDE Wails v3 desktop app with Angular 20 frontend, MCP bridge
(loopback-only HTTP server), WebSocket hub, and Claude Code bridge.
Production-ready with Lethean CIC branding, macOS code signing support,
and security hardening (origin validation, body size limits, URL scheme
checks, memory leak prevention, XSS mitigation).
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix: address PR review comments from CodeRabbit, Copilot, and Gemini
Fixes across 25 files addressing 46+ review comments:
- pkg/ai/metrics.go: handle error from Close() on writable file handle
- pkg/ansible: restore loop vars after loop, restore become settings,
fix Upload with become=true and no password (use sudo -n), honour
SSH timeout config, use E() helper for contextual errors, quote git
refs in checkout commands
- pkg/rag: validate chunk config, guard negative-to-uint64 conversion,
use E() helper for errors, add context timeout to Ollama HTTP calls
- pkg/deploy/python: fix exec.ExitError type assertion (was os.PathError),
handle os.UserHomeDir() error
- pkg/build/buildcmd: use cmd.Context() instead of context.Background()
for proper Ctrl+C cancellation
- install.bat: add curl timeouts, CRLF line endings, use --connect-timeout
for archive downloads
- install.sh: use absolute path for version check in CI mode
- tools/rag: fix broken ingest.py function def, escape HTML in query.py,
pin qdrant-client version, add markdown code block languages
- internal/cmd/rag: add chunk size validation, env override handling
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix(build): make release dry-run by default and remove darwin/amd64 target
Replace --dry-run (default false) with --we-are-go-for-launch (default
false) so `core build release` is safe by default. Remove darwin/amd64
from default build targets (arm64 only for macOS). Fix cmd_project.go
to use command context instead of context.Background().
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-04 00:49:57 +00:00
"task_update.short" : "Update task status or progress" ,
"metrics.short" : "View AI and security event metrics" ,
"metrics.long" : "View collected metrics from AI tasks, security scans, and job creation events. Reads JSONL event logs from ~/.core/ai/metrics/." ,
"metrics.flag.since" : "Time period to show (e.g. 7d, 24h, 30d)" ,
feat(i18n): complete en_GB translations and add completeness test
Fill all 568 missing translation keys in en_GB.json (765→1357 lines):
- 97 --help description keys (collect, ci, docs, dev, php, pkg, sdk, vm)
- 471 runtime keys (labels, errors, hints, progress, status messages)
- Add common.flag.follow, common.flag.tag, common.prompt.abort
Add completeness_test.go that scans all T() calls in source code and
verifies every cmd.*/common.* key exists using ModeStrict (panics on
missing). Catches translation gaps at test time instead of showing raw
keys in the CLI.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 20:50:55 +00:00
"metrics.none_found" : "No events recorded in this period." ,
"label.blocked_by" : "Blocked by:" ,
"label.claimed_by" : "Claimed by:" ,
"label.created" : "Created:" ,
"label.description" : "Description:" ,
"label.id" : "ID:" ,
"label.labels" : "Labels:" ,
"label.priority" : "Priority:" ,
"label.related_files" : "Related files:" ,
"label.title" : "Title:" ,
"priority.critical" : "Critical" ,
"priority.high" : "High" ,
"priority.low" : "Low" ,
"priority.medium" : "Medium" ,
"status.blocked" : "Blocked" ,
"status.completed" : "Completed" ,
"status.in_progress" : "In Progress" ,
"status.pending" : "Pending" ,
"task.claiming" : "Claiming task..." ,
"task_commit.flag.message" : "Commit message override" ,
"task_commit.flag.push" : "Push after committing" ,
"task_commit.flag.scope" : "Scope prefix for commit message" ,
"task_commit.long" : "Automatically commit staged changes with a message referencing the current task ID and title." ,
"task_complete.failed" : "Failed to mark task as completed." ,
"task_complete.flag.error" : "Error message if task failed" ,
"task_complete.flag.failed" : "Mark task as failed instead of completed" ,
"task_complete.flag.output" : "Output or result summary" ,
"task_complete.long" : "Mark a claimed task as completed or failed. Updates the task status in the agentic queue." ,
"task_pr.flag.base" : "Base branch for the pull request" ,
"task_pr.flag.draft" : "Create as draft pull request" ,
"task_pr.flag.labels" : "Comma-separated labels to add" ,
"task_pr.flag.title" : "Pull request title override" ,
"task_pr.long" : "Create a pull request for the current task. Auto-generates title and description from the task context." ,
"task_update.flag.notes" : "Notes to add to the task" ,
"task_update.flag.progress" : "Progress percentage (0-100)" ,
"task_update.flag.status" : "New status (pending, in_progress, blocked)" ,
"task_update.flag_required" : "At least one of --status, --progress, or --notes is required." ,
"task_update.long" : "Update the status, progress, or notes on a claimed task in the agentic queue." ,
"tasks.flag.labels" : "Filter by labels" ,
"tasks.flag.limit" : "Maximum number of tasks to show" ,
"tasks.flag.priority" : "Filter by priority (critical, high, medium, low)" ,
"tasks.flag.project" : "Filter by project name" ,
"tasks.flag.status" : "Filter by status (pending, in_progress, blocked)" ,
"tasks.found" : "Found {{.Count}} task(s)" ,
"tasks.hint" : "Use 'core ai task <id>' to view details or 'core ai task --auto' to claim the next one." ,
"tasks.long" : "List available tasks from the core-agentic task queue. Supports filtering by status, priority, labels, and project." ,
"tasks.none_found" : "No tasks found matching the criteria."
2026-01-30 11:11:07 +00:00
} ,
"build" : {
"short" : "Build projects with auto-detection and cross-compilation" ,
2026-02-01 07:39:49 +00:00
"long" : "Build projects with automatic project type detection and cross-compilation support. Supports Go, Wails, Node.js, and PHP projects." ,
"flag.archive" : "Create archive (tar.gz/zip) of build output" ,
"flag.checksum" : "Generate SHA256 checksums" ,
"flag.ci" : "Run in CI mode (non-interactive)" ,
"flag.config" : "Path to build configuration file" ,
"flag.format" : "Output format (binary, docker, appimage)" ,
"flag.image" : "Docker image name for container builds" ,
"flag.no_sign" : "Skip code signing" ,
"flag.notarize" : "Notarize macOS builds" ,
"flag.output" : "Output directory for build artifacts" ,
"flag.push" : "Push container image to registry" ,
"flag.targets" : "Comma-separated build targets (e.g., linux/amd64,darwin/arm64)" ,
"flag.type" : "Project type override (go, wails, node, php)" ,
feat: git command, build improvements, and go fmt git-aware (#74)
* feat(go): make go fmt git-aware by default
- By default, only check changed Go files (modified, staged, untracked)
- Add --all flag to check all files (previous behaviour)
- Reduces noise when running fmt on large codebases
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat(build): minimal output by default, add missing i18n
- Default output now shows single line: "Success Built N artifacts (dir)"
- Add --verbose/-v flag to show full detailed output
- Add all missing i18n translations for build commands
- Errors still show failure reason in minimal mode
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat: add root-level `core git` command
- Create pkg/gitcmd with git workflow commands as root menu
- Export command builders from pkg/dev (AddCommitCommand, etc.)
- Commands available under both `core git` and `core dev` for compatibility
- Git commands: health, commit, push, pull, work, sync, apply
- GitHub orchestration stays in dev: issues, reviews, ci, impact
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat(qa): add docblock coverage checking
Implement docblock/docstring coverage analysis for Go code:
- New `core qa docblock` command to check coverage
- Shows compact file:line list when under threshold
- Integrate with `core go qa` as a default check
- Add --docblock-threshold flag (default 80%)
The checker uses Go AST parsing to find exported symbols
(functions, types, consts, vars) without documentation.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix: address CodeRabbit review feedback
- Fix doc comment: "status" → "health" in gitcmd package
- Implement --check flag for `core go fmt` (exits non-zero if files need formatting)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* docs: add docstrings for 100% coverage
Add documentation comments to all exported symbols:
- pkg/build: ProjectType constants
- pkg/cli: LogLevel, RenderStyle, TableStyle
- pkg/framework: ServiceFor, MustServiceFor, Core.Core
- pkg/git: GitError.Error, GitError.Unwrap
- pkg/i18n: Handler Match/Handle methods
- pkg/log: Level constants
- pkg/mcp: Tool input/output types
- pkg/php: Service constants, QA types, service methods
- pkg/process: ServiceError.Error
- pkg/repos: RepoType constants
- pkg/setup: ChangeType, ChangeCategory constants
- pkg/workspace: AddWorkspaceCommands
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* chore: standardize line endings to LF
Add .gitattributes to enforce LF line endings for all text files.
Normalize all existing files to use Unix-style line endings.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix: address CodeRabbit review feedback
- cmd_format.go: validate --check/--fix mutual exclusivity, capture stderr
- cmd_docblock.go: return error instead of os.Exit(1) for proper error handling
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix: address CodeRabbit review feedback (round 2)
- linuxkit.go: propagate state update errors, handle cmd.Wait() errors in waitForExit
- mcp.go: guard against empty old_string in editDiff to prevent runaway edits
- cmd_docblock.go: log parse errors instead of silently skipping
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-01 10:48:44 +00:00
"label.build" : "Build" ,
"label.type" : "Type:" ,
"label.output" : "Output:" ,
"label.binary" : "Binary:" ,
"label.targets" : "Targets:" ,
"label.sign" : "Sign" ,
"label.archive" : "Archive" ,
"label.checksum" : "Checksum" ,
"label.ok" : "OK" ,
"building_project" : "Building project" ,
"built_artifacts" : "Built {{.Count}} artifacts" ,
"signing_binaries" : "Signing binaries" ,
"creating_archives" : "Creating archives" ,
"computing_checksums" : "Computing checksums" ,
2026-01-30 14:24:23 +00:00
"error.invalid_target" : "invalid target format \"{{.Target}}\", expected OS/arch (e.g., linux/amd64)" ,
"error.no_project_type" : "no supported project type detected in {{.Dir}}\nSupported types: go (go.mod), wails (wails.json), node (package.json), php (composer.json)" ,
feat: git command, build improvements, and go fmt git-aware (#74)
* feat(go): make go fmt git-aware by default
- By default, only check changed Go files (modified, staged, untracked)
- Add --all flag to check all files (previous behaviour)
- Reduces noise when running fmt on large codebases
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat(build): minimal output by default, add missing i18n
- Default output now shows single line: "Success Built N artifacts (dir)"
- Add --verbose/-v flag to show full detailed output
- Add all missing i18n translations for build commands
- Errors still show failure reason in minimal mode
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat: add root-level `core git` command
- Create pkg/gitcmd with git workflow commands as root menu
- Export command builders from pkg/dev (AddCommitCommand, etc.)
- Commands available under both `core git` and `core dev` for compatibility
- Git commands: health, commit, push, pull, work, sync, apply
- GitHub orchestration stays in dev: issues, reviews, ci, impact
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat(qa): add docblock coverage checking
Implement docblock/docstring coverage analysis for Go code:
- New `core qa docblock` command to check coverage
- Shows compact file:line list when under threshold
- Integrate with `core go qa` as a default check
- Add --docblock-threshold flag (default 80%)
The checker uses Go AST parsing to find exported symbols
(functions, types, consts, vars) without documentation.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix: address CodeRabbit review feedback
- Fix doc comment: "status" → "health" in gitcmd package
- Implement --check flag for `core go fmt` (exits non-zero if files need formatting)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* docs: add docstrings for 100% coverage
Add documentation comments to all exported symbols:
- pkg/build: ProjectType constants
- pkg/cli: LogLevel, RenderStyle, TableStyle
- pkg/framework: ServiceFor, MustServiceFor, Core.Core
- pkg/git: GitError.Error, GitError.Unwrap
- pkg/i18n: Handler Match/Handle methods
- pkg/log: Level constants
- pkg/mcp: Tool input/output types
- pkg/php: Service constants, QA types, service methods
- pkg/process: ServiceError.Error
- pkg/repos: RepoType constants
- pkg/setup: ChangeType, ChangeCategory constants
- pkg/workspace: AddWorkspaceCommands
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* chore: standardize line endings to LF
Add .gitattributes to enforce LF line endings for all text files.
Normalize all existing files to use Unix-style line endings.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix: address CodeRabbit review feedback
- cmd_format.go: validate --check/--fix mutual exclusivity, capture stderr
- cmd_docblock.go: return error instead of os.Exit(1) for proper error handling
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix: address CodeRabbit review feedback (round 2)
- linuxkit.go: propagate state update errors, handle cmd.Wait() errors in waitForExit
- mcp.go: guard against empty old_string in editDiff to prevent runaway edits
- cmd_docblock.go: log parse errors instead of silently skipping
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-01 10:48:44 +00:00
"error.no_targets" : "no build targets specified" ,
"error.signing_failed" : "signing failed" ,
"error.notarization_failed" : "notarization failed" ,
"error.archive_failed" : "archive creation failed" ,
"error.checksum_failed" : "checksum generation failed" ,
"error.gpg_signing_failed" : "GPG signing failed" ,
"error.node_not_implemented" : "Node.js builds not yet implemented" ,
"error.php_not_implemented" : "PHP builds not yet implemented" ,
"error.unsupported_type" : "unsupported project type" ,
2026-01-30 14:24:23 +00:00
"from_path.short" : "Build from a local directory" ,
feat: git command, build improvements, and go fmt git-aware (#74)
* feat(go): make go fmt git-aware by default
- By default, only check changed Go files (modified, staged, untracked)
- Add --all flag to check all files (previous behaviour)
- Reduces noise when running fmt on large codebases
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat(build): minimal output by default, add missing i18n
- Default output now shows single line: "Success Built N artifacts (dir)"
- Add --verbose/-v flag to show full detailed output
- Add all missing i18n translations for build commands
- Errors still show failure reason in minimal mode
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat: add root-level `core git` command
- Create pkg/gitcmd with git workflow commands as root menu
- Export command builders from pkg/dev (AddCommitCommand, etc.)
- Commands available under both `core git` and `core dev` for compatibility
- Git commands: health, commit, push, pull, work, sync, apply
- GitHub orchestration stays in dev: issues, reviews, ci, impact
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat(qa): add docblock coverage checking
Implement docblock/docstring coverage analysis for Go code:
- New `core qa docblock` command to check coverage
- Shows compact file:line list when under threshold
- Integrate with `core go qa` as a default check
- Add --docblock-threshold flag (default 80%)
The checker uses Go AST parsing to find exported symbols
(functions, types, consts, vars) without documentation.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix: address CodeRabbit review feedback
- Fix doc comment: "status" → "health" in gitcmd package
- Implement --check flag for `core go fmt` (exits non-zero if files need formatting)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* docs: add docstrings for 100% coverage
Add documentation comments to all exported symbols:
- pkg/build: ProjectType constants
- pkg/cli: LogLevel, RenderStyle, TableStyle
- pkg/framework: ServiceFor, MustServiceFor, Core.Core
- pkg/git: GitError.Error, GitError.Unwrap
- pkg/i18n: Handler Match/Handle methods
- pkg/log: Level constants
- pkg/mcp: Tool input/output types
- pkg/php: Service constants, QA types, service methods
- pkg/process: ServiceError.Error
- pkg/repos: RepoType constants
- pkg/setup: ChangeType, ChangeCategory constants
- pkg/workspace: AddWorkspaceCommands
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* chore: standardize line endings to LF
Add .gitattributes to enforce LF line endings for all text files.
Normalize all existing files to use Unix-style line endings.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix: address CodeRabbit review feedback
- cmd_format.go: validate --check/--fix mutual exclusivity, capture stderr
- cmd_docblock.go: return error instead of os.Exit(1) for proper error handling
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix: address CodeRabbit review feedback (round 2)
- linuxkit.go: propagate state update errors, handle cmd.Wait() errors in waitForExit
- mcp.go: guard against empty old_string in editDiff to prevent runaway edits
- cmd_docblock.go: log parse errors instead of silently skipping
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-01 10:48:44 +00:00
"from_path.flag.path" : "Path to application directory" ,
"from_path.starting" : "Building from path:" ,
"from_path.generating_template" : "Generating application template..." ,
"from_path.copying_files" : "Copying application files..." ,
"from_path.compiling" : "Compiling application..." ,
"from_path.success" : "Build complete:" ,
"from_path.error.invalid_path" : "invalid path" ,
"from_path.error.must_be_directory" : "path must be a directory" ,
"from_path.error.go_mod_tidy" : "go mod tidy failed" ,
"from_path.error.go_build" : "go build failed" ,
2026-01-30 14:24:23 +00:00
"pwa.short" : "Build from a live PWA URL" ,
feat: git command, build improvements, and go fmt git-aware (#74)
* feat(go): make go fmt git-aware by default
- By default, only check changed Go files (modified, staged, untracked)
- Add --all flag to check all files (previous behaviour)
- Reduces noise when running fmt on large codebases
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat(build): minimal output by default, add missing i18n
- Default output now shows single line: "Success Built N artifacts (dir)"
- Add --verbose/-v flag to show full detailed output
- Add all missing i18n translations for build commands
- Errors still show failure reason in minimal mode
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat: add root-level `core git` command
- Create pkg/gitcmd with git workflow commands as root menu
- Export command builders from pkg/dev (AddCommitCommand, etc.)
- Commands available under both `core git` and `core dev` for compatibility
- Git commands: health, commit, push, pull, work, sync, apply
- GitHub orchestration stays in dev: issues, reviews, ci, impact
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat(qa): add docblock coverage checking
Implement docblock/docstring coverage analysis for Go code:
- New `core qa docblock` command to check coverage
- Shows compact file:line list when under threshold
- Integrate with `core go qa` as a default check
- Add --docblock-threshold flag (default 80%)
The checker uses Go AST parsing to find exported symbols
(functions, types, consts, vars) without documentation.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix: address CodeRabbit review feedback
- Fix doc comment: "status" → "health" in gitcmd package
- Implement --check flag for `core go fmt` (exits non-zero if files need formatting)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* docs: add docstrings for 100% coverage
Add documentation comments to all exported symbols:
- pkg/build: ProjectType constants
- pkg/cli: LogLevel, RenderStyle, TableStyle
- pkg/framework: ServiceFor, MustServiceFor, Core.Core
- pkg/git: GitError.Error, GitError.Unwrap
- pkg/i18n: Handler Match/Handle methods
- pkg/log: Level constants
- pkg/mcp: Tool input/output types
- pkg/php: Service constants, QA types, service methods
- pkg/process: ServiceError.Error
- pkg/repos: RepoType constants
- pkg/setup: ChangeType, ChangeCategory constants
- pkg/workspace: AddWorkspaceCommands
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* chore: standardize line endings to LF
Add .gitattributes to enforce LF line endings for all text files.
Normalize all existing files to use Unix-style line endings.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix: address CodeRabbit review feedback
- cmd_format.go: validate --check/--fix mutual exclusivity, capture stderr
- cmd_docblock.go: return error instead of os.Exit(1) for proper error handling
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix: address CodeRabbit review feedback (round 2)
- linuxkit.go: propagate state update errors, handle cmd.Wait() errors in waitForExit
- mcp.go: guard against empty old_string in editDiff to prevent runaway edits
- cmd_docblock.go: log parse errors instead of silently skipping
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-01 10:48:44 +00:00
"pwa.flag.url" : "URL of the PWA to build" ,
"pwa.starting" : "Building PWA from URL:" ,
"pwa.downloading_to" : "Downloading to:" ,
"pwa.no_manifest" : "No manifest.json found, using defaults" ,
"pwa.found_manifest" : "Found manifest:" ,
"pwa.download_complete" : "Download complete" ,
"pwa.error.no_manifest_tag" : "no manifest link tag found in HTML" ,
2026-02-01 07:39:49 +00:00
"sdk.short" : "Generate API SDKs from OpenAPI spec" ,
"sdk.long" : "Generate API SDKs from an OpenAPI specification file. Supports multiple languages including TypeScript, Go, and PHP." ,
"sdk.flag.dry_run" : "Show what would be generated without writing files" ,
"sdk.flag.lang" : "Target language (typescript, go, php)" ,
feat: git command, build improvements, and go fmt git-aware (#74)
* feat(go): make go fmt git-aware by default
- By default, only check changed Go files (modified, staged, untracked)
- Add --all flag to check all files (previous behaviour)
- Reduces noise when running fmt on large codebases
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat(build): minimal output by default, add missing i18n
- Default output now shows single line: "Success Built N artifacts (dir)"
- Add --verbose/-v flag to show full detailed output
- Add all missing i18n translations for build commands
- Errors still show failure reason in minimal mode
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat: add root-level `core git` command
- Create pkg/gitcmd with git workflow commands as root menu
- Export command builders from pkg/dev (AddCommitCommand, etc.)
- Commands available under both `core git` and `core dev` for compatibility
- Git commands: health, commit, push, pull, work, sync, apply
- GitHub orchestration stays in dev: issues, reviews, ci, impact
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat(qa): add docblock coverage checking
Implement docblock/docstring coverage analysis for Go code:
- New `core qa docblock` command to check coverage
- Shows compact file:line list when under threshold
- Integrate with `core go qa` as a default check
- Add --docblock-threshold flag (default 80%)
The checker uses Go AST parsing to find exported symbols
(functions, types, consts, vars) without documentation.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix: address CodeRabbit review feedback
- Fix doc comment: "status" → "health" in gitcmd package
- Implement --check flag for `core go fmt` (exits non-zero if files need formatting)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* docs: add docstrings for 100% coverage
Add documentation comments to all exported symbols:
- pkg/build: ProjectType constants
- pkg/cli: LogLevel, RenderStyle, TableStyle
- pkg/framework: ServiceFor, MustServiceFor, Core.Core
- pkg/git: GitError.Error, GitError.Unwrap
- pkg/i18n: Handler Match/Handle methods
- pkg/log: Level constants
- pkg/mcp: Tool input/output types
- pkg/php: Service constants, QA types, service methods
- pkg/process: ServiceError.Error
- pkg/repos: RepoType constants
- pkg/setup: ChangeType, ChangeCategory constants
- pkg/workspace: AddWorkspaceCommands
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* chore: standardize line endings to LF
Add .gitattributes to enforce LF line endings for all text files.
Normalize all existing files to use Unix-style line endings.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix: address CodeRabbit review feedback
- cmd_format.go: validate --check/--fix mutual exclusivity, capture stderr
- cmd_docblock.go: return error instead of os.Exit(1) for proper error handling
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix: address CodeRabbit review feedback (round 2)
- linuxkit.go: propagate state update errors, handle cmd.Wait() errors in waitForExit
- mcp.go: guard against empty old_string in editDiff to prevent runaway edits
- cmd_docblock.go: log parse errors instead of silently skipping
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-01 10:48:44 +00:00
"sdk.flag.version" : "SDK version to generate" ,
"sdk.label" : "SDK" ,
"sdk.generating" : "Generating SDK" ,
"sdk.dry_run_mode" : "(dry run - no files will be written)" ,
"sdk.language_label" : "Language:" ,
"sdk.languages_label" : "Languages:" ,
"sdk.would_generate" : "Would generate SDK" ,
"sdk.generated_label" : "Generated:" ,
feat: wire release command, add tar.xz support, unified installers (#277)
* feat(cli): wire release command and add installer scripts
- Wire up `core build release` subcommand (was orphaned)
- Wire up `core monitor` command (missing import in full variant)
- Add installer scripts for Unix (.sh) and Windows (.bat)
- setup: Interactive with variant selection
- ci: Minimal for CI/CD environments
- dev: Full development variant
- go/php/agent: Targeted development variants
- All scripts include security hardening:
- Secure temp directories (mktemp -d)
- Architecture validation
- Version validation after GitHub API call
- Proper cleanup on exit
- PowerShell PATH updates on Windows (avoids setx truncation)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat(build): add tar.xz support and unified installer scripts
- Add tar.xz archive support using Borg's compress package
- ArchiveXZ() and ArchiveWithFormat() for configurable compression
- Better compression ratio than gzip for release artifacts
- Consolidate 12 installer scripts into 2 unified scripts
- install.sh and install.bat with BunnyCDN edge variable support
- Subdomains: setup.core.help, ci.core.help, dev.core.help, etc.
- MODE and VARIANT transformed at edge based on subdomain
- Installers prefer tar.xz with automatic fallback to tar.gz
- Fixed CodeRabbit issues: HTTP status patterns, tar error handling,
verify_install params, VARIANT validation, CI PATH persistence
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* chore: add build and release config files
- .core/build.yaml - cross-platform build configuration
- .core/release.yaml - release workflow configuration
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* chore: move plans from docs/ to tasks/
Consolidate planning documents in tasks/plans/ directory.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix(install): address CodeRabbit review feedback
- Add curl timeout (--max-time) to prevent hanging on slow networks
- Rename TMPDIR to WORK_DIR to avoid clobbering system env var
- Add chmod +x to ensure binary has execute permissions
- Add error propagation after subroutine calls in batch file
- Remove System32 install attempt in CI mode (use consistent INSTALL_DIR)
- Fix HTTP status regex for HTTP/2 compatibility
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat(rag): add Go RAG implementation with Qdrant + Ollama
Add RAG (Retrieval Augmented Generation) tools for storing documentation
in Qdrant vector database and querying with semantic search. This replaces
the Python tools/rag implementation with a native Go solution.
New commands:
- core rag ingest [directory] - Ingest markdown files into Qdrant
- core rag query [question] - Query vector database with semantic search
- core rag collections - List and manage Qdrant collections
Features:
- Markdown chunking by sections and paragraphs with overlap
- UTF-8 safe text handling for international content
- Automatic category detection from file paths
- Multiple output formats: text, JSON, LLM context injection
- Environment variable support for host configuration
Dependencies:
- github.com/qdrant/go-client (gRPC client)
- github.com/ollama/ollama/api (embeddings API)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat(deploy): add pure-Go Ansible executor and Coolify API integration
Implement infrastructure deployment system with:
- pkg/ansible: Pure Go Ansible executor
- Playbook/inventory parsing (types.go, parser.go)
- Full execution engine with variable templating, loops, blocks,
conditionals, handlers, and fact gathering (executor.go)
- SSH client with key/password auth and privilege escalation (ssh.go)
- 35+ module implementations: shell, command, copy, template, file,
apt, service, systemd, user, group, git, docker_compose, etc. (modules.go)
- pkg/deploy/coolify: Coolify API client wrapping Python swagger client
- List/get servers, projects, applications, databases, services
- Generic Call() for any OpenAPI operation
- pkg/deploy/python: Embedded Python runtime for swagger client integration
- internal/cmd/deploy: CLI commands
- core deploy servers/projects/apps/databases/services/team
- core deploy call <operation> [params-json]
This enables Docker-free infrastructure deployment with Ansible-compatible
playbooks executed natively in Go.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix(deploy): address linter warnings and build errors
- Fix fmt.Sprintf format verb error in ssh.go (remove unused stat command)
- Fix errcheck warnings by explicitly ignoring best-effort operations
- Fix ineffassign warning in cmd_ansible.go
All golangci-lint checks now pass for deploy packages.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* style(deploy): fix gofmt formatting
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix(deploy): use known_hosts for SSH host key verification
Address CodeQL security alert by using the user's known_hosts file
for SSH host key verification when available. Falls back to accepting
any key only when known_hosts doesn't exist (common in containerized
or ephemeral environments).
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat(ai,security,ide): add agentic MVP, security jobs, and Core IDE desktop app
Wire up AI infrastructure with unified pkg/ai package (metrics JSONL,
RAG integration), move RAG under `core ai rag`, add `core ai metrics`
command, and enrich task context with Qdrant documentation.
Add `--target` flag to all security commands for external repo scanning,
`core security jobs` for distributing findings as GitHub Issues, and
consistent error logging across scan/deps/alerts/secrets commands.
Add Core IDE Wails v3 desktop app with Angular 20 frontend, MCP bridge
(loopback-only HTTP server), WebSocket hub, and Claude Code bridge.
Production-ready with Lethean CIC branding, macOS code signing support,
and security hardening (origin validation, body size limits, URL scheme
checks, memory leak prevention, XSS mitigation).
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix: address PR review comments from CodeRabbit, Copilot, and Gemini
Fixes across 25 files addressing 46+ review comments:
- pkg/ai/metrics.go: handle error from Close() on writable file handle
- pkg/ansible: restore loop vars after loop, restore become settings,
fix Upload with become=true and no password (use sudo -n), honour
SSH timeout config, use E() helper for contextual errors, quote git
refs in checkout commands
- pkg/rag: validate chunk config, guard negative-to-uint64 conversion,
use E() helper for errors, add context timeout to Ollama HTTP calls
- pkg/deploy/python: fix exec.ExitError type assertion (was os.PathError),
handle os.UserHomeDir() error
- pkg/build/buildcmd: use cmd.Context() instead of context.Background()
for proper Ctrl+C cancellation
- install.bat: add curl timeouts, CRLF line endings, use --connect-timeout
for archive downloads
- install.sh: use absolute path for version check in CI mode
- tools/rag: fix broken ingest.py function def, escape HTML in query.py,
pin qdrant-client version, add markdown code block languages
- internal/cmd/rag: add chunk size validation, env override handling
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix(build): make release dry-run by default and remove darwin/amd64 target
Replace --dry-run (default false) with --we-are-go-for-launch (default
false) so `core build release` is safe by default. Remove darwin/amd64
from default build targets (arm64 only for macOS). Fix cmd_project.go
to use command context instead of context.Background().
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-04 00:49:57 +00:00
"sdk.complete" : "SDK generation complete" ,
"release.short" : "Build, archive, and publish a release" ,
"release.long" : "Build all targets, create archives, generate checksums, and publish to configured destinations. Requires .core/release.yaml configuration." ,
"release.flag.go_for_launch" : "Actually publish to configured targets (default: dry-run only)" ,
"release.flag.version" : "Version to release (overrides config)" ,
"release.flag.draft" : "Create as draft release" ,
"release.flag.prerelease" : "Mark as pre-release" ,
"release.label.release" : "Release" ,
"release.building_and_publishing" : "Building and publishing release" ,
"release.dry_run_hint" : "(dry-run) no artifacts will be published" ,
"release.completed" : "Release completed" ,
"release.label.artifacts" : "Artifacts:" ,
"release.label.published" : "Published to:" ,
"release.error.no_config" : "No .core/release.yaml found" ,
"release.hint.create_config" : "Create .core/release.yaml to configure release settings"
2026-01-30 11:11:07 +00:00
} ,
"ci" : {
2026-01-30 14:24:23 +00:00
"short" : "Publish releases (dry-run by default)" ,
2026-02-01 07:39:49 +00:00
"long" : "Publish releases to GitHub with automatic changelog generation. Runs in dry-run mode by default for safety." ,
"flag.draft" : "Create as draft release" ,
"flag.prerelease" : "Mark as pre-release" ,
"flag.version" : "Version to release (e.g., v1.2.3)" ,
"flag.go_for_launch" : "Actually publish the release (disables dry-run)" ,
2026-01-30 11:11:07 +00:00
"dry_run_hint" : "(dry-run) use --we-are-go-for-launch to publish" ,
"go_for_launch" : "GO FOR LAUNCH" ,
2026-01-30 14:24:23 +00:00
"init.short" : "Initialize release configuration" ,
feat(i18n): complete en_GB translations and add completeness test
Fill all 568 missing translation keys in en_GB.json (765→1357 lines):
- 97 --help description keys (collect, ci, docs, dev, php, pkg, sdk, vm)
- 471 runtime keys (labels, errors, hints, progress, status messages)
- Add common.flag.follow, common.flag.tag, common.prompt.abort
Add completeness_test.go that scans all T() calls in source code and
verifies every cmd.*/common.* key exists using ModeStrict (panics on
missing). Catches translation gaps at test time instead of showing raw
keys in the CLI.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 20:50:55 +00:00
"init.long" : "Initialize release configuration for the current project. Creates a default release config file." ,
2026-01-30 14:24:23 +00:00
"changelog.short" : "Generate changelog" ,
feat(i18n): complete en_GB translations and add completeness test
Fill all 568 missing translation keys in en_GB.json (765→1357 lines):
- 97 --help description keys (collect, ci, docs, dev, php, pkg, sdk, vm)
- 471 runtime keys (labels, errors, hints, progress, status messages)
- Add common.flag.follow, common.flag.tag, common.prompt.abort
Add completeness_test.go that scans all T() calls in source code and
verifies every cmd.*/common.* key exists using ModeStrict (panics on
missing). Catches translation gaps at test time instead of showing raw
keys in the CLI.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 20:50:55 +00:00
"changelog.long" : "Generate a changelog from git history between two refs. Uses conventional commit messages to categorise changes." ,
"changelog.flag.from" : "Starting ref (tag or commit SHA)" ,
"changelog.flag.to" : "Ending ref (tag or commit SHA, default: HEAD)" ,
"version.short" : "Show or set version" ,
"version.long" : "Show the current project version or set a new one. Reads from and writes to the version file." ,
"changelog.generating" : "Generating changelog..." ,
"changelog.no_tags" : "No tags found in repository." ,
"error.no_publishers" : "No publish targets configured." ,
"init.already_initialized" : "Release configuration already exists." ,
"init.created_config" : "Created release configuration." ,
"init.edit_config" : "Edit .core/release.yaml to configure your release pipeline." ,
"init.initializing" : "Initialising release configuration..." ,
"init.next_steps" : "Next steps:" ,
"init.run_ci" : "Run 'core ci' to publish a release." ,
"label.artifacts" : "Artifacts:" ,
"label.ci" : "CI" ,
"label.published" : "Published:" ,
"publish_completed" : "Release published successfully." ,
"publishing" : "Publishing release..."
} ,
"collect" : {
"short" : "Data collection and research tools" ,
"long" : "Data collection tools for gathering information from forums, GitHub, academic papers, and market sources. Process and organise collected data." ,
"flag.dry_run" : "Show what would be collected without writing files" ,
"flag.output" : "Output directory for collected data" ,
"bitcointalk.short" : "Collect BitcoinTalk forum threads" ,
"bitcointalk.long" : "Scrape and archive a BitcoinTalk topic thread by ID or URL. Saves posts with metadata." ,
"bitcointalk.flag.pages" : "Number of pages to collect" ,
"dispatch.short" : "Dispatch collection events" ,
"dispatch.long" : "Dispatch and manage data collection events via webhook hooks." ,
"dispatch.hooks.short" : "Manage dispatch hooks" ,
"dispatch.hooks.list.short" : "List registered dispatch hooks" ,
"dispatch.hooks.register.short" : "Register a new dispatch hook" ,
"excavate.short" : "Deep-dig a project's history" ,
"excavate.long" : "Excavate a project's full history across forums, repos, and archives. Discovers related resources and builds a timeline." ,
"excavate.flag.resume" : "Resume a previously interrupted excavation" ,
"excavate.flag.scan_only" : "Scan for resources without downloading" ,
"github.short" : "Collect GitHub issues and PRs" ,
"github.long" : "Collect issues, pull requests, and metadata from a GitHub repository or organisation." ,
"github.flag.issues_only" : "Collect only issues" ,
"github.flag.org" : "Collect all repos in the organisation" ,
"github.flag.prs_only" : "Collect only pull requests" ,
"market.short" : "Collect cryptocurrency market data" ,
"market.long" : "Collect market data for a cryptocurrency including price, volume, and market cap from aggregator APIs." ,
"market.flag.from" : "Start date for historical data (YYYY-MM-DD)" ,
"market.flag.historical" : "Collect full historical data" ,
"papers.short" : "Collect academic papers" ,
"papers.long" : "Search for and collect academic papers from arxiv, IACR, and other sources. Downloads PDFs and extracts metadata." ,
"papers.flag.category" : "Paper category to filter by" ,
"papers.flag.query" : "Search query for finding papers" ,
"papers.flag.source" : "Source to search (arxiv, iacr, all)" ,
"process.short" : "Process collected raw data" ,
"process.long" : "Process previously collected raw data from a source directory. Normalises, deduplicates, and generates summaries."
2026-01-30 11:11:07 +00:00
} ,
feat: wire release command, add tar.xz support, unified installers (#277)
* feat(cli): wire release command and add installer scripts
- Wire up `core build release` subcommand (was orphaned)
- Wire up `core monitor` command (missing import in full variant)
- Add installer scripts for Unix (.sh) and Windows (.bat)
- setup: Interactive with variant selection
- ci: Minimal for CI/CD environments
- dev: Full development variant
- go/php/agent: Targeted development variants
- All scripts include security hardening:
- Secure temp directories (mktemp -d)
- Architecture validation
- Version validation after GitHub API call
- Proper cleanup on exit
- PowerShell PATH updates on Windows (avoids setx truncation)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat(build): add tar.xz support and unified installer scripts
- Add tar.xz archive support using Borg's compress package
- ArchiveXZ() and ArchiveWithFormat() for configurable compression
- Better compression ratio than gzip for release artifacts
- Consolidate 12 installer scripts into 2 unified scripts
- install.sh and install.bat with BunnyCDN edge variable support
- Subdomains: setup.core.help, ci.core.help, dev.core.help, etc.
- MODE and VARIANT transformed at edge based on subdomain
- Installers prefer tar.xz with automatic fallback to tar.gz
- Fixed CodeRabbit issues: HTTP status patterns, tar error handling,
verify_install params, VARIANT validation, CI PATH persistence
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* chore: add build and release config files
- .core/build.yaml - cross-platform build configuration
- .core/release.yaml - release workflow configuration
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* chore: move plans from docs/ to tasks/
Consolidate planning documents in tasks/plans/ directory.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix(install): address CodeRabbit review feedback
- Add curl timeout (--max-time) to prevent hanging on slow networks
- Rename TMPDIR to WORK_DIR to avoid clobbering system env var
- Add chmod +x to ensure binary has execute permissions
- Add error propagation after subroutine calls in batch file
- Remove System32 install attempt in CI mode (use consistent INSTALL_DIR)
- Fix HTTP status regex for HTTP/2 compatibility
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat(rag): add Go RAG implementation with Qdrant + Ollama
Add RAG (Retrieval Augmented Generation) tools for storing documentation
in Qdrant vector database and querying with semantic search. This replaces
the Python tools/rag implementation with a native Go solution.
New commands:
- core rag ingest [directory] - Ingest markdown files into Qdrant
- core rag query [question] - Query vector database with semantic search
- core rag collections - List and manage Qdrant collections
Features:
- Markdown chunking by sections and paragraphs with overlap
- UTF-8 safe text handling for international content
- Automatic category detection from file paths
- Multiple output formats: text, JSON, LLM context injection
- Environment variable support for host configuration
Dependencies:
- github.com/qdrant/go-client (gRPC client)
- github.com/ollama/ollama/api (embeddings API)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat(deploy): add pure-Go Ansible executor and Coolify API integration
Implement infrastructure deployment system with:
- pkg/ansible: Pure Go Ansible executor
- Playbook/inventory parsing (types.go, parser.go)
- Full execution engine with variable templating, loops, blocks,
conditionals, handlers, and fact gathering (executor.go)
- SSH client with key/password auth and privilege escalation (ssh.go)
- 35+ module implementations: shell, command, copy, template, file,
apt, service, systemd, user, group, git, docker_compose, etc. (modules.go)
- pkg/deploy/coolify: Coolify API client wrapping Python swagger client
- List/get servers, projects, applications, databases, services
- Generic Call() for any OpenAPI operation
- pkg/deploy/python: Embedded Python runtime for swagger client integration
- internal/cmd/deploy: CLI commands
- core deploy servers/projects/apps/databases/services/team
- core deploy call <operation> [params-json]
This enables Docker-free infrastructure deployment with Ansible-compatible
playbooks executed natively in Go.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix(deploy): address linter warnings and build errors
- Fix fmt.Sprintf format verb error in ssh.go (remove unused stat command)
- Fix errcheck warnings by explicitly ignoring best-effort operations
- Fix ineffassign warning in cmd_ansible.go
All golangci-lint checks now pass for deploy packages.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* style(deploy): fix gofmt formatting
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix(deploy): use known_hosts for SSH host key verification
Address CodeQL security alert by using the user's known_hosts file
for SSH host key verification when available. Falls back to accepting
any key only when known_hosts doesn't exist (common in containerized
or ephemeral environments).
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat(ai,security,ide): add agentic MVP, security jobs, and Core IDE desktop app
Wire up AI infrastructure with unified pkg/ai package (metrics JSONL,
RAG integration), move RAG under `core ai rag`, add `core ai metrics`
command, and enrich task context with Qdrant documentation.
Add `--target` flag to all security commands for external repo scanning,
`core security jobs` for distributing findings as GitHub Issues, and
consistent error logging across scan/deps/alerts/secrets commands.
Add Core IDE Wails v3 desktop app with Angular 20 frontend, MCP bridge
(loopback-only HTTP server), WebSocket hub, and Claude Code bridge.
Production-ready with Lethean CIC branding, macOS code signing support,
and security hardening (origin validation, body size limits, URL scheme
checks, memory leak prevention, XSS mitigation).
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix: address PR review comments from CodeRabbit, Copilot, and Gemini
Fixes across 25 files addressing 46+ review comments:
- pkg/ai/metrics.go: handle error from Close() on writable file handle
- pkg/ansible: restore loop vars after loop, restore become settings,
fix Upload with become=true and no password (use sudo -n), honour
SSH timeout config, use E() helper for contextual errors, quote git
refs in checkout commands
- pkg/rag: validate chunk config, guard negative-to-uint64 conversion,
use E() helper for errors, add context timeout to Ollama HTTP calls
- pkg/deploy/python: fix exec.ExitError type assertion (was os.PathError),
handle os.UserHomeDir() error
- pkg/build/buildcmd: use cmd.Context() instead of context.Background()
for proper Ctrl+C cancellation
- install.bat: add curl timeouts, CRLF line endings, use --connect-timeout
for archive downloads
- install.sh: use absolute path for version check in CI mode
- tools/rag: fix broken ingest.py function def, escape HTML in query.py,
pin qdrant-client version, add markdown code block languages
- internal/cmd/rag: add chunk size validation, env override handling
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix(build): make release dry-run by default and remove darwin/amd64 target
Replace --dry-run (default false) with --we-are-go-for-launch (default
false) so `core build release` is safe by default. Remove darwin/amd64
from default build targets (arm64 only for macOS). Fix cmd_project.go
to use command context instead of context.Background().
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-04 00:49:57 +00:00
"deploy" : {
"short" : "Infrastructure deployment via Coolify" ,
"long" : "Infrastructure deployment tools for managing Coolify servers, projects, applications, databases, and services."
} ,
2026-01-30 11:11:07 +00:00
"dev" : {
2026-01-30 14:24:23 +00:00
"short" : "Multi-repo development workflow" ,
2026-02-01 07:39:49 +00:00
"long" : "Multi-repo development workflow tools for managing federated monorepos. Provides health checks, commit assistance, push/pull operations, and CI status across all repositories." ,
"api.short" : "Start API development server" ,
"workflow.short" : "Manage GitHub Actions workflows" ,
"workflow.long" : "Manage GitHub Actions workflows across repositories. List, sync, and update workflow files." ,
"workflow.list.short" : "List workflows across repos" ,
feat(i18n): complete en_GB translations and add completeness test
Fill all 568 missing translation keys in en_GB.json (765→1357 lines):
- 97 --help description keys (collect, ci, docs, dev, php, pkg, sdk, vm)
- 471 runtime keys (labels, errors, hints, progress, status messages)
- Add common.flag.follow, common.flag.tag, common.prompt.abort
Add completeness_test.go that scans all T() calls in source code and
verifies every cmd.*/common.* key exists using ModeStrict (panics on
missing). Catches translation gaps at test time instead of showing raw
keys in the CLI.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 20:50:55 +00:00
"workflow.list.long" : "List GitHub Actions workflow files across all repositories in the workspace." ,
2026-02-01 07:39:49 +00:00
"workflow.sync.short" : "Sync workflow files across repos" ,
feat(i18n): complete en_GB translations and add completeness test
Fill all 568 missing translation keys in en_GB.json (765→1357 lines):
- 97 --help description keys (collect, ci, docs, dev, php, pkg, sdk, vm)
- 471 runtime keys (labels, errors, hints, progress, status messages)
- Add common.flag.follow, common.flag.tag, common.prompt.abort
Add completeness_test.go that scans all T() calls in source code and
verifies every cmd.*/common.* key exists using ModeStrict (panics on
missing). Catches translation gaps at test time instead of showing raw
keys in the CLI.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 20:50:55 +00:00
"workflow.sync.long" : "Sync a GitHub Actions workflow file to all repositories that match the pattern." ,
"workflow.sync.flag.dry_run" : "Show what would be synced without making changes" ,
2026-02-01 07:39:49 +00:00
"vm.boot.short" : "Boot development VM" ,
"vm.claude.short" : "Run Claude in development VM" ,
"vm.install.short" : "Install development VM" ,
"vm.serve.short" : "Start services in development VM" ,
"vm.shell.short" : "Open shell in development VM" ,
"vm.stop.short" : "Stop development VM" ,
"vm.test.short" : "Run tests in development VM" ,
"vm.update.short" : "Update development VM" ,
"vm.status.short" : "Show development VM status" ,
2026-01-30 11:11:07 +00:00
"no_changes" : "No uncommitted changes found." ,
"no_git_repos" : "No git repositories found." ,
2026-02-08 13:25:06 +00:00
"modified" : "{{.Count}} modified" ,
"staged" : "{{.Count}} staged" ,
"untracked" : "{{.Count}} untracked" ,
2026-01-30 14:24:23 +00:00
"confirm_claude_commit" : "Have Claude commit these repos?" ,
"health.short" : "Quick health check across all repos" ,
2026-02-01 03:55:01 +00:00
"health.long" : "Shows a summary of repository health across all repos in the workspace." ,
"health.flag.verbose" : "Show detailed breakdown" ,
"health.repos" : "repos" ,
"health.to_push" : "to push" ,
"health.to_pull" : "to pull" ,
"health.errors" : "errors" ,
"health.more" : "+{{.Count}} more" ,
"health.dirty_label" : "Dirty:" ,
"health.ahead_label" : "Ahead:" ,
"health.behind_label" : "Behind:" ,
"health.errors_label" : "Errors:" ,
"status.clean" : "clean" ,
2026-01-30 14:24:23 +00:00
"commit.short" : "Claude-assisted commits across repos" ,
"push.short" : "Push commits across all repos" ,
2026-02-08 13:25:06 +00:00
"push.long" : "Push commits to remote across all repos in the workspace." ,
"push.flag.force" : "Push without confirmation" ,
"push.all_up_to_date" : "All repos are up to date." ,
"push.confirm_push" : "Push {{.Commits}} commit(s) across {{.Repos}} repo(s)?" ,
"push.done_pushed" : "Pushed {{.Count}} repo(s)" ,
"push.pull_and_retry" : "Pull and retry push?" ,
2026-01-30 14:24:23 +00:00
"push.diverged" : "branch has diverged from remote" ,
"push.diverged_help" : "Some repos have diverged (local and remote have different commits)." ,
"push.uncommitted_changes_commit" : "You have uncommitted changes. Commit with Claude first?" ,
"pull.short" : "Pull updates across all repos" ,
"work.short" : "Multi-repo git operations" ,
"work.use_commit_flag" : "Use --commit to have Claude create commits" ,
"issues.short" : "List open issues across all repos" ,
"reviews.short" : "List PRs needing review across all repos" ,
"ci.short" : "Check CI status across all repos" ,
"impact.short" : "Show impact of changing a repo" ,
"impact.requires_registry" : "impact analysis requires repos.yaml with dependency information" ,
"sync.short" : "Synchronizes public service APIs with internal implementations" ,
"vm.short" : "Dev environment commands" ,
"vm.not_installed" : "dev environment not installed (run 'core dev install' first)" ,
2026-02-01 06:11:24 +00:00
"vm.not_running" : "Dev environment is not running" ,
"file_sync.short" : "Sync files across repos (agent-safe)" ,
"file_sync.long" : "Safely sync files or directories across multiple repositories with automatic pull/commit/push. Designed for AI agents to avoid common git pitfalls." ,
"file_sync.flag.to" : "Target repos pattern (e.g., packages/core-*)" ,
"file_sync.flag.message" : "Commit message for the sync" ,
"file_sync.flag.co_author" : "Co-author for commit (e.g., 'Name <email>')" ,
"file_sync.flag.dry_run" : "Show what would be done without making changes" ,
"file_sync.flag.push" : "Push after committing" ,
"file_sync.source" : "Source" ,
"file_sync.targets" : "Targets" ,
"file_sync.summary" : "Summary" ,
"file_sync.no_changes" : "no changes" ,
"file_sync.dry_run_mode" : "(dry run)" ,
"file_sync.error.source_not_found" : "Source not found: {{.Path}}" ,
"file_sync.error.no_targets" : "No target repos matched the pattern" ,
"file_sync.error.no_registry" : "No repos.yaml found" ,
"apply.short" : "Run command or script across repos (agent-safe)" ,
"apply.long" : "Run a command or script across multiple repositories with optional commit and push. Designed for AI agents to safely apply changes at scale." ,
"apply.flag.command" : "Shell command to run in each repo" ,
"apply.flag.script" : "Script file to run in each repo" ,
"apply.flag.repos" : "Comma-separated list of repo names (default: all)" ,
"apply.flag.commit" : "Commit changes after running" ,
"apply.flag.message" : "Commit message (required with --commit)" ,
"apply.flag.co_author" : "Co-author for commit" ,
"apply.flag.dry_run" : "Show what would be done without making changes" ,
"apply.flag.push" : "Push after committing" ,
"apply.flag.continue" : "Continue on error instead of stopping" ,
"apply.action" : "Action" ,
"apply.targets" : "Targets" ,
"apply.summary" : "Summary" ,
"apply.no_changes" : "no changes" ,
"apply.dry_run_mode" : "(dry run)" ,
"apply.error.no_command" : "Either --command or --script is required" ,
"apply.error.both_command_script" : "Cannot use both --command and --script" ,
"apply.error.commit_needs_message" : "--commit requires --message" ,
"apply.error.script_not_found" : "Script not found: {{.Path}}" ,
"apply.error.no_repos" : "No repos found" ,
"apply.error.no_registry" : "No repos.yaml found" ,
feat(i18n): complete en_GB translations and add completeness test
Fill all 568 missing translation keys in en_GB.json (765→1357 lines):
- 97 --help description keys (collect, ci, docs, dev, php, pkg, sdk, vm)
- 471 runtime keys (labels, errors, hints, progress, status messages)
- Add common.flag.follow, common.flag.tag, common.prompt.abort
Add completeness_test.go that scans all T() calls in source code and
verifies every cmd.*/common.* key exists using ModeStrict (panics on
missing). Catches translation gaps at test time instead of showing raw
keys in the CLI.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 20:50:55 +00:00
"apply.error.command_failed" : "Command failed (use --continue to skip failures)" ,
"apply.cancelled" : "Apply cancelled." ,
"apply.confirm" : "Apply to {{.Count}} repo(s)?" ,
"apply.flag.yes" : "Skip confirmation prompt" ,
"apply.warning" : "This will modify files in the target repos." ,
"ci.failing" : "Failing" ,
"ci.flag.branch" : "Branch to check (default: main)" ,
"ci.flag.failed" : "Show only failing repos" ,
"ci.long" : "Check CI/CD pipeline status across all repos in the workspace. Shows pass/fail state for the latest run." ,
"ci.no_ci" : "No CI configured" ,
"ci.passing" : "Passing" ,
"ci.repos_checked" : "Repos checked" ,
"commit.committing" : "Committing {{.Repo}}..." ,
"commit.flag.all" : "Commit all repos with changes" ,
"commit.long" : "Create Claude-assisted commits across all repos with uncommitted changes. Generates descriptive commit messages." ,
"committed" : "Committed" ,
"committing" : "Committing..." ,
"done_succeeded" : "{{.Count}} succeeded" ,
"impact.analysis_for" : "Impact analysis for {{.Repo}}" ,
"impact.changes_affect" : "Changes to this repo affect:" ,
"impact.direct_dependents" : "Direct dependents:" ,
"impact.long" : "Show which repos are affected by changes to a given repo. Uses dependency information from repos.yaml." ,
"impact.no_dependents" : "No dependents found." ,
"impact.transitive_dependents" : "Transitive dependents:" ,
"issues.flag.assignee" : "Filter by assignee" ,
"issues.flag.limit" : "Maximum issues per repo" ,
"issues.long" : "List open issues across all repos in the workspace. Shows issue number, title, labels, and assignee." ,
"issues.no_issues" : "No open issues found." ,
"issues.open_issues" : "Open issues" ,
"pull.all_up_to_date" : "All repos are up to date." ,
"pull.commits_behind" : "{{.Count}} commit(s) behind" ,
"pull.done_pulled" : "Pulled {{.Count}} repo(s)" ,
"pull.flag.all" : "Pull all repos including clean ones" ,
"pull.long" : "Pull the latest changes from remote across all repos in the workspace." ,
"pull.pulling" : "Pulling..." ,
"pull.pulling_repos" : "Pulling {{.Count}} repo(s)..." ,
"pull.repos_behind" : "{{.Count}} repo(s) behind remote" ,
"push.confirm" : "Push {{.Count}} repo(s)?" ,
"repos_with_changes" : "{{.Count}} repo(s) with changes" ,
"reviews.approved" : "Approved" ,
"reviews.changes_requested" : "Changes requested" ,
"reviews.draft" : "Draft" ,
"reviews.flag.all" : "Show all PRs, not just yours" ,
"reviews.flag.author" : "Filter by PR author" ,
"reviews.long" : "List pull requests needing review across all repos in the workspace." ,
"reviews.no_prs" : "No open PRs found." ,
"reviews.open_prs" : "Open PRs" ,
"reviews.status_approved" : "Approved" ,
"reviews.status_changes" : "Changes Requested" ,
"reviews.status_pending" : "Review Pending" ,
"scanning_label" : "Scanning..." ,
"sync.long" : "Synchronise public service APIs with their internal implementations. Copies interface definitions to keep packages in sync." ,
"vm.already_installed" : "Dev environment already installed." ,
"vm.boot.flag.cpus" : "Number of CPUs to allocate" ,
"vm.boot.flag.fresh" : "Boot fresh (discard existing state)" ,
"vm.boot.flag.memory" : "Memory in MB to allocate" ,
"vm.boot.long" : "Boot the development VM. Creates and starts the container if not already running." ,
"vm.booting" : "Booting dev environment..." ,
"vm.check_updates" : "Checking for updates..." ,
"vm.claude.flag.auth" : "Authentication token for Claude" ,
"vm.claude.flag.model" : "Claude model to use" ,
"vm.claude.flag.no_auth" : "Run without authentication" ,
"vm.claude.long" : "Run Claude Code inside the development VM with the current project mounted." ,
"vm.config_label" : "Config:" ,
"vm.config_value" : "{{.Key}}: {{.Value}}" ,
"vm.connect_with" : "Connect with: {{.Command}}" ,
"vm.container_label" : "Container:" ,
"vm.cpus_label" : "CPUs:" ,
"vm.downloading" : "Downloading dev environment..." ,
"vm.downloading_update" : "Downloading update..." ,
"vm.install.long" : "Install the development VM image. Downloads and sets up the container environment." ,
"vm.install_with" : "Install with: {{.Command}}" ,
"vm.installed_in" : "Installed in {{.Path}}" ,
"vm.installed_label" : "Installed:" ,
"vm.installed_no" : "No" ,
"vm.installed_yes" : "Yes" ,
"vm.latest_label" : "Latest:" ,
"vm.memory_label" : "Memory:" ,
"vm.progress_label" : "Progress:" ,
"vm.run_to_update" : "Run 'core dev update' to update." ,
"vm.running" : "Running" ,
"vm.serve.flag.path" : "Path to serve" ,
"vm.serve.flag.port" : "Port to expose" ,
"vm.serve.long" : "Start development services inside the VM (web server, database, queue worker, etc.)." ,
"vm.shell.flag.console" : "Open a Tinker console instead of shell" ,
"vm.shell.long" : "Open an interactive shell session in the development VM." ,
"vm.ssh_port" : "SSH port:" ,
"vm.start_with" : "Start with: {{.Command}}" ,
"vm.status.long" : "Show the status of the development VM including resource usage and connectivity." ,
"vm.status_title" : "Dev Environment Status" ,
"vm.stop.long" : "Stop the running development VM container." ,
"vm.stopping" : "Stopping dev environment..." ,
"vm.stopping_current" : "Stopping current dev environment..." ,
"vm.test.flag.name" : "Test name pattern to match" ,
"vm.test.long" : "Run the project test suite inside the development VM." ,
"vm.up_to_date" : "Already up to date." ,
"vm.update.flag.apply" : "Apply the update immediately" ,
"vm.update.long" : "Check for and apply updates to the development VM image." ,
"vm.update_available" : "Update available: {{.Version}}" ,
"vm.updated_in" : "Updated in {{.Path}}" ,
"vm.uptime_label" : "Uptime:" ,
"work.all_up_to_date" : "All repos are up to date." ,
"work.error_prefix" : "Error:" ,
"work.flag.commit" : "Commit changes with Claude" ,
"work.flag.status" : "Show status only" ,
"work.long" : "Multi-repo git operations. Shows status across all repos and optionally commits with Claude assistance." ,
"work.table_ahead" : "Ahead" ,
"work.table_modified" : "Modified" ,
"work.table_staged" : "Staged" ,
"work.table_untracked" : "Untracked" ,
"workflow.dry_run_mode" : "(dry run)" ,
"workflow.failed_count" : "{{.Count}} failed" ,
"workflow.header.repo" : "Repository" ,
"workflow.no_workflows" : "No workflows found." ,
"workflow.read_template_error" : "Failed to read workflow template." ,
"workflow.run_without_dry_run" : "Run without --dry-run to apply changes." ,
"workflow.skipped_count" : "{{.Count}} skipped" ,
"workflow.synced" : "Synced" ,
"workflow.synced_count" : "{{.Count}} synced" ,
"workflow.template_not_found" : "Workflow template not found." ,
"workflow.up_to_date" : "Up to date" ,
"workflow.would_sync" : "Would sync" ,
"workflow.would_sync_count" : "{{.Count}} would sync"
2026-01-30 11:11:07 +00:00
} ,
"docs" : {
"short" : "Documentation management" ,
2026-02-01 07:39:49 +00:00
"long" : "Documentation management tools for listing and syncing documentation across repositories." ,
2026-01-30 14:24:23 +00:00
"list.short" : "List documentation across repos" ,
feat(i18n): complete en_GB translations and add completeness test
Fill all 568 missing translation keys in en_GB.json (765→1357 lines):
- 97 --help description keys (collect, ci, docs, dev, php, pkg, sdk, vm)
- 471 runtime keys (labels, errors, hints, progress, status messages)
- Add common.flag.follow, common.flag.tag, common.prompt.abort
Add completeness_test.go that scans all T() calls in source code and
verifies every cmd.*/common.* key exists using ModeStrict (panics on
missing). Catches translation gaps at test time instead of showing raw
keys in the CLI.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 20:50:55 +00:00
"list.long" : "List documentation files across all repositories in the workspace registry." ,
"sync.short" : "Sync documentation to core-php/docs/packages/" ,
"sync.long" : "Sync documentation files from each package into the core-php docs directory. Copies README and doc files into a unified documentation tree." ,
"sync.flag.dry_run" : "Show what would be synced without copying files" ,
"sync.flag.output" : "Output directory for synced documentation" ,
"list.coverage_summary" : "Documentation coverage: {{.Percent}}%" ,
"list.header.changelog" : "Changelog" ,
"list.header.claude" : "CLAUDE.md" ,
"list.header.docs" : "Docs" ,
"list.header.readme" : "README" ,
"sync.confirm" : "Sync documentation from {{.Count}} repo(s)?" ,
"sync.dry_run_notice" : "(dry run) no files will be written" ,
"sync.files_count" : "{{.Count}} file(s)" ,
"sync.found_label" : "Found:" ,
"sync.no_docs_found" : "No documentation found." ,
"sync.repos_with_docs" : "{{.Count}} repo(s) with documentation" ,
"sync.synced_packages" : "Synced {{.Count}} package(s)" ,
"sync.total_summary" : "Total: {{.Count}} file(s) synced"
2026-01-30 11:11:07 +00:00
} ,
"doctor" : {
"short" : "Check development environment" ,
2026-02-01 07:39:49 +00:00
"long" : "Check development environment for required tools and configuration. Verifies git, gh CLI, language runtimes, and SSH setup." ,
"verbose_flag" : "Show detailed check results" ,
2026-01-30 14:24:23 +00:00
"ready" : "Doctor: Environment ready" ,
"no_repos_yaml" : "No repos.yaml found (run from workspace directory)" ,
"install_missing" : "Install missing tools:" ,
"install_macos" : "brew install git gh php composer node pnpm docker" ,
feat(i18n): complete en_GB translations and add completeness test
Fill all 568 missing translation keys in en_GB.json (765→1357 lines):
- 97 --help description keys (collect, ci, docs, dev, php, pkg, sdk, vm)
- 471 runtime keys (labels, errors, hints, progress, status messages)
- Add common.flag.follow, common.flag.tag, common.prompt.abort
Add completeness_test.go that scans all T() calls in source code and
verifies every cmd.*/common.* key exists using ModeStrict (panics on
missing). Catches translation gaps at test time instead of showing raw
keys in the CLI.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 20:50:55 +00:00
"ssh_missing" : "SSH key missing - run: ssh-keygen && gh ssh-key add" ,
"check.claude.description" : "Claude Code CLI for AI-assisted development" ,
"check.claude.name" : "Claude Code" ,
"check.composer.description" : "PHP dependency manager" ,
"check.composer.name" : "Composer" ,
"check.docker.description" : "Container runtime" ,
"check.docker.name" : "Docker" ,
"check.gh.description" : "GitHub CLI for repo management" ,
"check.gh.name" : "GitHub CLI" ,
"check.git.description" : "Version control system" ,
"check.git.name" : "Git" ,
"check.node.description" : "Node.js runtime for frontend tooling" ,
"check.node.name" : "Node.js" ,
"check.php.description" : "PHP runtime" ,
"check.php.name" : "PHP" ,
"check.pnpm.description" : "Fast Node.js package manager" ,
"check.pnpm.name" : "pnpm" ,
"cli_auth" : "CLI authenticated" ,
"cli_auth_missing" : "CLI not authenticated" ,
"github" : "GitHub" ,
"install_linux_gh" : "sudo apt install gh" ,
"install_linux_git" : "sudo apt install git" ,
"install_linux_header" : "Install on Linux:" ,
"install_linux_node" : "sudo apt install nodejs npm" ,
"install_linux_php" : "sudo apt install php php-cli" ,
"install_linux_pnpm" : "npm install -g pnpm" ,
"install_macos_cask" : "brew install --cask" ,
"install_other" : "See installation docs" ,
"issues" : "{{.Count}} issue(s) found" ,
"issues_error" : "{{.Count}} error(s)" ,
"optional" : "Optional" ,
"repos_cloned" : "{{.Count}} repo(s) cloned" ,
"repos_yaml_found" : "repos.yaml found" ,
"required" : "Required" ,
"ssh_found" : "SSH key found" ,
"workspace" : "Workspace"
2026-01-30 11:11:07 +00:00
} ,
feat: git command, build improvements, and go fmt git-aware (#74)
* feat(go): make go fmt git-aware by default
- By default, only check changed Go files (modified, staged, untracked)
- Add --all flag to check all files (previous behaviour)
- Reduces noise when running fmt on large codebases
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat(build): minimal output by default, add missing i18n
- Default output now shows single line: "Success Built N artifacts (dir)"
- Add --verbose/-v flag to show full detailed output
- Add all missing i18n translations for build commands
- Errors still show failure reason in minimal mode
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat: add root-level `core git` command
- Create pkg/gitcmd with git workflow commands as root menu
- Export command builders from pkg/dev (AddCommitCommand, etc.)
- Commands available under both `core git` and `core dev` for compatibility
- Git commands: health, commit, push, pull, work, sync, apply
- GitHub orchestration stays in dev: issues, reviews, ci, impact
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat(qa): add docblock coverage checking
Implement docblock/docstring coverage analysis for Go code:
- New `core qa docblock` command to check coverage
- Shows compact file:line list when under threshold
- Integrate with `core go qa` as a default check
- Add --docblock-threshold flag (default 80%)
The checker uses Go AST parsing to find exported symbols
(functions, types, consts, vars) without documentation.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix: address CodeRabbit review feedback
- Fix doc comment: "status" → "health" in gitcmd package
- Implement --check flag for `core go fmt` (exits non-zero if files need formatting)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* docs: add docstrings for 100% coverage
Add documentation comments to all exported symbols:
- pkg/build: ProjectType constants
- pkg/cli: LogLevel, RenderStyle, TableStyle
- pkg/framework: ServiceFor, MustServiceFor, Core.Core
- pkg/git: GitError.Error, GitError.Unwrap
- pkg/i18n: Handler Match/Handle methods
- pkg/log: Level constants
- pkg/mcp: Tool input/output types
- pkg/php: Service constants, QA types, service methods
- pkg/process: ServiceError.Error
- pkg/repos: RepoType constants
- pkg/setup: ChangeType, ChangeCategory constants
- pkg/workspace: AddWorkspaceCommands
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* chore: standardize line endings to LF
Add .gitattributes to enforce LF line endings for all text files.
Normalize all existing files to use Unix-style line endings.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix: address CodeRabbit review feedback
- cmd_format.go: validate --check/--fix mutual exclusivity, capture stderr
- cmd_docblock.go: return error instead of os.Exit(1) for proper error handling
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix: address CodeRabbit review feedback (round 2)
- linuxkit.go: propagate state update errors, handle cmd.Wait() errors in waitForExit
- mcp.go: guard against empty old_string in editDiff to prevent runaway edits
- cmd_docblock.go: log parse errors instead of silently skipping
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-01 10:48:44 +00:00
"git" : {
"short" : "Git workflow commands" ,
"long" : "Git workflow commands for managing repositories. Includes status, commit, push, pull operations and safe multi-repo commands for AI agents."
} ,
2026-01-30 11:11:07 +00:00
"go" : {
"short" : "Go development tools" ,
2026-02-01 07:39:49 +00:00
"long" : "Go development tools including testing, formatting, linting, and module management." ,
2026-01-30 14:24:23 +00:00
"test.short" : "Run Go tests" ,
"cov.short" : "Run tests with coverage report" ,
"fmt.short" : "Format Go code" ,
feat: git command, build improvements, and go fmt git-aware (#74)
* feat(go): make go fmt git-aware by default
- By default, only check changed Go files (modified, staged, untracked)
- Add --all flag to check all files (previous behaviour)
- Reduces noise when running fmt on large codebases
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat(build): minimal output by default, add missing i18n
- Default output now shows single line: "Success Built N artifacts (dir)"
- Add --verbose/-v flag to show full detailed output
- Add all missing i18n translations for build commands
- Errors still show failure reason in minimal mode
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat: add root-level `core git` command
- Create pkg/gitcmd with git workflow commands as root menu
- Export command builders from pkg/dev (AddCommitCommand, etc.)
- Commands available under both `core git` and `core dev` for compatibility
- Git commands: health, commit, push, pull, work, sync, apply
- GitHub orchestration stays in dev: issues, reviews, ci, impact
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat(qa): add docblock coverage checking
Implement docblock/docstring coverage analysis for Go code:
- New `core qa docblock` command to check coverage
- Shows compact file:line list when under threshold
- Integrate with `core go qa` as a default check
- Add --docblock-threshold flag (default 80%)
The checker uses Go AST parsing to find exported symbols
(functions, types, consts, vars) without documentation.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix: address CodeRabbit review feedback
- Fix doc comment: "status" → "health" in gitcmd package
- Implement --check flag for `core go fmt` (exits non-zero if files need formatting)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* docs: add docstrings for 100% coverage
Add documentation comments to all exported symbols:
- pkg/build: ProjectType constants
- pkg/cli: LogLevel, RenderStyle, TableStyle
- pkg/framework: ServiceFor, MustServiceFor, Core.Core
- pkg/git: GitError.Error, GitError.Unwrap
- pkg/i18n: Handler Match/Handle methods
- pkg/log: Level constants
- pkg/mcp: Tool input/output types
- pkg/php: Service constants, QA types, service methods
- pkg/process: ServiceError.Error
- pkg/repos: RepoType constants
- pkg/setup: ChangeType, ChangeCategory constants
- pkg/workspace: AddWorkspaceCommands
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* chore: standardize line endings to LF
Add .gitattributes to enforce LF line endings for all text files.
Normalize all existing files to use Unix-style line endings.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix: address CodeRabbit review feedback
- cmd_format.go: validate --check/--fix mutual exclusivity, capture stderr
- cmd_docblock.go: return error instead of os.Exit(1) for proper error handling
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix: address CodeRabbit review feedback (round 2)
- linuxkit.go: propagate state update errors, handle cmd.Wait() errors in waitForExit
- mcp.go: guard against empty old_string in editDiff to prevent runaway edits
- cmd_docblock.go: log parse errors instead of silently skipping
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-01 10:48:44 +00:00
"fmt.no_changes" : "No changed Go files to format." ,
"fmt.flag.check" : "Check if formatted (exit 1 if not)" ,
"fmt.flag.all" : "Check all files, not just changed ones" ,
2026-01-30 14:24:23 +00:00
"lint.short" : "Run golangci-lint" ,
feat: git command, build improvements, and go fmt git-aware (#74)
* feat(go): make go fmt git-aware by default
- By default, only check changed Go files (modified, staged, untracked)
- Add --all flag to check all files (previous behaviour)
- Reduces noise when running fmt on large codebases
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat(build): minimal output by default, add missing i18n
- Default output now shows single line: "Success Built N artifacts (dir)"
- Add --verbose/-v flag to show full detailed output
- Add all missing i18n translations for build commands
- Errors still show failure reason in minimal mode
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat: add root-level `core git` command
- Create pkg/gitcmd with git workflow commands as root menu
- Export command builders from pkg/dev (AddCommitCommand, etc.)
- Commands available under both `core git` and `core dev` for compatibility
- Git commands: health, commit, push, pull, work, sync, apply
- GitHub orchestration stays in dev: issues, reviews, ci, impact
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat(qa): add docblock coverage checking
Implement docblock/docstring coverage analysis for Go code:
- New `core qa docblock` command to check coverage
- Shows compact file:line list when under threshold
- Integrate with `core go qa` as a default check
- Add --docblock-threshold flag (default 80%)
The checker uses Go AST parsing to find exported symbols
(functions, types, consts, vars) without documentation.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix: address CodeRabbit review feedback
- Fix doc comment: "status" → "health" in gitcmd package
- Implement --check flag for `core go fmt` (exits non-zero if files need formatting)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* docs: add docstrings for 100% coverage
Add documentation comments to all exported symbols:
- pkg/build: ProjectType constants
- pkg/cli: LogLevel, RenderStyle, TableStyle
- pkg/framework: ServiceFor, MustServiceFor, Core.Core
- pkg/git: GitError.Error, GitError.Unwrap
- pkg/i18n: Handler Match/Handle methods
- pkg/log: Level constants
- pkg/mcp: Tool input/output types
- pkg/php: Service constants, QA types, service methods
- pkg/process: ServiceError.Error
- pkg/repos: RepoType constants
- pkg/setup: ChangeType, ChangeCategory constants
- pkg/workspace: AddWorkspaceCommands
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* chore: standardize line endings to LF
Add .gitattributes to enforce LF line endings for all text files.
Normalize all existing files to use Unix-style line endings.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix: address CodeRabbit review feedback
- cmd_format.go: validate --check/--fix mutual exclusivity, capture stderr
- cmd_docblock.go: return error instead of os.Exit(1) for proper error handling
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix: address CodeRabbit review feedback (round 2)
- linuxkit.go: propagate state update errors, handle cmd.Wait() errors in waitForExit
- mcp.go: guard against empty old_string in editDiff to prevent runaway edits
- cmd_docblock.go: log parse errors instead of silently skipping
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-01 10:48:44 +00:00
"lint.no_changes" : "No changed Go files to lint." ,
"lint.flag.all" : "Lint all files, not just changed ones" ,
2026-01-30 14:24:23 +00:00
"install.short" : "Install Go binary" ,
"mod.short" : "Module management" ,
2026-02-01 07:39:49 +00:00
"work.short" : "Workspace management" ,
"qa.short" : "Run QA checks (fmt, lint, test)"
2026-01-30 11:11:07 +00:00
} ,
"php" : {
"short" : "Laravel/PHP development tools" ,
feat(i18n): complete en_GB translations and add completeness test
Fill all 568 missing translation keys in en_GB.json (765→1357 lines):
- 97 --help description keys (collect, ci, docs, dev, php, pkg, sdk, vm)
- 471 runtime keys (labels, errors, hints, progress, status messages)
- Add common.flag.follow, common.flag.tag, common.prompt.abort
Add completeness_test.go that scans all T() calls in source code and
verifies every cmd.*/common.* key exists using ModeStrict (panics on
missing). Catches translation gaps at test time instead of showing raw
keys in the CLI.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 20:50:55 +00:00
"long" : "Laravel and PHP development tools including testing, formatting, static analysis, security scanning, and deployment." ,
2026-01-30 14:24:23 +00:00
"dev.short" : "Start Laravel development environment" ,
feat(i18n): complete en_GB translations and add completeness test
Fill all 568 missing translation keys in en_GB.json (765→1357 lines):
- 97 --help description keys (collect, ci, docs, dev, php, pkg, sdk, vm)
- 471 runtime keys (labels, errors, hints, progress, status messages)
- Add common.flag.follow, common.flag.tag, common.prompt.abort
Add completeness_test.go that scans all T() calls in source code and
verifies every cmd.*/common.* key exists using ModeStrict (panics on
missing). Catches translation gaps at test time instead of showing raw
keys in the CLI.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 20:50:55 +00:00
"dev.long" : "Start a full Laravel development environment with Vite, Horizon, Redis, and Reverb. Services can be individually disabled with flags." ,
"dev.flag.domain" : "Custom domain for the development server" ,
"dev.flag.https" : "Enable HTTPS with mkcert certificates" ,
"dev.flag.no_horizon" : "Skip starting Laravel Horizon" ,
"dev.flag.no_redis" : "Skip starting Redis" ,
"dev.flag.no_reverb" : "Skip starting Laravel Reverb" ,
"dev.flag.no_vite" : "Skip starting Vite dev server" ,
"dev.flag.port" : "Port for the development server" ,
2026-01-30 14:24:23 +00:00
"dev.press_ctrl_c" : "Press Ctrl+C to stop all services" ,
"test.short" : "Run PHP tests (PHPUnit/Pest)" ,
2026-02-01 06:32:35 +00:00
"test.flag.parallel" : "Run tests in parallel" ,
"test.flag.coverage" : "Generate code coverage report" ,
"test.flag.filter" : "Filter tests by name pattern" ,
"test.flag.group" : "Run only tests in specified group" ,
"test.flag.junit" : "Output results in JUnit XML format" ,
2026-01-30 14:24:23 +00:00
"fmt.short" : "Format PHP code with Laravel Pint" ,
2026-02-01 06:32:35 +00:00
"fmt.flag.fix" : "Apply formatting fixes" ,
2026-01-30 14:24:23 +00:00
"analyse.short" : "Run PHPStan static analysis" ,
2026-02-01 06:32:35 +00:00
"analyse.flag.level" : "PHPStan analysis level (0-9)" ,
"analyse.flag.memory" : "Memory limit (e.g., 2G)" ,
2026-01-30 14:24:23 +00:00
"audit.short" : "Security audit for dependencies" ,
"psalm.short" : "Run Psalm static analysis" ,
2026-02-01 06:32:35 +00:00
"psalm.flag.level" : "Psalm error level (1=strictest, 8=lenient)" ,
"psalm.flag.baseline" : "Generate/update baseline file" ,
"psalm.flag.show_info" : "Show info-level issues" ,
2026-01-30 14:24:23 +00:00
"rector.short" : "Automated code refactoring" ,
2026-02-01 06:32:35 +00:00
"rector.flag.fix" : "Apply refactoring changes" ,
"rector.flag.diff" : "Show detailed diff of changes" ,
"rector.flag.clear_cache" : "Clear cache before running" ,
2026-01-30 14:24:23 +00:00
"infection.short" : "Mutation testing for test quality" ,
2026-02-01 06:32:35 +00:00
"infection.flag.min_msi" : "Minimum mutation score indicator (0-100)" ,
"infection.flag.min_covered_msi" : "Minimum covered mutation score (0-100)" ,
"infection.flag.threads" : "Number of parallel threads" ,
"infection.flag.filter" : "Filter files by pattern" ,
"infection.flag.only_covered" : "Only mutate covered code" ,
2026-01-30 14:24:23 +00:00
"security.short" : "Security vulnerability scanning" ,
2026-02-01 06:32:35 +00:00
"security.flag.severity" : "Minimum severity (critical, high, medium, low)" ,
"security.flag.sarif" : "Output as SARIF for GitHub Security tab" ,
"security.flag.url" : "URL to check HTTP security headers" ,
2026-01-30 14:24:23 +00:00
"qa.short" : "Run full QA pipeline" ,
2026-02-01 06:32:35 +00:00
"qa.flag.quick" : "Run quick checks only (audit, fmt, stan)" ,
"qa.flag.full" : "Run all stages including slow checks" ,
2026-01-30 14:24:23 +00:00
"build.short" : "Build Docker or LinuxKit image" ,
feat(i18n): complete en_GB translations and add completeness test
Fill all 568 missing translation keys in en_GB.json (765→1357 lines):
- 97 --help description keys (collect, ci, docs, dev, php, pkg, sdk, vm)
- 471 runtime keys (labels, errors, hints, progress, status messages)
- Add common.flag.follow, common.flag.tag, common.prompt.abort
Add completeness_test.go that scans all T() calls in source code and
verifies every cmd.*/common.* key exists using ModeStrict (panics on
missing). Catches translation gaps at test time instead of showing raw
keys in the CLI.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 20:50:55 +00:00
"build.long" : "Build a Docker or LinuxKit image for the PHP application. Supports custom Dockerfiles, multi-platform builds, and LinuxKit templates." ,
"build.flag.dockerfile" : "Path to custom Dockerfile" ,
"build.flag.format" : "Build format (docker, linuxkit)" ,
"build.flag.name" : "Image name" ,
"build.flag.no_cache" : "Build without using cache" ,
"build.flag.output" : "Output directory for build artifacts" ,
"build.flag.platform" : "Target platform (e.g., linux/amd64)" ,
"build.flag.template" : "LinuxKit template to use" ,
"build.flag.type" : "Build type override" ,
2026-01-30 14:24:23 +00:00
"deploy.short" : "Deploy to Coolify" ,
feat: wire release command, add tar.xz support, unified installers (#277)
* feat(cli): wire release command and add installer scripts
- Wire up `core build release` subcommand (was orphaned)
- Wire up `core monitor` command (missing import in full variant)
- Add installer scripts for Unix (.sh) and Windows (.bat)
- setup: Interactive with variant selection
- ci: Minimal for CI/CD environments
- dev: Full development variant
- go/php/agent: Targeted development variants
- All scripts include security hardening:
- Secure temp directories (mktemp -d)
- Architecture validation
- Version validation after GitHub API call
- Proper cleanup on exit
- PowerShell PATH updates on Windows (avoids setx truncation)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat(build): add tar.xz support and unified installer scripts
- Add tar.xz archive support using Borg's compress package
- ArchiveXZ() and ArchiveWithFormat() for configurable compression
- Better compression ratio than gzip for release artifacts
- Consolidate 12 installer scripts into 2 unified scripts
- install.sh and install.bat with BunnyCDN edge variable support
- Subdomains: setup.core.help, ci.core.help, dev.core.help, etc.
- MODE and VARIANT transformed at edge based on subdomain
- Installers prefer tar.xz with automatic fallback to tar.gz
- Fixed CodeRabbit issues: HTTP status patterns, tar error handling,
verify_install params, VARIANT validation, CI PATH persistence
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* chore: add build and release config files
- .core/build.yaml - cross-platform build configuration
- .core/release.yaml - release workflow configuration
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* chore: move plans from docs/ to tasks/
Consolidate planning documents in tasks/plans/ directory.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix(install): address CodeRabbit review feedback
- Add curl timeout (--max-time) to prevent hanging on slow networks
- Rename TMPDIR to WORK_DIR to avoid clobbering system env var
- Add chmod +x to ensure binary has execute permissions
- Add error propagation after subroutine calls in batch file
- Remove System32 install attempt in CI mode (use consistent INSTALL_DIR)
- Fix HTTP status regex for HTTP/2 compatibility
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat(rag): add Go RAG implementation with Qdrant + Ollama
Add RAG (Retrieval Augmented Generation) tools for storing documentation
in Qdrant vector database and querying with semantic search. This replaces
the Python tools/rag implementation with a native Go solution.
New commands:
- core rag ingest [directory] - Ingest markdown files into Qdrant
- core rag query [question] - Query vector database with semantic search
- core rag collections - List and manage Qdrant collections
Features:
- Markdown chunking by sections and paragraphs with overlap
- UTF-8 safe text handling for international content
- Automatic category detection from file paths
- Multiple output formats: text, JSON, LLM context injection
- Environment variable support for host configuration
Dependencies:
- github.com/qdrant/go-client (gRPC client)
- github.com/ollama/ollama/api (embeddings API)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat(deploy): add pure-Go Ansible executor and Coolify API integration
Implement infrastructure deployment system with:
- pkg/ansible: Pure Go Ansible executor
- Playbook/inventory parsing (types.go, parser.go)
- Full execution engine with variable templating, loops, blocks,
conditionals, handlers, and fact gathering (executor.go)
- SSH client with key/password auth and privilege escalation (ssh.go)
- 35+ module implementations: shell, command, copy, template, file,
apt, service, systemd, user, group, git, docker_compose, etc. (modules.go)
- pkg/deploy/coolify: Coolify API client wrapping Python swagger client
- List/get servers, projects, applications, databases, services
- Generic Call() for any OpenAPI operation
- pkg/deploy/python: Embedded Python runtime for swagger client integration
- internal/cmd/deploy: CLI commands
- core deploy servers/projects/apps/databases/services/team
- core deploy call <operation> [params-json]
This enables Docker-free infrastructure deployment with Ansible-compatible
playbooks executed natively in Go.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix(deploy): address linter warnings and build errors
- Fix fmt.Sprintf format verb error in ssh.go (remove unused stat command)
- Fix errcheck warnings by explicitly ignoring best-effort operations
- Fix ineffassign warning in cmd_ansible.go
All golangci-lint checks now pass for deploy packages.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* style(deploy): fix gofmt formatting
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix(deploy): use known_hosts for SSH host key verification
Address CodeQL security alert by using the user's known_hosts file
for SSH host key verification when available. Falls back to accepting
any key only when known_hosts doesn't exist (common in containerized
or ephemeral environments).
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat(ai,security,ide): add agentic MVP, security jobs, and Core IDE desktop app
Wire up AI infrastructure with unified pkg/ai package (metrics JSONL,
RAG integration), move RAG under `core ai rag`, add `core ai metrics`
command, and enrich task context with Qdrant documentation.
Add `--target` flag to all security commands for external repo scanning,
`core security jobs` for distributing findings as GitHub Issues, and
consistent error logging across scan/deps/alerts/secrets commands.
Add Core IDE Wails v3 desktop app with Angular 20 frontend, MCP bridge
(loopback-only HTTP server), WebSocket hub, and Claude Code bridge.
Production-ready with Lethean CIC branding, macOS code signing support,
and security hardening (origin validation, body size limits, URL scheme
checks, memory leak prevention, XSS mitigation).
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix: address PR review comments from CodeRabbit, Copilot, and Gemini
Fixes across 25 files addressing 46+ review comments:
- pkg/ai/metrics.go: handle error from Close() on writable file handle
- pkg/ansible: restore loop vars after loop, restore become settings,
fix Upload with become=true and no password (use sudo -n), honour
SSH timeout config, use E() helper for contextual errors, quote git
refs in checkout commands
- pkg/rag: validate chunk config, guard negative-to-uint64 conversion,
use E() helper for errors, add context timeout to Ollama HTTP calls
- pkg/deploy/python: fix exec.ExitError type assertion (was os.PathError),
handle os.UserHomeDir() error
- pkg/build/buildcmd: use cmd.Context() instead of context.Background()
for proper Ctrl+C cancellation
- install.bat: add curl timeouts, CRLF line endings, use --connect-timeout
for archive downloads
- install.sh: use absolute path for version check in CI mode
- tools/rag: fix broken ingest.py function def, escape HTML in query.py,
pin qdrant-client version, add markdown code block languages
- internal/cmd/rag: add chunk size validation, env override handling
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix(build): make release dry-run by default and remove darwin/amd64 target
Replace --dry-run (default false) with --we-are-go-for-launch (default
false) so `core build release` is safe by default. Remove darwin/amd64
from default build targets (arm64 only for macOS). Fix cmd_project.go
to use command context instead of context.Background().
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-04 00:49:57 +00:00
"deploy.long" : "Deploy the PHP application to Coolify" ,
"deploy.deploying" : "Deploying to {{.Environment}}" ,
"deploy.warning_status" : "Deployment finished with status: {{.Status}}" ,
"deploy.triggered" : "Deployment triggered successfully" ,
"deploy.flag.staging" : "Deploy to staging environment" ,
"deploy.flag.force" : "Force deployment even if no changes detected" ,
"deploy.flag.wait" : "Wait for deployment to complete" ,
2026-02-01 07:39:49 +00:00
"deploy_list.short" : "List deployments" ,
feat: wire release command, add tar.xz support, unified installers (#277)
* feat(cli): wire release command and add installer scripts
- Wire up `core build release` subcommand (was orphaned)
- Wire up `core monitor` command (missing import in full variant)
- Add installer scripts for Unix (.sh) and Windows (.bat)
- setup: Interactive with variant selection
- ci: Minimal for CI/CD environments
- dev: Full development variant
- go/php/agent: Targeted development variants
- All scripts include security hardening:
- Secure temp directories (mktemp -d)
- Architecture validation
- Version validation after GitHub API call
- Proper cleanup on exit
- PowerShell PATH updates on Windows (avoids setx truncation)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat(build): add tar.xz support and unified installer scripts
- Add tar.xz archive support using Borg's compress package
- ArchiveXZ() and ArchiveWithFormat() for configurable compression
- Better compression ratio than gzip for release artifacts
- Consolidate 12 installer scripts into 2 unified scripts
- install.sh and install.bat with BunnyCDN edge variable support
- Subdomains: setup.core.help, ci.core.help, dev.core.help, etc.
- MODE and VARIANT transformed at edge based on subdomain
- Installers prefer tar.xz with automatic fallback to tar.gz
- Fixed CodeRabbit issues: HTTP status patterns, tar error handling,
verify_install params, VARIANT validation, CI PATH persistence
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* chore: add build and release config files
- .core/build.yaml - cross-platform build configuration
- .core/release.yaml - release workflow configuration
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* chore: move plans from docs/ to tasks/
Consolidate planning documents in tasks/plans/ directory.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix(install): address CodeRabbit review feedback
- Add curl timeout (--max-time) to prevent hanging on slow networks
- Rename TMPDIR to WORK_DIR to avoid clobbering system env var
- Add chmod +x to ensure binary has execute permissions
- Add error propagation after subroutine calls in batch file
- Remove System32 install attempt in CI mode (use consistent INSTALL_DIR)
- Fix HTTP status regex for HTTP/2 compatibility
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat(rag): add Go RAG implementation with Qdrant + Ollama
Add RAG (Retrieval Augmented Generation) tools for storing documentation
in Qdrant vector database and querying with semantic search. This replaces
the Python tools/rag implementation with a native Go solution.
New commands:
- core rag ingest [directory] - Ingest markdown files into Qdrant
- core rag query [question] - Query vector database with semantic search
- core rag collections - List and manage Qdrant collections
Features:
- Markdown chunking by sections and paragraphs with overlap
- UTF-8 safe text handling for international content
- Automatic category detection from file paths
- Multiple output formats: text, JSON, LLM context injection
- Environment variable support for host configuration
Dependencies:
- github.com/qdrant/go-client (gRPC client)
- github.com/ollama/ollama/api (embeddings API)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat(deploy): add pure-Go Ansible executor and Coolify API integration
Implement infrastructure deployment system with:
- pkg/ansible: Pure Go Ansible executor
- Playbook/inventory parsing (types.go, parser.go)
- Full execution engine with variable templating, loops, blocks,
conditionals, handlers, and fact gathering (executor.go)
- SSH client with key/password auth and privilege escalation (ssh.go)
- 35+ module implementations: shell, command, copy, template, file,
apt, service, systemd, user, group, git, docker_compose, etc. (modules.go)
- pkg/deploy/coolify: Coolify API client wrapping Python swagger client
- List/get servers, projects, applications, databases, services
- Generic Call() for any OpenAPI operation
- pkg/deploy/python: Embedded Python runtime for swagger client integration
- internal/cmd/deploy: CLI commands
- core deploy servers/projects/apps/databases/services/team
- core deploy call <operation> [params-json]
This enables Docker-free infrastructure deployment with Ansible-compatible
playbooks executed natively in Go.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix(deploy): address linter warnings and build errors
- Fix fmt.Sprintf format verb error in ssh.go (remove unused stat command)
- Fix errcheck warnings by explicitly ignoring best-effort operations
- Fix ineffassign warning in cmd_ansible.go
All golangci-lint checks now pass for deploy packages.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* style(deploy): fix gofmt formatting
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix(deploy): use known_hosts for SSH host key verification
Address CodeQL security alert by using the user's known_hosts file
for SSH host key verification when available. Falls back to accepting
any key only when known_hosts doesn't exist (common in containerized
or ephemeral environments).
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat(ai,security,ide): add agentic MVP, security jobs, and Core IDE desktop app
Wire up AI infrastructure with unified pkg/ai package (metrics JSONL,
RAG integration), move RAG under `core ai rag`, add `core ai metrics`
command, and enrich task context with Qdrant documentation.
Add `--target` flag to all security commands for external repo scanning,
`core security jobs` for distributing findings as GitHub Issues, and
consistent error logging across scan/deps/alerts/secrets commands.
Add Core IDE Wails v3 desktop app with Angular 20 frontend, MCP bridge
(loopback-only HTTP server), WebSocket hub, and Claude Code bridge.
Production-ready with Lethean CIC branding, macOS code signing support,
and security hardening (origin validation, body size limits, URL scheme
checks, memory leak prevention, XSS mitigation).
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix: address PR review comments from CodeRabbit, Copilot, and Gemini
Fixes across 25 files addressing 46+ review comments:
- pkg/ai/metrics.go: handle error from Close() on writable file handle
- pkg/ansible: restore loop vars after loop, restore become settings,
fix Upload with become=true and no password (use sudo -n), honour
SSH timeout config, use E() helper for contextual errors, quote git
refs in checkout commands
- pkg/rag: validate chunk config, guard negative-to-uint64 conversion,
use E() helper for errors, add context timeout to Ollama HTTP calls
- pkg/deploy/python: fix exec.ExitError type assertion (was os.PathError),
handle os.UserHomeDir() error
- pkg/build/buildcmd: use cmd.Context() instead of context.Background()
for proper Ctrl+C cancellation
- install.bat: add curl timeouts, CRLF line endings, use --connect-timeout
for archive downloads
- install.sh: use absolute path for version check in CI mode
- tools/rag: fix broken ingest.py function def, escape HTML in query.py,
pin qdrant-client version, add markdown code block languages
- internal/cmd/rag: add chunk size validation, env override handling
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix(build): make release dry-run by default and remove darwin/amd64 target
Replace --dry-run (default false) with --we-are-go-for-launch (default
false) so `core build release` is safe by default. Remove darwin/amd64
from default build targets (arm64 only for macOS). Fix cmd_project.go
to use command context instead of context.Background().
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-04 00:49:57 +00:00
"deploy_list.long" : "List recent deployments" ,
"deploy_list.recent" : "Recent deployments for {{.Environment}}" ,
"deploy_list.none_found" : "No deployments found" ,
"deploy_list.flag.staging" : "List staging deployments" ,
"deploy_list.flag.limit" : "Number of deployments to list" ,
2026-02-01 07:39:49 +00:00
"deploy_rollback.short" : "Rollback to previous deployment" ,
feat: wire release command, add tar.xz support, unified installers (#277)
* feat(cli): wire release command and add installer scripts
- Wire up `core build release` subcommand (was orphaned)
- Wire up `core monitor` command (missing import in full variant)
- Add installer scripts for Unix (.sh) and Windows (.bat)
- setup: Interactive with variant selection
- ci: Minimal for CI/CD environments
- dev: Full development variant
- go/php/agent: Targeted development variants
- All scripts include security hardening:
- Secure temp directories (mktemp -d)
- Architecture validation
- Version validation after GitHub API call
- Proper cleanup on exit
- PowerShell PATH updates on Windows (avoids setx truncation)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat(build): add tar.xz support and unified installer scripts
- Add tar.xz archive support using Borg's compress package
- ArchiveXZ() and ArchiveWithFormat() for configurable compression
- Better compression ratio than gzip for release artifacts
- Consolidate 12 installer scripts into 2 unified scripts
- install.sh and install.bat with BunnyCDN edge variable support
- Subdomains: setup.core.help, ci.core.help, dev.core.help, etc.
- MODE and VARIANT transformed at edge based on subdomain
- Installers prefer tar.xz with automatic fallback to tar.gz
- Fixed CodeRabbit issues: HTTP status patterns, tar error handling,
verify_install params, VARIANT validation, CI PATH persistence
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* chore: add build and release config files
- .core/build.yaml - cross-platform build configuration
- .core/release.yaml - release workflow configuration
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* chore: move plans from docs/ to tasks/
Consolidate planning documents in tasks/plans/ directory.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix(install): address CodeRabbit review feedback
- Add curl timeout (--max-time) to prevent hanging on slow networks
- Rename TMPDIR to WORK_DIR to avoid clobbering system env var
- Add chmod +x to ensure binary has execute permissions
- Add error propagation after subroutine calls in batch file
- Remove System32 install attempt in CI mode (use consistent INSTALL_DIR)
- Fix HTTP status regex for HTTP/2 compatibility
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat(rag): add Go RAG implementation with Qdrant + Ollama
Add RAG (Retrieval Augmented Generation) tools for storing documentation
in Qdrant vector database and querying with semantic search. This replaces
the Python tools/rag implementation with a native Go solution.
New commands:
- core rag ingest [directory] - Ingest markdown files into Qdrant
- core rag query [question] - Query vector database with semantic search
- core rag collections - List and manage Qdrant collections
Features:
- Markdown chunking by sections and paragraphs with overlap
- UTF-8 safe text handling for international content
- Automatic category detection from file paths
- Multiple output formats: text, JSON, LLM context injection
- Environment variable support for host configuration
Dependencies:
- github.com/qdrant/go-client (gRPC client)
- github.com/ollama/ollama/api (embeddings API)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat(deploy): add pure-Go Ansible executor and Coolify API integration
Implement infrastructure deployment system with:
- pkg/ansible: Pure Go Ansible executor
- Playbook/inventory parsing (types.go, parser.go)
- Full execution engine with variable templating, loops, blocks,
conditionals, handlers, and fact gathering (executor.go)
- SSH client with key/password auth and privilege escalation (ssh.go)
- 35+ module implementations: shell, command, copy, template, file,
apt, service, systemd, user, group, git, docker_compose, etc. (modules.go)
- pkg/deploy/coolify: Coolify API client wrapping Python swagger client
- List/get servers, projects, applications, databases, services
- Generic Call() for any OpenAPI operation
- pkg/deploy/python: Embedded Python runtime for swagger client integration
- internal/cmd/deploy: CLI commands
- core deploy servers/projects/apps/databases/services/team
- core deploy call <operation> [params-json]
This enables Docker-free infrastructure deployment with Ansible-compatible
playbooks executed natively in Go.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix(deploy): address linter warnings and build errors
- Fix fmt.Sprintf format verb error in ssh.go (remove unused stat command)
- Fix errcheck warnings by explicitly ignoring best-effort operations
- Fix ineffassign warning in cmd_ansible.go
All golangci-lint checks now pass for deploy packages.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* style(deploy): fix gofmt formatting
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix(deploy): use known_hosts for SSH host key verification
Address CodeQL security alert by using the user's known_hosts file
for SSH host key verification when available. Falls back to accepting
any key only when known_hosts doesn't exist (common in containerized
or ephemeral environments).
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat(ai,security,ide): add agentic MVP, security jobs, and Core IDE desktop app
Wire up AI infrastructure with unified pkg/ai package (metrics JSONL,
RAG integration), move RAG under `core ai rag`, add `core ai metrics`
command, and enrich task context with Qdrant documentation.
Add `--target` flag to all security commands for external repo scanning,
`core security jobs` for distributing findings as GitHub Issues, and
consistent error logging across scan/deps/alerts/secrets commands.
Add Core IDE Wails v3 desktop app with Angular 20 frontend, MCP bridge
(loopback-only HTTP server), WebSocket hub, and Claude Code bridge.
Production-ready with Lethean CIC branding, macOS code signing support,
and security hardening (origin validation, body size limits, URL scheme
checks, memory leak prevention, XSS mitigation).
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix: address PR review comments from CodeRabbit, Copilot, and Gemini
Fixes across 25 files addressing 46+ review comments:
- pkg/ai/metrics.go: handle error from Close() on writable file handle
- pkg/ansible: restore loop vars after loop, restore become settings,
fix Upload with become=true and no password (use sudo -n), honour
SSH timeout config, use E() helper for contextual errors, quote git
refs in checkout commands
- pkg/rag: validate chunk config, guard negative-to-uint64 conversion,
use E() helper for errors, add context timeout to Ollama HTTP calls
- pkg/deploy/python: fix exec.ExitError type assertion (was os.PathError),
handle os.UserHomeDir() error
- pkg/build/buildcmd: use cmd.Context() instead of context.Background()
for proper Ctrl+C cancellation
- install.bat: add curl timeouts, CRLF line endings, use --connect-timeout
for archive downloads
- install.sh: use absolute path for version check in CI mode
- tools/rag: fix broken ingest.py function def, escape HTML in query.py,
pin qdrant-client version, add markdown code block languages
- internal/cmd/rag: add chunk size validation, env override handling
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix(build): make release dry-run by default and remove darwin/amd64 target
Replace --dry-run (default false) with --we-are-go-for-launch (default
false) so `core build release` is safe by default. Remove darwin/amd64
from default build targets (arm64 only for macOS). Fix cmd_project.go
to use command context instead of context.Background().
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-04 00:49:57 +00:00
"deploy_rollback.long" : "Rollback to a previous deployment" ,
"deploy_rollback.rolling_back" : "Rolling back {{.Environment}}" ,
"deploy_rollback.warning_status" : "Rollback finished with status: {{.Status}}" ,
"deploy_rollback.triggered" : "Rollback triggered successfully" ,
"deploy_rollback.flag.staging" : "Rollback staging environment" ,
"deploy_rollback.flag.id" : "Specific deployment ID to rollback to" ,
"deploy_rollback.flag.wait" : "Wait for rollback to complete" ,
2026-02-01 07:39:49 +00:00
"deploy_status.short" : "Show deployment status" ,
feat: wire release command, add tar.xz support, unified installers (#277)
* feat(cli): wire release command and add installer scripts
- Wire up `core build release` subcommand (was orphaned)
- Wire up `core monitor` command (missing import in full variant)
- Add installer scripts for Unix (.sh) and Windows (.bat)
- setup: Interactive with variant selection
- ci: Minimal for CI/CD environments
- dev: Full development variant
- go/php/agent: Targeted development variants
- All scripts include security hardening:
- Secure temp directories (mktemp -d)
- Architecture validation
- Version validation after GitHub API call
- Proper cleanup on exit
- PowerShell PATH updates on Windows (avoids setx truncation)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat(build): add tar.xz support and unified installer scripts
- Add tar.xz archive support using Borg's compress package
- ArchiveXZ() and ArchiveWithFormat() for configurable compression
- Better compression ratio than gzip for release artifacts
- Consolidate 12 installer scripts into 2 unified scripts
- install.sh and install.bat with BunnyCDN edge variable support
- Subdomains: setup.core.help, ci.core.help, dev.core.help, etc.
- MODE and VARIANT transformed at edge based on subdomain
- Installers prefer tar.xz with automatic fallback to tar.gz
- Fixed CodeRabbit issues: HTTP status patterns, tar error handling,
verify_install params, VARIANT validation, CI PATH persistence
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* chore: add build and release config files
- .core/build.yaml - cross-platform build configuration
- .core/release.yaml - release workflow configuration
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* chore: move plans from docs/ to tasks/
Consolidate planning documents in tasks/plans/ directory.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix(install): address CodeRabbit review feedback
- Add curl timeout (--max-time) to prevent hanging on slow networks
- Rename TMPDIR to WORK_DIR to avoid clobbering system env var
- Add chmod +x to ensure binary has execute permissions
- Add error propagation after subroutine calls in batch file
- Remove System32 install attempt in CI mode (use consistent INSTALL_DIR)
- Fix HTTP status regex for HTTP/2 compatibility
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat(rag): add Go RAG implementation with Qdrant + Ollama
Add RAG (Retrieval Augmented Generation) tools for storing documentation
in Qdrant vector database and querying with semantic search. This replaces
the Python tools/rag implementation with a native Go solution.
New commands:
- core rag ingest [directory] - Ingest markdown files into Qdrant
- core rag query [question] - Query vector database with semantic search
- core rag collections - List and manage Qdrant collections
Features:
- Markdown chunking by sections and paragraphs with overlap
- UTF-8 safe text handling for international content
- Automatic category detection from file paths
- Multiple output formats: text, JSON, LLM context injection
- Environment variable support for host configuration
Dependencies:
- github.com/qdrant/go-client (gRPC client)
- github.com/ollama/ollama/api (embeddings API)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat(deploy): add pure-Go Ansible executor and Coolify API integration
Implement infrastructure deployment system with:
- pkg/ansible: Pure Go Ansible executor
- Playbook/inventory parsing (types.go, parser.go)
- Full execution engine with variable templating, loops, blocks,
conditionals, handlers, and fact gathering (executor.go)
- SSH client with key/password auth and privilege escalation (ssh.go)
- 35+ module implementations: shell, command, copy, template, file,
apt, service, systemd, user, group, git, docker_compose, etc. (modules.go)
- pkg/deploy/coolify: Coolify API client wrapping Python swagger client
- List/get servers, projects, applications, databases, services
- Generic Call() for any OpenAPI operation
- pkg/deploy/python: Embedded Python runtime for swagger client integration
- internal/cmd/deploy: CLI commands
- core deploy servers/projects/apps/databases/services/team
- core deploy call <operation> [params-json]
This enables Docker-free infrastructure deployment with Ansible-compatible
playbooks executed natively in Go.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix(deploy): address linter warnings and build errors
- Fix fmt.Sprintf format verb error in ssh.go (remove unused stat command)
- Fix errcheck warnings by explicitly ignoring best-effort operations
- Fix ineffassign warning in cmd_ansible.go
All golangci-lint checks now pass for deploy packages.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* style(deploy): fix gofmt formatting
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix(deploy): use known_hosts for SSH host key verification
Address CodeQL security alert by using the user's known_hosts file
for SSH host key verification when available. Falls back to accepting
any key only when known_hosts doesn't exist (common in containerized
or ephemeral environments).
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat(ai,security,ide): add agentic MVP, security jobs, and Core IDE desktop app
Wire up AI infrastructure with unified pkg/ai package (metrics JSONL,
RAG integration), move RAG under `core ai rag`, add `core ai metrics`
command, and enrich task context with Qdrant documentation.
Add `--target` flag to all security commands for external repo scanning,
`core security jobs` for distributing findings as GitHub Issues, and
consistent error logging across scan/deps/alerts/secrets commands.
Add Core IDE Wails v3 desktop app with Angular 20 frontend, MCP bridge
(loopback-only HTTP server), WebSocket hub, and Claude Code bridge.
Production-ready with Lethean CIC branding, macOS code signing support,
and security hardening (origin validation, body size limits, URL scheme
checks, memory leak prevention, XSS mitigation).
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix: address PR review comments from CodeRabbit, Copilot, and Gemini
Fixes across 25 files addressing 46+ review comments:
- pkg/ai/metrics.go: handle error from Close() on writable file handle
- pkg/ansible: restore loop vars after loop, restore become settings,
fix Upload with become=true and no password (use sudo -n), honour
SSH timeout config, use E() helper for contextual errors, quote git
refs in checkout commands
- pkg/rag: validate chunk config, guard negative-to-uint64 conversion,
use E() helper for errors, add context timeout to Ollama HTTP calls
- pkg/deploy/python: fix exec.ExitError type assertion (was os.PathError),
handle os.UserHomeDir() error
- pkg/build/buildcmd: use cmd.Context() instead of context.Background()
for proper Ctrl+C cancellation
- install.bat: add curl timeouts, CRLF line endings, use --connect-timeout
for archive downloads
- install.sh: use absolute path for version check in CI mode
- tools/rag: fix broken ingest.py function def, escape HTML in query.py,
pin qdrant-client version, add markdown code block languages
- internal/cmd/rag: add chunk size validation, env override handling
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix(build): make release dry-run by default and remove darwin/amd64 target
Replace --dry-run (default false) with --we-are-go-for-launch (default
false) so `core build release` is safe by default. Remove darwin/amd64
from default build targets (arm64 only for macOS). Fix cmd_project.go
to use command context instead of context.Background().
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-04 00:49:57 +00:00
"deploy_status.long" : "Show the status of a deployment" ,
"deploy_status.flag.staging" : "Check staging deployment" ,
"deploy_status.flag.id" : "Specific deployment ID" ,
"label.deploy" : "Deploy" ,
"error.deploy_failed" : "Deployment failed" ,
2026-01-30 14:24:23 +00:00
"serve.short" : "Run production container" ,
feat(i18n): complete en_GB translations and add completeness test
Fill all 568 missing translation keys in en_GB.json (765→1357 lines):
- 97 --help description keys (collect, ci, docs, dev, php, pkg, sdk, vm)
- 471 runtime keys (labels, errors, hints, progress, status messages)
- Add common.flag.follow, common.flag.tag, common.prompt.abort
Add completeness_test.go that scans all T() calls in source code and
verifies every cmd.*/common.* key exists using ModeStrict (panics on
missing). Catches translation gaps at test time instead of showing raw
keys in the CLI.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 20:50:55 +00:00
"serve.long" : "Run the PHP application in a production Docker container with configurable ports and environment." ,
"serve.flag.container" : "Container runtime to use" ,
"serve.flag.detach" : "Run container in the background" ,
"serve.flag.env_file" : "Path to environment file" ,
"serve.flag.https_port" : "HTTPS port to expose" ,
"serve.flag.name" : "Container name" ,
"serve.flag.port" : "HTTP port to expose" ,
2026-01-30 14:24:23 +00:00
"ssl.short" : "Setup SSL certificates with mkcert" ,
2026-02-01 06:11:00 +00:00
"packages.short" : "Manage local PHP packages" ,
feat(i18n): complete en_GB translations and add completeness test
Fill all 568 missing translation keys in en_GB.json (765→1357 lines):
- 97 --help description keys (collect, ci, docs, dev, php, pkg, sdk, vm)
- 471 runtime keys (labels, errors, hints, progress, status messages)
- Add common.flag.follow, common.flag.tag, common.prompt.abort
Add completeness_test.go that scans all T() calls in source code and
verifies every cmd.*/common.* key exists using ModeStrict (panics on
missing). Catches translation gaps at test time instead of showing raw
keys in the CLI.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 20:50:55 +00:00
"packages.long" : "Manage locally-developed PHP packages. Link, unlink, list, and update packages used by the application." ,
"packages.link.short" : "Link local packages into the application" ,
"packages.link.long" : "Symlink local PHP packages into the application's vendor directory for development." ,
"packages.list.short" : "List linked local packages" ,
"packages.list.long" : "List all locally-linked PHP packages and their paths." ,
"packages.unlink.short" : "Unlink local packages" ,
"packages.unlink.long" : "Remove symlinks to local PHP packages and restore the published versions." ,
"packages.update.short" : "Update local packages" ,
"packages.update.long" : "Update locally-linked PHP packages to their latest versions." ,
2026-02-01 07:39:49 +00:00
"logs.short" : "View application logs" ,
feat(i18n): complete en_GB translations and add completeness test
Fill all 568 missing translation keys in en_GB.json (765→1357 lines):
- 97 --help description keys (collect, ci, docs, dev, php, pkg, sdk, vm)
- 471 runtime keys (labels, errors, hints, progress, status messages)
- Add common.flag.follow, common.flag.tag, common.prompt.abort
Add completeness_test.go that scans all T() calls in source code and
verifies every cmd.*/common.* key exists using ModeStrict (panics on
missing). Catches translation gaps at test time instead of showing raw
keys in the CLI.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 20:50:55 +00:00
"logs.long" : "View application logs from running containers. Supports following logs in real-time and filtering by service." ,
"logs.flag.service" : "Service name to filter logs" ,
2026-02-01 07:39:49 +00:00
"shell.short" : "Open shell in container" ,
feat(i18n): complete en_GB translations and add completeness test
Fill all 568 missing translation keys in en_GB.json (765→1357 lines):
- 97 --help description keys (collect, ci, docs, dev, php, pkg, sdk, vm)
- 471 runtime keys (labels, errors, hints, progress, status messages)
- Add common.flag.follow, common.flag.tag, common.prompt.abort
Add completeness_test.go that scans all T() calls in source code and
verifies every cmd.*/common.* key exists using ModeStrict (panics on
missing). Catches translation gaps at test time instead of showing raw
keys in the CLI.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 20:50:55 +00:00
"shell.long" : "Open an interactive shell session inside a running PHP container." ,
2026-02-01 07:39:49 +00:00
"status.short" : "Show container status" ,
"stop.short" : "Stop running containers" ,
"stan.short" : "Run PHPStan static analysis" ,
2026-02-01 06:11:00 +00:00
"ci.short" : "Run CI/CD pipeline with combined reporting" ,
"ci.long" : "Run all QA checks in optimal order and generate combined reports in JSON, markdown, or SARIF format for CI/CD integration." ,
"ci.flag.json" : "Output combined JSON report" ,
"ci.flag.summary" : "Output markdown summary (for PR comments)" ,
"ci.flag.sarif" : "Generate SARIF files for static analysis" ,
"ci.flag.upload_sarif" : "Upload SARIF to GitHub Security tab" ,
feat(i18n): complete en_GB translations and add completeness test
Fill all 568 missing translation keys in en_GB.json (765→1357 lines):
- 97 --help description keys (collect, ci, docs, dev, php, pkg, sdk, vm)
- 471 runtime keys (labels, errors, hints, progress, status messages)
- Add common.flag.follow, common.flag.tag, common.prompt.abort
Add completeness_test.go that scans all T() calls in source code and
verifies every cmd.*/common.* key exists using ModeStrict (panics on
missing). Catches translation gaps at test time instead of showing raw
keys in the CLI.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 20:50:55 +00:00
"ci.flag.fail_on" : "Severity level to fail on (critical, high, warning)" ,
"analyse.long" : "Run PHPStan static analysis on the codebase. Detects type errors, undefined methods, and other issues." ,
"analyse.no_analyser" : "No static analyser found. Install PHPStan or Psalm." ,
"audit.all_secure" : "All dependencies are secure." ,
"audit.completed_errors" : "Audit completed with {{.Count}} error(s)." ,
"audit.error" : "Audit error" ,
"audit.flag.fix" : "Attempt to fix vulnerabilities automatically" ,
"audit.found_vulns" : "Found {{.Count}} vulnerability(ies)" ,
"audit.long" : "Run a security audit on Composer dependencies using the Symfony Security Advisories database." ,
"audit.scanning" : "Scanning dependencies..." ,
"audit.secure" : "Secure" ,
"audit.vulnerabilities" : "Vulnerabilities" ,
"build.building_docker" : "Building Docker image..." ,
"build.building_linuxkit" : "Building LinuxKit image..." ,
"build.docker_run_with" : "Run with: docker run {{.Image}}" ,
"build.extensions" : "Extensions:" ,
"build.format" : "Format:" ,
"build.frontend" : "Frontend:" ,
"build.laravel" : "Laravel:" ,
"build.octane" : "Octane:" ,
"build.php_version" : "PHP version:" ,
"build.platform" : "Platform:" ,
"dev.all_stopped" : "All services stopped." ,
"dev.detected_services" : "Detected services:" ,
"dev.services_started" : "All services started." ,
"dev.shutting_down" : "Shutting down services..." ,
"dev.starting" : "Starting development environment..." ,
"dev.stop_error" : "Error stopping {{.Service}}" ,
"error.analysis_issues" : "Static analysis found {{.Count}} issue(s)." ,
"error.audit_failed" : "Security audit failed." ,
"error.critical_high_issues" : "{{.Count}} critical/high severity issue(s) found." ,
"error.fmt_failed" : "Formatting check failed." ,
"error.fmt_issues" : "{{.Count}} formatting issue(s) found." ,
"error.infection_failed" : "Mutation testing failed." ,
"error.infection_not_installed" : "Infection not installed." ,
"error.mkcert_not_installed" : "mkcert not installed." ,
"error.not_laravel" : "Not a Laravel project (no artisan file found)." ,
"error.not_laravel_short" : "Not a Laravel project." ,
"error.not_php" : "Not a PHP project (no composer.json found)." ,
"error.psalm_issues" : "Psalm found {{.Count}} issue(s)." ,
"error.psalm_not_installed" : "Psalm not installed." ,
"error.rector_failed" : "Rector refactoring failed." ,
"error.rector_not_installed" : "Rector not installed." ,
"error.rollback_failed" : "Rollback failed." ,
"error.security_failed" : "Security scan failed." ,
"error.update_packages" : "Run 'composer update' to fix." ,
"error.vulns_found" : "{{.Count}} vulnerability(ies) found." ,
"fmt.formatting" : "Formatting code..." ,
"fmt.long" : "Format PHP code using Laravel Pint. Shows a diff of changes or applies them with --fix." ,
"fmt.no_formatter" : "No formatter found. Install Laravel Pint." ,
"fmt.no_issues" : "No formatting issues found." ,
"infection.complete" : "Mutation testing complete." ,
"infection.install" : "Install with: composer require --dev infection/infection" ,
"infection.long" : "Run mutation testing with Infection to measure test suite quality. Introduces small changes and checks if tests catch them." ,
"infection.not_found" : "Infection not found." ,
"infection.note" : "Note: Mutation testing can be slow on large codebases." ,
"label.app_url" : "App URL:" ,
"label.audit" : "Audit" ,
"label.branch" : "Branch:" ,
"label.commit" : "Commit:" ,
"label.completed" : "Completed" ,
"label.duration" : "Duration:" ,
"label.id" : "ID:" ,
"label.infection" : "Infection" ,
"label.info" : "Info" ,
"label.message" : "Message:" ,
"label.php" : "PHP" ,
"label.psalm" : "Psalm" ,
"label.rector" : "Rector" ,
"label.running" : "Running" ,
"label.security" : "Security" ,
"label.services" : "Services:" ,
"label.setup" : "Setup:" ,
"label.vite" : "Vite" ,
"packages.link.done" : "Packages linked successfully." ,
"packages.link.linking" : "Linking {{.Package}}..." ,
"packages.list.linked" : "Linked packages:" ,
"packages.list.none_found" : "No linked packages found." ,
"packages.list.unknown" : "Unknown" ,
"packages.unlink.done" : "Packages unlinked successfully." ,
"packages.unlink.unlinking" : "Unlinking {{.Package}}..." ,
"packages.update.done" : "Packages updated successfully." ,
"packages.update.updating" : "Updating {{.Package}}..." ,
"psalm.analysing" : "Running Psalm analysis..." ,
"psalm.analysing_fixing" : "Running Psalm analysis with fixes..." ,
"psalm.install" : "Install with: composer require --dev vimeo/psalm" ,
"psalm.long" : "Run Psalm static analysis for type checking and error detection. Supports baseline generation and auto-fixing." ,
"psalm.not_found" : "Psalm not found." ,
"psalm.setup" : "Run 'vendor/bin/psalm --init' to set up." ,
"qa.long" : "Run the full QA pipeline: audit, format, static analysis, and tests. Use --quick for fast checks or --full for everything." ,
"rector.analysing" : "Running Rector analysis..." ,
"rector.changes_suggested" : "{{.Count}} change(s) suggested." ,
"rector.install" : "Install with: composer require --dev rector/rector" ,
"rector.long" : "Run automated code refactoring with Rector. Preview changes or apply them with --fix." ,
"rector.no_changes" : "No refactoring changes suggested." ,
"rector.not_found" : "Rector not found." ,
"rector.refactoring" : "Applying refactoring changes..." ,
"rector.setup" : "Run 'vendor/bin/rector init' to set up." ,
"security.checks_suffix" : "check(s)" ,
"security.critical" : "Critical" ,
"security.high" : "High" ,
"security.long" : "Run security vulnerability scanning on the PHP project. Checks dependencies, code patterns, and HTTP headers." ,
"security.low" : "Low" ,
"security.medium" : "Medium" ,
"security.passed" : "All security checks passed." ,
"security.summary" : "Security summary:" ,
"serve.name_required" : "Container name is required." ,
"serve.stopped" : "Container stopped." ,
"shell.opening" : "Opening shell..." ,
"ssl.cert_label" : "Certificate:" ,
"ssl.certs_created" : "SSL certificates created successfully." ,
"ssl.certs_exist" : "SSL certificates already exist." ,
"ssl.flag.domain" : "Domain for the certificate" ,
"ssl.install_linux" : "Install mkcert: sudo apt install mkcert" ,
"ssl.install_macos" : "Install mkcert: brew install mkcert" ,
"ssl.key_label" : "Key:" ,
"ssl.mkcert_not_installed" : "mkcert is not installed." ,
"ssl.setting_up" : "Setting up SSL certificates..." ,
"status.detected_services" : "Detected services:" ,
"status.error" : "Error" ,
"status.octane_server" : "Octane server:" ,
"status.package_manager" : "Package manager:" ,
"status.pid" : "PID:" ,
"status.port" : "Port:" ,
"status.running" : "Running" ,
"status.ssl_certs" : "SSL certificates:" ,
"status.ssl_installed" : "Installed" ,
"status.ssl_not_setup" : "Not configured" ,
"status.stopped" : "Stopped" ,
"stop.stopping" : "Stopping containers..." ,
"test.long" : "Run PHPUnit or Pest tests with optional coverage, parallelism, and filtering."
2026-01-30 11:11:07 +00:00
} ,
"pkg" : {
"short" : "Package management for core-* repos" ,
2026-02-01 07:39:49 +00:00
"long" : "Package management for core-* repositories. Clone, list, update, and search for packages." ,
2026-01-30 14:24:23 +00:00
"install.short" : "Clone a package from GitHub" ,
feat(i18n): complete en_GB translations and add completeness test
Fill all 568 missing translation keys in en_GB.json (765→1357 lines):
- 97 --help description keys (collect, ci, docs, dev, php, pkg, sdk, vm)
- 471 runtime keys (labels, errors, hints, progress, status messages)
- Add common.flag.follow, common.flag.tag, common.prompt.abort
Add completeness_test.go that scans all T() calls in source code and
verifies every cmd.*/common.* key exists using ModeStrict (panics on
missing). Catches translation gaps at test time instead of showing raw
keys in the CLI.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 20:50:55 +00:00
"install.long" : "Clone a package repository from GitHub into the workspace packages directory." ,
"install.flag.add" : "Add to repos.yaml after cloning" ,
"install.flag.dir" : "Directory to clone into" ,
2026-01-30 14:24:23 +00:00
"list.short" : "List installed packages" ,
feat(i18n): complete en_GB translations and add completeness test
Fill all 568 missing translation keys in en_GB.json (765→1357 lines):
- 97 --help description keys (collect, ci, docs, dev, php, pkg, sdk, vm)
- 471 runtime keys (labels, errors, hints, progress, status messages)
- Add common.flag.follow, common.flag.tag, common.prompt.abort
Add completeness_test.go that scans all T() calls in source code and
verifies every cmd.*/common.* key exists using ModeStrict (panics on
missing). Catches translation gaps at test time instead of showing raw
keys in the CLI.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 20:50:55 +00:00
"list.long" : "List all packages currently installed in the workspace." ,
2026-01-30 14:24:23 +00:00
"update.short" : "Update installed packages" ,
feat(i18n): complete en_GB translations and add completeness test
Fill all 568 missing translation keys in en_GB.json (765→1357 lines):
- 97 --help description keys (collect, ci, docs, dev, php, pkg, sdk, vm)
- 471 runtime keys (labels, errors, hints, progress, status messages)
- Add common.flag.follow, common.flag.tag, common.prompt.abort
Add completeness_test.go that scans all T() calls in source code and
verifies every cmd.*/common.* key exists using ModeStrict (panics on
missing). Catches translation gaps at test time instead of showing raw
keys in the CLI.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 20:50:55 +00:00
"update.long" : "Pull the latest changes for installed packages." ,
"update.flag.all" : "Update all packages" ,
2026-01-30 14:24:23 +00:00
"outdated.short" : "Check for outdated packages" ,
feat(i18n): complete en_GB translations and add completeness test
Fill all 568 missing translation keys in en_GB.json (765→1357 lines):
- 97 --help description keys (collect, ci, docs, dev, php, pkg, sdk, vm)
- 471 runtime keys (labels, errors, hints, progress, status messages)
- Add common.flag.follow, common.flag.tag, common.prompt.abort
Add completeness_test.go that scans all T() calls in source code and
verifies every cmd.*/common.* key exists using ModeStrict (panics on
missing). Catches translation gaps at test time instead of showing raw
keys in the CLI.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 20:50:55 +00:00
"outdated.long" : "Check which installed packages have newer versions available on the remote." ,
2026-01-30 14:24:23 +00:00
"search.short" : "Search GitHub for packages" ,
feat(i18n): complete en_GB translations and add completeness test
Fill all 568 missing translation keys in en_GB.json (765→1357 lines):
- 97 --help description keys (collect, ci, docs, dev, php, pkg, sdk, vm)
- 471 runtime keys (labels, errors, hints, progress, status messages)
- Add common.flag.follow, common.flag.tag, common.prompt.abort
Add completeness_test.go that scans all T() calls in source code and
verifies every cmd.*/common.* key exists using ModeStrict (panics on
missing). Catches translation gaps at test time instead of showing raw
keys in the CLI.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 20:50:55 +00:00
"search.long" : "Search GitHub for packages matching a pattern. Filters by organisation and package type." ,
"search.flag.limit" : "Maximum number of results to return" ,
"search.flag.org" : "GitHub organisation to search within" ,
"search.flag.pattern" : "Name pattern to filter results" ,
"search.flag.refresh" : "Refresh the cached package index" ,
"search.flag.type" : "Package type filter (go, php, node)" ,
"error.invalid_repo_format" : "invalid repo format: use org/repo (e.g., host-uk/core-php)" ,
"error.auth_failed" : "Authentication failed." ,
"error.gh_not_authenticated" : "GitHub CLI not authenticated. Run: gh auth login" ,
"error.no_repos_yaml" : "No repos.yaml found." ,
"error.no_repos_yaml_workspace" : "No repos.yaml found in workspace." ,
"error.repo_required" : "Repository name is required." ,
"error.search_failed" : "Search failed." ,
"error.specify_package" : "Specify a package name." ,
"install.add_to_registry" : "Add to repos.yaml?" ,
"install.added_to_registry" : "Added to repos.yaml." ,
"install.already_exists" : "Package already exists: {{.Name}}" ,
"install.installed" : "Installed {{.Name}}" ,
"install.installing_label" : "Installing:" ,
"list.install_missing" : "Run 'core pkg install' to add packages." ,
"list.no_packages" : "No packages installed." ,
"list.summary" : "{{.Count}} package(s) installed" ,
"list.title" : "Installed packages:" ,
"no_description" : "No description" ,
"outdated.all_up_to_date" : "All packages are up to date." ,
"outdated.commits_behind" : "{{.Count}} commit(s) behind" ,
"outdated.outdated_label" : "Outdated:" ,
"outdated.summary" : "{{.Count}} package(s) outdated" ,
"outdated.update_with" : "Run 'core pkg update' to update." ,
"search.cache_label" : "Cache:" ,
"search.fetching_label" : "Fetching..." ,
"search.found_repos" : "Found {{.Count}} repo(s)" ,
"search.gh_token_unset" : "GITHUB_TOKEN not set." ,
"search.gh_token_warning" : "Set GITHUB_TOKEN for higher API limits." ,
"search.no_repos_found" : "No repos found." ,
"search.private_label" : "Private" ,
"update.not_installed" : "Package not installed: {{.Name}}" ,
"update.summary" : "{{.Count}} package(s) updated" ,
"update.update_label" : "Updated:" ,
"update.updating" : "Updating {{.Name}}..."
2026-01-30 11:11:07 +00:00
} ,
"sdk" : {
"short" : "SDK validation and API compatibility tools" ,
2026-02-01 07:39:49 +00:00
"long" : "SDK validation and API compatibility tools. Check for breaking changes and validate OpenAPI specifications." ,
2026-01-30 14:24:23 +00:00
"diff.short" : "Check for breaking API changes" ,
feat(i18n): complete en_GB translations and add completeness test
Fill all 568 missing translation keys in en_GB.json (765→1357 lines):
- 97 --help description keys (collect, ci, docs, dev, php, pkg, sdk, vm)
- 471 runtime keys (labels, errors, hints, progress, status messages)
- Add common.flag.follow, common.flag.tag, common.prompt.abort
Add completeness_test.go that scans all T() calls in source code and
verifies every cmd.*/common.* key exists using ModeStrict (panics on
missing). Catches translation gaps at test time instead of showing raw
keys in the CLI.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 20:50:55 +00:00
"diff.long" : "Compare two OpenAPI specifications and report breaking changes. Useful for CI checks before merging API changes." ,
"diff.flag.base" : "Base spec file to compare against" ,
"diff.flag.spec" : "Current spec file to check" ,
"validate.short" : "Validate OpenAPI spec" ,
"validate.long" : "Validate an OpenAPI specification file for correctness and completeness." ,
"diff.base_label" : "Base:" ,
"diff.breaking" : "Breaking changes detected" ,
"diff.error.base_required" : "Base spec file is required for comparison." ,
"diff.label" : "Diff" ,
"label.ok" : "OK" ,
"label.sdk" : "SDK" ,
"validate.valid" : "Specification is valid." ,
"validate.validating" : "Validating specification..."
2026-01-30 11:11:07 +00:00
} ,
"setup" : {
2026-01-30 14:24:23 +00:00
"short" : "Bootstrap workspace or clone packages from registry" ,
2026-02-01 07:39:49 +00:00
"long" : "Bootstrap a new workspace or clone packages from a repos.yaml registry. Interactive wizard for selecting packages to clone." ,
"flag.all" : "Clone all packages from registry" ,
"flag.build" : "Build packages after cloning" ,
"flag.dry_run" : "Show what would be cloned without cloning" ,
"flag.name" : "Package name to clone" ,
"flag.only" : "Only clone packages of this type" ,
"flag.registry" : "Path to repos.yaml registry file" ,
2026-01-30 11:11:07 +00:00
"complete" : "Setup complete" ,
2026-01-30 14:24:23 +00:00
"bootstrap_mode" : "Bootstrap mode (no repos.yaml found)" ,
2026-01-30 11:11:07 +00:00
"nothing_to_clone" : "Nothing to clone." ,
2026-01-30 14:24:23 +00:00
"wizard.select_packages" : "Select packages to clone" ,
2026-02-01 03:37:06 +00:00
"wizard.what_to_do" : "What would you like to do?" ,
"github.short" : "Configure GitHub repos with org standards" ,
"github.long" : "Configure GitHub repositories with organisation standards including labels, webhooks, branch protection, and security settings." ,
"github.flag.repo" : "Specific repo to setup" ,
"github.flag.all" : "Setup all repos in registry" ,
"github.flag.labels" : "Only sync labels" ,
"github.flag.webhooks" : "Only sync webhooks" ,
"github.flag.protection" : "Only sync branch protection" ,
"github.flag.security" : "Only sync security settings" ,
"github.flag.check" : "Dry-run: show what would change" ,
"github.flag.config" : "Path to github.yaml config" ,
"github.dry_run_mode" : "(dry run) no changes will be made" ,
"github.no_repos_specified" : "No repos specified." ,
"github.usage_hint" : "Use --repo <name> for a single repo, or --all for all repos" ,
"github.no_changes" : "no changes needed" ,
"github.repos_checked" : "Repos checked" ,
"github.repos_with_changes" : "Repos with changes" ,
"github.all_up_to_date" : "All repos are up to date" ,
"github.to_create" : "To create" ,
"github.to_update" : "To update" ,
"github.to_delete" : "To delete" ,
"github.run_without_check" : "Run without --check to apply changes" ,
"github.error.not_authenticated" : "GitHub CLI not authenticated. Run: gh auth login" ,
"github.error.config_not_found" : "GitHub config file not found" ,
feat(i18n): complete en_GB translations and add completeness test
Fill all 568 missing translation keys in en_GB.json (765→1357 lines):
- 97 --help description keys (collect, ci, docs, dev, php, pkg, sdk, vm)
- 471 runtime keys (labels, errors, hints, progress, status messages)
- Add common.flag.follow, common.flag.tag, common.prompt.abort
Add completeness_test.go that scans all T() calls in source code and
verifies every cmd.*/common.* key exists using ModeStrict (panics on
missing). Catches translation gaps at test time instead of showing raw
keys in the CLI.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 20:50:55 +00:00
"github.error.conflicting_flags" : "Cannot use --repo and --all together" ,
"already_exist_count" : "{{.Count}} already exist" ,
"already_exists" : "Already exists: {{.Name}}" ,
"cancelled" : "Setup cancelled." ,
"cloned" : "Cloned {{.Name}}" ,
"cloned_count" : "{{.Count}} cloned" ,
"cloning_current_dir" : "Cloning into current directory..." ,
"creating_project_dir" : "Creating project directory..." ,
"done" : "Setup complete." ,
"exist" : "exists" ,
"org_label" : "Organisation:" ,
"repo.created" : "Repository created." ,
"repo.detected_type" : "Detected type: {{.Type}}" ,
"repo.setting_up" : "Setting up {{.Name}}..." ,
"repo.would_create" : "Would create: {{.Name}}" ,
"to_clone" : "{{.Count}} to clone" ,
"wizard.confirm_clone" : "Clone {{.Count}} package(s)?" ,
"wizard.git_repo_title" : "Git Repository" ,
"wizard.package_selection" : "Package Selection" ,
"wizard.project_name_desc" : "Name for the new project directory" ,
"wizard.project_name_title" : "Project Name" ,
"wizard.selection_hint" : "Use space to select, enter to confirm." ,
"would_clone" : "Would clone: {{.Name}}" ,
"would_clone_list" : "Would clone {{.Count}} package(s):" ,
"would_load_registry" : "Would load registry from: {{.Path}}"
2026-01-30 11:11:07 +00:00
} ,
2026-02-01 06:04:21 +00:00
"security" : {
"short" : "Security alerts and vulnerability scanning" ,
"long" : "View security alerts from Dependabot, code scanning, and secret scanning across repositories." ,
"alerts.short" : "List all security alerts across repos" ,
"alerts.long" : "List security alerts from Dependabot, code scanning, and secret scanning. Aggregates alerts across all repos in the registry." ,
"deps.short" : "List Dependabot vulnerability alerts" ,
"deps.long" : "List vulnerable dependencies detected by Dependabot with upgrade recommendations." ,
"deps.flag.vulnerable" : "Show only vulnerable dependencies" ,
"scan.short" : "List code scanning alerts" ,
"scan.long" : "List code scanning alerts from tools like CodeQL, Semgrep, etc." ,
"scan.flag.tool" : "Filter by tool name (e.g., codeql, semgrep)" ,
"secrets.short" : "List exposed secrets" ,
"secrets.long" : "List secrets detected by GitHub secret scanning." ,
"flag.repo" : "Specific repo to check" ,
feat: wire release command, add tar.xz support, unified installers (#277)
* feat(cli): wire release command and add installer scripts
- Wire up `core build release` subcommand (was orphaned)
- Wire up `core monitor` command (missing import in full variant)
- Add installer scripts for Unix (.sh) and Windows (.bat)
- setup: Interactive with variant selection
- ci: Minimal for CI/CD environments
- dev: Full development variant
- go/php/agent: Targeted development variants
- All scripts include security hardening:
- Secure temp directories (mktemp -d)
- Architecture validation
- Version validation after GitHub API call
- Proper cleanup on exit
- PowerShell PATH updates on Windows (avoids setx truncation)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat(build): add tar.xz support and unified installer scripts
- Add tar.xz archive support using Borg's compress package
- ArchiveXZ() and ArchiveWithFormat() for configurable compression
- Better compression ratio than gzip for release artifacts
- Consolidate 12 installer scripts into 2 unified scripts
- install.sh and install.bat with BunnyCDN edge variable support
- Subdomains: setup.core.help, ci.core.help, dev.core.help, etc.
- MODE and VARIANT transformed at edge based on subdomain
- Installers prefer tar.xz with automatic fallback to tar.gz
- Fixed CodeRabbit issues: HTTP status patterns, tar error handling,
verify_install params, VARIANT validation, CI PATH persistence
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* chore: add build and release config files
- .core/build.yaml - cross-platform build configuration
- .core/release.yaml - release workflow configuration
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* chore: move plans from docs/ to tasks/
Consolidate planning documents in tasks/plans/ directory.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix(install): address CodeRabbit review feedback
- Add curl timeout (--max-time) to prevent hanging on slow networks
- Rename TMPDIR to WORK_DIR to avoid clobbering system env var
- Add chmod +x to ensure binary has execute permissions
- Add error propagation after subroutine calls in batch file
- Remove System32 install attempt in CI mode (use consistent INSTALL_DIR)
- Fix HTTP status regex for HTTP/2 compatibility
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat(rag): add Go RAG implementation with Qdrant + Ollama
Add RAG (Retrieval Augmented Generation) tools for storing documentation
in Qdrant vector database and querying with semantic search. This replaces
the Python tools/rag implementation with a native Go solution.
New commands:
- core rag ingest [directory] - Ingest markdown files into Qdrant
- core rag query [question] - Query vector database with semantic search
- core rag collections - List and manage Qdrant collections
Features:
- Markdown chunking by sections and paragraphs with overlap
- UTF-8 safe text handling for international content
- Automatic category detection from file paths
- Multiple output formats: text, JSON, LLM context injection
- Environment variable support for host configuration
Dependencies:
- github.com/qdrant/go-client (gRPC client)
- github.com/ollama/ollama/api (embeddings API)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat(deploy): add pure-Go Ansible executor and Coolify API integration
Implement infrastructure deployment system with:
- pkg/ansible: Pure Go Ansible executor
- Playbook/inventory parsing (types.go, parser.go)
- Full execution engine with variable templating, loops, blocks,
conditionals, handlers, and fact gathering (executor.go)
- SSH client with key/password auth and privilege escalation (ssh.go)
- 35+ module implementations: shell, command, copy, template, file,
apt, service, systemd, user, group, git, docker_compose, etc. (modules.go)
- pkg/deploy/coolify: Coolify API client wrapping Python swagger client
- List/get servers, projects, applications, databases, services
- Generic Call() for any OpenAPI operation
- pkg/deploy/python: Embedded Python runtime for swagger client integration
- internal/cmd/deploy: CLI commands
- core deploy servers/projects/apps/databases/services/team
- core deploy call <operation> [params-json]
This enables Docker-free infrastructure deployment with Ansible-compatible
playbooks executed natively in Go.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix(deploy): address linter warnings and build errors
- Fix fmt.Sprintf format verb error in ssh.go (remove unused stat command)
- Fix errcheck warnings by explicitly ignoring best-effort operations
- Fix ineffassign warning in cmd_ansible.go
All golangci-lint checks now pass for deploy packages.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* style(deploy): fix gofmt formatting
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix(deploy): use known_hosts for SSH host key verification
Address CodeQL security alert by using the user's known_hosts file
for SSH host key verification when available. Falls back to accepting
any key only when known_hosts doesn't exist (common in containerized
or ephemeral environments).
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat(ai,security,ide): add agentic MVP, security jobs, and Core IDE desktop app
Wire up AI infrastructure with unified pkg/ai package (metrics JSONL,
RAG integration), move RAG under `core ai rag`, add `core ai metrics`
command, and enrich task context with Qdrant documentation.
Add `--target` flag to all security commands for external repo scanning,
`core security jobs` for distributing findings as GitHub Issues, and
consistent error logging across scan/deps/alerts/secrets commands.
Add Core IDE Wails v3 desktop app with Angular 20 frontend, MCP bridge
(loopback-only HTTP server), WebSocket hub, and Claude Code bridge.
Production-ready with Lethean CIC branding, macOS code signing support,
and security hardening (origin validation, body size limits, URL scheme
checks, memory leak prevention, XSS mitigation).
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix: address PR review comments from CodeRabbit, Copilot, and Gemini
Fixes across 25 files addressing 46+ review comments:
- pkg/ai/metrics.go: handle error from Close() on writable file handle
- pkg/ansible: restore loop vars after loop, restore become settings,
fix Upload with become=true and no password (use sudo -n), honour
SSH timeout config, use E() helper for contextual errors, quote git
refs in checkout commands
- pkg/rag: validate chunk config, guard negative-to-uint64 conversion,
use E() helper for errors, add context timeout to Ollama HTTP calls
- pkg/deploy/python: fix exec.ExitError type assertion (was os.PathError),
handle os.UserHomeDir() error
- pkg/build/buildcmd: use cmd.Context() instead of context.Background()
for proper Ctrl+C cancellation
- install.bat: add curl timeouts, CRLF line endings, use --connect-timeout
for archive downloads
- install.sh: use absolute path for version check in CI mode
- tools/rag: fix broken ingest.py function def, escape HTML in query.py,
pin qdrant-client version, add markdown code block languages
- internal/cmd/rag: add chunk size validation, env override handling
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix(build): make release dry-run by default and remove darwin/amd64 target
Replace --dry-run (default false) with --we-are-go-for-launch (default
false) so `core build release` is safe by default. Remove darwin/amd64
from default build targets (arm64 only for macOS). Fix cmd_project.go
to use command context instead of context.Background().
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-04 00:49:57 +00:00
"flag.severity" : "Filter by severity (critical,high,medium,low)" ,
"flag.target" : "External repo to scan (e.g. wailsapp/wails)" ,
"jobs.short" : "Create GitHub issues from scan results" ,
"jobs.long" : "Create GitHub issues from security scan results so contributors can claim and work on them. Supports targeting external repositories." ,
"jobs.flag.targets" : "Target repos to scan (owner/repo format)" ,
"jobs.flag.issue_repo" : "Repository to create issues in" ,
"jobs.flag.dry_run" : "Show what would be created without creating issues" ,
"jobs.flag.copies" : "Number of duplicate issues for parallel work"
2026-02-01 06:04:21 +00:00
} ,
2026-02-01 03:37:16 +00:00
"qa" : {
"short" : "Quality assurance workflows" ,
"long" : "Quality assurance commands for verifying work - CI status, reviews, issues." ,
"watch.short" : "Watch GitHub Actions after a push" ,
"watch.long" : "Monitor GitHub Actions workflow runs triggered by a commit, showing live progress and actionable failure details." ,
"watch.flag.repo" : "Repository to watch (default: current)" ,
"watch.flag.commit" : "Commit SHA to watch (default: HEAD)" ,
"watch.flag.timeout" : "Timeout duration (default: 10m)" ,
"watch.commit" : "Commit:" ,
"watch.waiting_for_workflows" : "Waiting for workflows to start..." ,
"watch.timeout" : "Timeout after {{.Duration}} waiting for workflows" ,
"watch.workflows_failed" : "{{.Count}} workflow(s) failed" ,
"watch.all_passed" : "All workflows passed" ,
"watch.error.not_git_repo" : "Not in a git repository" ,
feat(qa): add review command for PR status (#64)
* feat(qa): add qa watch command for CI monitoring (#47)
Implements `core qa watch` to monitor GitHub Actions after a push:
- Polls workflow runs for a commit until completion
- Shows live progress with pass/fail counts
- On failure, shows job name, failed step, and link to logs
- Exits with appropriate code (0 = passed, 1 = failed)
Usage:
core qa watch # Watch current repo's HEAD
core qa watch --repo X # Watch specific repo
core qa watch --timeout 5m # Custom timeout
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix(qa): address CodeRabbit feedback on watch command
- Add length check before slicing commitSha to prevent panic on short SHAs
- Count all non-success conclusions as failures (cancelled, timed_out, etc.)
- Use errors.E/Wrap pattern for consistent error handling with operation context
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat(qa): add context-aware commands and log parsing
- Use exec.CommandContext with timeout context for all gh invocations
so commands are cancelled when deadline expires
- Implement fetchErrorFromLogs using 'gh run view --log-failed'
to extract first meaningful error line from failed workflows
- Pass context through call chain for proper timeout propagation
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat(qa): add review command for PR status (#62)
Add `core qa review` command to show PR review status with actionable
next steps. Answers: "What do I need to do to get my PRs merged?"
and "What reviews am I blocking?"
Features:
- Shows your open PRs with merge status (CI, reviews, conflicts)
- Shows PRs where your review is requested
- Provides actionable suggestions (rebase, address feedback, etc.)
- Flags: --mine, --requested, --repo
Closes #62
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat(qa): add review command for PR status (#62)
Add `core qa review` command to show PR review status with actionable
next steps. Answers: "What do I need to do to get my PRs merged?"
and "What reviews am I blocking?"
Features:
- Shows your open PRs with merge status (CI, reviews, conflicts)
- Shows PRs where your review is requested
- Provides actionable suggestions (rebase, address feedback, etc.)
- Flags: --mine, --requested, --repo
Closes #62
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix(qa): address CodeRabbit feedback on review command
- Fix truncate to use runes for UTF-8 safe string slicing
- Remove unused user parameter from showMyPRs and showRequestedReviews
- Remove unused getCurrentUser function
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix(qa): remove duplicate i18n block and improve error handling
- Remove duplicate cmd.qa block in en_GB.json
- Use errors.E consistently for error wrapping
- Require --repo flag when not in a git repository
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-01 03:56:48 +00:00
"watch.error.repo_format" : "Invalid repo format. Use --repo org/name or run from a git repo" ,
"review.short" : "Check PR review status" ,
"review.long" : "Show PR review status with actionable next steps. Answers: What do I need to do to get my PRs merged? What reviews am I blocking?" ,
"review.flag.mine" : "Show only your open PRs" ,
"review.flag.requested" : "Show only PRs where your review is requested" ,
"review.flag.repo" : "Specific repository (default: current)" ,
"review.your_prs" : "Your PRs" ,
"review.review_requested" : "Review Requested" ,
"review.no_prs" : "No open PRs" ,
"review.no_reviews" : "No reviews requested" ,
2026-02-01 05:20:46 +00:00
"review.error.no_repo" : "Not in a git repository. Use --repo to specify one" ,
"health.short" : "Aggregate CI health across all repos" ,
"health.long" : "Shows CI health summary across all repos with focus on problems that need attention." ,
"health.flag.problems" : "Show only repos with problems" ,
"health.summary" : "CI Health" ,
"health.all_healthy" : "All repos are healthy" ,
"health.passing" : "Passing" ,
"health.tests_failing" : "Tests failing" ,
"health.running" : "Running" ,
"health.cancelled" : "Cancelled" ,
"health.skipped" : "Skipped" ,
"health.no_ci_configured" : "No CI configured" ,
"health.workflow_disabled" : "Workflow disabled" ,
"health.fetch_error" : "Failed to fetch status" ,
"health.parse_error" : "Failed to parse response" ,
"health.count_passing" : "Passing" ,
"health.count_failing" : "Failing" ,
"health.count_pending" : "Pending" ,
"health.count_no_ci" : "No CI" ,
"health.count_disabled" : "Disabled" ,
"issues.short" : "Intelligent issue triage" ,
"issues.long" : "Show prioritised, actionable issues across all repos. Groups by: needs response, ready to work, blocked, and needs triage." ,
"issues.flag.mine" : "Show only issues assigned to you" ,
"issues.flag.triage" : "Show only issues needing triage" ,
"issues.flag.blocked" : "Show only blocked issues" ,
"issues.flag.limit" : "Maximum issues per repo" ,
"issues.fetching" : "Fetching..." ,
"issues.no_issues" : "No open issues found" ,
"issues.category.needs_response" : "Needs Response" ,
"issues.category.ready" : "Ready to Work" ,
"issues.category.blocked" : "Blocked" ,
"issues.category.triage" : "Needs Triage" ,
"issues.hint.needs_response" : "commented recently" ,
"issues.hint.blocked" : "Waiting on dependency" ,
feat: git command, build improvements, and go fmt git-aware (#74)
* feat(go): make go fmt git-aware by default
- By default, only check changed Go files (modified, staged, untracked)
- Add --all flag to check all files (previous behaviour)
- Reduces noise when running fmt on large codebases
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat(build): minimal output by default, add missing i18n
- Default output now shows single line: "Success Built N artifacts (dir)"
- Add --verbose/-v flag to show full detailed output
- Add all missing i18n translations for build commands
- Errors still show failure reason in minimal mode
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat: add root-level `core git` command
- Create pkg/gitcmd with git workflow commands as root menu
- Export command builders from pkg/dev (AddCommitCommand, etc.)
- Commands available under both `core git` and `core dev` for compatibility
- Git commands: health, commit, push, pull, work, sync, apply
- GitHub orchestration stays in dev: issues, reviews, ci, impact
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat(qa): add docblock coverage checking
Implement docblock/docstring coverage analysis for Go code:
- New `core qa docblock` command to check coverage
- Shows compact file:line list when under threshold
- Integrate with `core go qa` as a default check
- Add --docblock-threshold flag (default 80%)
The checker uses Go AST parsing to find exported symbols
(functions, types, consts, vars) without documentation.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix: address CodeRabbit review feedback
- Fix doc comment: "status" → "health" in gitcmd package
- Implement --check flag for `core go fmt` (exits non-zero if files need formatting)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* docs: add docstrings for 100% coverage
Add documentation comments to all exported symbols:
- pkg/build: ProjectType constants
- pkg/cli: LogLevel, RenderStyle, TableStyle
- pkg/framework: ServiceFor, MustServiceFor, Core.Core
- pkg/git: GitError.Error, GitError.Unwrap
- pkg/i18n: Handler Match/Handle methods
- pkg/log: Level constants
- pkg/mcp: Tool input/output types
- pkg/php: Service constants, QA types, service methods
- pkg/process: ServiceError.Error
- pkg/repos: RepoType constants
- pkg/setup: ChangeType, ChangeCategory constants
- pkg/workspace: AddWorkspaceCommands
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* chore: standardize line endings to LF
Add .gitattributes to enforce LF line endings for all text files.
Normalize all existing files to use Unix-style line endings.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix: address CodeRabbit review feedback
- cmd_format.go: validate --check/--fix mutual exclusivity, capture stderr
- cmd_docblock.go: return error instead of os.Exit(1) for proper error handling
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix: address CodeRabbit review feedback (round 2)
- linuxkit.go: propagate state update errors, handle cmd.Wait() errors in waitForExit
- mcp.go: guard against empty old_string in editDiff to prevent runaway edits
- cmd_docblock.go: log parse errors instead of silently skipping
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-01 10:48:44 +00:00
"issues.hint.triage" : "Add labels and assignee" ,
"docblock.short" : "Check docstring coverage for Go code" ,
"docblock.long" : "Analyse Go packages for docstring coverage on exported symbols. Checks functions, types, constants, and variables." ,
"docblock.flag.threshold" : "Minimum coverage percentage required" ,
"docblock.missing_docs" : "Missing documentation:" ,
"docblock.coverage" : "Docstring coverage:" ,
"docblock.use_verbose" : "Run with -v to see missing docstrings"
2026-02-01 03:37:16 +00:00
} ,
2026-01-30 11:11:07 +00:00
"test" : {
2026-02-01 07:39:49 +00:00
"short" : "Run Go tests with coverage" ,
"long" : "Run Go tests with optional coverage reporting, race detection, and filtering." ,
"flag.json" : "Output results as JSON" ,
"flag.pkg" : "Package to test (default: ./...)" ,
"flag.race" : "Enable race detector" ,
"flag.run" : "Run only tests matching pattern" ,
"flag.short" : "Run only short tests" ,
feat(i18n): complete en_GB translations and add completeness test
Fill all 568 missing translation keys in en_GB.json (765→1357 lines):
- 97 --help description keys (collect, ci, docs, dev, php, pkg, sdk, vm)
- 471 runtime keys (labels, errors, hints, progress, status messages)
- Add common.flag.follow, common.flag.tag, common.prompt.abort
Add completeness_test.go that scans all T() calls in source code and
verifies every cmd.*/common.* key exists using ModeStrict (panics on
missing). Catches translation gaps at test time instead of showing raw
keys in the CLI.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 20:50:55 +00:00
"flag.verbose" : "Verbose output" ,
"coverage_by_package" : "Coverage by package:" ,
"error.no_go_mod" : "No go.mod found in current directory." ,
"failed_packages" : "Failed packages:" ,
"label.average" : "Average:" ,
"tests_failed" : "{{.Count}} test(s) failed."
2026-01-30 11:11:07 +00:00
} ,
"vm" : {
"short" : "LinuxKit VM management" ,
2026-02-01 07:39:49 +00:00
"long" : "LinuxKit VM management for running isolated development environments. Create, run, and manage lightweight VMs." ,
2026-01-30 14:24:23 +00:00
"run.short" : "Run a LinuxKit image or template" ,
feat(i18n): complete en_GB translations and add completeness test
Fill all 568 missing translation keys in en_GB.json (765→1357 lines):
- 97 --help description keys (collect, ci, docs, dev, php, pkg, sdk, vm)
- 471 runtime keys (labels, errors, hints, progress, status messages)
- Add common.flag.follow, common.flag.tag, common.prompt.abort
Add completeness_test.go that scans all T() calls in source code and
verifies every cmd.*/common.* key exists using ModeStrict (panics on
missing). Catches translation gaps at test time instead of showing raw
keys in the CLI.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 20:50:55 +00:00
"run.long" : "Run a LinuxKit image or pre-defined template as a lightweight VM. Supports resource allocation and SSH access." ,
"run.flag.cpus" : "Number of CPUs to allocate" ,
"run.flag.detach" : "Run VM in the background" ,
"run.flag.memory" : "Memory in MB to allocate" ,
"run.flag.name" : "Name for the VM instance" ,
"run.flag.ssh_port" : "Host port to forward to VM SSH" ,
"run.flag.template" : "Template name to use" ,
"run.flag.var" : "Template variable (key=value)" ,
2026-01-30 14:24:23 +00:00
"ps.short" : "List running VMs" ,
feat(i18n): complete en_GB translations and add completeness test
Fill all 568 missing translation keys in en_GB.json (765→1357 lines):
- 97 --help description keys (collect, ci, docs, dev, php, pkg, sdk, vm)
- 471 runtime keys (labels, errors, hints, progress, status messages)
- Add common.flag.follow, common.flag.tag, common.prompt.abort
Add completeness_test.go that scans all T() calls in source code and
verifies every cmd.*/common.* key exists using ModeStrict (panics on
missing). Catches translation gaps at test time instead of showing raw
keys in the CLI.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 20:50:55 +00:00
"ps.long" : "List all running LinuxKit VM instances with their status and resource usage." ,
"ps.flag.all" : "Show all VMs including stopped ones" ,
2026-01-30 14:24:23 +00:00
"stop.short" : "Stop a running VM" ,
feat(i18n): complete en_GB translations and add completeness test
Fill all 568 missing translation keys in en_GB.json (765→1357 lines):
- 97 --help description keys (collect, ci, docs, dev, php, pkg, sdk, vm)
- 471 runtime keys (labels, errors, hints, progress, status messages)
- Add common.flag.follow, common.flag.tag, common.prompt.abort
Add completeness_test.go that scans all T() calls in source code and
verifies every cmd.*/common.* key exists using ModeStrict (panics on
missing). Catches translation gaps at test time instead of showing raw
keys in the CLI.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 20:50:55 +00:00
"stop.long" : "Stop a running LinuxKit VM by container ID." ,
2026-01-30 14:24:23 +00:00
"logs.short" : "View VM logs" ,
feat(i18n): complete en_GB translations and add completeness test
Fill all 568 missing translation keys in en_GB.json (765→1357 lines):
- 97 --help description keys (collect, ci, docs, dev, php, pkg, sdk, vm)
- 471 runtime keys (labels, errors, hints, progress, status messages)
- Add common.flag.follow, common.flag.tag, common.prompt.abort
Add completeness_test.go that scans all T() calls in source code and
verifies every cmd.*/common.* key exists using ModeStrict (panics on
missing). Catches translation gaps at test time instead of showing raw
keys in the CLI.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 20:50:55 +00:00
"logs.long" : "View console output logs from a LinuxKit VM instance." ,
2026-01-30 14:24:23 +00:00
"exec.short" : "Execute a command in a VM" ,
feat(i18n): complete en_GB translations and add completeness test
Fill all 568 missing translation keys in en_GB.json (765→1357 lines):
- 97 --help description keys (collect, ci, docs, dev, php, pkg, sdk, vm)
- 471 runtime keys (labels, errors, hints, progress, status messages)
- Add common.flag.follow, common.flag.tag, common.prompt.abort
Add completeness_test.go that scans all T() calls in source code and
verifies every cmd.*/common.* key exists using ModeStrict (panics on
missing). Catches translation gaps at test time instead of showing raw
keys in the CLI.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 20:50:55 +00:00
"exec.long" : "Execute a command inside a running LinuxKit VM." ,
"templates.short" : "Manage LinuxKit templates" ,
"templates.long" : "List available LinuxKit templates that can be used with 'core vm run'." ,
"templates.show.short" : "Show template details" ,
"templates.show.long" : "Show the full configuration of a LinuxKit template." ,
"templates.vars.short" : "Show template variables" ,
"templates.vars.long" : "Show the configurable variables for a LinuxKit template." ,
"error.id_and_cmd_required" : "Container ID and command are required." ,
"error.id_required" : "Container ID is required." ,
"error.linuxkit_not_found" : "LinuxKit not found. Install from https://github.com/linuxkit/linuxkit" ,
"error.multiple_match" : "Multiple containers match '{{.Name}}'. Be more specific." ,
"error.no_image_found" : "No image found: {{.Name}}" ,
"error.no_match" : "No container matches '{{.Name}}'." ,
"error.template_required" : "Template name is required." ,
"hint.stop" : "Stop with: core vm stop {{.ID}}" ,
"hint.view_logs" : "View logs with: core vm logs {{.ID}}" ,
"label.building" : "Building..." ,
"label.container_stopped" : "Container stopped." ,
"label.hypervisor" : "Hypervisor:" ,
"label.name" : "Name:" ,
"label.pid" : "PID:" ,
"ps.header" : "Running VMs:" ,
"ps.no_containers" : "No containers found." ,
"ps.no_running" : "No running VMs." ,
"run.error.image_required" : "Image or template name is required." ,
"stop.stopping" : "Stopping {{.Name}}..." ,
"templates.header" : "Available templates:" ,
"templates.hint.run" : "Run with: core vm run --template {{.Name}}" ,
"templates.hint.show" : "Show details: core vm templates show {{.Name}}" ,
"templates.hint.vars" : "Show variables: core vm templates vars {{.Name}}" ,
"templates.no_templates" : "No templates found." ,
"templates.title" : "LinuxKit Templates" ,
"templates.vars.none" : "No configurable variables." ,
"templates.vars.optional" : "Optional" ,
"templates.vars.required" : "Required"
2026-02-01 05:44:46 +00:00
} ,
"monitor" : {
"short" : "Aggregate security findings from GitHub" ,
"long" : "Monitor GitHub Security Tab, Dependabot, and secret scanning for actionable findings. Aggregates results from free tier scanners (Semgrep, Trivy, Gitleaks, OSV-Scanner, Checkov, CodeQL)." ,
"flag.repo" : "Specific repository to scan" ,
"flag.severity" : "Filter by severity (critical, high, medium, low)" ,
"flag.json" : "Output as JSON for piping to other tools" ,
"flag.all" : "Scan all repos in registry" ,
"scanning" : "Scanning" ,
"found" : "Found" ,
"no_findings" : "No security findings" ,
"error.no_repos" : "No repositories to scan. Use --repo, --all, or run from a git repo" ,
"error.not_git_repo" : "Not in a git repository. Use --repo to specify one"
feat: wire release command, add tar.xz support, unified installers (#277)
* feat(cli): wire release command and add installer scripts
- Wire up `core build release` subcommand (was orphaned)
- Wire up `core monitor` command (missing import in full variant)
- Add installer scripts for Unix (.sh) and Windows (.bat)
- setup: Interactive with variant selection
- ci: Minimal for CI/CD environments
- dev: Full development variant
- go/php/agent: Targeted development variants
- All scripts include security hardening:
- Secure temp directories (mktemp -d)
- Architecture validation
- Version validation after GitHub API call
- Proper cleanup on exit
- PowerShell PATH updates on Windows (avoids setx truncation)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat(build): add tar.xz support and unified installer scripts
- Add tar.xz archive support using Borg's compress package
- ArchiveXZ() and ArchiveWithFormat() for configurable compression
- Better compression ratio than gzip for release artifacts
- Consolidate 12 installer scripts into 2 unified scripts
- install.sh and install.bat with BunnyCDN edge variable support
- Subdomains: setup.core.help, ci.core.help, dev.core.help, etc.
- MODE and VARIANT transformed at edge based on subdomain
- Installers prefer tar.xz with automatic fallback to tar.gz
- Fixed CodeRabbit issues: HTTP status patterns, tar error handling,
verify_install params, VARIANT validation, CI PATH persistence
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* chore: add build and release config files
- .core/build.yaml - cross-platform build configuration
- .core/release.yaml - release workflow configuration
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* chore: move plans from docs/ to tasks/
Consolidate planning documents in tasks/plans/ directory.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix(install): address CodeRabbit review feedback
- Add curl timeout (--max-time) to prevent hanging on slow networks
- Rename TMPDIR to WORK_DIR to avoid clobbering system env var
- Add chmod +x to ensure binary has execute permissions
- Add error propagation after subroutine calls in batch file
- Remove System32 install attempt in CI mode (use consistent INSTALL_DIR)
- Fix HTTP status regex for HTTP/2 compatibility
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat(rag): add Go RAG implementation with Qdrant + Ollama
Add RAG (Retrieval Augmented Generation) tools for storing documentation
in Qdrant vector database and querying with semantic search. This replaces
the Python tools/rag implementation with a native Go solution.
New commands:
- core rag ingest [directory] - Ingest markdown files into Qdrant
- core rag query [question] - Query vector database with semantic search
- core rag collections - List and manage Qdrant collections
Features:
- Markdown chunking by sections and paragraphs with overlap
- UTF-8 safe text handling for international content
- Automatic category detection from file paths
- Multiple output formats: text, JSON, LLM context injection
- Environment variable support for host configuration
Dependencies:
- github.com/qdrant/go-client (gRPC client)
- github.com/ollama/ollama/api (embeddings API)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat(deploy): add pure-Go Ansible executor and Coolify API integration
Implement infrastructure deployment system with:
- pkg/ansible: Pure Go Ansible executor
- Playbook/inventory parsing (types.go, parser.go)
- Full execution engine with variable templating, loops, blocks,
conditionals, handlers, and fact gathering (executor.go)
- SSH client with key/password auth and privilege escalation (ssh.go)
- 35+ module implementations: shell, command, copy, template, file,
apt, service, systemd, user, group, git, docker_compose, etc. (modules.go)
- pkg/deploy/coolify: Coolify API client wrapping Python swagger client
- List/get servers, projects, applications, databases, services
- Generic Call() for any OpenAPI operation
- pkg/deploy/python: Embedded Python runtime for swagger client integration
- internal/cmd/deploy: CLI commands
- core deploy servers/projects/apps/databases/services/team
- core deploy call <operation> [params-json]
This enables Docker-free infrastructure deployment with Ansible-compatible
playbooks executed natively in Go.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix(deploy): address linter warnings and build errors
- Fix fmt.Sprintf format verb error in ssh.go (remove unused stat command)
- Fix errcheck warnings by explicitly ignoring best-effort operations
- Fix ineffassign warning in cmd_ansible.go
All golangci-lint checks now pass for deploy packages.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* style(deploy): fix gofmt formatting
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix(deploy): use known_hosts for SSH host key verification
Address CodeQL security alert by using the user's known_hosts file
for SSH host key verification when available. Falls back to accepting
any key only when known_hosts doesn't exist (common in containerized
or ephemeral environments).
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat(ai,security,ide): add agentic MVP, security jobs, and Core IDE desktop app
Wire up AI infrastructure with unified pkg/ai package (metrics JSONL,
RAG integration), move RAG under `core ai rag`, add `core ai metrics`
command, and enrich task context with Qdrant documentation.
Add `--target` flag to all security commands for external repo scanning,
`core security jobs` for distributing findings as GitHub Issues, and
consistent error logging across scan/deps/alerts/secrets commands.
Add Core IDE Wails v3 desktop app with Angular 20 frontend, MCP bridge
(loopback-only HTTP server), WebSocket hub, and Claude Code bridge.
Production-ready with Lethean CIC branding, macOS code signing support,
and security hardening (origin validation, body size limits, URL scheme
checks, memory leak prevention, XSS mitigation).
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix: address PR review comments from CodeRabbit, Copilot, and Gemini
Fixes across 25 files addressing 46+ review comments:
- pkg/ai/metrics.go: handle error from Close() on writable file handle
- pkg/ansible: restore loop vars after loop, restore become settings,
fix Upload with become=true and no password (use sudo -n), honour
SSH timeout config, use E() helper for contextual errors, quote git
refs in checkout commands
- pkg/rag: validate chunk config, guard negative-to-uint64 conversion,
use E() helper for errors, add context timeout to Ollama HTTP calls
- pkg/deploy/python: fix exec.ExitError type assertion (was os.PathError),
handle os.UserHomeDir() error
- pkg/build/buildcmd: use cmd.Context() instead of context.Background()
for proper Ctrl+C cancellation
- install.bat: add curl timeouts, CRLF line endings, use --connect-timeout
for archive downloads
- install.sh: use absolute path for version check in CI mode
- tools/rag: fix broken ingest.py function def, escape HTML in query.py,
pin qdrant-client version, add markdown code block languages
- internal/cmd/rag: add chunk size validation, env override handling
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix(build): make release dry-run by default and remove darwin/amd64 target
Replace --dry-run (default false) with --we-are-go-for-launch (default
false) so `core build release` is safe by default. Remove darwin/amd64
from default build targets (arm64 only for macOS). Fix cmd_project.go
to use command context instead of context.Background().
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-04 00:49:57 +00:00
} ,
"rag" : {
"short" : "RAG (Retrieval Augmented Generation) tools" ,
"long" : "RAG tools for storing documentation in Qdrant vector database and querying with semantic search. Eliminates need to repeatedly remind Claude about project specifics." ,
"flag.qdrant_host" : "Qdrant server hostname" ,
"flag.qdrant_port" : "Qdrant gRPC port" ,
"flag.ollama_host" : "Ollama server hostname" ,
"flag.ollama_port" : "Ollama server port" ,
"flag.model" : "Embedding model name" ,
"ingest.short" : "Ingest markdown files into Qdrant" ,
"ingest.long" : "Ingest markdown files from a directory into Qdrant vector database. Chunks files, generates embeddings via Ollama, and stores for semantic search." ,
"ingest.flag.collection" : "Qdrant collection name" ,
"ingest.flag.recreate" : "Delete and recreate collection" ,
"ingest.flag.chunk_size" : "Characters per chunk" ,
"ingest.flag.chunk_overlap" : "Overlap between chunks" ,
"query.short" : "Query the vector database" ,
"query.long" : "Search for similar documents using semantic similarity. Returns relevant chunks ranked by score." ,
"query.flag.collection" : "Qdrant collection name" ,
"query.flag.top" : "Number of results to return" ,
"query.flag.threshold" : "Minimum similarity score (0-1)" ,
"query.flag.category" : "Filter by category" ,
"query.flag.format" : "Output format (text, json, context)" ,
"collections.short" : "List and manage collections" ,
"collections.long" : "List available collections, show statistics, or delete collections from Qdrant." ,
"collections.flag.list" : "List all collections" ,
"collections.flag.stats" : "Show collection statistics" ,
"collections.flag.delete" : "Delete a collection"
2026-01-30 11:11:07 +00:00
}
2026-01-30 01:42:53 +00:00
} ,
2026-01-30 20:51:32 +00:00
"common" : {
2026-02-01 03:55:01 +00:00
"status" : {
"dirty" : "dirty" ,
"clean" : "clean" ,
feat(i18n): complete en_GB translations and add completeness test
Fill all 568 missing translation keys in en_GB.json (765→1357 lines):
- 97 --help description keys (collect, ci, docs, dev, php, pkg, sdk, vm)
- 471 runtime keys (labels, errors, hints, progress, status messages)
- Add common.flag.follow, common.flag.tag, common.prompt.abort
Add completeness_test.go that scans all T() calls in source code and
verifies every cmd.*/common.* key exists using ModeStrict (panics on
missing). Catches translation gaps at test time instead of showing raw
keys in the CLI.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 20:50:55 +00:00
"cloning" : "Cloning..." ,
"running" : "Running" ,
"stopped" : "Stopped" ,
2026-02-01 03:55:01 +00:00
"synced" : "synced" ,
"up_to_date" : "up to date"
} ,
2026-01-30 20:51:32 +00:00
"label" : {
"done" : "Done" ,
feat: git command, build improvements, and go fmt git-aware (#74)
* feat(go): make go fmt git-aware by default
- By default, only check changed Go files (modified, staged, untracked)
- Add --all flag to check all files (previous behaviour)
- Reduces noise when running fmt on large codebases
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat(build): minimal output by default, add missing i18n
- Default output now shows single line: "Success Built N artifacts (dir)"
- Add --verbose/-v flag to show full detailed output
- Add all missing i18n translations for build commands
- Errors still show failure reason in minimal mode
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat: add root-level `core git` command
- Create pkg/gitcmd with git workflow commands as root menu
- Export command builders from pkg/dev (AddCommitCommand, etc.)
- Commands available under both `core git` and `core dev` for compatibility
- Git commands: health, commit, push, pull, work, sync, apply
- GitHub orchestration stays in dev: issues, reviews, ci, impact
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat(qa): add docblock coverage checking
Implement docblock/docstring coverage analysis for Go code:
- New `core qa docblock` command to check coverage
- Shows compact file:line list when under threshold
- Integrate with `core go qa` as a default check
- Add --docblock-threshold flag (default 80%)
The checker uses Go AST parsing to find exported symbols
(functions, types, consts, vars) without documentation.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix: address CodeRabbit review feedback
- Fix doc comment: "status" → "health" in gitcmd package
- Implement --check flag for `core go fmt` (exits non-zero if files need formatting)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* docs: add docstrings for 100% coverage
Add documentation comments to all exported symbols:
- pkg/build: ProjectType constants
- pkg/cli: LogLevel, RenderStyle, TableStyle
- pkg/framework: ServiceFor, MustServiceFor, Core.Core
- pkg/git: GitError.Error, GitError.Unwrap
- pkg/i18n: Handler Match/Handle methods
- pkg/log: Level constants
- pkg/mcp: Tool input/output types
- pkg/php: Service constants, QA types, service methods
- pkg/process: ServiceError.Error
- pkg/repos: RepoType constants
- pkg/setup: ChangeType, ChangeCategory constants
- pkg/workspace: AddWorkspaceCommands
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* chore: standardize line endings to LF
Add .gitattributes to enforce LF line endings for all text files.
Normalize all existing files to use Unix-style line endings.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix: address CodeRabbit review feedback
- cmd_format.go: validate --check/--fix mutual exclusivity, capture stderr
- cmd_docblock.go: return error instead of os.Exit(1) for proper error handling
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix: address CodeRabbit review feedback (round 2)
- linuxkit.go: propagate state update errors, handle cmd.Wait() errors in waitForExit
- mcp.go: guard against empty old_string in editDiff to prevent runaway edits
- cmd_docblock.go: log parse errors instead of silently skipping
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-01 10:48:44 +00:00
"success" : "Success" ,
2026-01-30 20:51:32 +00:00
"error" : "Error" ,
"warning" : "Warning" ,
"info" : "Info" ,
"fix" : "Fix:" ,
feat(i18n): complete en_GB translations and add completeness test
Fill all 568 missing translation keys in en_GB.json (765→1357 lines):
- 97 --help description keys (collect, ci, docs, dev, php, pkg, sdk, vm)
- 471 runtime keys (labels, errors, hints, progress, status messages)
- Add common.flag.follow, common.flag.tag, common.prompt.abort
Add completeness_test.go that scans all T() calls in source code and
verifies every cmd.*/common.* key exists using ModeStrict (panics on
missing). Catches translation gaps at test time instead of showing raw
keys in the CLI.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 20:50:55 +00:00
"image" : "Image:" ,
2026-01-30 20:51:32 +00:00
"install" : "Install:" ,
feat(i18n): complete en_GB translations and add completeness test
Fill all 568 missing translation keys in en_GB.json (765→1357 lines):
- 97 --help description keys (collect, ci, docs, dev, php, pkg, sdk, vm)
- 471 runtime keys (labels, errors, hints, progress, status messages)
- Add common.flag.follow, common.flag.tag, common.prompt.abort
Add completeness_test.go that scans all T() calls in source code and
verifies every cmd.*/common.* key exists using ModeStrict (panics on
missing). Catches translation gaps at test time instead of showing raw
keys in the CLI.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 20:50:55 +00:00
"spec" : "Spec:" ,
"started" : "Started:" ,
2026-01-30 20:51:32 +00:00
"summary" : "Summary:" ,
2026-02-01 03:37:06 +00:00
"setup" : "Setup:" ,
"config" : "Config:" ,
2026-02-01 07:39:49 +00:00
"repo" : "Repo:" ,
feat(i18n): complete en_GB translations and add completeness test
Fill all 568 missing translation keys in en_GB.json (765→1357 lines):
- 97 --help description keys (collect, ci, docs, dev, php, pkg, sdk, vm)
- 471 runtime keys (labels, errors, hints, progress, status messages)
- Add common.flag.follow, common.flag.tag, common.prompt.abort
Add completeness_test.go that scans all T() calls in source code and
verifies every cmd.*/common.* key exists using ModeStrict (panics on
missing). Catches translation gaps at test time instead of showing raw
keys in the CLI.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 20:50:55 +00:00
"template" : "Template:" ,
2026-02-01 07:39:49 +00:00
"test" : "Running tests..." ,
"package" : "Package:" ,
"coverage" : "Coverage:"
2026-01-30 20:51:32 +00:00
} ,
"flag" : {
"fix" : "Auto-fix issues where possible" ,
"diff" : "Show diff of changes" ,
feat(i18n): complete en_GB translations and add completeness test
Fill all 568 missing translation keys in en_GB.json (765→1357 lines):
- 97 --help description keys (collect, ci, docs, dev, php, pkg, sdk, vm)
- 471 runtime keys (labels, errors, hints, progress, status messages)
- Add common.flag.follow, common.flag.tag, common.prompt.abort
Add completeness_test.go that scans all T() calls in source code and
verifies every cmd.*/common.* key exists using ModeStrict (panics on
missing). Catches translation gaps at test time instead of showing raw
keys in the CLI.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 20:50:55 +00:00
"follow" : "Follow log output in real-time" ,
2026-02-01 03:37:06 +00:00
"json" : "Output as JSON" ,
2026-02-01 06:32:35 +00:00
"sarif" : "Output as SARIF for GitHub Security tab" ,
feat(i18n): complete en_GB translations and add completeness test
Fill all 568 missing translation keys in en_GB.json (765→1357 lines):
- 97 --help description keys (collect, ci, docs, dev, php, pkg, sdk, vm)
- 471 runtime keys (labels, errors, hints, progress, status messages)
- Add common.flag.follow, common.flag.tag, common.prompt.abort
Add completeness_test.go that scans all T() calls in source code and
verifies every cmd.*/common.* key exists using ModeStrict (panics on
missing). Catches translation gaps at test time instead of showing raw
keys in the CLI.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 20:50:55 +00:00
"tag" : "Container image tag" ,
2026-02-01 03:55:01 +00:00
"verbose" : "Show detailed output" ,
2026-02-01 07:39:49 +00:00
"registry" : "Path to repos.yaml registry file" ,
"coverage" : "Generate coverage report" ,
"spec" : "Path to OpenAPI specification file"
2026-01-30 20:51:32 +00:00
} ,
feat(i18n): complete en_GB translations and add completeness test
Fill all 568 missing translation keys in en_GB.json (765→1357 lines):
- 97 --help description keys (collect, ci, docs, dev, php, pkg, sdk, vm)
- 471 runtime keys (labels, errors, hints, progress, status messages)
- Add common.flag.follow, common.flag.tag, common.prompt.abort
Add completeness_test.go that scans all T() calls in source code and
verifies every cmd.*/common.* key exists using ModeStrict (panics on
missing). Catches translation gaps at test time instead of showing raw
keys in the CLI.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 20:50:55 +00:00
"prompt" : {
"abort" : "Aborted."
} ,
2026-01-30 20:51:32 +00:00
"progress" : {
"running" : "Running {{.Task}}..." ,
feat(i18n): complete en_GB translations and add completeness test
Fill all 568 missing translation keys in en_GB.json (765→1357 lines):
- 97 --help description keys (collect, ci, docs, dev, php, pkg, sdk, vm)
- 471 runtime keys (labels, errors, hints, progress, status messages)
- Add common.flag.follow, common.flag.tag, common.prompt.abort
Add completeness_test.go that scans all T() calls in source code and
verifies every cmd.*/common.* key exists using ModeStrict (panics on
missing). Catches translation gaps at test time instead of showing raw
keys in the CLI.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 20:50:55 +00:00
"checking" : "Checking {{.Item}}..." ,
"checking_updates" : "Checking for updates..."
2026-01-30 20:51:32 +00:00
} ,
"result" : {
2026-02-01 07:39:49 +00:00
"no_issues" : "No issues found" ,
"all_passed" : "All tests passed"
2026-01-30 20:51:32 +00:00
} ,
"success" : {
"completed" : "{{.Action}} successfully"
} ,
"error" : {
2026-02-01 06:32:35 +00:00
"failed" : "Failed to {{.Action}}" ,
"json_sarif_exclusive" : "--json and --sarif flags are mutually exclusive"
2026-01-30 20:51:32 +00:00
} ,
"hint" : {
feat(i18n): complete en_GB translations and add completeness test
Fill all 568 missing translation keys in en_GB.json (765→1357 lines):
- 97 --help description keys (collect, ci, docs, dev, php, pkg, sdk, vm)
- 471 runtime keys (labels, errors, hints, progress, status messages)
- Add common.flag.follow, common.flag.tag, common.prompt.abort
Add completeness_test.go that scans all T() calls in source code and
verifies every cmd.*/common.* key exists using ModeStrict (panics on
missing). Catches translation gaps at test time instead of showing raw
keys in the CLI.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 20:50:55 +00:00
"fix_deps" : "Update dependencies to fix vulnerabilities" ,
"install_with" : "Install with: {{.Command}}"
2026-02-01 06:11:24 +00:00
} ,
"count" : {
feat(i18n): complete en_GB translations and add completeness test
Fill all 568 missing translation keys in en_GB.json (765→1357 lines):
- 97 --help description keys (collect, ci, docs, dev, php, pkg, sdk, vm)
- 471 runtime keys (labels, errors, hints, progress, status messages)
- Add common.flag.follow, common.flag.tag, common.prompt.abort
Add completeness_test.go that scans all T() calls in source code and
verifies every cmd.*/common.* key exists using ModeStrict (panics on
missing). Catches translation gaps at test time instead of showing raw
keys in the CLI.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 20:50:55 +00:00
"files" : "{{.Count}} file(s)" ,
"pending" : "{{.Count}} pending" ,
2026-02-01 06:11:24 +00:00
"succeeded" : "{{.Count}} succeeded" ,
"failed" : "{{.Count}} failed" ,
2026-02-01 07:39:49 +00:00
"skipped" : "{{.Count}} skipped" ,
2026-02-08 13:25:06 +00:00
"passed" : "{{.Count}} passed" ,
"commits" : "{{.Count}} commit(s) ahead" ,
"repos_unpushed" : "{{.Count}} repo(s) with unpushed commits"
2026-01-30 20:51:32 +00:00
}
} ,
2026-01-30 11:11:07 +00:00
"error" : {
"gh_not_found" : "'gh' CLI not found. Install from https://cli.github.com/" ,
"registry_not_found" : "No repos.yaml found" ,
2026-01-30 14:24:23 +00:00
"repo_not_found" : "Repository '{{.Name}}' not found"
2026-01-30 01:42:53 +00:00
} ,
2026-01-30 11:11:07 +00:00
"lang" : {
"de" : "German" ,
"en" : "English" ,
"es" : "Spanish" ,
"fr" : "French" ,
"zh" : "Chinese"
2026-02-01 07:39:49 +00:00
} ,
"cli" : {
"pass" : "PASS" ,
2026-02-08 13:25:06 +00:00
"fail" : "FAIL" ,
"aborted" : "Aborted."
2026-01-30 11:11:07 +00:00
}
2026-01-30 01:42:53 +00:00
}