Virgil
6bc24d5213
docs(ax): replace alias descriptions with usage examples
...
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-02 09:07:12 +00:00
Virgil
4c6296c1c1
refactor(agentic): replace core path helpers
...
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-02 08:58:17 +00:00
Virgil
5dc0983b77
feat(agentic): align model contracts with RFC
...
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-02 08:26:02 +00:00
Virgil
428cd25ebc
feat(agentic): add RFC model aliases
...
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-02 07:43:15 +00:00
Virgil
7389b2f801
fix(agentic): add missing plan MCP aliases
...
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-02 07:27:48 +00:00
Virgil
60906f8286
feat(agentic): support completion_criteria phase alias
...
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-02 03:16:27 +00:00
Virgil
863f76fb71
feat(models): add RFC-named model aliases
...
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-02 00:53:11 +00:00
Virgil
e18dc12e1e
feat(agentic): add task priority and category support
...
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-02 00:48:49 +00:00
Virgil
332a464cf6
feat(agentic): add task file ref aliases
...
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 20:08:41 +00:00
Virgil
7dde6b7769
feat(agentic): make plan delete a hard delete
...
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 16:14:16 +00:00
Virgil
48d666aa3a
feat(agentic): expose plan from issue tool
...
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 16:02:01 +00:00
Virgil
00f37096fa
feat(agentic): expose plan check action and tool
...
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 15:28:47 +00:00
Virgil
534df4278a
feat(agentic): persist template metadata on plans
...
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 15:21:03 +00:00
Virgil
6bb355c472
feat(agentic): add phase dependencies to plans
...
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 14:37:29 +00:00
Virgil
06a915aafb
feat(agentic): add task file-line references
...
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 12:21:08 +00:00
Virgil
c2e1263493
feat(agentic): archive plan delete action
...
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 12:11:25 +00:00
Virgil
8f8e0f09ca
feat(agentic): add plan retention cleanup command
...
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 10:48:13 +00:00
Virgil
800007907a
feat(agentic): apply default plan list limit
...
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-31 18:58:40 +00:00
Virgil
f45e8552ab
feat(agentic): add RFC compatibility aliases
...
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-31 15:52:31 +00:00
Virgil
cccc02ed64
feat(agentic): add RFC plan compatibility surfaces
...
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-31 13:58:57 +00:00
Virgil
f37980bd4a
fix(agentic): register plan named actions
...
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-31 11:22:36 +00:00
Virgil
7c8542d730
fix(ax): tighten remaining source examples
...
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-31 06:20:14 +00:00
Virgil
998b6094ca
fix(ax): trim remaining comment narration
...
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-31 05:34:44 +00:00
Virgil
e8cb1f2d39
fix(ax): trim remaining implementation comments
...
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-31 05:28:26 +00:00
Virgil
06ae13d92b
fix(ax): align remaining comments with AX principles
...
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-31 04:33:36 +00:00
Virgil
bd12c0a31a
fix(ax): align code comments with AX principles
...
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-30 22:54:19 +00:00
Virgil
9997e7aecc
fix(ax): align comments with usage examples
...
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-30 21:58:24 +00:00
Virgil
f3b70fcdfb
fix(ax): use Result-native status writes
...
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-30 20:33:12 +01: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
d2189ce360
fix(ax): simplify plan ID generation and tidy deps
...
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-30 17:37:43 +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
3d2fa035a9
refactor(agentic): migrate workflow helpers to core.Result
...
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-30 07:30:42 +00:00
Snider
537226bd4d
feat: AX v0.8.0 upgrade — Core features + quality gates
...
AX Quality Gates (RFC-025):
- Eliminate os/exec from all test + production code (12+ files)
- Eliminate encoding/json from all test files (15 files, 66 occurrences)
- Eliminate os from all test files except TestMain (Go runtime contract)
- Eliminate path/filepath, net/url from all files
- String concat: 39 violations replaced with core.Concat()
- Test naming AX-7: 264 test functions renamed across all 6 packages
- Example test 1:1 coverage complete
Core Features Adopted:
- Task Composition: agent.completion pipeline (QA → PR → Verify → Ingest → Poke)
- PerformAsync: completion pipeline runs with WaitGroup + progress tracking
- Config: agents.yaml loaded once, feature flags (auto-qa/pr/merge/ingest)
- Named Locks: c.Lock("drain") for queue serialisation
- Registry: workspace state with cross-package QUERY access
- QUERY: c.QUERY(WorkspaceQuery{Status: "running"}) for cross-service queries
- Action descriptions: 25+ Actions self-documenting
- Data mounts: prompts/tasks/flows/personas/workspaces via c.Data()
- Content Actions: agentic.prompt/task/flow/persona callable via IPC
- Drive endpoints: forge + brain registered with tokens
- Drive REST helpers: DriveGet/DrivePost/DriveDo for Drive-aware HTTP
- HandleIPCEvents: auto-discovered by WithService (no manual wiring)
- Entitlement: frozen-queue gate on write Actions
- CLI dispatch: workspace dispatch wired to real dispatch method
- CLI: --quiet/-q and --debug/-d global flags
- CLI: banner, version, check (with service/action/command counts), env
- main.go: minimal — 5 services + c.Run(), no os import
- cmd tests: 84.2% coverage (was 0%)
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-26 06:38:02 +00: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
6e37bd22f0
feat: devops plugin, CLI commands, Codex dispatch fixes, AX sweep
...
DevOps plugin (5 skills):
- install-core-agent, repair-core-agent, merge-workspace,
update-deps, clean-workspaces
CLI commands: version, check, extract for diagnostics.
Codex dispatch: --skip-git-repo-check, removed broken
--model-reasoning-effort, --sandbox workspace-write via
--full-auto. Workspace template extracts to wsDir not srcDir.
AX sweep (Codex-generated): sanitise.go extracted from prep/plan,
mirror.go JSON parsing via encoding/json, setup/config.go URL
parsing via net/url, strings/fmt imports eliminated from setup.
CODEX.md template updated with Env/Path patterns.
Review workspace template with audit-only PROMPT.md.
Marketplace updated with devops plugin.
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-22 15:45:16 +00:00
Snider
6393bfe4da
refactor(agentic): adopt core.Env() + core.Path() across package
...
Replace all os.UserHomeDir/os.Getenv/os.Hostname with core.Env().
Replace all filepath.Base/Dir/Glob/IsAbs with core.PathBase/PathDir/
PathGlob/PathIsAbs.
10 files migrated: paths, prep, review_queue, remote, dispatch,
ingest, mirror, plan, verify, watch.
Imports eliminated: 5x os, 7x filepath. All file I/O and path
construction now routes through Core primitives.
Bumps dappco.re/go/core to v0.6.0.
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-22 10:15:15 +00:00
Snider
3022f05fb8
refactor(agentic): route file I/O through core.Fs
...
Replace raw os.* file operations with Core Fs equivalents:
- os.Stat → fs.Exists/fs.IsFile/fs.IsDir (resume, pr, plan, mirror, prep)
- os.ReadDir → fs.List (queue, status, plan, mirror, review_queue)
- os.Remove → fs.Delete (dispatch)
- os.OpenFile(append) → fs.Append (events, review_queue)
- strings.Replace → core.Replace (scan)
Eliminates os import from resume.go, pr.go. Eliminates strings
import from scan.go. Trades os for io in events.go.
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-22 09:08:45 +00:00
Snider
a0dc9c32e7
refactor: migrate core/agent to Core primitives — reference implementation
...
Phase 1: go-io/go-log → core.Fs{}, core.E(), core.Error/Info/Warn
Phase 2: strings/fmt → core.Contains, core.Sprintf, core.Split etc
Phase 3: embed.FS → core.Mount/core.Embed, core.Extract
Phase 4: cmd/main.go → core.Command(), c.Cli().Run(), no cli package
All packages migrated:
- pkg/lib (Codex): core.Mount, core.Extract, Result returns, AX comments
- pkg/setup (Codex): core.Fs, core.E, fixed missing lib helpers
- pkg/brain (Codex): Core primitives, AX comments
- pkg/monitor (Codex): Core string/logging primitives
- pkg/agentic (Codex): 20 files, Core primitives throughout
- cmd/main.go: pure Core CLI, no fmt/log/filepath/strings/cli
Remaining stdlib: path/filepath (Core doesn't wrap OS paths),
fmt.Sscanf/strings.Map (no Core equivalent).
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-22 06:13:41 +00:00
Snider
b266db5069
fix(pkg): address code review findings
...
- Fix import ordering in verify.go and remote_client.go (stdlib before third-party)
- Convert os.MkdirAll to fs.EnsureDir in prep.go
- Preserve underlying error in !r.OK branches (writeStatus, writePlan, planDelete, planList, resume)
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-22 03:45:50 +00:00
Snider
deaa06a54d
refactor(pkg): migrate go-io/go-log to Core primitives
...
Replace separate go-io (coreio) and go-log (coreerr) packages with
Core's built-in Fs and error/logging functions. This is the reference
implementation for how all Core ecosystem packages should migrate.
Changes:
- coreio.Local.Read/Write/EnsureDir/Delete/IsFile → core.Fs methods
- coreerr.E() → core.E(), coreerr.Info/Warn/Error → core.Info/Warn/Error
- (value, error) return pattern → core.Result pattern (r.OK, r.Value)
- go-io and go-log moved from direct to indirect deps in go.mod
- Added AX usage-example comments on key public types
- Added newFs("/") helper for unrestricted filesystem access
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-22 03:41:07 +00:00
Snider
c6490c175a
refactor: migrate imports to dappco.re paths + bump mcp to v0.4.0
...
Update all go-* imports from forge.lthn.ai to dappco.re/go/core/*.
Bump mcp to v0.4.0 (Options{} struct API).
Versions: core v0.5.0, io v0.2.0, log v0.1.0, process v0.3.0,
ws v0.3.0, ai v0.2.0, webview v0.2.0, i18n v0.2.0.
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-22 01:27:48 +00:00
Snider
92b7b08113
fix: Codex round 9 — verify push target, plan path traversal, mirror branch
...
CI / test (push) Failing after 3s
High: verify rebase push now targets Forge remote, not local origin
High/Security: planPath sanitises ID via filepath.Base to prevent
path traversal in plan read/update/delete
Medium: mirror compares and pushes local default branch, not HEAD
Findings 3-6 verified as false positives/known issues (bridge async
by design, API returns top-level memories not {data:...}, inbox uses
{messages:...} confirmed against live API).
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-21 17:57:03 +00:00
Snider
21f234aa7c
refactor: flatten go/ subdir, migrate to dappco.re/go/agent, restore process service
...
- Module path: dappco.re/go/agent
- Core import: dappco.re/go/core v0.4.7
- Process service re-enabled with new Core API
- Plugin bumped to v0.11.0
- Directory flattened from go/ to root
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-21 11:10:44 +00:00
Snider
be1130f470
agent updates
2026-03-21 11:10:44 +00:00
Snider
8c1625873c
refactor: simplify internals — consolidate, deduplicate, fix bugs
...
Simplifier pass (-38 lines):
- Consolidate status update branches in spawnAgent (3 → 1 write)
- Remove 6 duplicate defer resp.Body.Close() calls
- Fix nil err reference in non-200 error paths (scan.go, pr.go)
- Remove redundant plansDir() and workspaceRoot() wrappers
- Simplify countRunningByAgent to use baseAgent() helper
- Extract markMerged in verify.go to remove duplication
- Clean imports and remove dead code
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-17 19:35:15 +00:00
Snider
e677d15bdd
fix: remove hardcoded paths, gitignore binaries
...
- Add paths.go with WorkspaceRoot(), CoreRoot(), PlansRoot()
- All workspace paths now check CORE_WORKSPACE env var first
- Fallback: ~/Code/.core/workspace (works on any machine)
- Remove committed core-agent and mcp binaries from tracking
- Add .gitignore for compiled binaries
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-17 18:13:44 +00:00
Snider
5eb26f90fc
refactor: replace fmt.Errorf/os.* with go-io/go-log conventions
...
Replace all fmt.Errorf and errors.New in production code with
coreerr.E("caller.Method", "message", err) from go-log. Replace
all os.ReadFile/os.WriteFile/os.MkdirAll/os.Remove with coreio.Local
equivalents from go-io. Test files are intentionally untouched.
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-16 21:48:31 +00:00
Snider
2ea50959f2
refactor: move brain + agentic packages into core/agent, use core/cli
...
Brain and agentic subsystems now live in core/agent/pkg/ instead of
core/mcp/pkg/mcp/. core-agent binary uses core/cli for proper command
framework. Usage: core-agent mcp
One repo, one clone, everything works.
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-16 11:10:33 +00:00