ecd47fe3db
revert fcb9c189e5
...
revert fix(agentic): harden TODO workspace write
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-18 11:22:27 +00:00
Codex
fcb9c189e5
fix(agentic): harden TODO workspace write
...
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-18 08:54:32 +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
Snider
5f0878d93d
fix(mcp): update Subsystem interface to match mcp v0.5.1 Service API
...
All RegisterTools and internal register*Tool methods updated from
*mcp.Server to *coremcp.Service. Tool registration calls updated to
use svc.Server() for SDK AddTool calls. Monitor subsystem updated
to store *coremcp.Service and access Server() for Sessions/ResourceUpdated.
Tests updated to create coremcp.Service via New() instead of raw SDK server.
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-07 14:11:19 +01:00
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