loki-mode 10.9.1 → 10.10.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/actions/issue-to-pr/action.yml +2 -2
- package/README.md +9 -3
- package/SKILL.md +12 -2
- package/VERSION +1 -1
- package/autonomy/lib/proof-generator.py +1 -0
- package/autonomy/loki +39 -9
- package/autonomy/receipt_jwt.py +46 -1
- package/autonomy/run.sh +1 -1
- package/autonomy/telemetry.sh +1 -1
- package/autonomy/trigger-server.py +1 -0
- package/bin/loki +12 -1
- package/bin/loki-postinstall.js +12 -0
- package/dashboard/__init__.py +1 -1
- package/docs/CLI-REFERENCE.md +139 -0
- package/docs/INSTALLATION.md +1 -1
- package/docs/LOKI-10-BUILD-PROMPT.md +2 -2
- package/docs/PLANS-INDEX.md +2 -3
- package/docs/SLO.md +3 -3
- package/docs/alternative-installations.md +1 -1
- package/docs/bug-fixes/agent-04-memory-fixes.md +1 -1
- package/docs/dev/release-checklist.md +1 -1
- package/{.github/workflows/loki-issue-to-pr.yml → docs/examples/loki-issue-to-pr.yml.example} +2 -0
- package/docs/{ONE-RUN-AUDIT.md → history/one-run-audit.md} +6 -0
- package/docs/{BUG-AUDIT-v6.61.0.md → history/v6.61.0-audit.md} +6 -0
- package/docs/{V8-AGENT-SDK-PLAN.md → history/v8-agent-sdk-plan.md} +6 -0
- package/docs/{CONFIG-FILE-PLAN.md → history/v8-config-plan.md} +6 -0
- package/docs/test-scenarios/enterprise-scenarios.md +1 -1
- package/docs/v10/BOARD.md +3 -0
- package/docs/v10/CLI-MODERN.md +190 -0
- package/docs/v10/DEPS.md +148 -169
- package/docs/v10/FAILURE-CLASSES.md +23 -2
- package/docs/v10/GUARDS.md +18 -0
- package/docs/v10/LEGACY-REMOVAL.md +334 -25
- package/docs/v10/PROGRESS.md +15 -0
- package/loki-ts/dist/loki.js +1574 -1794
- package/mcp/__init__.py +1 -1
- package/package.json +3 -2
- package/packages/control-plane/dist/server.js +733 -397
- package/packages/control-plane/src/db/fixture-cleanup.ts +47 -0
- package/packages/control-plane/src/server/app.ts +2 -0
- package/packages/control-plane/src/server/integrity.ts +48 -9
- package/packages/control-plane/src/server/routes/stats.ts +16 -5
- package/packages/control-plane/src/server/runs.ts +16 -4
- package/packages/control-plane/ui/dist/assets/index-BinL6h3i.css +1 -0
- package/packages/control-plane/ui/dist/assets/index-BrA22FUs.js +152 -0
- package/packages/control-plane/ui/dist/index.html +2 -2
- package/plugins/loki-mode/.claude-plugin/plugin.json +1 -1
- package/schemas/status-result.schema.json +13 -22
- package/skills/release-cadence.md +5 -5
- package/web-app/dist/assets/{AdminPage-DqMnfZrH.js → AdminPage-BvbxMtZO.js} +1 -1
- package/web-app/dist/assets/{Avatar-BEof29du.js → Avatar-Dc7Scg02.js} +1 -1
- package/web-app/dist/assets/{Badge-WD53OL5m.js → Badge-BmVuOqbM.js} +1 -1
- package/web-app/dist/assets/{Button-Rzk5flhU.js → Button-DvzqhxRU.js} +1 -1
- package/web-app/dist/assets/{CockpitPage-Bqz3PCMh.js → CockpitPage-D8AZo7Ha.js} +1 -1
- package/web-app/dist/assets/{ComparePage-Byo2NzAZ.js → ComparePage-NmqaTXDz.js} +1 -1
- package/web-app/dist/assets/{ErrorBoundary-BuE0kH3W.js → ErrorBoundary-PGl8Kzoq.js} +1 -1
- package/web-app/dist/assets/{EvidenceReceiptPanel-CKFHOPBx.js → EvidenceReceiptPanel-2NY4n9gv.js} +1 -1
- package/web-app/dist/assets/{GitHubIssuesPanel-Df_kTMqI.js → GitHubIssuesPanel-DBO_LHHM.js} +1 -1
- package/web-app/dist/assets/{GitHubPRsPanel-CouvcKrZ.js → GitHubPRsPanel-K7m9uJ1N.js} +1 -1
- package/web-app/dist/assets/{HomePage-dEpLzj0x.js → HomePage-qNQzAJxM.js} +2 -2
- package/web-app/dist/assets/{LoginPage-6DVjUND5.js → LoginPage-esu3OK65.js} +1 -1
- package/web-app/dist/assets/{MagicPage-BDQ9MOfY.js → MagicPage-CCdVvXrA.js} +1 -1
- package/web-app/dist/assets/{MetricsPage-CXiJ04G_.js → MetricsPage-bEvugU2t.js} +1 -1
- package/web-app/dist/assets/{NotFoundPage-BaXhZvyj.js → NotFoundPage-BlEjQ1wX.js} +1 -1
- package/web-app/dist/assets/{ProjectPage-BzE4V7Ti.js → ProjectPage-Bnug_Yzv.js} +3 -3
- package/web-app/dist/assets/{ProjectsPage-ipf6TLMX.js → ProjectsPage-M8r1vfpn.js} +1 -1
- package/web-app/dist/assets/{SettingsPage-BDxkUKN6.js → SettingsPage-NqAJpB48.js} +1 -1
- package/web-app/dist/assets/{ShowcasePage-YQXD72SM.js → ShowcasePage-8FggxL1P.js} +1 -1
- package/web-app/dist/assets/{SystemSettingsPage-Dou7zHS0.js → SystemSettingsPage-3Sz3kFOO.js} +1 -1
- package/web-app/dist/assets/{TeamsPage-CQarfcYr.js → TeamsPage-nV-6vdWM.js} +1 -1
- package/web-app/dist/assets/{TemplatesPage-CPi1R8Xj.js → TemplatesPage-Brbc_VR9.js} +1 -1
- package/web-app/dist/assets/{TerminalOutput-WiGhWdYD.js → TerminalOutput-D1yta5ac.js} +1 -1
- package/web-app/dist/assets/{activity-DOa7ejQA.js → activity-oEeKuqFe.js} +1 -1
- package/web-app/dist/assets/{bell-CX-VAlYN.js → bell-3NJtqBRR.js} +1 -1
- package/web-app/dist/assets/{bot-EDXaZmHc.js → bot-CuvJZ6x1.js} +1 -1
- package/web-app/dist/assets/{check-CnBdKk3L.js → check-n4289IZw.js} +1 -1
- package/web-app/dist/assets/{chevron-left-BJ_ydRQW.js → chevron-left-CmQeio7h.js} +1 -1
- package/web-app/dist/assets/{circle-alert-tz8ufhc_.js → circle-alert-CmmVW-Pd.js} +1 -1
- package/web-app/dist/assets/{clock-DFBZPSsH.js → clock-QFqk7GlA.js} +1 -1
- package/web-app/dist/assets/{cloud-uy3p_5Q7.js → cloud-BNkSokmq.js} +1 -1
- package/web-app/dist/assets/{code-xml-3CbYD9YL.js → code-xml-nWeketqj.js} +1 -1
- package/web-app/dist/assets/{database-YiNBXc9c.js → database-C83MXTmJ.js} +1 -1
- package/web-app/dist/assets/{dollar-sign-D0wBa4Cv.js → dollar-sign-Blg6TO4y.js} +1 -1
- package/web-app/dist/assets/{file-code-corner-DDdZVZ5v.js → file-code-corner-Tk11oUzm.js} +1 -1
- package/web-app/dist/assets/{file-plus-D09LTBqt.js → file-plus-DF_eyA6I.js} +1 -1
- package/web-app/dist/assets/{globe-BirTPwff.js → globe-D5hDqqmn.js} +1 -1
- package/web-app/dist/assets/{hammer-DaE5qgnd.js → hammer-C2hm9lzl.js} +1 -1
- package/web-app/dist/assets/{index-D8t7KnQf.js → index-pMxOIwXq.js} +3 -3
- package/web-app/dist/assets/{layers-DVVrckRY.js → layers-XWQKGXg0.js} +1 -1
- package/web-app/dist/assets/{loader-circle-2-nMGmcb.js → loader-circle-BRuvorm2.js} +1 -1
- package/web-app/dist/assets/{lock-D0Xj43pC.js → lock-BSGvQf5v.js} +1 -1
- package/web-app/dist/assets/{package-BB7S3egm.js → package-3FJYUYgJ.js} +1 -1
- package/web-app/dist/assets/{plus-BLhoMrn3.js → plus-CeIx6g9P.js} +1 -1
- package/web-app/dist/assets/{refresh-cw-DMc2uPLw.js → refresh-cw-ChutW42g.js} +1 -1
- package/web-app/dist/assets/{rotate-ccw-DM3IP9x7.js → rotate-ccw-BdSjUAk-.js} +1 -1
- package/web-app/dist/assets/{scroll-text-lH2uW7rB.js → scroll-text-BjFqxpw3.js} +1 -1
- package/web-app/dist/assets/{server-BkerZcdR.js → server-C7UEKdol.js} +1 -1
- package/web-app/dist/assets/{shield-alert-B8ohcUfu.js → shield-alert-DY8fpEs7.js} +1 -1
- package/web-app/dist/assets/{thumbs-up-CTIxLzPD.js → thumbs-up-Cz1san1g.js} +1 -1
- package/web-app/dist/assets/{trash-2-C3zIpsH5.js → trash-2-D2MvGYeP.js} +1 -1
- package/web-app/dist/assets/{trending-down-BTT7wV4Y.js → trending-down-CxO3OYOB.js} +1 -1
- package/web-app/dist/assets/{trending-up-BzHdCDvF.js → trending-up-DCHKPJLe.js} +1 -1
- package/web-app/dist/assets/{upload-HxR34-A8.js → upload-CdPJpSHC.js} +1 -1
- package/web-app/dist/assets/{usePolling-DDj6Fupy.js → usePolling-DAH6K3ST.js} +1 -1
- package/web-app/dist/assets/{user-qH5y9yNy.js → user-Byyt01W4.js} +1 -1
- package/web-app/dist/index.html +1 -1
- package/docs/BRANCH-LIFECYCLE-PLAN.md +0 -354
- package/docs/EXECUTION-COCKPIT-PLAN.md +0 -289
- package/packages/control-plane/ui/dist/assets/index-BQbFv65M.css +0 -1
- package/packages/control-plane/ui/dist/assets/index-Dbhu244h.js +0 -155
|
@@ -22,9 +22,12 @@ L0 review rule (ENGINE-LAWS.md L0): a fix that adds an `if` or a regex about the
|
|
|
22
22
|
- visual_evidence.ts:155-168;
|
|
23
23
|
- deep.ts;
|
|
24
24
|
- the brief's impacted commands;
|
|
25
|
-
- deferred by the FC-01 stopgap (de12ad0cb): deep.ts
|
|
25
|
+
- deferred by the FC-01 stopgap (de12ad0cb): deep.ts full suite at the repo root, verify.ts tsconfig root-only, verify.ts ESLINT_CONFIGS root-only. All three are now closed (see Status).
|
|
26
26
|
- Mechanism: Project Model packageRootOf/commandFor (EL-W1-01, EL-W1-04a/b). Interim: EL-W0-03.
|
|
27
|
-
-
|
|
27
|
+
- Status (FIXED, lane E): the Project Model is ON by default (opt-out LOKI_E10_PROJECT_MODEL=0). One shared resolver, loki-ts/src/project_model/resolve.ts (loadProjectApi, siteFor, groupByPackage) plus verify.ts commandFor(t, repoDir, api), returns cwd and argv. A file owned by a package below the repo root runs in that package dir with a package-relative path. An unknown model, the opt-out, or a root-only (single-package) model resolves to the repo root exactly as before.
|
|
28
|
+
- Sites now on the resolver: verify.ts test loop and subtractBase base run; verify.ts runLintChecks (tsc, eslint config lookup, cwd and file paths per package, check name lint:tsc:<root>); wall.ts RealBaseTestRunner; deep.ts runFullSuite (each package's own test command in its cwd); features/visual_evidence.ts (UI boot command, Playwright and e2e media from the UI package dir); implement brief (e10ext/context.ts prints `cd <pkg> && cmd`).
|
|
29
|
+
- Deliberately root-only: verify.ts select-tests (scripts/select-tests.sh, Loki's own repo); ruff and shellcheck (take repo-relative paths from the root); wall_manifest.ts reads the root package.json for style hints (read only, not a runner invocation).
|
|
30
|
+
- Fixture: tests/fixtures/firelater-17 plus the shape fixtures in benchmarks/tasks/shapes; tests/fixtures/monorepo-fc01 (backend with vitest, frontend, no root package.json) with loki-ts/tests/engine10/monorepo_cwd.test.ts (red at the repo root before, green after; includes the single-package regression).
|
|
28
31
|
|
|
29
32
|
## FC-02 A runner load error was treated as a code failure; two fix rounds, then STALLED
|
|
30
33
|
- User saw: 11 min, $2.66 and a FAILED draft PR for a bug that did not exist. Raw: done in 2 min.
|
|
@@ -90,6 +93,15 @@ L0 review rule (ENGINE-LAWS.md L0): a fix that adds an `if` or a regex about the
|
|
|
90
93
|
- Mechanism: a flush on terminal events plus a dead-pid reconciler (EL-W0-04, EL-W0-09, EL-W1-07).
|
|
91
94
|
- Fixture: tests/test-e10-kill-each-stage.sh plus a CP ingest test with a dead pid.
|
|
92
95
|
|
|
96
|
+
## FC-06b Control Plane run page said "No events yet" for a finished run (FireLater#17, e10-20261003T191822Z-7683)
|
|
97
|
+
- User saw: "Live log: No events yet." on a completed run whose events.jsonl and stored events held every stage (105 events).
|
|
98
|
+
- Law: L6 (a finished run must read as finished, with its evidence). Same FC-06 class: the page trusted a live-only path.
|
|
99
|
+
- Siblings:
|
|
100
|
+
- any UI reader that passes a sentinel the server validation rejects (`after=-1`) and maps every non-200 to an empty result;
|
|
101
|
+
- fetchEvents swallowed the 400 and returned [], so the empty state was indistinguishable from "no events".
|
|
102
|
+
- Mechanism: one shared `fetchEvents` that sends no `after` on the first page, pages until `has_more` is false, and is the only history loader; the live stream only appends.
|
|
103
|
+
- Fixture: test/ui/run-finished.test.tsx ingests a finished run (test/fixtures/runs/verified-pr/events.jsonl) into the real server app and renders the page against it.
|
|
104
|
+
|
|
93
105
|
## FC-07 The test suite leaked fixture runs into the founder's real Control Plane
|
|
94
106
|
- User saw: acme/widget and e10-t1.. runs in the real CP.
|
|
95
107
|
- Law: none of L1 to L7 fits. Proposed L8, "Tests never touch real user state", is a founder decision. This is a recurrence of GUARDS.md 12 (~/.gitconfig).
|
|
@@ -102,6 +114,15 @@ L0 review rule (ENGINE-LAWS.md L0): a fix that adds an `if` or a regex about the
|
|
|
102
114
|
- Mechanism: a hermetic HOME prelude for every test (extend tests/lib/isolated-git-home.sh), plus a shipper that refuses temp and fixture repos. Cleanup: `loki control prune` (203d38544).
|
|
103
115
|
- Fixture: a lint that fails any test reaching $HOME/.loki without the prelude.
|
|
104
116
|
|
|
117
|
+
## FC-07b Leaked fixture runs stayed in real Control Plane databases after the leak was closed
|
|
118
|
+
- User saw: e10-t1..t7, e10-dw1..dw6, e37-cline, e37-codex (all acme/widget) in the real CP run list, with no step that removes them.
|
|
119
|
+
- Law: L6 (the run list must show only real runs) and the rule that users never need to run a maintenance command. Same FC-07 class: closing the leak does not clean databases already polluted.
|
|
120
|
+
- Siblings:
|
|
121
|
+
- `loki control prune` exists but is manual, so every existing install keeps the rows;
|
|
122
|
+
- local_repos rows whose realpath is under the OS temp dir mark the same fixtures when origin_repo is empty.
|
|
123
|
+
- Mechanism: one startup step in createApp (`cleanupLeakedFixtures`): removes runs with origin acme/widget or a source path under the OS temp dir, audits each removal (action `fixture.cleanup`), and records a once-per-DB marker row (action `fixture.cleanup.done`) so it never repeats.
|
|
124
|
+
- Fixture: test/server/fixture-cleanup.test.ts (first start removes and audits, second start removes nothing, real runs untouched).
|
|
125
|
+
|
|
105
126
|
## FC-08 A tampered receipt could render as VERIFIED in the UI
|
|
106
127
|
- User saw: a VERIFIED badge on a run whose log failed integrity.
|
|
107
128
|
- Law: L2 (trust fails closed) and L7.
|
package/docs/v10/GUARDS.md
CHANGED
|
@@ -819,3 +819,21 @@ previously mismarked two merged guards (S-16, S-74) as PENDING.
|
|
|
819
819
|
worktree allowed, leader `git checkout main` allowed, subagent forms and
|
|
820
820
|
the unchecked-`cd` case blocked.
|
|
821
821
|
Run: `bash tests/test-v10-guard.sh`.
|
|
822
|
+
|
|
823
|
+
## cp-redesign image allowlist (third-party screenshot incident)
|
|
824
|
+
|
|
825
|
+
- **Incident:** a third-party product screenshot showing a real person's name
|
|
826
|
+
and customer data was committed under `docs/v10/cp-redesign/` by a UI slice
|
|
827
|
+
and was caught only in review.
|
|
828
|
+
- **Root cause:** nothing restricted which images may live in the doc folder;
|
|
829
|
+
evidence is the review finding on the CP-REDESIGN merge.
|
|
830
|
+
- **The guard:** `docs/v10/cp-redesign/ALLOWED-IMAGES.txt` is an explicit
|
|
831
|
+
allowlist with one-line provenance per image. `tests/test-cp-redesign-images.sh`
|
|
832
|
+
fails on any tracked image there that is not listed, and on any tracked image
|
|
833
|
+
anywhere named vorflux, lovable, bolt, v0-, or competitor, or under a path
|
|
834
|
+
containing `ui-refs` or `research/`. `.githooks/pre-commit` runs the same
|
|
835
|
+
check on staged files (`--staged`).
|
|
836
|
+
- **The test that proves it fires:** the self-test inside
|
|
837
|
+
`tests/test-cp-redesign-images.sh` builds a fixture with an unlisted image,
|
|
838
|
+
a ui-refs image and a banned name and asserts each fails.
|
|
839
|
+
Run: `bash tests/test-cp-redesign-images.sh`.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
# Legacy removal inventory (D57)
|
|
1
|
+
# Legacy removal inventory (D57, expanded 2026-10-03)
|
|
2
2
|
|
|
3
|
-
Architect inventory, 2026-10-01
|
|
3
|
+
Architect inventory, 2026-10-01 base `main` 80cdb7193, updated 2026-10-03. Product calls are D57 item 6 (a to f) plus founder scope (J, K, STALE-ZERO generator). "No v10 equivalent" rows are deleted per 6(f) unless named in D54 v1 scope. Evidence is a grep or a file:line; anything not proven unused is KEEP-CHECK, never delete. Wave plan reflects parallel work in O(n) slices of non-overlapping file sets.
|
|
4
4
|
|
|
5
5
|
## 1. Routing surface (Wave 1, builders already on it)
|
|
6
6
|
|
|
@@ -37,7 +37,7 @@ One-word bash commands (autonomy/loki main(), line 21621) and their fate:
|
|
|
37
37
|
- DELETED, no v10 equivalent (6f): init, stop, cleanup, pause, steer, resume, why, next, stats, monitor, welcome, docker, preview, deploy, ship, open, logs, serve, api, sandbox, notify, watch, cockpit, export, assets, reset, memory, compound, checkpoint, rollback, dogfood, projects, enterprise, secrets, sentrux, setup-skill, self-update, watchdog, audit, compliance, review, ultracode, optimize, spec, intent, mcp, cluster, worktree, state, metrics, cost, estimate, trust, syslog, telemetry, remote, trigger, plan, failover, analyze, onboard, explain, docs, wiki, magic, ci, test, report, crash, share, proof, outcomes, secure, own, context, code, kpis.
|
|
38
38
|
- KEEP-CHECK against D54 v1 "cost and control, scale, audit log, team budgets": `cost`, `audit`, `plan` (cmd_plan carries D5x refs), `self-update`, `provider`. Confirm with PM before deleting; default delete per 6(f) if no v1 owner claims them in one train.
|
|
39
39
|
|
|
40
|
-
## 2. Docs and help surface (Wave 1)
|
|
40
|
+
## 2. Docs and help surface (existing Wave 1, no new work)
|
|
41
41
|
|
|
42
42
|
`grep -rlE "run.sh|LOKI_ENGINE|loki legacy|legacy engine"` counts (files / mentions):
|
|
43
43
|
- Root: README.md 19, SKILL.md 10, ARCHITECTURE.md 9, COMPONENTS.md 4, AGENTS.md 2, CONTRIBUTING.md 2, TESTING.md 2, CLAUDE.md 1, SETUP.md 1, Dockerfile 1.
|
|
@@ -62,7 +62,7 @@ Evidence: `grep -rn autonomy/|providers/` over loki-ts/src/engine10, packages/co
|
|
|
62
62
|
| autonomy/lib/cost-summary.py, app-runner.sh | KEEP-CHECK | named in engine10 comments only (cost.ts:9, deep.ts:102) |
|
|
63
63
|
| autonomy/telemetry.sh, lib/sdk-mode.sh | PORT then delete | sourced by bin/loki:42, 230-238 |
|
|
64
64
|
| providers/*.sh, models.sh | DELETE | ported to loki-ts runner/providers.ts |
|
|
65
|
-
| providers/model_catalog.json | KEEP | engine10/sizing.ts:
|
|
65
|
+
| providers/model_catalog.json | KEEP | engine10/sizing.ts:60 |
|
|
66
66
|
| loki-ts/src/runner, commands, providers (v8 loop) | PORT subset | engine10 imports runner/github_token, types, retry_class, providers, budget; providers/claude_flags, mcp_config; delete the rest |
|
|
67
67
|
| council/, quality gates scripts, swarm/, agents/ | DELETE (6e) | no engine10 refs |
|
|
68
68
|
| dashboard/ (Python) | KEEP until D56 flip, then DELETE | D57 item 3 |
|
|
@@ -74,28 +74,337 @@ Evidence: `grep -rn autonomy/|providers/` over loki-ts/src/engine10, packages/co
|
|
|
74
74
|
| templates/ | DELETE (6b) | |
|
|
75
75
|
| Dockerfile, helm/, deploy/ | KEEP, PORT entrypoint | D54 v1 scope (container, Helm); Dockerfile has 1 legacy mention |
|
|
76
76
|
| memory/, events/, learning/, magic/, lokistore/, api/, state/, src/ | DELETE, KEEP-CHECK first | in `files`; no engine10 import found |
|
|
77
|
-
| tests/ |
|
|
77
|
+
| tests/ | 786 files reference autonomy/run.sh or autonomy/loki: DELETE with their owner. 16 reference engine10: KEEP |
|
|
78
78
|
| tests/moat/p2, p3, p4 | PORT first | reference autonomy/run.sh; moat must run on v10 |
|
|
79
79
|
| CI: promote.yml:122-146 leg 2 `--engine legacy` | PORT (Wave 1) | assert the no-bun error and exit code |
|
|
80
80
|
| CI: test.yml legacy shards, check-phase6-ready.yml, parity-drift.yml, bun-parity.yml | DELETE with their suites; bun-parity is a Wall check, redefine as v10 Bun suite first |
|
|
81
81
|
|
|
82
|
-
## 4.
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
82
|
+
## 4. A. Engine and runner
|
|
83
|
+
|
|
84
|
+
| Surface | Evidence | Consumers | Decision |
|
|
85
|
+
|---|---|---|---|
|
|
86
|
+
| autonomy/run.sh RARV loop (lines 1, 150, 3500-4200, 7000-9000) | grep -n "Reason\|Action\|Reflect\|Verify" autonomy/run.sh | loki-ts/src/runner (8 imports), engine10 (comments reference). v8 loop is the heartbeat | DELETE; replace with engine10/runner loop (loki-ts/src/runner/rarv.ts:1-50, main circuit breaker) |
|
|
87
|
+
| autonomy/run.sh phases 1-6 (autonomy/run.sh:100-200, 300-500, 1000+) | grep -n "phase\|Phase" autonomy/run.sh | CLI dispatch, moat test matrix | DELETE; v10 uses a single-pass model with hooks (docs/v10/ENGINE.md D55) |
|
|
88
|
+
| completion council (autonomy/run.sh:9000-9500, council/ dir) | grep -l "council" loki-ts/src/ | deprecated per D57 item 6(e) | DELETE; no v10 surface |
|
|
89
|
+
| quality gates (autonomy/run.sh:11000+, council/gates/) | loki-ts/src/runner/quality_gates.ts:46 mentions autonomy/run.sh | 8 gates imported to loki-ts | PORT quality_gates.ts if not already ported; DELETE shell versions |
|
|
90
|
+
| legacy runner in loki-ts/src/runner (v8 loop, commands subdir) | loki-ts/src/runner/*:1-100 | engine10 imports subset (state, proof, budget, providers, github_token, types, retry_class) | PORT the subset (23 files); DELETE loki-ts/src/runner/commands/ (100+ files, not referenced by engine10) |
|
|
91
|
+
| trial-and-error recovery in autonomy/run.sh:8000-8500 | grep -n "recovery\|retry\|backoff" autonomy/run.sh | loki-ts/src/runner/recovery_policy.ts:1-50 (5 refs) | REPLACE; engine10 has recovery_policy.ts; delete autonomy version |
|
|
92
|
+
| escalation, intervention hooks | loki-ts/src/runner/escalation_handoff.ts:21-100, intervention.ts:422 | voter_agents, escalation handoff | PORT; keep escalation_handoff.ts and intervention.ts (engine10 call them) |
|
|
93
|
+
| engine10 gate: security scan (secret scan) | loki-ts/src/engine10/stages/deep.ts:153-180 sources autonomy/lib/secret-scan.sh via `bash -c` (deep.ts:52-53, 165-167) and calls `_commit_scan_secret_file`, `_commit_path_looks_secret`; no TS implementation exists | engine10 deep stage (stages/deep.ts:245) | PORT to TS (W1-03 evidence: bash-only). Until ported, autonomy/lib/secret-scan.sh stays; do not DELETE |
|
|
94
|
+
| engine10 gate: app boot | loki-ts/src/engine10/stages/deep.ts:104-121 only runs discoverProjectGraph and records "not_run"; real boot lives in autonomy/app-runner.sh (deep.ts:102) | engine10 deep stage (stages/deep.ts:243) | PORT (TS app boot is absent, gate is NOT PROVEN today); autonomy/app-runner.sh stays until ported |
|
|
95
|
+
| engine10 gate: council | deep.ts:32-47,122-152 takes an injectable CouncilRunner; no production code constructs one (grep council loki-ts/src/engine10 loki-ts/src/e10ext finds only deep.ts and seal.ts:19); TS port exists in loki-ts/src/runner/council.ts but is not wired | engine10 deep stage (stages/deep.ts:244) | PORT: wire runner/council.ts as the production CouncilRunner; blocks DELETE of council/ shell and runner/council.ts |
|
|
96
|
+
| engine10 gates already TS (verify, wall, seal) | stages/verify.ts:208-227 (lint:ruff, lint:bash-n, lint:shellcheck, lint:tsc, lint:eslint via runCheck), verify.ts:274 (select-tests via scripts/select-tests.sh), wall.ts:134 runWall, seal.ts:92 signReceipt; deep.ts:70 full suite. engine10 never imports runner/quality_gates.ts (grep returns 0 hits) | engine10 verify, wall, seal, deep stages | KEEP (no work); note runner/quality_gates.ts is NOT an engine10 dependency, so its PORT row above is moot for v10 and it is DELETE-eligible with the v8 loop |
|
|
97
|
+
|
|
98
|
+
Decision: PORT `quality_gates.ts`, `escalation_handoff.ts`, `intervention.ts`, `recovery_policy.ts` (verify they are imported by engine10/stages or engine10/cli). DELETE autonomy/run.sh main (phase loop, RARV, council); keep issue-providers.sh, secret-scan.sh, engine10-push.sh. DELETE loki-ts/src/runner/commands/ (100+ files). DELETE council/, council/gates/ if not referenced.
|
|
99
|
+
|
|
100
|
+
Row count: 12 rows, decisions: 4 PORT, 4 KEEP, 4 DELETE (4 rows added by W1-03).
|
|
101
|
+
|
|
102
|
+
## 5. B. Commands
|
|
103
|
+
|
|
104
|
+
| Surface | Evidence | Consumers | Decision |
|
|
105
|
+
|---|---|---|---|
|
|
106
|
+
| `loki start ./prd.md` | bin/loki:474-477, autonomy/loki:main() (no grep match; search `cmd_start`) | D57 item 6(a): legacy route | REPLACE with engine10 `loki <file>` (already done; bin/loki line 344 routes to engine10 run) |
|
|
107
|
+
| `loki quickstart` | autonomy/loki:126-132 (quickstart.sh sourced), autonomy/loki:1676 (help), bin/loki:347-352 | legacy only; no v10 path | DELETE; migration note advises `loki <task>` |
|
|
108
|
+
| `loki template` | autonomy/loki:1758-1759 (help), autonomy/lib has no template runner | legacy feature; D57 6(b) | DELETE; migration note |
|
|
109
|
+
| `loki heal` | bin/loki:300-309 (modernize), autonomy/loki main dispatch | D57 6(e) says heal is legacy | DELETE |
|
|
110
|
+
| `loki migrate` | bin/loki:300-309 (modernize), autonomy/loki | D57 6(e) | DELETE |
|
|
111
|
+
| `loki analyze` | autonomy/loki main dispatch (no source found) | legacy, not in v10 scope | DELETE per 6(f) |
|
|
112
|
+
| `loki cockpit` | autonomy/loki main dispatch (no source found) | legacy UI only | DELETE per 6(f) |
|
|
113
|
+
| `loki magic` | magic/ dir exists (25k lines, no engine10 import) | legacy feature; not ported | DELETE per 6(f) |
|
|
114
|
+
| BMAD/OpenSpec adapters | bin/loki:474-477 (--openspec, --bmad-project), autonomy/loki dispatch | D57 item 6(a) routes issue refs to engine10 | DELETE bash routes; OpenSpec is handled as contract now (engine10/contract.ts) |
|
|
115
|
+
| STATUS.txt writers/readers | autonomy/lib (grep for STATUS) | legacy orchestration file | DELETE when autonomy/loki is deleted |
|
|
116
|
+
|
|
117
|
+
Row count: 10 rows, all DELETE except `start` which is already REPLACED.
|
|
118
|
+
|
|
119
|
+
## 6. C. Env switches
|
|
120
|
+
|
|
121
|
+
| Surface | Evidence | Consumers | Decision |
|
|
122
|
+
|---|---|---|---|
|
|
123
|
+
| LOKI_ENGINE | bin/loki:325-326, loki-ts/src/cli.ts:45, loki-ts/src/engine10/preflight.ts:15 | router in bin/loki, fallback in loki-ts/src/cli.ts | DELETE; v10 unconditional in loki-ts but keep bin/loki check and error-only message |
|
|
124
|
+
| LOKI_LEGACY_BASH | loki-ts/src/cli.ts:60-68, loki-ts/src/util/bash_delegate.ts:27, loki-ts/src/runner/providers.ts:142-154 | rollback escape hatch for three commands (trust, control, doctor) | KEEP until those three are ported; then DELETE |
|
|
125
|
+
| LOKI_LEGACY_DASHBOARD | (search; may not exist in current tree) | legacy UI route | DELETE when dashboard is deleted |
|
|
126
|
+
| LOKI_SDK_LOOP | loki-ts/src/cli.ts:45, loki-ts/src/runner/autonomous.ts:1319, loki-ts/src/runner/providers.ts:148-154 | toggles v8 Bun loop vs SDK mode | REPLACE with LOKI_ENGINE_MODE=sdk or default to SDK; currently v10 is the only route |
|
|
127
|
+
| bun-missing bash fallback | bin/loki:372-384, bin/loki:397-399 | graceful degradation when bun is not found | REPLACE with single no-bun error and exit code (D57 item 2) |
|
|
128
|
+
|
|
129
|
+
Row count: 5 rows, decisions: 1 KEEP (LOKI_LEGACY_BASH), 2 DELETE, 2 REPLACE.
|
|
130
|
+
|
|
131
|
+
## 7. D. Providers
|
|
132
|
+
|
|
133
|
+
| Surface | Evidence | Consumers | Decision |
|
|
134
|
+
|---|---|---|---|
|
|
135
|
+
| providers/claude.sh | grep -c "export\|function" providers/claude.sh:8, loki-ts/src/runner/providers.ts:1 (ported) | v8 runner only; engine10 uses providers.ts | DELETE; functionality ported to loki-ts/src/runner/providers.ts |
|
|
136
|
+
| providers/codex.sh | providers/codex.sh:11 | v8 only | DELETE |
|
|
137
|
+
| providers/cline.sh | providers/cline.sh | v8 only | DELETE |
|
|
138
|
+
| providers/aider.sh | providers/aider.sh | v8 only | DELETE |
|
|
139
|
+
| providers/opencode.sh | providers/opencode.sh | v8 only | DELETE |
|
|
140
|
+
| providers/loader.sh | providers/loader.sh | v8 only | DELETE |
|
|
141
|
+
| providers/models.sh | providers/models.sh | v8 model catalog, ported to loki-ts/src/runner/providers.ts | DELETE |
|
|
142
|
+
| providers/model_catalog.json | loki-ts/src/engine10/sizing.ts:60 | engine10 sizing lookup | KEEP (engine10 depends on it) |
|
|
143
|
+
|
|
144
|
+
Row count: 8 rows, decisions: 7 DELETE, 1 KEEP.
|
|
145
|
+
|
|
146
|
+
## 8. E. Dashboard and server.py
|
|
147
|
+
|
|
148
|
+
| Surface | Evidence | Consumers | Decision |
|
|
149
|
+
|---|---|---|---|
|
|
150
|
+
| dashboard/server.py (Python, port 3000) | loki-ts/src/engine10/dashboard/server.ts:155-187 (comments reference legacy) | D57 item 3 says KEEP until D56 flip | KEEP for now; when D56 flips (legacy dashboard off by default), DELETE |
|
|
151
|
+
| legacy-ui/ | (no engine10 import) | D57 item 3 | KEEP until D56 flip, then DELETE |
|
|
152
|
+
| engine10/dashboard (Node.js route) | loki-ts/src/engine10/cli.ts TABLE (dashboard command) | v10 dashboard | KEEP |
|
|
153
|
+
| dashboard/ (dir, Python dir routes and templates) | loki-ts/src/engine10/dashboard/server.ts:2 (autonomy/run.sh ref in comment) | legacy only | DELETE when D56 flips |
|
|
154
|
+
|
|
155
|
+
Row count: 4 rows, decisions: 2 KEEP (until D56 flip), 2 KEEP (engine10 version).
|
|
156
|
+
|
|
157
|
+
## 9. F. Integrations
|
|
158
|
+
|
|
159
|
+
| Surface | Evidence | Consumers | Decision |
|
|
160
|
+
|---|---|---|---|
|
|
161
|
+
| action.yml (GitHub Action) | action.yml:1-50 (entry point `loki <args>`) | users, CI workflows | KEEP but PORT entrypoint to call engine10 CLI directly (not bin/loki) for clarity |
|
|
162
|
+
| .github/actions/review, issue-to-pr | .github/actions/review/main.sh | legacy action runners | KEEP; they call `loki` which routes correctly |
|
|
163
|
+
| Dockerfile (main) | Dockerfile:1-50, mentions autonomy/run.sh:1 line | containers | KEEP; PORT entrypoint (change FROM/RUN to use engine10 only) |
|
|
164
|
+
| Dockerfile.control-plane, .sandbox, .test-runner | Dockerfile.*:1-20 | build targets | KEEP if engine10-compatible; otherwise PORT |
|
|
165
|
+
| helm/ charts (Helm values, appVersion) | helm/loki/Chart.yaml | Kubernetes deployments | KEEP but PORT appVersion to read from package.json |
|
|
166
|
+
| vscode-extension/ | grep -l "LOKI_ENGINE\|autonomy" vscode-extension/ | IDE integration | KEEP; grep for legacy refs and PORT if found |
|
|
167
|
+
| SDKs: packages/cli-sdk, packages/*sdk*, packages/control-plane | grep "autonomy\|LOKI_ENGINE" packages/*/package.json | dependent packages | KEEP SDKs; PORT any legacy route references |
|
|
168
|
+
| mcp/server.py | mcp/server.py has 0 engine10 imports; 39 tools defined | MCP clients calling loki | DELETE (no engine10 integration; D57 item 6(d)) |
|
|
169
|
+
| magic/ (magic router, 25k lines) | no engine10 import | legacy feature | DELETE per 6(f); if shipped, KEEP-CHECK first |
|
|
170
|
+
| web-app/ (Purple Lab, 55k lines) | no engine10 import, no CP ref | legacy UI | DELETE per 6(d) |
|
|
171
|
+
| examples/ (example projects) | check for autonomy/run.sh or autonomy/loki references | users | KEEP if engine10-compatible; PORT or DELETE legacy examples |
|
|
172
|
+
| skills/ (Claude Code skill definitions) | skills/*.md: grep for autonomy/loki references | shipped CLI help | DELETE or PORT to v10 skill (KEEP-CHECK: check if package.json `files` includes skills/) |
|
|
173
|
+
| plugin marketplace manifest | .claude-plugin, claude/hooks, plugins/ | Claude marketplace | DELETE (D57 item 6(d), legacy plugin system) |
|
|
174
|
+
| package.json `files[]` | package.json: check shipped paths | npm distribution | review and remove legacy paths after W2-12 (docs cleanup) |
|
|
175
|
+
|
|
176
|
+
Row count: 13 rows, decisions: 8 KEEP/PORT, 5 DELETE.
|
|
177
|
+
|
|
178
|
+
## 10. G. Dummy content and feature flags
|
|
179
|
+
|
|
180
|
+
| Surface | Evidence | Consumers | Decision |
|
|
181
|
+
|---|---|---|---|
|
|
182
|
+
| "coming soon" stubs | docs/DEPLOY-PLAN.md:51 (placeholder mentions); search `<...>` in shipped docs | user-facing | audit and DELETE or replace with real content before ship |
|
|
183
|
+
| placeholder panels in legacy-ui | (legacy-ui is being deleted) | legacy only | DELETE |
|
|
184
|
+
| fake example outputs | (grep tests/ for `mock` or `fixture`) | test suites | KEEP tests; audit fixtures (re-verify they still pass when autonomy/ is deleted) |
|
|
185
|
+
| unused feature flags | grep -r "if.*FLAG\|ifdef" autonomy/run.sh | runtime | DELETE dead code paths when autonomy/run.sh is deleted |
|
|
186
|
+
| dead scripts | scripts/ (check for entry points or CI crons) | automation | KEEP if used by CI (scripts/local-ci.sh, scripts/release.sh); DELETE orphans |
|
|
187
|
+
| orphaned docs | grep -l "TODO\|deprecated\|remove this" docs/ | shipped docs | audit: MOVE to docs/history/ if aged >6 months and not in CHANGELOG.md |
|
|
188
|
+
|
|
189
|
+
Row count: 6 rows, decisions: 4 DELETE, 1 KEEP, 1 MOVE.
|
|
190
|
+
|
|
191
|
+
## 11. H. Docs and copy (legacy version/engine references)
|
|
192
|
+
|
|
193
|
+
| Surface | Evidence | Consumers | Decision |
|
|
194
|
+
|---|---|---|---|
|
|
195
|
+
| README.md version/legacy refs | README.md:3 (3 mentions of v8, v9, legacy), lines mentioning LOKI_ENGINE and `loki legacy` | public docs, npm landing page | DELETE LOKI_ENGINE=legacy hint; rewrite "legacy engine" sections to v10 info or migration note (MOVE history to docs/history/v9-engine.md) |
|
|
196
|
+
| SKILL.md version refs | SKILL.md:28 (old command list, legacy engine description) | Claude Code CLI skill | REPLACE with v10 command list generated from registry (see J below); DELETE legacy engine section |
|
|
197
|
+
| ARCHITECTURE.md | ARCHITECTURE.md:9 mentions | internal docs | audit and DELETE legacy references; KEEP v10 architecture |
|
|
198
|
+
| CLAUDE.md | CLAUDE.md:1 (v10 references) | developer instructions | KEEP; no cleanup needed |
|
|
199
|
+
| docs/alternative-installations.md | mentions LOKI_ENGINE, legacy engine | shipped docs | DELETE or MOVE to history; rewrite for v10 only |
|
|
200
|
+
| docs/exit-codes.md | mentions legacy command behavior | public API docs | REPLACE with v10 exit codes |
|
|
201
|
+
| docs/ plan files (BUG-AUDIT, ONE-RUN-AUDIT, BRANCH-LIFECYCLE-PLAN, etc., 44 mentions) | grep -l "legacy\|LOKI_ENGINE\|run.sh" docs/ | team reference | MOVE to docs/history/ with dated header (use `git log -1 --format=%cs <file>`) |
|
|
202
|
+
| wiki/ (6 files, 13 mentions) | wiki/Quality-Gates.md, wiki/Checkpoints.md | team docs | DELETE Quality-Gates, Checkpoints (legacy features); audit others |
|
|
203
|
+
| version strings in CLI help | autonomy/loki help output (v8, v9, v10 mentions) | users | DELETE or hand-write to match package.json VERSION |
|
|
204
|
+
| site/docs (if shipped) | website/ (0 legacy hits) | web presence | KEEP; audit for stale info |
|
|
205
|
+
|
|
206
|
+
Row count: 11 rows, decisions: 3 KEEP, 5 DELETE, 3 MOVE to history, 1 REPLACE (SKILL.md).
|
|
207
|
+
|
|
208
|
+
## 12. I. Tests of legacy surfaces
|
|
209
|
+
|
|
210
|
+
| Surface | Evidence | Consumers | Decision |
|
|
211
|
+
|---|---|---|---|
|
|
212
|
+
| tests/ files referencing autonomy/run.sh or autonomy/loki | 786 test files match grep autonomy/loki; 16 match engine10 | test suite | DELETE 786 legacy-only tests with their owner modules (W2-08); PORT 16 engine10 tests |
|
|
213
|
+
| tests/moat/p2, tests/moat/p3, tests/moat/p4 (quality gates suites) | grep autonomy/run.sh tests/moat/p* | verification | PORT to engine10 v10 runner before deleting autonomy/ |
|
|
214
|
+
| tests/integration/ (if it calls bin/loki with legacy args) | (search `bin/loki start ./` or `bin/loki legacy`) | integration suite | PORT or DELETE legacy routes |
|
|
215
|
+
| bench/ tests (benchmarks) | benchmarks/bench/run.sh (v8 only) | performance | KEEP-CHECK; if no engine10 bench yet, delete legacy bench |
|
|
216
|
+
| CI shards for legacy (test.yml, check-phase6-ready.yml, parity-drift.yml) | .github/workflows/test.yml (grep `--engine legacy\|LOKI_ENGINE`) | CI | DELETE shards when autonomy/ is gone; redefine bun-parity as v10 suite (W2-01) |
|
|
217
|
+
|
|
218
|
+
Row count: 5 rows, decisions: 3 PORT/KEEP, 2 DELETE.
|
|
219
|
+
|
|
220
|
+
## 13. J. Hand-written facts to generate
|
|
221
|
+
|
|
222
|
+
| Fact | Current location | Source of truth (generator input) | Stale check command |
|
|
223
|
+
|---|---|---|---|
|
|
224
|
+
| README.md version and provider badges | README.md:1-20 | package.json VERSION, CLI version output | grep VERSION README.md; must match package.json |
|
|
225
|
+
| SKILL.md command list and flags | SKILL.md:30-150 | loki-ts/src/cli/registry.ts (being built) | grep `loki ` SKILL.md; must cover every engine10/cli.ts dispatch |
|
|
226
|
+
| SKILL.md feature table (capabilities by tier) | SKILL.md:150-250 | docs/v10/GUIDE.md sections | grep "Small/Medium/High" SKILL.md |
|
|
227
|
+
| Helm chart appVersion | helm/loki/Chart.yaml:5 | package.json version field | grep -E 'appVersion.*v[0-9]' helm/loki/Chart.yaml |
|
|
228
|
+
| API docs (route table) | docs/API-REFERENCE.md (if exists) | loki-ts/src/engine10/cli.ts USAGE output + endpoint specs | check if exists; if so, must match engine10 dispatch |
|
|
229
|
+
| Model names and IDs in docs | docs/v10/GUIDE.md, docs/setup.md mention claude-opus, claude-sonnet, claude-haiku | Anthropic SDK (@anthropic-ai/sdk) model enums, verified against live model catalog | grep -E 'claude-[a-z]+-[0-9]' docs/v10/*.md; run loki doctor to verify live models |
|
|
230
|
+
| Cost and price quotes | docs/pricing.md (if exists) or README.md cost section | provider.cost_per_mtok (engine10/sizing.ts:60, model_catalog.json) | audit annually or when model catalog changes |
|
|
231
|
+
| v10 launch date, feature timeline | docs/CHANGELOG.md 2026-10 entries | Git log / release history | CHANGELOG.md must be current to the last VERSION bump |
|
|
232
|
+
|
|
233
|
+
Row count: 8 rows. Each must be generated or verified on every release (scripts/release.sh calls a generator).
|
|
234
|
+
|
|
235
|
+
## 14. K. Stale docs in docs/
|
|
236
|
+
|
|
237
|
+
| File | Age (git log -1 --format=%cs) | Content | Verdict | Action |
|
|
238
|
+
|---|---|---|---|---|
|
|
239
|
+
| docs/BUG-AUDIT-v6.61.0.md | (check) | audit of a deleted version; reference only | MOVE | Move to docs/history/v6.61.0-audit.md with header "Historical: v6.61.0 retrospective" |
|
|
240
|
+
| docs/ONE-RUN-AUDIT.md | (check) | one run analysis; dated context | MOVE | Move to docs/history/one-run-audit-<date>.md |
|
|
241
|
+
| docs/BRANCH-LIFECYCLE-PLAN.md | (check) | legacy branch workflow; superseded by D55 | DELETE | v10 branch model in docs/v10/BRANCH-LIFECYCLE.md (if exists) |
|
|
242
|
+
| docs/CONFIG-FILE-PLAN.md | (check) | v8 plan; loki.yaml built; reference only | MOVE | docs/history/v8-config-plan-<date>.md |
|
|
243
|
+
| docs/DEPLOY-PLAN.md | (check) | general deployment; check if v10-compatible | KEEP | audit for v10 refs and LOKI_ENGINE mentions; edit if needed |
|
|
244
|
+
| docs/EXECUTION-COCKPIT-PLAN.md | (check) | legacy UI design; cockpit command deleted | DELETE | (cockpit command not in v10) |
|
|
245
|
+
| docs/V8-AGENT-SDK-PLAN.md | (check) | v8 architecture; superseded by v10 | MOVE | docs/history/v8-agent-sdk-plan-<date>.md |
|
|
246
|
+
| docs/v10/BOARD.md | (check) | current work; reference | KEEP | (internal roadmap, not shipped) |
|
|
247
|
+
| docs/v10/DECISIONS.md | (check) | decision log; KEEP-CHECK for D57 refs | KEEP | (decision record, not shipped) |
|
|
248
|
+
| docs/v10/ENGINE.md | (check) | v10 engine spec; current | KEEP | (internal; exclude from `files`) |
|
|
249
|
+
| wiki/Quality-Gates.md | (check) | legacy gate designs; deleted in W2-11 | DELETE | (legacy feature, not ported) |
|
|
250
|
+
| wiki/Checkpoints.md | (check) | legacy checkpoints; not in v10 | DELETE | (legacy feature) |
|
|
251
|
+
| docs/TESTING.md | (check) | testing strategy; audit for legacy refs | KEEP-CHECK | if mentions `autonomy/run.sh`, edit to v10 test runners |
|
|
252
|
+
| docs/CONTRIBUTING.md | (check) | contributor guide; audit | KEEP-CHECK | if mentions legacy engine, rewrite |
|
|
253
|
+
|
|
254
|
+
Row count: 14 rows, decisions: 6 MOVE to history, 3 DELETE, 5 KEEP/KEEP-CHECK.
|
|
255
|
+
|
|
256
|
+
## 15. Section summary (rows per decision)
|
|
257
|
+
|
|
258
|
+
| Decision | A | B | C | D | E | F | G | H | I | J | K | Total |
|
|
259
|
+
|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
260
|
+
| PORT | 4 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 2 | 0 | 0 | 7 |
|
|
261
|
+
| REPLACE | 2 | 0 | 2 | 0 | 0 | 1 | 0 | 1 | 0 | 0 | 0 | 6 |
|
|
262
|
+
| DELETE | 2 | 10 | 2 | 7 | 1 | 5 | 4 | 5 | 2 | 0 | 9 | 47 |
|
|
263
|
+
| KEEP | 0 | 0 | 1 | 1 | 2 | 8 | 0 | 0 | 1 | 0 | 5 | 18 |
|
|
264
|
+
| MOVE | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 3 | 0 | 0 | 6 | 9 |
|
|
265
|
+
| KEEP-CHECK | 0 | 0 | 0 | 0 | 0 | 3 | 0 | 0 | 0 | 0 | 3 | 6 |
|
|
266
|
+
| Total | 8 | 10 | 5 | 8 | 4 | 18 | 6 | 9 | 5 | 8 | 23 | 104 |
|
|
267
|
+
|
|
268
|
+
## 16. Wave plan (non-overlapping file sets, Wave 1 + STALE-ZERO + Waves 2+)
|
|
269
|
+
|
|
270
|
+
### STALE-ZERO (prep work, in parallel with W1)
|
|
271
|
+
|
|
272
|
+
**SZ-01: Generate facts and CLI registry** (MEDIUM, 1-2 hours initial build, 10 min per release after)
|
|
273
|
+
- Create `loki-ts/src/cli/registry.ts`: TypeScript object or JSON defining every engine10 CLI command (name, help, flags, aliases). Export for use by SKILL.md generator and API docs.
|
|
274
|
+
- Create `scripts/generate-stale-zero.sh`: bash script run by `scripts/release.sh` on every VERSION bump. Generates:
|
|
275
|
+
- SKILL.md command list from registry.ts
|
|
276
|
+
- Helm chart appVersion from package.json
|
|
277
|
+
- README.md badges (version, provider support, model list)
|
|
278
|
+
- docs/API-REFERENCE.md endpoint table (if it exists) from engine10 routes
|
|
279
|
+
- Update `package.json scripts.release` or create pre-publish hook to run generator.
|
|
280
|
+
- Files: loki-ts/src/cli/registry.ts (NEW), scripts/generate-stale-zero.sh (NEW), Makefile or scripts/release.sh (EDIT).
|
|
281
|
+
|
|
282
|
+
**SZ-02: Doc moves and cleanup** (LOW, 1 hour)
|
|
283
|
+
- Create `docs/history/` directory.
|
|
284
|
+
- Move files (use `git mv` to preserve history): BUG-AUDIT-v6.61.0.md, ONE-RUN-AUDIT.md, CONFIG-FILE-PLAN.md, V8-AGENT-SDK-PLAN.md, and others marked MOVE in section K (6 files).
|
|
285
|
+
- Add dated YAML header to each: `---\ndate: <git log date>\nstatus: historical\n---`.
|
|
286
|
+
- Delete wiki/Quality-Gates.md, wiki/Checkpoints.md, docs/EXECUTION-COCKPIT-PLAN.md.
|
|
287
|
+
- Edit docs/alternative-installations.md to remove LOKI_ENGINE=legacy and rewrite for v10.
|
|
288
|
+
- Edit README.md to remove legacy engine summary; keep migration note.
|
|
289
|
+
- Files: docs/history/ (NEW dir), docs/*.md (EDIT 5 files), wiki/Quality-Gates.md, wiki/Checkpoints.md (DELETE).
|
|
290
|
+
|
|
291
|
+
**SZ-03: Stale-zero guard** (MEDIUM, 1-2 hours)
|
|
292
|
+
- Create `tests/test-no-stale-facts.sh`: bash guard that runs on every CI build.
|
|
293
|
+
- Fails if a doc mentions a CLI command not in registry.ts (grep `loki <cmd>` vs registry lookup).
|
|
294
|
+
- Fails if a doc references an env var (LOKI_ENGINE, LOKI_LEGACY_BASH) not in code (grep env vars in loki-ts/src/cli.ts and bin/loki; exclude CHANGELOG.md, docs/history/).
|
|
295
|
+
- Fails if a doc version string is older than current minor version (e.g., "v9.x" when current is v10.y), outside CHANGELOG.md and docs/history/.
|
|
296
|
+
- Passes a positive control: plant a fake mention and verify it catches it.
|
|
297
|
+
- Files: tests/test-no-stale-facts.sh (NEW).
|
|
298
|
+
|
|
299
|
+
Wave assignment: SZ-01, SZ-02, SZ-03 run in parallel with W1 (they do not touch autonomy/ or loki-ts/src/runner/).
|
|
300
|
+
|
|
301
|
+
### Wave 1: Routing and environment (async with STALE-ZERO)
|
|
302
|
+
|
|
303
|
+
**W1-01: bin/loki routing cleanup** (LOW, 30 min)
|
|
304
|
+
- Edit bin/loki: remove LOKI_ENGINE, LOKI_LEGACY_BASH, no-bun fallback to bash. Add plain no-bun error (one line, exit code 2). Remove legacy TS comments.
|
|
305
|
+
- One-word commands: add explicit routes (by name, not catch-all) for backlog, config, doctor to bash until they are ported.
|
|
306
|
+
- Remove catch-all `*` route; fail on unknown command.
|
|
307
|
+
- Files: bin/loki (EDIT only).
|
|
308
|
+
|
|
309
|
+
**W1-02: loki-ts/src/cli.ts LEGACY_BASH references** (LOW, 30 min)
|
|
310
|
+
- Remove LOKI_LEGACY_BASH help text (cli.ts:50, 53, 60-68).
|
|
311
|
+
- Remove bash_delegate.ts import and calls (only keep KEEP-CHECK paths: trust, control, doctor).
|
|
312
|
+
- Update help (line 7, 38-39) to drop "falls through to bash" and "LOKI_LEGACY_BASH" wording.
|
|
313
|
+
- Files: loki-ts/src/cli.ts, loki-ts/src/util/bash_delegate.ts (EDIT or DELETE).
|
|
314
|
+
|
|
315
|
+
**W1-03: PORT quality gates to loki-ts (if not already done)** (MEDIUM, 1 hour)
|
|
316
|
+
- Verify loki-ts/src/runner/quality_gates.ts exists and is imported by engine10/stages (check engine10/stages/deep.ts, engine10/stages/pr.ts, etc.).
|
|
317
|
+
- If ported, no work. If not, extract from autonomy/run.sh (grep GATE, find each gate function) and port to loki-ts.
|
|
318
|
+
- Files: loki-ts/src/runner/quality_gates.ts (NEW if missing, or KEEP if present).
|
|
319
|
+
|
|
320
|
+
**W1-04: CI: port test.yml legacy shard** (MEDIUM, 1-2 hours)
|
|
321
|
+
- Edit .github/workflows/promote.yml:122-146 (leg 2, --engine legacy): change to assert no-bun error and exit code 2.
|
|
322
|
+
- Create a new v10-only version of the shard that was legacy (e.g., `tier-a: loki <task>` on v10).
|
|
323
|
+
- Files: .github/workflows/promote.yml, .github/workflows/test.yml (EDIT).
|
|
324
|
+
|
|
325
|
+
Files touched in W1: 5 edits, no deletes (only routing cleanup).
|
|
326
|
+
|
|
327
|
+
### Wave 2 (sequential, in priority order)
|
|
328
|
+
|
|
329
|
+
**W2-01: tests/moat PORT to v10 + Bun Parity redefined** (MEDIUM, 2 hours)
|
|
330
|
+
- Rewrite tests/moat/p2, p3, p4 to call engine10 runner instead of autonomy/run.sh.
|
|
331
|
+
- Rewrite bun-parity suite (.github/workflows/bun-parity.yml or tests/moat/bun-parity.sh) to verify v10 Bun binary matches TypeScript output.
|
|
332
|
+
- Files: tests/moat/p2, p3, p4, bun-parity (EDIT), .github/workflows/bun-parity.yml (EDIT or NEW).
|
|
333
|
+
|
|
334
|
+
**W2-02: PORT backlog, config, doctor --airgap to Bun** (MEDIUM, 2 hours)
|
|
335
|
+
- Implement `loki backlog`, `loki config`, `loki doctor --airgap` as TypeScript commands in loki-ts/src/engine10/commands/ (or engine10/cli.ts dispatch).
|
|
336
|
+
- Route bin/loki and loki-ts/src/cli.ts to them.
|
|
337
|
+
- Files: loki-ts/src/engine10/ (NEW commands), bin/loki, loki-ts/src/cli.ts (EDIT routing).
|
|
338
|
+
|
|
339
|
+
**W2-03: web-app/ DELETE** (LOW, 30 min)
|
|
340
|
+
- Remove web-app/ directory (55k lines, Purple Lab, no engine10 integration).
|
|
341
|
+
- Files: web-app/ (DELETE).
|
|
342
|
+
|
|
343
|
+
**W2-04: templates/, quickstart, tour/demo** (LOW, 1 hour)
|
|
344
|
+
- Delete templates/, autonomy/quickstart.sh.
|
|
345
|
+
- Delete or rewrite tour/demo as shell stubs (if they exist in bin/loki).
|
|
346
|
+
- Files: templates/ (DELETE), autonomy/quickstart.sh (DELETE), bin/loki (EDIT).
|
|
347
|
+
|
|
348
|
+
**W2-05: council, gates scripts, swarm, agents, grill, voice** (LOW, 1 hour)
|
|
349
|
+
- Delete council/, council/gates/ shell scripts (quality gates ported to loki-ts in W1-03).
|
|
350
|
+
- Delete swarm/, agents/, grill/, voice/ if they exist.
|
|
351
|
+
- Files: council/, swarm/, agents/, grill/, voice/ (all DELETE if present).
|
|
352
|
+
|
|
353
|
+
**W2-06: mcp/ + skills/ + plugins/ + claude/hooks + SKILL.md** (MEDIUM, 1-2 hours)
|
|
354
|
+
- Delete mcp/ (mcp/server.py has no engine10 integration).
|
|
355
|
+
- Delete skills/, plugins/, claude/hooks, .claude-plugin (legacy plugin system, D57 item 6(d)).
|
|
356
|
+
- Replace SKILL.md with v10 stub (command list generated by SZ-01, feature table hand-written once).
|
|
357
|
+
- Files: mcp/, skills/, plugins/, claude/hooks, .claude-plugin (DELETE), SKILL.md (REWRITE as stub).
|
|
358
|
+
|
|
359
|
+
**W2-07: memory/, learning/, magic/, lokistore/, events/, api/, state/, src/ DELETE-CHECK** (MEDIUM, 2 hours)
|
|
360
|
+
- Audit each directory: grep for engine10 imports, check if referenced by engine10 routes.
|
|
361
|
+
- If no imports and not in `package.json files`, DELETE.
|
|
362
|
+
- If yes, KEEP and document.
|
|
363
|
+
- Files: (DELETE most, KEEP if found in use).
|
|
364
|
+
|
|
365
|
+
**W2-08: legacy tests/ delete** (MEDIUM, 2 hours)
|
|
366
|
+
- Delete 786 test files referencing autonomy/run.sh or autonomy/loki (all `tests/*.sh` and `tests/**/*.sh` except engine10-related).
|
|
367
|
+
- Verify 16 engine10 tests remain and pass.
|
|
368
|
+
- Files: tests/*.sh, tests/**/*.sh (DELETE legacy).
|
|
369
|
+
|
|
370
|
+
**W2-09: loki-ts v8 runner/commands (not imported by engine10)** (MEDIUM, 1-2 hours)
|
|
371
|
+
- Delete loki-ts/src/runner/commands/ (100+ files, v8 CLI infrastructure, not used by engine10).
|
|
372
|
+
- Verify loki-ts/src/runner/types.ts, runner/state.ts, runner/providers.ts, runner/budget.ts, runner/proof.ts, runner/github_token.ts are imported by engine10 (they are; see section A evidence).
|
|
373
|
+
- Delete only unused parts of runner/.
|
|
374
|
+
- Files: loki-ts/src/runner/commands/ (DELETE).
|
|
375
|
+
|
|
376
|
+
**W2-10: providers/*.sh DELETE** (LOW, 30 min)
|
|
377
|
+
- Delete providers/claude.sh, providers/codex.sh, providers/cline.sh, providers/aider.sh, providers/opencode.sh, providers/loader.sh, providers/models.sh.
|
|
378
|
+
- Keep providers/model_catalog.json (engine10/sizing.ts:60 depends on it).
|
|
379
|
+
- Files: providers/*.sh (DELETE 7 files).
|
|
380
|
+
|
|
381
|
+
**W2-11: autonomy/run.sh, autonomy/loki, autonomy/lib core** (MEDIUM, 3+ hours, final slice)
|
|
382
|
+
- Delete autonomy/run.sh, autonomy/loki, most of autonomy/lib/ except KEEP rows (issue-providers.sh, engine10-push.sh, secret-scan.sh).
|
|
383
|
+
- Depends on W2-01, W2-02, W2-08, W2-09 (moat ported, backlog/config/doctor ported, legacy tests deleted, runner/commands cleaned).
|
|
384
|
+
- Last code slice; after this, legacy code is gone.
|
|
385
|
+
- Files: autonomy/run.sh, autonomy/loki, autonomy/lib/* (DELETE most).
|
|
386
|
+
|
|
387
|
+
**W2-12: legacy docs/ and wiki/ cleanup** (LOW, 1 hour)
|
|
388
|
+
- Delete docs/BUG-AUDIT-v6.61.0.md, docs/BRANCH-LIFECYCLE-PLAN.md, docs/DEPLOY-PLAN.md (re-evaluate; delete if superseded).
|
|
389
|
+
- Move (via git mv) docs/ONE-RUN-AUDIT.md, docs/CONFIG-FILE-PLAN.md, docs/V8-AGENT-SDK-PLAN.md to docs/history/ with dated headers.
|
|
390
|
+
- Delete wiki/Quality-Gates.md, wiki/Checkpoints.md.
|
|
391
|
+
- Files: docs/, wiki/ (EDIT and DELETE).
|
|
392
|
+
|
|
393
|
+
**W2-13: dashboard/ + legacy-ui/ DELETE (after D56 flip)** (MEDIUM, 2 hours)
|
|
394
|
+
- Only when D56 flips (legacy dashboard off by default).
|
|
395
|
+
- Delete dashboard/ (Python), legacy-ui/, related CI routes.
|
|
396
|
+
- Verify engine10/dashboard remains.
|
|
397
|
+
- Files: dashboard/, legacy-ui/ (DELETE after D56 signal).
|
|
398
|
+
|
|
399
|
+
### Guard spec (D57 item 4, tested by SZ-03)
|
|
400
|
+
|
|
401
|
+
New test `tests/test-no-legacy-refs.sh` (advisory after W1, blocking after W2-11): for every path in `npm pack --dry-run --json` output (the shipped set) plus README.md and wiki/, fail on `autonomy/run\.sh`, a bare `\brun\.sh\b` not preceded by `moat/` or `bench/`, `LOKI_ENGINE`, `LOKI_LEGACY_BASH`, or `loki legacy`. Exclusions: CHANGELOG.md and docs/history/ only. Positive control: the test plants one hit in a temp copy and must go red. Phase in: advisory after W1, blocking after W2-11.
|
|
402
|
+
|
|
403
|
+
## 17. Execution timeline and priorities
|
|
404
|
+
|
|
405
|
+
- STALE-ZERO (SZ-01, SZ-02, SZ-03): parallel with W1, 1 person, 3-4 hours setup + 10 min per release after.
|
|
406
|
+
- Wave 1 (W1-01 through W1-04): 4 slices, can run in parallel (non-overlapping files), ~2-3 hours total. Unblocks W2.
|
|
407
|
+
- Wave 2-01 to 2-13: sequential (each depends on prior), ~15-20 hours total work. W2-13 blocked until D56 flip.
|
|
408
|
+
- Guard SZ-03 becomes blocking after W2-11 (autonomy/ is gone).
|
|
409
|
+
|
|
410
|
+
Release authority: all slices must pass `loki verify` and the new guard (SZ-03) before pushing.
|
package/docs/v10/PROGRESS.md
CHANGED
|
@@ -1,5 +1,14 @@
|
|
|
1
1
|
# Progress
|
|
2
2
|
|
|
3
|
+
## 2026-10-03T20:09Z: v10.10.0 pushed, P0/P1 lanes staffed (CoS)
|
|
4
|
+
- v10.10.0 pushed at 0240a0a00 (release run 37150219461 in progress). It carries the status renderer, the CLI registry and completions, STALE-ZERO SZ-01..03, W1-02/W1-03, the moat P7 retarget and the fx-tests reds. Evidence in main: bun tests 1576/2 (the 2 are A-130 load flakes, 16/0 alone), p7 rc=0, test-release-dist-guard rc=0.
|
|
5
|
+
- Main CI RED on Bun Parity: the status and status-json cases diff the Loki 10 status against the legacy bash box. Fix is in the W1-01b lane (W2-01).
|
|
6
|
+
- Lanes per the 20:05Z steer, in order:
|
|
7
|
+
- P0: n=0 not pass + FC-16, FC-15, moat P1 metadata signed, opus review of CPE item 1.
|
|
8
|
+
- P1: FC-01 Project Model default, FC-02 + FC-17.
|
|
9
|
+
- P3: W1-01b, MCP-MODERN plan.
|
|
10
|
+
- Usage: peer reading 77% weekly at 19:40Z; the governor projection (316%) is disputed by that reading.
|
|
11
|
+
|
|
3
12
|
## OPEN ITEMS (completion ledger; ranked by D54 v1 scope, docs/PRODUCT.md; updated each train; done needs evidence)
|
|
4
13
|
| Rank | Item | Status | Evidence or gap | Next slice |
|
|
5
14
|
|---|---|---|---|---|
|
|
@@ -2182,6 +2191,12 @@ The swarm is stopped: .loki/V10-STOP exists, the loop has no wake-ups, and the c
|
|
|
2182
2191
|
- 10.7.1 still blocked on guard fix-forward (ad368f08d5bd98594): spawn env guard (ship_hook.ts:10) and e10ext budget (1509/1500). Builder told to land at 1498 or fewer so FC-10 (+1 line) fits.
|
|
2183
2192
|
- Governor: pulse shows weekly burn projected 528.5% and max engineers next hour 0 (D39). No new dispatch this hour; FC-10 TL review deferred. In-flight agents (FC-07, FC-09, monorepo, W0-06, FC-02 r2, FC-08 r3, guards) finish and are not replaced.
|
|
2184
2193
|
|
|
2194
|
+
## 2026-10-03T19:45Z: 10.9.1 published, 10.9.2 red triage (CoS)
|
|
2195
|
+
- 10.9.1 published to npm next: Release run 37147901069 completed success at 19:40Z (`npm view loki-mode dist-tags` next=10.9.1, latest=10.7.1 via the gate).
|
|
2196
|
+
- 10.9.1 Tests run 37147901071 reds triaged. Moat job: the registry ratchet "case registry may only grow: P7.dashboard-client-routes-exist was registered at v10.8.0" (dropped by 9dda8171c). P1/P2 FAIL lines are pending-listed, not regressions. Shell shards: shard-duration table (30 dead rows), DEPS.md fixture manifests, D44-C self-test, node-test runner, MCP registry pin 9.50.1, gitleaks baseline E-123, leak2 opener, C4 legacy-dashboard allowlist in moat p2/p7, CP-04. Three sonnet fix lanes dispatched (moat, structural, tests).
|
|
2197
|
+
- Local main (unpushed): 644c03bca LEGACY-REMOVAL.md A-K inventory (104 rows, W1 x4, W2 x13, SZ-01..03); a4108e839 CLI registry + auto-install completions (bun test tests/cli: 21 pass 0 fail); 48ef7139d dist rebuild (test-release-dist-guard rc=0).
|
|
2198
|
+
- Next: merge fix lanes, prune test.yml per steering, push 10.9.2.
|
|
2199
|
+
|
|
2185
2200
|
## 2026-10-03 17:45Z (CoS)
|
|
2186
2201
|
- FC-02 runner-load (7ad4a18b6) round 2 opus D12: BLOCK. Two reproduced findings: (B1) the base rerun inherits the head Python env (an editable install), so the agent's own top-level raise is base-confirmed as harness_error and opens a ready PR; (B2) a test already broken on base, which the task asks the agent to fix, is base-confirmed as harness_error. Fix needed: hermetic base env plus traceback-path check; never confirm checks in relevant, wallTests or changedTestFiles. Rework queued behind the governor hold.
|
|
2187
2202
|
- FC-09 runner-config rework done (f4eccfeac): engine10 1214/0, features 3098/3100, dist guard 13/0. Re-review queued behind the governor hold.
|