4dfbddf11f
Merge pull request 'chore: Go 1.26 modernization' ( #7 ) from chore/go-1.26-modernization into main
Deploy / build (push) Waiting to run
Security Scan / security (push) Waiting to run
2026-02-24 18:01:45 +00:00
Claude
0941ba865f
chore: use min()/max() builtins (Go 1.21+)
...
Security Scan / security (pull_request) Successful in 23s
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 16:27:11 +00:00
Claude
63a73a9852
chore: sort.Slice → slices.SortFunc
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 16:25:54 +00:00
Claude
c2a57f2227
chore: fmt.Errorf(static) → errors.New
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 16:25:14 +00:00
Claude
178e49b174
chore: replace interface{} with any (Go 1.18+ alias)
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 16:21:49 +00:00
Claude
800223757c
docs: archive completed frame-bubbletea plan
...
Deploy / build (push) Failing after 5s
Security Scan / security (push) Successful in 19s
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>
2026-02-24 13:51:21 +00:00
Snider
ced9a7037f
chore: bump forge.lthn.ai dep versions to latest tags
...
Deploy / build (push) Failing after 6s
Security Scan / security (push) Successful in 30s
Co-Authored-By: Virgil <virgil@lethean.io>
2026-02-23 06:49:51 +00:00
Snider
bddea677c7
chore: add Go repo norms (badges, contributing, lint, taskfile, editorconfig)
...
Deploy / build (push) Waiting to run
Security Scan / security (push) Waiting to run
Co-Authored-By: Virgil <virgil@lethean.io>
2026-02-23 06:45:56 +00:00
Snider
2ded0002fc
chore: refresh go.sum after upstream tag updates
...
Security Scan / security (push) Waiting to run
Deploy / build (push) Has been cancelled
Co-Authored-By: Virgil <virgil@lethean.io>
2026-02-23 06:35:19 +00:00
Snider
fa3a7bcd83
feat(cli): add Go 1.26 iterators and modernise idioms
...
Deploy / build (push) Failing after 4s
Security Scan / security (push) Successful in 16s
- Add Children() iter.Seq on TreeNode for range-based traversal
- Add RegisteredCommands() iter.Seq on command registry (mutex-safe)
- Add Regions()/Slots() iterators on Composite layout
- Add Tasks()/Snapshots() iterators on TaskTracker (mutex-safe)
- Use strings.FieldsSeq, strings.SplitSeq in parseMultiSelection
- Use range-over-int where applicable
Co-Authored-By: Gemini <noreply@google.com>
Co-Authored-By: Virgil <virgil@lethean.io>
2026-02-23 04:57:24 +00:00
Snider
38765962f8
feat(cli): add Int64Flag, DurationFlag helpers; remove NewPassthrough
...
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>
2026-02-23 03:32:39 +00:00
Snider
0006650a10
docs: remove duplicate plan files
...
Deploy / build (push) Failing after 4s
Security Scan / security (push) Successful in 18s
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>
2026-02-22 23:46:24 +00:00
Claude
9b568bd921
chore: refresh go.sum after upstream tag updates
...
Deploy / build (push) Failing after 5s
Security Scan / security (push) Successful in 17s
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-22 23:36:25 +00:00
Snider
5500c3912c
feat(cli): add WithCommands lifecycle pattern for command registration
...
Deploy / build (push) Failing after 4s
Security Scan / security (push) Successful in 19s
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>
2026-02-22 23:01:31 +00:00
Claude
e360115b66
chore: sync workspace dependency versions
...
Deploy / build (push) Failing after 4s
Security Scan / security (push) Successful in 17s
Run go work sync to align dependency versions across workspace.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-22 21:41:04 +00:00
Claude
73723b6fb9
docs: add Frame bubbletea upgrade design and implementation plan
...
Deploy / build (push) Failing after 3s
Security Scan / security (push) Successful in 16s
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-22 21:23:04 +00:00
Claude
f54876abb5
test(frame): add message routing edge case tests
2026-02-22 21:21:11 +00:00
Claude
cf6e4700c9
test(frame): add Navigate/Back tests with FrameModel
2026-02-22 21:20:47 +00:00
Claude
d540e5706b
test(frame): add spatial focus navigation tests
2026-02-22 21:20:24 +00:00
Claude
96b2cb6547
refactor(frame): unify String() with View() via viewLocked()
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-22 21:18:55 +00:00
Claude
1c6e910251
feat(frame): replace raw ANSI runLive with tea.Program
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-22 21:16:48 +00:00
Claude
331bcd564d
feat(frame): implement tea.Model (Init, Update, View) with lipgloss layout
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-22 21:12:32 +00:00
Claude
acfbc2aaee
feat(frame): add focus management fields, Focused(), Focus(), WithKeyMap()
2026-02-22 21:07:32 +00:00
Claude
02e8343ee5
feat(frame): add KeyMap with default bindings
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-22 21:03:50 +00:00
Claude
aa5cfc312d
feat(frame): add FrameModel interface and modelAdapter
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-22 21:02:53 +00:00
Claude
762eadd736
deps: add bubbletea and lipgloss for Frame upgrade
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-22 21:00:18 +00:00
Claude
6a8bd92189
feat: add pkg/cli with TUI components ( #14 , #15 )
...
Deploy / build (push) Failing after 4s
Security Scan / security (push) Successful in 15s
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>
2026-02-22 20:42:00 +00:00
Snider
7303ba6f23
refactor: register commands through Core framework lifecycle
...
Deploy / build (push) Failing after 4s
Security Scan / security (push) Successful in 18s
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>
2026-02-21 22:08:01 +00:00
Snider
800bb91601
refactor: remove ecosystem repo imports from CLI
...
Deploy / build (push) Failing after 3s
Security Scan / security (push) Successful in 18s
CLI now only includes its own local commands.
Co-Authored-By: Virgil <virgil@lethean.io>
2026-02-21 21:48:49 +00:00
Snider
39d247ec9e
style: clean up main.go imports
...
Deploy / build (push) Failing after 3s
Security Scan / security (push) Successful in 15s
Co-Authored-By: Virgil <virgil@lethean.io>
2026-02-21 21:48:07 +00:00
Snider
b6468b8e6f
refactor: move 9 cmd packages to ecosystem repos
...
Deploy / build (push) Failing after 3s
Security Scan / security (push) Successful in 15s
- cmd/go → core/go cmd/gocmd
- cmd/dev, setup, qa, docs, gitcmd, monitor → go-devops
- cmd/lab → go-ai
- cmd/workspace → go-agentic
CLI now imports commands from ecosystem repos via blank imports.
Remaining local: config, doctor, help, module, pkgcmd, plugin, session.
Co-Authored-By: Virgil <virgil@lethean.io>
2026-02-21 21:46:24 +00:00
Snider
a9fe9fe04b
refactor: move core-app, updater, vanity-import, community out of CLI
...
Deploy / build (push) Failing after 3s
Security Scan / security (push) Successful in 15s
- cmd/core-app/ → core framework repo (workspace module)
- cmd/updater/ → go-devops
- cmd/vanity-import/ → go-devops
- cmd/community/ → go-devops
- Remove stale Taskfile tasks for moved products (ide, app, bugseti)
Co-Authored-By: Virgil <virgil@lethean.io>
2026-02-21 21:33:15 +00:00
Snider
1b99ea22f1
chore: remove stale docs, update installers to Forge
...
Deploy / build (push) Failing after 3s
Security Scan / security (push) Successful in 13s
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>
2026-02-21 21:29:21 +00:00
Snider
fb52e03f50
chore: remove duplicate Taskfile.yaml
...
Deploy / build (push) Failing after 4s
Security Scan / security (push) Successful in 13s
Taskfile.yml has the full config; .yaml was a stale 3-line duplicate.
Co-Authored-By: Virgil <virgil@lethean.io>
2026-02-21 21:25:34 +00:00
Snider
ad38551b4c
chore: remove mkdocs.yml and stale test artifacts
...
Deploy / build (push) Failing after 3s
Security Scan / security (push) Successful in 15s
Co-Authored-By: Virgil <virgil@lethean.io>
2026-02-21 21:24:30 +00:00
Snider
30311db9ea
refactor: move scripts to go-ml and go-agent
...
Deploy / build (push) Failing after 4s
Security Scan / security (push) Failing after 8s
- setup-ubuntu.sh → go-ml/scripts/
- agent-runner.sh, agent-setup.sh, gemini-batch-runner.sh, ethics-ab/ → go-agent/scripts/
Co-Authored-By: Virgil <virgil@lethean.io>
2026-02-21 21:20:12 +00:00
Snider
5fc0c89542
refactor: move agent configs and CI pipelines to proper repos
...
Deploy / build (push) Failing after 4s
Security Scan / security (push) Successful in 15s
- .claude/, .gemini/ → go-agent (agent settings)
- .woodpecker/ → go-devops (Woodpecker CI pipelines)
Co-Authored-By: Virgil <virgil@lethean.io>
2026-02-21 21:18:32 +00:00
Snider
236c498e76
refactor: move playbooks, plans, and RAG tools to proper repos
...
Deploy / build (push) Failing after 4s
Security Scan / security (push) Successful in 15s
- playbooks/ → go-devops/playbooks/ (Ansible playbooks)
- tasks/plans/ → go-devops/docs/plans/ (design/impl docs)
- tools/rag/ → go-rag/tools/rag/ (Python RAG scripts)
Co-Authored-By: Virgil <virgil@lethean.io>
2026-02-21 21:16:50 +00:00
Snider
260dca0999
refactor: move PHP docker files to core-php, keep only CLI Dockerfile
...
Deploy / build (push) Failing after 4s
Security Scan / security (push) Successful in 14s
Move Dockerfile.app, Dockerfile.web, nginx/, php/, and docker-compose
to core-php where they belong. Promote Dockerfile.core to root Dockerfile.
Simplify deploy workflow to only build the CLI image.
Co-Authored-By: Virgil <virgil@lethean.io>
2026-02-21 21:14:28 +00:00
Snider
c84ce5265f
refactor(ci): use reusable docker-publish workflow, switch to Docker Hub
...
Deploy / Test (push) Failing after 1s
Deploy / Build App Image (push) Has been skipped
Deploy / Build Web Image (push) Has been skipped
Deploy / Build Core Image (push) Has been skipped
Deploy / Deploy to Production (push) Has been skipped
Security Scan / security (push) Successful in 16s
Replace inline docker build/push jobs with shared workflow from go-devops.
Add proper multi-stage Dockerfile.core (was inline heredoc).
Switch registry from dappco.re/osi to docker.io/lthn/.
Requires org secrets: REGISTRY_USER, REGISTRY_TOKEN
Co-Authored-By: Virgil <virgil@lethean.io>
2026-02-21 21:04:44 +00:00
Snider
f72a7f603f
chore(ci): use reusable security scan from go-devops
...
Deploy / Test (push) Failing after 1s
Deploy / Build App Image (push) Has been skipped
Deploy / Build Web Image (push) Has been skipped
Security Scan / security (push) Successful in 21s
Deploy / Build Core Image (push) Failing after 1m42s
Deploy / Deploy to Production (push) Has been skipped
Replace inline govulncheck/gitleaks/trivy with shared workflow call.
Co-Authored-By: Virgil <virgil@lethean.io>
2026-02-21 21:02:37 +00:00
Snider
4e76e96039
refactor: remove external repo imports and clean .core/
...
Deploy / Test (push) Failing after 2s
Deploy / Build App Image (push) Has been skipped
Deploy / Build Web Image (push) Has been skipped
Deploy / Build Core Image (push) Failing after 2m8s
Deploy / Deploy to Production (push) Has been skipped
Security Scan / Secret Detection (push) Successful in 13s
Security Scan / Dependency & Config Scan (push) Successful in 19s
Security Scan / Go Vulnerability Check (push) Successful in 1m26s
Remove all external blank imports from main.go (go-ai, go-api, go-crypt,
go-devops, go-ml, go-netops, go-scm) and delete cmd/ai/. Business logic
moved to proper repos: go-agent, go-agentic, go-ai.
Clean .core/ — remove LinuxKit VM templates, Claude Code plugin, and
ephemeral issue plans. Keep only CLI build/release config.
Drops 504 lines from go.mod/go.sum. CLI no longer pulls ollama, qdrant,
duckdb, or other ML dependencies into its binary or security scan scope.
Co-Authored-By: Virgil <virgil@lethean.io>
2026-02-21 20:51:24 +00:00
Snider
6292fa2c77
fix(ci): harden security scan and Dockerfiles
...
- Upgrade Go to 1.26, FrankenPHP to v1.11.2 (CVE-2026-24894)
- Add non-root USER to all Dockerfiles (Trivy misconfig)
- Upgrade gitleaks to v8.24.3 with arch detection
Co-Authored-By: Virgil <virgil@lethean.io>
2026-02-21 20:51:14 +00:00
Snider
74c61f3698
fix: resolve vet warnings and remove stale workflows
...
Deploy / Test (push) Failing after 1s
Deploy / Build App Image (push) Has been skipped
Security Scan / Secret Detection (push) Successful in 21s
Deploy / Build Web Image (push) Has been skipped
Security Scan / Dependency & Config Scan (push) Failing after 20s
Deploy / Build Core Image (push) Failing after 10m18s
Deploy / Deploy to Production (push) Has been skipped
Security Scan / Go Vulnerability Check (push) Failing after 6m27s
- Fix 11 non-constant format string warnings in cmd/session
(use cli.Print format args instead of fmt.Sprintf wrapper)
- Remove leftover .github/workflows/ from cmd/updater
(ci.yml and release.yml from when updater was standalone)
Co-Authored-By: Virgil <virgil@lethean.io>
2026-02-21 19:54:51 +00:00
Snider
4163aedec1
fix(ci): pin gitleaks version and harden install step
...
Security Scan / Secret Detection (push) Successful in 12s
Security Scan / Go Vulnerability Check (push) Failing after 2m21s
Security Scan / Dependency & Config Scan (push) Failing after 21s
The gitleaks install was fragile: depended on GitHub API (rate limits),
jq being present, and hardcoded x64 arch. Now pins v8.24.3, detects
arch, uses curl -f for proper error handling, and verifies install.
Co-Authored-By: Virgil <virgil@lethean.io>
2026-02-21 19:50:28 +00:00
Snider
cce9adc043
refactor: migrate 14 cmd packages to their go-* repos
...
Security Scan / Dependency & Config Scan (push) Failing after 22s
Security Scan / Secret Detection (push) Failing after 8s
Security Scan / Go Vulnerability Check (push) Failing after 3m17s
Moved CLI command packages to their respective ecosystem repos:
- go-ai: daemon, mcpcmd, security
- go-api: api
- go-crypt: crypt, testcmd
- go-devops: deploy, prod, vm
- go-netops: unifi
- go-rag: rag
- go-scm: collect, forge, gitea
Updated main.go imports to reference external repos.
Updated cmd/ai to import rag from go-rag.
Deleted 14 cmd/ directories (9,421 lines removed).
Co-Authored-By: Virgil <virgil@lethean.io>
2026-02-21 19:42:16 +00:00
Snider
a7d09e4c67
refactor: migrate cmd/ml to go-ml, remove replaces and go.work
...
Deploy / Deploy to Production (push) Has been skipped
Deploy / Test (push) Failing after 11s
Deploy / Build App Image (push) Has been skipped
Deploy / Build Web Image (push) Has been skipped
Security Scan / Secret Detection (push) Failing after 10s
Security Scan / Go Vulnerability Check (push) Failing after 10m20s
Security Scan / Dependency & Config Scan (push) Failing after 25s
Deploy / Build Core Image (push) Failing after 13m6s
- Move 40 ML command files to forge.lthn.ai/core/go-ml/cmd
- Remove all replace directives from go.mod
- Remove go.work (repos resolve from forge directly)
- Fix cache.New call to match updated API signature
- Update main.go import to forge.lthn.ai/core/go-ml/cmd
Co-Authored-By: Virgil <virgil@lethean.io>
2026-02-21 19:29:23 +00:00
Snider
2e24bb59f6
feat(docs): add --target hugo sync mode for core.help
...
Security Scan / Dependency & Config Scan (push) Failing after 18s
Security Scan / Go Vulnerability Check (push) Failing after 1m16s
Security Scan / Secret Detection (push) Failing after 20s
Co-Authored-By: Virgil <virgil@lethean.io>
2026-02-21 02:27:28 +00:00
Snider
349647d4aa
feat(docs): scan KB/ directory alongside docs/
...
Co-Authored-By: Virgil <virgil@lethean.io>
2026-02-21 02:18:29 +00:00
Snider
d6eec4d240
feat(api): add core api spec and core api sdk commands
...
Security Scan / Go Vulnerability Check (push) Waiting to run
Security Scan / Dependency & Config Scan (push) Waiting to run
Security Scan / Secret Detection (push) Waiting to run
New command group for OpenAPI spec generation and SDK codegen:
- `core api spec` generates OpenAPI 3.1 spec (JSON/YAML) from route groups
- `core api sdk` generates client SDKs via openapi-generator-cli
- Adds go-api dependency for SpecBuilder, ExportSpec, SDKGenerator
Co-Authored-By: Virgil <virgil@lethean.io>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-21 01:28:58 +00:00