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>
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>
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>
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>
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>
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>
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>
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>
Move frame-bubbletea design and plan to docs/plans/completed/ with
completion summary. Frame now implements tea.Model with full bubbletea
lifecycle.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add Int64Flag and DurationFlag to the flag helper set for commands
needing int64 seeds and time.Duration intervals. Remove NewPassthrough
which enabled the anti-pattern of bypassing cobra flag parsing with
stdlib flag.FlagSet.
Co-Authored-By: Virgil <virgil@lethean.io>
Delete plans that exist as canonical copies in core repo:
- core-ide-job-runner-plan (canonical in core)
- mcp-integration (canonical in core)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Main() now accepts variadic framework.Option args, allowing commands
to register through the Core lifecycle via WithCommands(). This matches
the pattern from core/go and enables LEM and other consumers to use
the same API.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Move pkg/cli from core/go to core/cli. Includes Frame AppShell,
Stream, TaskTracker, Tree, Rich Table. Update imports to v0.0.1
tagged deps and fix openpgp import path for go-crypt split.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Replace init() + cli.RegisterCommands() with cli.WithCommands() passed
to cli.Main(). Commands now register as framework services and receive
the root command during OnStartup — no global state, no blank imports.
Co-Authored-By: Virgil <virgil@lethean.io>
Remove: Makefile, infra.yaml, GEMINI.md, AUDIT-DEPENDENCIES.md,
ISSUES_TRIAGE.md, github-projects-recovery.md
Update install.sh and install.bat to use forge.lthn.ai/core/cli
instead of dead github.com/host-uk/core.
Co-Authored-By: Virgil <virgil@lethean.io>