Commit graph

930 commits

Author SHA1 Message Date
c4b08f4623 Merge pull request '[agent/codex:gpt-5.3-codex-spark] Update the code against the AX (Agent Experience) design pri...' (#16) from agent/update-the-code-against-the-ax--agent-ex into dev
Some checks failed
Security Scan / security (push) Has been cancelled
2026-03-30 05:55:07 +00:00
Virgil
3bcfb589be chore: use CLI core wrappers in check output formatting
All checks were successful
Security Scan / security (push) Successful in 14s
2026-03-30 05:55:00 +00:00
Claude
e9e0eccd60
feat: upgrade to core v0.8.0-alpha.1, replace banned stdlib imports
All checks were successful
Security Scan / security (push) Successful in 13s
Replace fmt, errors, strings, path/filepath, encoding/json across 31
files. Migrate core.New() to functional-options API. Keep fmt.Sscanf,
strings.Index/Repeat/FieldsSeq, os, io (infra types).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-26 14:31:34 +00:00
e177418c90 Merge pull request '[agent/claude] Fix core/cli to unblock core/agent build. Remove core.WithNa...' (#8) from agent/fix-core-cli-to-unblock-core-agent-build into main
Some checks failed
Deploy / build (push) Failing after 5s
Security Scan / security (push) Successful in 12s
2026-03-21 22:56:27 +00:00
Snider
bcbc25974e fix(cli): resolve build errors and clean up stale API references
All checks were successful
Security Scan / security (pull_request) Successful in 18s
Remove orphaned daemon_cmd_test.go referencing undefined AddDaemonCommand/
DaemonCommandConfig symbols. Update docs to reflect current API types
(CommandSetup, core.Service). Restore .gitignore entries for dist/, .env,
and coverage artefacts. Extract appendLocales helper to deduplicate locale
registration. Fix test reset to clear registeredLocales for proper isolation.

Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-21 22:56:10 +00:00
Snider
92da6e8a73 refactor: migrate to dappco.re/go/core + Options{} API
Some checks failed
Deploy / build (push) Failing after 6s
Security Scan / security (push) Successful in 19s
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-21 20:01:25 +00:00
Snider
542698c579 fix: update for CoreGO API — s.core.App → s.core.App().Runtime
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-18 12:19:03 +00:00
Snider
85eaceec05 chore: sync dependencies for v0.3.8
Some checks failed
Deploy / build (push) Failing after 3s
Security Scan / security (push) Successful in 15s
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-17 17:55:08 +00:00
Snider
9aaa0c0707 chore: sync dependencies for v0.3.7
Some checks failed
Deploy / build (push) Failing after 4s
Security Scan / security (push) Successful in 23s
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-17 17:50:52 +00:00
Snider
0c1b74c637 feat: auto-derive i18n keys from command names (Conclave pattern)
Some checks failed
Deploy / build (push) Failing after 3s
Security Scan / security (push) Successful in 13s
commandService.applyI18n() walks registered commands and sets
Short/Long from cmd.{name}.short/long keys automatically. Downstream
packages no longer need to call i18n.T() for command descriptions —
the CLI Conclave handles it via service name derivation.

This is the Conclave pattern: services inside a sealed core.New()
auto-discover each other's capabilities via the lifecycle hooks.

Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-17 05:22:28 +00:00
Snider
91de96994a feat: re-enable go-build imports (SDK dep conflict fixed)
Some checks failed
Deploy / build (push) Failing after 4s
Security Scan / security (push) Successful in 15s
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-17 02:28:17 +00:00
Snider
5ebdc602d1 fix: defer doctor i18n.T() to AddDoctorCommands
Some checks failed
Deploy / build (push) Failing after 4s
Security Scan / security (push) Successful in 15s
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-17 02:22:04 +00:00
Snider
d67295ad2a fix: attach commands after Core startup, disable go-build SDK conflict
Some checks failed
Deploy / build (push) Failing after 4s
Security Scan / security (push) Successful in 14s
Commands now attach AFTER i18n service starts — translations resolve.
go-build imports commented out until kin-openapi dep conflict is fixed.

Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-17 02:00:43 +00:00
Snider
7e7b83cd70 feat: feed RegisteredLocales into i18n ExtraFS
Some checks failed
Deploy / build (push) Failing after 3s
Security Scan / security (push) Successful in 13s
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-17 01:45:41 +00:00
Snider
ee7e9d1abf feat: RegisterCommands accepts locale FS for automatic translation loading
Some checks failed
Deploy / build (push) Failing after 4s
Security Scan / security (push) Successful in 15s
Both WithCommands() and RegisterCommands() now accept an optional
fs.FS for translations. The CLI collects them via RegisteredLocales()
and the i18n service loads them on startup.

Packages just pass their embed.FS — no i18n import needed:
  cli.RegisterCommands(AddDevCommands, locales.FS)

Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-17 01:35:04 +00:00
Snider
bf994fab17 feat: embed CLI locale files, wire i18n ExtraFS
Some checks failed
Deploy / build (push) Failing after 7s
Security Scan / security (push) Successful in 20s
- Added locales/en.json with 90 translation keys for doctor, pkg commands
- Main() embeds CLI locales automatically
- MainWithLocales() accepts additional FSSource for consuming binaries
- Ecosystem packages can ship their own locale files

Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-17 00:28:52 +00:00
Snider
77c7d19402 chore: sync dependencies for v0.3.6
Some checks failed
Deploy / build (push) Failing after 5s
Security Scan / security (push) Successful in 20s
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-16 22:20:25 +00:00
Snider
e58d804779 chore: update go-i18n v0.1.5, go-crypt v0.1.8
Some checks failed
Deploy / build (push) Failing after 4s
Security Scan / security (push) Successful in 12s
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-16 19:23:41 +00:00
Snider
417c7cbbf4 fix(cmd/core): update ecosystem deps, fix cross-compilation
Some checks failed
Deploy / build (push) Failing after 3s
Security Scan / security (push) Successful in 13s
go-devops v0.0.3→v0.1.9, go-build v0.2.0→v0.2.3, lint v0.3.0→v0.3.2.
Resolves stale core/go/pkg/* import paths. Binary cross-compiles
with GOWORK=off CGO_ENABLED=0.

Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-16 16:43:57 +00:00
Snider
1dd0cfb79d feat(cmd/core): restore ecosystem commands in binary sub-module
Some checks failed
Deploy / build (push) Failing after 3s
Security Scan / security (push) Successful in 14s
Ecosystem imports (go-devops, go-build, go-scm, lint, go-crypt) added
back to cmd/core/main.go. Library go.mod stays clean (1 forge dep).
Binary gets full toolchain via workspace build.

Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-16 16:40:17 +00:00
Snider
2efcbd59ec refactor: move I18nService to go-i18n, simplify log wrapper
Some checks failed
Deploy / build (push) Failing after 3s
Security Scan / security (push) Successful in 13s
I18nService now lives in go-i18n as NewCoreService() — any binary can
use it without importing cli. Log convenience functions use go-log
directly. Removed LogService/NewLogService/daemon_cmd wrappers.

Root go.mod: 1 direct forge dep (core/go).

Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-16 16:24:12 +00:00
Snider
55b556d1af refactor: split library from binary, remove ecosystem commands
Some checks failed
Deploy / build (push) Failing after 3s
Security Scan / security (push) Successful in 13s
core/cli is now a pure library (pkg/cli). The binary moves to
cmd/core/ as a separate sub-module with its own go.mod.

Removed from binary: gocmd (→ lint/go-build), service (→ go-process),
session (→ go-session), module (→ go-scm), plugin (→ go-scm).
Removed from framework: go-crypt, workspace, daemon_cmd.

Root go.mod: 1 direct forge dep (core/go). Cross-compiles CGO_ENABLED=0.

Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-16 16:14:40 +00:00
Snider
7e2c7cd2f6 fix: remove ecosystem imports, fix module installer signature
Some checks failed
Deploy / build (push) Failing after 4s
Security Scan / security (push) Successful in 13s
Strip 21 blank imports that dragged go-ml, go-devops, go-build, etc.
into the CLI binary. core CLI should only have its own commands.
Fixes marketplace.NewInstaller call to match current signature.

Direct deps: core/go only (was: 22 forge packages).
Binary: 24MB (was: ~80MB). Cross-compiles with CGO_ENABLED=0.

Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-16 15:56:43 +00:00
Snider
c6f9f41e0b chore: update dependencies
Some checks failed
Deploy / build (push) Failing after 4s
Security Scan / security (push) Successful in 19s
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-15 15:43:33 +00:00
Snider
614bc46d24 chore: sync go.mod dependencies
Some checks failed
Deploy / build (push) Failing after 3s
Security Scan / security (push) Successful in 12s
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-15 15:28:58 +00:00
Snider
09b851ffd3 chore: add .core/ and .idea/ to .gitignore
Some checks failed
Deploy / build (push) Failing after 4s
Security Scan / security (push) Successful in 17s
2026-03-15 10:17:49 +00:00
Snider
5c3c4e0f35 fix: update stale import paths and dependency versions from extraction
Some checks failed
Deploy / build (push) Failing after 4s
Security Scan / security (push) Successful in 13s
Resolve stale forge.lthn.ai/core/cli v0.1.0 references (tag never existed,
earliest is v0.0.1) and regenerate go.sum via workspace-aware go mod tidy.

Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-14 13:38:58 +00:00
Snider
bde3b27bd5 refactor: update import path from go-config to core/config
Some checks failed
Deploy / build (push) Failing after 4s
Security Scan / security (push) Successful in 13s
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-14 10:23:11 +00:00
Snider
cc82c9a6e8 refactor(api): update import path from go-api to core/api
Some checks failed
Deploy / build (push) Failing after 4s
Security Scan / security (push) Successful in 13s
Part of the polyglot merge — forge.lthn.ai/core/go-api is now
forge.lthn.ai/core/api.

Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-14 10:10:47 +00:00
Snider
ae5ebf2ff2 docs: remove completed plan files
Some checks failed
Deploy / build (push) Failing after 4s
Security Scan / security (push) Failing after 12m56s
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-14 08:20:08 +00:00
Snider
135bb2f126 docs: add CLAUDE.md project instructions
Some checks failed
Deploy / build (push) Failing after 3s
Security Scan / security (push) Successful in 14s
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-13 13:38:01 +00:00
Snider
7be4e243f2 docs: add human-friendly documentation
Some checks failed
Deploy / build (push) Failing after 4s
Security Scan / security (push) Failing after 13s
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-11 13:02:39 +00:00
Snider
76cd3a5306 refactor: code quality improvements from Gemini review
Some checks failed
Deploy / build (push) Failing after 4s
Security Scan / security (push) Successful in 13s
- Split frame.go: extract built-in components to frame_components.go
- Replace custom indexOf with strings.Index in frame_test.go
- Make prompt.go testable: accept io.Reader via SetStdin, add tests
- Decompose runGoQA: extract emitQAJSON and emitQASummary helpers
- DRY: centralise loadConfig into cmd/config/cmd.go
- Remove hardcoded MACOSX_DEPLOYMENT_TARGET from test/fuzz/cov commands
- Add error assertions to coverage_test.go

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 15:29:44 +00:00
Snider
48c3f08bcb fix: use Signal(0) for process polling in daemonRunStop
Some checks failed
Deploy / build (push) Failing after 3s
Security Scan / security (push) Successful in 12s
Consistent with cmd/service stopDaemon — polls process directly
instead of PID file removal to avoid PID reuse false positives.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 15:16:20 +00:00
Snider
79e6587d8a fix: poll process via Signal(0) in stopDaemon for PID reuse safety
Some checks failed
Deploy / build (push) Failing after 4s
Security Scan / security (push) Successful in 11s
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-09 15:10:48 +00:00
Snider
fd8cd31b76 feat: add core start/stop/list/restart for manifest-driven daemons
Some checks failed
Deploy / build (push) Failing after 3s
Security Scan / security (push) Successful in 13s
Reads .core/manifest.yaml, resolves daemon specs, and manages lifecycle
via the go-process registry (~/.core/daemons/). Supports health checks,
detached process launch, and per-project daemon tracking.

Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-09 14:58:21 +00:00
Snider
10a1c8ce07 refactor: remove daemon types moved to go-process, keep Mode/DetectMode
Some checks failed
Deploy / build (push) Failing after 3s
Security Scan / security (push) Successful in 20s
Remove PIDFile, HealthServer, Daemon, DaemonOptions, HealthCheck,
Run, and RunWithTimeout from daemon.go — all now live in go-process.
Retain Mode type (ModeInteractive/ModePipe/ModeDaemon), DetectMode(),
IsTTY(), IsStdinTTY(), and IsStderrTTY() as CLI-specific helpers.

Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-09 14:14:54 +00:00
Snider
d6cea1dffe feat: add generic AddDaemonCommand with go-process daemon types
Provides a reusable daemon CLI command builder that registers
start/stop/status/run subcommands. Consumers (go-ai, ide, etc.)
call AddDaemonCommand(root, config) with a RunForeground callback
for their business logic. Uses go-process for PID file, health
server, and daemon lifecycle management.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 14:05:16 +00:00
Snider
de579ad01d feat: add RangeArgs positional arg validator
Some checks failed
Deploy / build (push) Failing after 3s
Security Scan / security (push) Successful in 13s
Wraps cobra.RangeArgs for parity with ExactArgs, MinimumNArgs,
MaximumNArgs — allows go-devops to drop its direct cobra import.

Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-09 12:05:05 +00:00
Snider
e9383a33b2 chore: sync go.mod dependencies
Some checks failed
Deploy / build (push) Failing after 3s
Security Scan / security (push) Successful in 13s
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-06 15:22:11 +00:00
Snider
4f1808339d chore: remove Taskfile, .core/build.yaml is the build config
Some checks failed
Deploy / build (push) Failing after 4s
Security Scan / security (push) Successful in 17s
All tasks were already wrappers around `core` commands.
Build configuration lives in .core/build.yaml.

Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-06 14:45:59 +00:00
Snider
aa83cf77cc docs: add ecosystem overview and historical design plans
Some checks failed
Deploy / build (push) Failing after 3s
Security Scan / security (push) Successful in 19s
Moved from core/go during docs cleanup — these belong with the CLI
that orchestrates the ecosystem, not the DI framework.

- ecosystem.md: full module inventory and dependency graph
- 3 active plans (authentik-traefik, core-help design/plan)
- 13 completed design plans (MCP, go-api, cli-meta, go-forge, etc.)

Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-06 14:24:38 +00:00
Snider
37a8ae8d31 refactor: swap pkg/framework imports to pkg/core
Some checks failed
Deploy / build (push) Failing after 4s
Security Scan / security (push) Successful in 19s
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-06 14:10:55 +00:00
Snider
7f555c6f8a feat: absorb gocmd from core/go
Some checks failed
Deploy / build (push) Failing after 3s
Security Scan / security (push) Successful in 13s
Move Go dev commands (test, fmt, lint, fuzz, qa, tools) into cli.
core/cli is now the sole producer of the 'core' binary.

Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-06 13:58:40 +00:00
Snider
f7d72c843b refactor: swap pkg imports to standalone modules
Some checks failed
Deploy / build (push) Failing after 3s
Security Scan / security (push) Successful in 16s
- pkg/session → go-session (ParseTranscript now returns ParseStats)
- pkg/workspace → go-io/workspace
- pkg/manifest,marketplace,plugin,repos → go-scm (from prior session)

Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-06 13:48:07 +00:00
Snider
4f1d9a5c3b refactor: swap pkg/{io,log} imports to go-io/go-log
Some checks failed
Deploy / build (push) Failing after 3s
Security Scan / security (push) Successful in 12s
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-06 12:23:33 +00:00
Snider
71cf86c02e refactor: use core/go-help module instead of core/go/pkg/help
Some checks failed
Deploy / build (push) Failing after 3s
Security Scan / security (push) Successful in 12s
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-06 09:11:59 +00:00
Snider
945be23adc refactor: use core/go-i18n module instead of core/go/pkg/i18n
Some checks failed
Deploy / build (push) Failing after 4s
Security Scan / security (push) Successful in 12s
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-06 09:09:06 +00:00
Snider
ea7d744cce chore: bump forge.lthn.ai dep versions to latest tags
Some checks failed
Deploy / build (push) Failing after 5s
Security Scan / security (push) Successful in 26s
Co-Authored-By: Virgil <virgil@lethean.io>
2026-02-26 05:35:05 +00:00
Claude
cfdc8d3426
docs: archive completed plans
Some checks failed
Deploy / build (push) Failing after 3s
Security Scan / security (push) Successful in 20s
Archive 3 completed plan files to docs/plans/completed/:

- core-ide-job-runner-design: All components (poller, dispatcher, journal,
  6 handlers, headless/desktop mode) were implemented and operational.
  Code extracted to core/ide and core/go during Feb 2026 monorepo split.

- bugseti-hub-service-design + plan: All 8 Go-side tasks implemented
  (config fields, HubService types, HTTP helpers, AutoRegister, write ops,
  read ops, pending queue, main.go wiring). Code extracted to core/bugseti
  on 16 Feb 2026.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 18:09:12 +00:00