Snider
83364a6080
feat(agent): sync backoff + ledger + auto-flush loop
...
- sync.go: syncBackoffSchedule (1s/5s/15s/60s/5min) with per-push Attempts
and NextAttempt honoured on retry (RFC §16.5)
- runSyncFlushLoop: ticks every minute from OnStartup when API key present,
drains the queue without re-scanning workspaces
- SyncPushInput.QueueOnly: lets flush loop drain without triggering a full
workspace scan (prevents duplicate pushes)
- Sync ledger at .core/sync/ledger.json: fingerprints keyed by workspace
name + (updated_at, runs); skips already-synced workspaces until fresh
activity
- docs/RFC-AGENT.md: synced from plans/code/core/agent/RFC.md with latest
AgentPlan status enum, complete capability, pr.close/branch.delete,
indexed_at/org brain fields
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-14 12:06:04 +01:00
Snider
39914fbf14
refactor: AX compliance sweep — replace banned stdlib imports with core primitives
...
Replaced fmt, strings, sort, os, io, sync, encoding/json, path/filepath,
errors, log, reflect with core.Sprintf, core.E, core.Contains, core.Trim,
core.Split, core.Join, core.JoinPath, slices.Sort, c.Fs(), c.Lock(),
core.JSONMarshal, core.ReadAll and other CoreGO v0.8.0 primitives.
Framework boundary exceptions preserved where stdlib types are required
by external interfaces (Gin, net/http, CGo, Wails, bubbletea).
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-13 09:32:00 +01:00
Virgil
f5dff3d822
feat(agentic): add repo sync command
...
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 11:33:37 +00:00
Snider
be78c27561
docs: add full RFC specs for agent dispatch
...
AX principles + go/agent + core/agent + php/agent specs.
Temporary — needed in-repo until core-agent mount bug is fixed.
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-30 19:51:55 +01:00
Virgil
540309f5e0
test(lib): add AX-7 coverage for workspace helpers
...
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-30 18:38:39 +00:00
Virgil
3769af2513
test(ax): add version example coverage
...
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-30 18:13:30 +00:00
Virgil
553d149d47
test(ax): add workspace command example coverage
...
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-30 18:09:32 +00:00
Virgil
d737e2c29e
fix(ax): make JSON state writes atomic
...
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-30 17:58:17 +00:00
Virgil
37b31e88fc
fix(ax): tighten plan ID contract coverage
...
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-30 17:45:58 +00:00
Virgil
d4c82ccd56
fix(ax): extract dispatch completion monitor
...
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-30 17:02:28 +00:00
Virgil
95c7df04da
fix(ax): join lib embed paths consistently
...
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-30 16:57:06 +00:00
Virgil
be3e68ec0f
fix(ax): make status projections explicit
...
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-30 16:24:06 +00:00
Virgil
3c2575f45b
fix(ax): remove proc.go wrapper layer
...
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-30 15:48:21 +00:00
Virgil
a757ca81e3
fix(ax): preserve transport causes and remove MustCompile
...
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-30 15:33:01 +00:00
Virgil
7672e0922f
fix(ax): align plan IDs and validation helpers
...
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-30 14:32:01 +00:00
Virgil
44bfe6224e
fix(ax): restore structured startup logging and contract comments
...
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-30 14:16:38 +00:00
Virgil
547f23a6f0
fix(ax): align core-agent CLI bootstrap
...
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-29 21:02:14 +00:00
Virgil
c77a9b93bc
fix(ax): finish brain provider cleanup
...
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-29 20:52:55 +00:00
Virgil
bf27743c44
docs(review): add 2026-03-29 general audit
...
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-29 20:00:18 +01:00
Snider
f83c753277
feat(v0.8.0): full AX migration — ServiceRuntime, Actions, quality gates, transport
...
go-process:
- Register factory, Result lifecycle, 5 named Action handlers
- Start/Run/StartWithOptions/RunWithOptions all return core.Result
- core.ID() replaces fmt.Sprintf, core.As replaces errors.As
core/agent:
- PrepSubsystem + monitor.Subsystem + setup.Service embed ServiceRuntime[T]
- 22 named Actions + agent.completion Task pipeline in OnStartup
- ChannelNotifier removed — all IPC via c.ACTION(messages.X{})
- proc.go: all methods via s.Core().Process(), returns core.Result
- status.go: WriteAtomic + JSONMarshalString
- paths.go: Fs.NewUnrestricted() replaces unsafe.Pointer
- transport.go: ONE net/http file — HTTPGet/HTTPPost/HTTPDo/MCP transport
- All disallowed imports eliminated from source files (13 quality gates)
- String concat eliminated — core.Concat() throughout
- 1:1 _test.go + _example_test.go for every source file
- Reference docs synced from core/go v0.8.0
- RFC-025 updated with net/http, net/url, io/fs quality gates
- lib.go: io/fs eliminated via Data.ListNames, Array[T].Deduplicate
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-26 01:27:46 +00:00
Snider
96ac2d99cd
feat: add RFC.plan.md — session boot instructions for future agents
...
Step-by-step: load 3 RFCs, verify understanding, work migration,
follow session cadence. Lists what NOT to do (10 disallowed imports,
no string concat, no anonymous closures, no nested ACTION).
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-25 20:05:25 +00:00
Snider
4216dddea9
feat(rfc): add Current State + File Layout — save future session research
...
- Current State: lists every file that needs migration with specific action
- File Layout: annotated tree showing DELETE/REWRITE/MIGRATE per file
- MCP closure capture bug fixed (re-resolve action at call time)
- Message types location documented (pkg/messages/)
Future session reads this and knows exactly what to touch.
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-25 20:00:50 +00:00
Snider
6ac69ac07c
fix(rfc): final check — go-process v0.8.0, readStatus dogfood, grep paths
...
- Depends on: go-process v0.7.0 → v0.8.0
- Section 6: readStatus uses JSONUnmarshalString + Fs.Read (dogfood)
- Section 22: quality gate grep uses generic paths not pkg/**
- Fixed double blank line in Section 19
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-25 19:56:04 +00:00
Snider
9f215e9d9b
feat(rfc): add Sections 14-18 — errors, config, registry, streams, data/drive
...
Complete coverage of every core/go primitive:
- Section 14: Error handling (core.E, Wrap, Root) + Logging (Info, Warn, Security)
- Section 15: Configuration (Config.Set/Get/String/Int, feature flags)
- Section 16: Registry[T] (workspace tracking, cross-cutting queries)
- Section 17: Stream helpers (ReadAll, WriteAll, CloseStream)
- Section 18: Data (embedded assets) + Drive (transport config)
22 sections total. Every core/go primitive mapped to core/agent usage.
Next session loads this + core/go RFC → complete domain context.
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-25 19:52:32 +00:00
Snider
76b87574a5
feat(rfc): add Sections 14-17 — string ops, comments, examples, full quality gate
...
- Section 14: String operations — Println, Sprintf, Concat, Path, Contains, Split, Trim
- Section 15: AX Principle 2 — every exported function needs usage-example comment
- Section 16: Example tests — one {source}_example_test.go per source file
- Section 17: Quality gates — all 10 disallowed imports + string concat check
The next session agent loads this RFC and knows exactly what v0.8.0 looks like.
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-25 19:48:41 +00:00
Snider
2d2a4116ed
refactor(rfc): rewrite as v0.8.0 contract, not migration plan
...
Was: "current state → target state" migration narrative
Now: "this is what core/agent v0.8.0 IS" API contract
14 sections covering: registration, actions, pipeline, process,
status, filesystem, validation, entitlements, MCP aggregator,
remote dispatch, JSON, testing, quality gates.
Written with full core/go domain context — every example uses
the implemented v0.8.0 primitives.
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-25 18:12:01 +00:00
Snider
6d28fc439b
docs: update known-issues after 9 rounds of Codex review
...
CI / test (push) Failing after 2s
77+ findings across 9 rounds, 73+ fixed. False positive rate
climbing in round 9 — codebase is converging.
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-21 17:57:55 +00:00
Snider
d94eed0b54
docs: Codex review pipeline — forge → github polish + LEM training
...
CI / test (push) Failing after 3s
Proven workflow from 7 rounds on core/agent (74 findings, 70+ fixed).
Forge keeps full history, GitHub gets squashed releases. Codex findings
become LEM training data. Charon owns the pipeline.
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-21 17:42:28 +00:00
Snider
40d2b0db16
fix: address Codex round 7 — path traversal + dispatch check
...
CI / test (push) Failing after 2s
High/Security: sanitise input.Repo via filepath.Base to prevent
path traversal in workspace prep (../escape from CODE_PATH).
High/Security: sanitise repo.Repo from API response in syncRepos
to prevent path traversal via crafted checkin responses.
Medium: dispatchFixFromQueue now returns error, review_queue checks
success before recording fix_dispatched.
Known issues updated with async bridge provider findings.
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-21 17:25:23 +00:00
Snider
013396bf91
docs: record known issues from 7 rounds of Codex review
...
CI / test (push) Failing after 3s
API enhancements, test coverage gaps, conventions, and compile
issues — all acknowledged and tracked for future work.
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-21 17:22:17 +00:00
Snider
90b03191b2
feat(agent): v0.2.0 — HTTP daemon, remote dispatch, review queue, verify+merge
...
Major additions:
- core-agent serve: persistent HTTP daemon with PID file, health check, registry
- agentic_dispatch_remote: dispatch tasks to remote agents (Charon) over MCP HTTP
- agentic_status_remote: check remote agent workspace status
- agentic_mirror: sync Forge repos to GitHub mirrors with file count limits
- agentic_review_queue: CodeRabbit/Codex review queue with rate-limit awareness
- verify.go: auto-verify (run tests) + auto-merge + retry with rebase + needs-review label
- monitor sync: checkin API integration for cross-agent repo sync
- PostToolUse inbox notification hook (check-notify.sh)
Dispatch improvements:
- --dangerously-skip-permissions (CLI flag changed)
- proc.CloseStdin() after spawn (Claude CLI stdin pipe fix)
- GOWORK=off in agent env and verify
- Exit code / BLOCKED.md / failure detection
- Monitor poke for instant notifications
New agent types:
- coderabbit: CodeRabbit CLI review (--plain --base)
- codex:review: OpenAI Codex review mode
Integrations:
- CODEX.md: OpenAI Codex conventions file
- Gemini extension: points at core-agent MCP (not Node server)
- Codex config: core-agent MCP server added
- GitHub webhook handler + CodeRabbit KPI tables (PHP)
- Forgejo provider for uptelligence webhooks
- Agent checkin endpoint for repo sync
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-17 17:45:04 +00:00
Snider
84e2b62beb
feat: core-agent MCP binary using core/mcp subsystems
...
Replaces old mcp-go based server with core/mcp (brain + agentic).
Single binary: go install ./cmd/core-agent/
Provides: brain_recall, brain_remember, brain_forget, agentic_dispatch,
agentic_status, agentic_resume, agentic_scan, agentic_create_pr, etc.
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-16 10:58:25 +00:00
Snider
0f12156104
docs: Charon onboarding guide — ecosystem changes March 2026
...
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-16 09:04:28 +00:00
Snider
9df5ed10f6
feat(docker): local development stack for community onboarding
...
Multistage Dockerfile (FrankenPHP + Octane + Horizon + Reverb) with
docker-compose wiring 6 services: app, mariadb, qdrant, ollama, redis,
traefik. All data mounts to .core/vm/mnt/{config,data,log}. Traefik
routes *.lthn.sh with self-signed TLS. Setup script handles first-run
bootstrap including cert generation and embedding model pull.
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-15 13:15:05 +00:00
Snider
6442cb85ad
refactor: update import path from go-config to core/config
...
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-14 10:22:39 +00:00
Snider
72c097ebcc
docs: remove completed plan files
...
Webhook (implemented in core/php), review pipeline (commands + skills
exist), and OpenBrain (BrainService, BrainMemory, 4 MCP tools, Actions,
Commands all implemented) plans are all completed.
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-14 08:21:58 +00:00
Snider
bdc617d48e
docs: add Core\Webhook implementation plan (8 tasks)
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 14:17:21 +00:00
Snider
0a12a6f32a
docs: add Core\Webhook design — append-only webhook log + cron trigger
...
Replaces 4 AltumCode Docker cron containers with a single scheduled
action. Inbound webhooks stored as append-only log, no inline processing.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 14:14:27 +00:00
Snider
d7b1478c51
feat(review): add 5-agent review pipeline plugin + tailor agent personas
...
Review pipeline (/review:pipeline):
- pipeline.md command — orchestrates 5-stage sequential review
- 5 skills: security-review, senior-dev-fix, test-analysis, architecture-review, reality-check
- Each skill dispatches a tailored agent persona as subagent
Agent personas:
- Tailor all retained agents to Host UK/Lethean stack (CorePHP, Actions, lifecycle events)
- Rewrite Reality Checker as evidence-based final gate (defaults to NEEDS WORK)
- Remove irrelevant agents (game-dev, Chinese marketing, spatial computing, integrations)
Plugin housekeeping:
- Update author to Lethean across all 5 plugins
- Bump review plugin to v0.2.0
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 13:56:20 +00:00
Snider
3c25feb78f
docs: add human-friendly documentation
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-11 13:02:40 +00:00