refactor(cli): restructure cmd packages into subdirectories
- Move CLI commands into subdirectories matching command hierarchy:
dev/, go/, php/, build/, ci/, sdk/, pkg/, vm/, docs/, setup/, doctor/, test/, ai/
- Create shared/ package for common styles and utilities
- Add new `core ai` root command with claude subcommand
- Update package declarations and imports across all files
- Create commands.go entry points for each package
- Remove GUI-related files (moved to core-gui repo)
This makes the filesystem structure match the CLI command structure,
improving context capture and code organization.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 18:02:43 +00:00
|
|
|
// Package gocmd provides Go development commands.
|
|
|
|
|
//
|
|
|
|
|
// Note: Package named gocmd because 'go' is a reserved keyword.
|
|
|
|
|
package gocmd
|
2026-01-29 12:22:01 +00:00
|
|
|
|
|
|
|
|
import (
|
2026-02-16 00:30:41 +00:00
|
|
|
"forge.lthn.ai/core/cli/pkg/cli"
|
|
|
|
|
"forge.lthn.ai/core/cli/pkg/i18n"
|
2026-01-29 12:22:01 +00:00
|
|
|
)
|
|
|
|
|
|
refactor(cli): restructure cmd packages into subdirectories
- Move CLI commands into subdirectories matching command hierarchy:
dev/, go/, php/, build/, ci/, sdk/, pkg/, vm/, docs/, setup/, doctor/, test/, ai/
- Create shared/ package for common styles and utilities
- Add new `core ai` root command with claude subcommand
- Update package declarations and imports across all files
- Create commands.go entry points for each package
- Remove GUI-related files (moved to core-gui repo)
This makes the filesystem structure match the CLI command structure,
improving context capture and code organization.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 18:02:43 +00:00
|
|
|
// Style aliases for shared styles
|
|
|
|
|
var (
|
2026-01-30 10:32:05 +00:00
|
|
|
successStyle = cli.SuccessStyle
|
|
|
|
|
errorStyle = cli.ErrorStyle
|
|
|
|
|
dimStyle = cli.DimStyle
|
refactor(cli): restructure cmd packages into subdirectories
- Move CLI commands into subdirectories matching command hierarchy:
dev/, go/, php/, build/, ci/, sdk/, pkg/, vm/, docs/, setup/, doctor/, test/, ai/
- Create shared/ package for common styles and utilities
- Add new `core ai` root command with claude subcommand
- Update package declarations and imports across all files
- Create commands.go entry points for each package
- Remove GUI-related files (moved to core-gui repo)
This makes the filesystem structure match the CLI command structure,
improving context capture and code organization.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 18:02:43 +00:00
|
|
|
)
|
|
|
|
|
|
2026-01-29 12:22:01 +00:00
|
|
|
// AddGoCommands adds Go development commands.
|
2026-01-31 11:39:19 +00:00
|
|
|
func AddGoCommands(root *cli.Command) {
|
|
|
|
|
goCmd := &cli.Command{
|
2026-01-30 00:47:54 +00:00
|
|
|
Use: "go",
|
feat(i18n): add translation keys to all CLI commands
Replace hardcoded strings with i18n.T() calls across all cmd/* packages:
- ai, build, ci, dev, docs, doctor, go, php, pkg, sdk, setup, test, vm
Adds 500+ translation keys to en.json for command descriptions,
flag descriptions, labels, messages, and error strings.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-30 02:37:57 +00:00
|
|
|
Short: i18n.T("cmd.go.short"),
|
|
|
|
|
Long: i18n.T("cmd.go.long"),
|
2026-01-30 00:47:54 +00:00
|
|
|
}
|
2026-01-29 12:22:01 +00:00
|
|
|
|
2026-01-30 00:47:54 +00:00
|
|
|
root.AddCommand(goCmd)
|
2026-01-30 22:29:20 +00:00
|
|
|
addGoQACommand(goCmd)
|
2026-01-29 12:22:01 +00:00
|
|
|
addGoTestCommand(goCmd)
|
2026-01-29 13:07:46 +00:00
|
|
|
addGoCovCommand(goCmd)
|
2026-01-29 12:22:01 +00:00
|
|
|
addGoFmtCommand(goCmd)
|
|
|
|
|
addGoLintCommand(goCmd)
|
2026-01-29 13:00:55 +00:00
|
|
|
addGoInstallCommand(goCmd)
|
2026-01-29 12:22:01 +00:00
|
|
|
addGoModCommand(goCmd)
|
|
|
|
|
addGoWorkCommand(goCmd)
|
refactor(core): decompose Core into serviceManager + messageBus (#282)
* refactor(core): decompose Core into serviceManager + messageBus (#215)
Extract two focused, unexported components from the Core "god object":
- serviceManager: owns service registry, lifecycle tracking (startables/
stoppables), and service lock
- messageBus: owns IPC action dispatch, query handling, and task handling
All public API methods on Core become one-line delegation wrappers.
Zero consumer changes — no files outside pkg/framework/core/ modified.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix(core): remove unused fields from test struct
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix(core): address review feedback from Gemini and Copilot
- Move locked check inside mutex in registerService to fix TOCTOU race
- Add mutex guards to enableLock and applyLock methods
- Replace fmt.Errorf with errors.Join in action() for correct error
aggregation (consistent with queryAll and lifecycle methods)
- Add TestMessageBus_Action_Bad for error aggregation coverage
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* ci(workflows): bump host-uk/build from v3 to v4
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* ci(workflows): replace Wails build with Go CLI build
The build action doesn't yet support Wails v3. Comment out the GUI
build step and use host-uk/build/actions/setup/go for Go toolchain
setup with a plain `go build` for the CLI binary.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix(container): check context before select in Stop to fix flaky test
Stop() now checks ctx.Err() before entering the select block. When a
pre-cancelled context is passed, the select could non-deterministically
choose <-done over <-ctx.Done() if the process had already exited,
causing TestLinuxKitManager_Stop_Good_ContextCancelled to fail on CI.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix(ci): trim CodeQL matrix to valid languages
Remove javascript-typescript and actions from CodeQL matrix — this
repo contains only Go and Python. Invalid languages blocked SARIF
upload and prevented merge.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat(go): add `core go fuzz` command and wire into QA
- New `core go fuzz` command discovers Fuzz* targets and runs them
with configurable --duration (default 10s per target)
- Fuzz added to default QA checks with 5s burst duration
- Seed fuzz targets for core package: FuzzE (error constructor),
FuzzServiceRegistration, FuzzMessageDispatch
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* ci(codeql): add workflow_dispatch trigger for manual runs
Allows manual triggering of CodeQL when the automatic pull_request
trigger doesn't fire.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* ci(codeql): remove workflow in favour of default setup
CodeQL default setup is now enabled via repo settings for go and
python. The workflow-based approach uploaded results as "code quality"
rather than "code scanning", which didn't satisfy the code_scanning
ruleset requirement. Default setup handles this natively.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* ci(workflows): add explicit permissions to all workflows
- agent-verify: add issues: write (was missing, writes comments/labels)
- ci: add contents: read (explicit least-privilege)
- coverage: add contents: read (explicit least-privilege)
All workflows now declare permissions explicitly. Repo default is
read-only, so workflows without a block silently lacked write access.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* ci(workflows): replace inline logic with org reusable workflow callers
agent-verify.yml and auto-project.yml now delegate to centralised
reusable workflows in host-uk/.github, reducing per-repo duplication.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-04 13:40:16 +00:00
|
|
|
addGoFuzzCommand(goCmd)
|
2026-01-29 12:22:01 +00:00
|
|
|
}
|