loki-mode 10.6.10 → 10.6.11
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/SKILL.md +2 -2
- package/VERSION +1 -1
- package/dashboard/__init__.py +1 -1
- package/docs/INSTALLATION.md +1 -1
- package/docs/v10/BOARD.md +10 -6
- package/docs/v10/DECISIONS.md +7 -0
- package/docs/v10/E2E-D65.md +8 -0
- package/docs/v10/PROGRESS.md +14 -0
- package/loki-ts/dist/loki.js +442 -442
- package/mcp/__init__.py +1 -1
- package/package.json +1 -1
- package/plugins/loki-mode/.claude-plugin/plugin.json +1 -1
- package/web-app/dist/assets/{AdminPage-OaSCF3M4.js → AdminPage-BnPQzCoC.js} +1 -1
- package/web-app/dist/assets/{Avatar-xa3G7_vs.js → Avatar-DBpPssag.js} +1 -1
- package/web-app/dist/assets/{Badge-Ci_UcHij.js → Badge-CxlVZMg8.js} +1 -1
- package/web-app/dist/assets/{Button-CFrrmbvL.js → Button-BXMmAcji.js} +1 -1
- package/web-app/dist/assets/{CockpitPage-6hyVl_QZ.js → CockpitPage-Birxgrlx.js} +1 -1
- package/web-app/dist/assets/{ComparePage-B5H56KCG.js → ComparePage-BqqDXwLS.js} +1 -1
- package/web-app/dist/assets/{ErrorBoundary-CBbRHsYr.js → ErrorBoundary-C0u7Mi2z.js} +1 -1
- package/web-app/dist/assets/{EvidenceReceiptPanel-D-Zoneum.js → EvidenceReceiptPanel-Cp-3O8W8.js} +1 -1
- package/web-app/dist/assets/{GitHubIssuesPanel-D7XPRsic.js → GitHubIssuesPanel-B_W8k95U.js} +1 -1
- package/web-app/dist/assets/{GitHubPRsPanel-CzHbBPAn.js → GitHubPRsPanel-BqvyZ1r1.js} +1 -1
- package/web-app/dist/assets/{HomePage-ClOx5qF1.js → HomePage-BQ7osrwA.js} +2 -2
- package/web-app/dist/assets/{LoginPage-3Yz_9j8E.js → LoginPage-B2aHa3wI.js} +1 -1
- package/web-app/dist/assets/{MagicPage-Dumn48gC.js → MagicPage-DwIxsJzJ.js} +1 -1
- package/web-app/dist/assets/{MetricsPage-CYCYVG_8.js → MetricsPage-CRhnEmp8.js} +1 -1
- package/web-app/dist/assets/{NotFoundPage-CV-x_1qH.js → NotFoundPage-ByEZNNyC.js} +1 -1
- package/web-app/dist/assets/{ProjectPage-CeO7dnyM.js → ProjectPage-LSU-iiUP.js} +3 -3
- package/web-app/dist/assets/{ProjectsPage-BT9mz6iD.js → ProjectsPage-lBbt1xYZ.js} +1 -1
- package/web-app/dist/assets/{SettingsPage-BL8X9fAB.js → SettingsPage-DOdfwqdK.js} +1 -1
- package/web-app/dist/assets/{ShowcasePage-8f3lnSpc.js → ShowcasePage-CjsS6oSQ.js} +1 -1
- package/web-app/dist/assets/{SystemSettingsPage-BUNAAzh2.js → SystemSettingsPage-O-HGI2S_.js} +1 -1
- package/web-app/dist/assets/{TeamsPage-Qj-VEZJz.js → TeamsPage-Mt8EP17C.js} +1 -1
- package/web-app/dist/assets/{TemplatesPage-b8lKqe5q.js → TemplatesPage-CVVy4Iz7.js} +1 -1
- package/web-app/dist/assets/{TerminalOutput-jOnfQKB4.js → TerminalOutput-XUgC02sX.js} +1 -1
- package/web-app/dist/assets/{activity-w7GnyBNp.js → activity-DU5SJfx3.js} +1 -1
- package/web-app/dist/assets/{bell-2i4ejMOA.js → bell-C5YepG66.js} +1 -1
- package/web-app/dist/assets/{bot-jaPm4NIs.js → bot-BRExedZU.js} +1 -1
- package/web-app/dist/assets/{check-CvNtxeKM.js → check-DsyIFRaT.js} +1 -1
- package/web-app/dist/assets/{chevron-left-zzBjHAtX.js → chevron-left-DdK1iGTs.js} +1 -1
- package/web-app/dist/assets/{circle-alert-CCU0IU2m.js → circle-alert-C_4QlfMh.js} +1 -1
- package/web-app/dist/assets/{clock-BvZckMwN.js → clock-BY9MJ-Yl.js} +1 -1
- package/web-app/dist/assets/{cloud-hrMWDdYp.js → cloud-Cl1jOslN.js} +1 -1
- package/web-app/dist/assets/{code-xml-v6l40T-K.js → code-xml-BRRBRbeE.js} +1 -1
- package/web-app/dist/assets/{database-l2TMUrQd.js → database-BtZdEQTc.js} +1 -1
- package/web-app/dist/assets/{dollar-sign-C2V6OvpO.js → dollar-sign-BqQ0fBnq.js} +1 -1
- package/web-app/dist/assets/{file-code-corner-Bytb5JGA.js → file-code-corner-Q9YsC7IC.js} +1 -1
- package/web-app/dist/assets/{file-plus-BynCYQB8.js → file-plus-GrZYy7o7.js} +1 -1
- package/web-app/dist/assets/{globe-DifDdNMH.js → globe-CNKuJhK7.js} +1 -1
- package/web-app/dist/assets/{hammer-D7TsOJD6.js → hammer-Cauj0_Mr.js} +1 -1
- package/web-app/dist/assets/{index-Zohfqaz4.js → index-4c5tMfoO.js} +3 -3
- package/web-app/dist/assets/{layers-Bk8c2YLS.js → layers-IEQ3AZ0i.js} +1 -1
- package/web-app/dist/assets/{loader-circle-BrLdbMwP.js → loader-circle-DkC6SXf0.js} +1 -1
- package/web-app/dist/assets/{lock-COpmjMyJ.js → lock-Db0jlkGG.js} +1 -1
- package/web-app/dist/assets/{package-BMzYdY7F.js → package-BkagJWcN.js} +1 -1
- package/web-app/dist/assets/{plus-B9xpu1Pg.js → plus-BH3dF7wB.js} +1 -1
- package/web-app/dist/assets/{refresh-cw-C2Lzh-AA.js → refresh-cw-3r-v6CaV.js} +1 -1
- package/web-app/dist/assets/{rotate-ccw-2Yyy-uQd.js → rotate-ccw-DuqsPonD.js} +1 -1
- package/web-app/dist/assets/{scroll-text-DiK2yhsT.js → scroll-text-OaKgXAF3.js} +1 -1
- package/web-app/dist/assets/{server-xlJBgleU.js → server-283wBoqS.js} +1 -1
- package/web-app/dist/assets/{shield-alert-D9w4yBCi.js → shield-alert-Cfka1gvI.js} +1 -1
- package/web-app/dist/assets/{thumbs-up-CcWfvcE9.js → thumbs-up-Be3PhCnV.js} +1 -1
- package/web-app/dist/assets/{trash-2-_hk_pEAp.js → trash-2-BDKSlpn4.js} +1 -1
- package/web-app/dist/assets/{trending-down-CDZT99tC.js → trending-down-SkioL8cr.js} +1 -1
- package/web-app/dist/assets/{trending-up-A0oreTXc.js → trending-up-CzCzHgB7.js} +1 -1
- package/web-app/dist/assets/{upload-DfLwhGG2.js → upload-DlhOQ6b3.js} +1 -1
- package/web-app/dist/assets/{usePolling-B7gW2YY_.js → usePolling-Z7LLnCrf.js} +1 -1
- package/web-app/dist/assets/{user-C-y7_Oon.js → user-BKegc_v2.js} +1 -1
- package/web-app/dist/index.html +1 -1
package/SKILL.md
CHANGED
|
@@ -3,7 +3,7 @@ name: loki-mode
|
|
|
3
3
|
description: An autonomous software factory that knows what it is supposed to deliver, and proves it did. Use when the user says Loki Mode or asks to build, fix or verify software autonomously.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
# Loki Mode v10.6.
|
|
6
|
+
# Loki Mode v10.6.11
|
|
7
7
|
|
|
8
8
|
**Current entry points (Loki 10 engine):** `loki "<task>"`, `loki owner/repo#N` and `loki quick "<task>"` run the Loki 10 engine and end with a signed receipt (`loki verify`). `loki backlog owner/repo --all` runs many issues in parallel. Guide: `docs/v10/GUIDE.md`. The skill instructions below, and `loki start`, describe the legacy engine, which still ships and is being removed (`loki start owner/repo#N` still routes to it; prefer `loki owner/repo#N`).
|
|
9
9
|
|
|
@@ -473,4 +473,4 @@ See `CHANGELOG.md` entries [7.5.7], [7.5.8], [7.5.13] for the per-fix list and r
|
|
|
473
473
|
|
|
474
474
|
---
|
|
475
475
|
|
|
476
|
-
**v10.6.
|
|
476
|
+
**v10.6.11 | [Autonomi](https://www.autonomi.dev/) flagship product | core skill**
|
package/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
10.6.
|
|
1
|
+
10.6.11
|
package/dashboard/__init__.py
CHANGED
package/docs/INSTALLATION.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
The flagship product of [Autonomi](https://www.autonomi.dev/). Loki Mode is a spec-driven autonomous builder with a built-in trust layer that takes any spec to a deployed product and verifies completion with evidence (quality gates plus a completion council), not just a "done" claim. Complete installation instructions for all platforms and use cases.
|
|
4
4
|
|
|
5
|
-
**Version:** v10.6.
|
|
5
|
+
**Version:** v10.6.11
|
|
6
6
|
|
|
7
7
|
**Engine note:** `loki "<task>"`, `loki owner/repo#N` and `loki quick` run the Loki 10 engine. `loki start` still routes to the legacy engine, which is being removed (planned work resumes 2026-10-07); prefer `loki owner/repo#N`. See [docs/v10/GUIDE.md](v10/GUIDE.md).
|
|
8
8
|
|
package/docs/v10/BOARD.md
CHANGED
|
@@ -606,8 +606,8 @@ Source: ~/git/autonomi-dev/research/2026-09-30-adoption/SWARM-PROMPT-ADOPTION.md
|
|
|
606
606
|
| A-04 | loki-seal: a Claude Code skill plus hook that runs the repo's real test suite on the current diff, refuses done on red or on deleted, skipped, xfailed or weakened tests or CI config (diff scan plus a tree hash of existing tests), prints a 5-line receipt; zero model cost, no dangerous flags; self-contained, no LICENSE file; SUBMIT.md drafts only; a 20-second vhs or asciinema script | packages/loki-seal/** | HIGH | fixture repos: deleting a failing test is blocked; a real fix passes; each weakening class caught | released@2026-10-01T00:52Z | Tier 1 wedge; answers issue #42. Released in v10.5.13 (merge a61e1721 is an ancestor of v10.5.13). |
|
|
607
607
|
| A-04b | loki-seal follow-ups from opus r5: reset the hook-error counter after a successful stop; fall back to stop_hook_active repetition when the tmpdir is read-only or full; tests must write loki-seal-err-* counter files under LOKI_RUN_TMP, not the real os.tmpdir() | packages/loki-seal/** | MEDIUM | package tests plus demo dry-run; no files left in the real tmpdir after the suite | merged@2026-10-01T08:56Z | Source: A-04 opus r5 APPROVE notes. |
|
|
608
608
|
| A-09 | README under 150 lines (directive item 9): line 1 "Your agent says done. Loki proves it." (veto pending, founder queue 10); line 2 "An autonomous software factory that knows what it is supposed to deliver, and proves it did." (D45); then the loki-seal 20-second GIF (placeholder until recorded), then two install lines (loki-seal first, `npx loki-mode tour` second); flags, internal paths, version stamps and app-builder comparisons move to docs; remove the commercial-editions sentence from the top and the npm total-downloads and Docker pulls badges; define "Seal" in one sentence or stop using the word; package.json description and SKILL.md description use line 2 verbatim (SKILL.md header and footer version rules still apply) | README.md, docs/ (moved sections), package.json (description only), SKILL.md (description only) | MEDIUM | README <= 150 lines; no retracted claims (directive Never list); structural checks (SKILL.md sync, readme version) pass | released@2026-10-01T00:52Z | Source: directive item 9 plus D45. Released in v10.5.13 (merge 38ffd386 is an ancestor of v10.5.13). |
|
|
609
|
-
| A-04c | loki-seal reads the delivery contract (D45): from the task or issue the user gave the session (prompt text, a linked issue, a spec file), derive the acceptance checks and refuse "done" until the checks tied to that request pass, not only "the suite is green"; when no contract can be derived, say so on the receipt (NOT VERIFIED: no contract) instead of passing on green alone. Design first (how the hook sees the user request: transcript_path from the hook input, first user message), then build; zero model cost stays a constraint | packages/loki-seal/** | HIGH | fixtures: a session asking for behavior X with a green suite that never tests X is NOT VERIFIED; with a test for X passing it PASSes |
|
|
610
|
-
| A-103b | Seal lists each discarded Wall test in not_proven as "wall test discarded: <path> (<class>)" (A-103 kept seal.ts out of its file set; today only a count appears via base_run not_run) | loki-ts/src/engine10/stages/seal.ts, its test | HIGH | fixture: a discarded Wall file appears by path in not_proven |
|
|
609
|
+
| A-04c | loki-seal reads the delivery contract (D45): from the task or issue the user gave the session (prompt text, a linked issue, a spec file), derive the acceptance checks and refuse "done" until the checks tied to that request pass, not only "the suite is green"; when no contract can be derived, say so on the receipt (NOT VERIFIED: no contract) instead of passing on green alone. Design first (how the hook sees the user request: transcript_path from the hook input, first user message), then build; zero model cost stays a constraint | packages/loki-seal/** | HIGH | fixtures: a session asking for behavior X with a green suite that never tests X is NOT VERIFIED; with a test for X passing it PASSes | building@2026-10-03T08:24Z | r1 d07db333e opus BLOCK: B1 contract blocks drain the shared valve (later skip regression released), B2 conversational/README items block, B3 assertion-free test satisfies item; r2 building |
|
|
610
|
+
| A-103b | Seal lists each discarded Wall test in not_proven as "wall test discarded: <path> (<class>)" (A-103 kept seal.ts out of its file set; today only a count appears via base_run not_run) | loki-ts/src/engine10/stages/seal.ts, its test | HIGH | fixture: a discarded Wall file appears by path in not_proven | building@2026-10-03T08:22Z | sonnet builder on main 76b6c58ff (SPEC-F2 seal.ts merged first) |
|
|
611
611
|
| A-101 | Receipt canonicalization and verify help (item 1) | see docs/v10/ADOPTION-PLAN.md A-101 | HIGH | first-run-gate assertion per plan card | released@2026-09-30T21:23Z | Wave per plan section 5; one writer per file. Released in v10.5.11 (merge 5ea92836 is an ancestor of v10.5.11). |
|
|
612
612
|
| A-102 | Test-runner detection: node:test plus fixtures for all six runners (item 1) | see plan A-102 | HIGH | first-run-gate assertion per plan card | released@2026-10-01T00:52Z | Wave per plan section 5; one writer per file. Released in v10.5.13 (merge 0990afb8 is an ancestor of v10.5.13). |
|
|
613
613
|
| A-104 | Commit only the fix (items 1 and 2, v10) | see plan A-104 | HIGH | first-run-gate assertion per plan card | released@2026-09-30T21:23Z | Wave per plan section 5; one writer per file. Released in v10.5.11 (merge d86a5817 is an ancestor of v10.5.11). |
|
|
@@ -618,7 +618,7 @@ Source: ~/git/autonomi-dev/research/2026-09-30-adoption/SWARM-PROMPT-ADOPTION.md
|
|
|
618
618
|
| D50-F2r | D50-F2 rework, honest label only: label a test value change only on the expected side of an assert comparison or a parametrize expected value, only when the old or new value appears in the task text; wording 'assertion value changed (not shown to be required by the task): file:line old -> new' and keep the 'weakened test' line beside it; exclude control flow, range, tolerances, approx kwargs, decorators | loki-ts/src/e10ext classifier, engine10 verify and seal wiring, tests, dist | probes C D E F G H K from the F2 review all keep 'weakened test'; A labelled only when 5 appears in the task; verdict PARTIAL in every case | HIGH | building@2026-10-01T13:50Z r3 (r2 38d8ffe7 REJECTED: tolerance column never read in the body passes as expected; token boundaries let -25 match 25; required: seal re-check on the committed blob with verify counts) | none |
|
|
619
619
|
| D50-F2-S3 | humanize-174 lift: let the implement brief edit an existing assertion only when the task text states the new expected value; verdict stays PARTIAL, never VERIFIED (moat). CTO call needed first: does a PARTIAL spec-required test edit count as the right outcome, and does the brief license weaken the append-only rule (context.ts:23) | loki-ts/src/e10ext/context.ts, verify and wall policy, eval fixture through implement | humanize-174 fixture through implement ends with code fixed and the spec value assertion changed, PARTIAL with an honest note | HIGH | ready (D53 ruled 12:39Z: VERIFIED allowed when the new literal is verbatim in the issue, the edit changes only that literal in an existing assert, and Wall plus other tests pass; PARTIAL never scores completed; red bypass tests for tolerance, if True to False, deleted assert, literal not in issue) | needs D50-F2r |
|
|
620
620
|
| D50-F4b | D50-F4 hardening from the opus review (non-blocking): validate base from the worker-written event log as ^[0-9a-f]{40,64}$ before any git call, and skip the backstop when log.verify() fails | loki-ts/src/engine10/supervisor.ts or e10ext/commit_filter.ts, tests | a base of --output=x is refused with no git call; a tampered log runs no backstop | merged@2026-10-03T05:14Z | TL APPROVE (3 mutations red, engine10 net 0); cherry-picked cff3d4ab8, dist 159abf6d6, e10ext+supervisor 122/0. Follow-up (non-blocking): invalid raw base records no notProven reason in the supervisor path | none |
|
|
621
|
-
| NPM-LAG | CORRECTED 16:14Z: v10.5.34 (ceb6942a) was accepted by npm at 15:37Z with the notice that it was being processed, and appeared in the registry only at 16:05:58Z (about 29 min; gitHead ceb6942a correct). Not a lost publish, a long npm processing delay, while the Release run already showed success. Guard: publish-npm, post-release-smoke and promote wait up to 45 min for the version (registry, no cache) before declaring it missing, and promote re-triggers when it appears, so a delay is never read as a failure or a pass (10.5.34 smoke failed ETARGET during the lag and skipped promote; rerun 16:30Z); train-cycle merges origin/main back into local main after each release (it stalled at 16:20Z with local main behind its own release) and waits on previous version visible; the release captain (train-cycle.sh) refuses the next release while the previous version is missing from npm | .github/workflows/release.yml publish-npm, scripts/train-cycle.sh, tests | a stubbed npm that never lists the version fails the step; train-cycle logs PREV_NOT_ON_NPM and waits | MEDIUM |
|
|
621
|
+
| NPM-LAG | CORRECTED 16:14Z: v10.5.34 (ceb6942a) was accepted by npm at 15:37Z with the notice that it was being processed, and appeared in the registry only at 16:05:58Z (about 29 min; gitHead ceb6942a correct). Not a lost publish, a long npm processing delay, while the Release run already showed success. Guard: publish-npm, post-release-smoke and promote wait up to 45 min for the version (registry, no cache) before declaring it missing, and promote re-triggers when it appears, so a delay is never read as a failure or a pass (10.5.34 smoke failed ETARGET during the lag and skipped promote; rerun 16:30Z); train-cycle merges origin/main back into local main after each release (it stalled at 16:20Z with local main behind its own release) and waits on previous version visible; the release captain (train-cycle.sh) refuses the next release while the previous version is missing from npm | .github/workflows/release.yml publish-npm, scripts/train-cycle.sh, tests | a stubbed npm that never lists the version fails the step; train-cycle logs PREV_NOT_ON_NPM and waits | MEDIUM | review@2026-10-03T08:22Z | a=63ef78416 (train-cycle npm wait, 68/0) b=b2397bd7c (release.yml npm wait + D75b LOWs, 67/0); opus review dispatched |
|
|
622
622
|
| D53-Q1 | CTO call before D50-F2-S3: under D53(a) a bug-report task ('Expected 200, got 404') lets a test change to the buggy value pass the literal-only gate; only Wall coverage of that behaviour stops it. Options: require the new literal to sit on the expected side of an expected/should phrase in the task, or require Wall coverage of the edited assertion | docs/v10/DECISIONS.md D53 | ruling recorded | HIGH | released@2026-10-01T14:20Z (ruled in DECISIONS D53 amendment: literal must be the EXPECTED value in the acceptance criteria with a source span; Wall must cover the behaviour; unclassifiable stays PARTIAL) | none |
|
|
623
623
|
| D50-F4 | aiq-52 diagnosis: on FAILED, backstopCommit runs git add -A and re-stages the commit stage's exclusions (pre-existing dirt, Wall files, stray lockfiles), so a PR with only setup dirt is pushed. Backstop applies the same exclusions; nothing left means no commit and no PR | loki-ts/src/engine10/supervisor.ts, e10ext helper, tests, dist | preexisting-dirty fixture with FAILED: HEAD equals base and no PR; with a run edit the backstop commit holds only that edit; Wall and stray lockfile never committed | HIGH | merged@2026-10-01T13:50Z 8364a03e (ed8caedf, opus APPROVE r2: filter fixture shows no token, hooks, fsmonitor, textconv or ext-diff with the supervisor env; train/61) | none |
|
|
624
624
|
| D50-F5 | aiq-52 lift: already_done.ts findEvidence misses compound task keywords (searchbar vs search-command); add deterministic compound-token matching and a same-stem source plus referencing-test category pair; confirmation still must cite a real hit | loki-ts/src/e10ext/already_done.ts, tests, dist | aiq-52-shaped fixture yields a candidate; unrelated keyword, source without referencing test and short prefix yield none | HIGH | building@2026-10-01T13:50Z r3 (r2 f4aa8cc9 REJECTED: derivational suffixes, authorization vs author.ts, productivity vs product.ts; import detection counts strings, comments and docstrings) | none |
|
|
@@ -641,9 +641,9 @@ Source: ~/git/autonomi-dev/research/2026-09-30-adoption/SWARM-PROMPT-ADOPTION.md
|
|
|
641
641
|
| D51-B14 | D51 Phase B B14 (flag LOKI_WORKSPACES, docs/v10/D51-PHASE-B.md): Dashboard group card (per-repo rows, integration row, stale-evidence badge) | dashboard/static/start.html | Playwright: a fixture group renders 2 repo rows plus integration; a mismatched head SHA shows stale | LOW | ready | needs B13 |
|
|
642
642
|
| D51-B15 | D51 Phase B B15 (flag LOKI_WORKSPACES, docs/v10/D51-PHASE-B.md): 10x metric: PRs per wall-clock hour and per attention minute from group.json timestamps | autonomy/lib/workspace_metrics.py, tests/workspace/95-metrics.sh | a fixture group gives the hand-computed rate; unmeasured runs are reported, not counted as zero | LOW | ready | needs B07 |
|
|
643
643
|
| D51-B16 | D51 Phase B B16 (flag LOKI_WORKSPACES, docs/v10/D51-PHASE-B.md): Docs plus flag flip after the whole-feature Wall: a 2-repo fixture (lib and app) ends with 2 PRs and integration passed | docs/WORKSPACES.md, tests/workspace/99-e2e.sh | the e2e part passes on CI with the stub provider; one real run is recorded in METRICS.md | MEDIUM | ready | needs all |
|
|
644
|
-
| INTEL-1 | Standards-based receipts (competitive intel 2026-10-01): emit the Seal as an in-toto Statement in a DSSE envelope, verifiable by stock tools (in-toto verify, cosign verify-blob) as well as loki verify; V10-VISION names this stack | loki-ts/src/engine10 seal and receipt export, loki keys, tests, dist | a stock tool verifies a real receipt in a test; a tampered envelope fails both the stock tool and loki verify | HIGH |
|
|
644
|
+
| INTEL-1 | Standards-based receipts (competitive intel 2026-10-01): emit the Seal as an in-toto Statement in a DSSE envelope, verifiable by stock tools (in-toto verify, cosign verify-blob) as well as loki verify; V10-VISION names this stack | loki-ts/src/engine10 seal and receipt export, loki keys, tests, dist | a stock tool verifies a real receipt in a test; a tampered envelope fails both the stock tool and loki verify | HIGH | review@2026-10-03T08:23Z | 65a5b8f8a (DSSE in-toto export/verify, Ed25519 PAE); opus HIGH review dispatched |
|
|
645
645
|
| INTEL-2 | Visible hard cost cap by default: the v10 start line shows the per-run cap; BUDGET_STOP (exit 3) enforces it; loki.yaml budgets.per_run or --max-cost sets it; conservative default with rationale in DECISIONS. Check what already exists first (BUDGET_STOP, LOKI_E10_CAP_S) | engine10 start line and budget path, loki.yaml schema, docs, tests | a run over the cap stops with exit 3 and BUDGET_STOP; the start line names the cap; the default is recorded in DECISIONS | MEDIUM | merged@2026-10-03T04:26Z | none |
|
|
646
|
-
| INTEL-3 | Reviewer-first PR body: delivery contract, each acceptance criterion mapped to changed files and the proving check, then NOT PROVEN, readable in 60 seconds | engine10 pr body rendering, tests | a fixture PR body lists every Wall criterion with its file and check; NOT PROVEN last; under a fixed line budget | MEDIUM |
|
|
646
|
+
| INTEL-3 | Reviewer-first PR body: delivery contract, each acceptance criterion mapped to changed files and the proving check, then NOT PROVEN, readable in 60 seconds | engine10 pr body rendering, tests | a fixture PR body lists every Wall criterion with its file and check; NOT PROVEN last; under a fixed line budget | MEDIUM | building@2026-10-03T08:26Z | r1 18062ed6d TL BLOCK: every criterion shows all Wall files incl failed/unrun as proving; legacy shape not byte-identical (clip/fit); docs claim unwired body ships; r2 building |
|
|
647
647
|
| D50-F1b | D50-F1 structural follow-up (CTO call B): run engine10 in a worktree on base per run instead of the user checkout, copying uncommitted user edits in via git stash create; run files stay under the user .loki; PR pushes from the worktree branch; removes the restore and pre-existing-dirty class by construction | loki-ts/src/engine10 supervisor, worker, intake, seal/discard, pr, their tests, dist | user checkout byte-identical after any outcome; dirty user edits visible to the run; ALREADY_SATISFIED leaves no diff; VERIFIED opens the PR from the worktree branch | HIGH | parked@2026-10-01T12:20Z: e69eeec2 REJECTED by opus. Blocking: dirty user edits snapshotted into the pushed branch and receipt base; ignored deps (node_modules, .venv, .env) absent in the worktree, VERIFIED fixture STALLED. Rework needs refuse-dirty in main(), start from HEAD, a dependency strategy (CoW clone or install step) and kill cleanup; CTO call | D50-F1 |
|
|
648
648
|
| A-120 | One signing key, auto-generated (item 3) | see plan A-120 | HIGH | first-run-gate assertion per plan card | released@2026-10-01T00:52Z | Wave per plan section 5; one writer per file. Released in v10.5.13 (merge 1e1417b9 is an ancestor of v10.5.13). |
|
|
649
649
|
| A-132 | Legacy: no HANDOFF.md, USAGE.md or lockfile in a fix commit (item 2) | see plan A-132 | MEDIUM | first-run-gate assertion per plan card | released@2026-10-01T00:52Z | Wave per plan section 5; one writer per file. Released in v10.5.13 (merge 297c2d1f is an ancestor of v10.5.13). |
|
|
@@ -724,7 +724,7 @@ Source: ~/git/autonomi-dev/research/2026-09-30-adoption/SWARM-PROMPT-ADOPTION.md
|
|
|
724
724
|
| D65-MCP | D65 D63-8: MCP server tools run, status and verify for v10 | mcp/server.py, tests | MEDIUM | merged@2026-10-03T02:28Z | train/81 dd2995153, red on Tests (count docs and event balance, fixed dc1fa634f); carried in train/82 e072e47a9. |
|
|
725
725
|
| D65-CONT | D65 D63-9: one container for the Control Plane plus Helm and ECS examples | Dockerfile.control-plane, deploy/helm, deploy/ecs, docs | MEDIUM | merged@2026-10-03T02:28Z | train/81 dd2995153, red on Tests (DEPS rows, fixed dc1fa634f); carried in train/82 e072e47a9. |
|
|
726
726
|
| D65-SPEC-F1 | D12 should-fix from the HIGH re-review: contract read requires a regular file with a size cap (a FIFO at .loki/contract.json hangs seal), and malformed or unreadable criteria add one NOT PROVEN line instead of being dropped | loki-ts/src/features/contract.ts, tests/features/contract.test.ts | MEDIUM | merged@2026-10-03T03:13Z | Review af6ddde5 2026-10-03T03:03Z; fails closed today, no false VERIFIED. TL APPROVE; 92bf182b4 plus D70 default-on 960f4b57c in train/83 1a63ad156. |
|
|
727
|
-
| D65-SPEC-F2 | D12 should-fix (design): snapshot or hash .loki/contract.json at intake so the implementing agent cannot edit it before seal | loki-ts/src/features/contract.ts, engine10 intake | HIGH |
|
|
727
|
+
| D65-SPEC-F2 | D12 should-fix (design): snapshot or hash .loki/contract.json at intake so the implementing agent cannot edit it before seal | loki-ts/src/features/contract.ts, engine10 intake | HIGH | merged@2026-10-03T08:22Z | opus r2 APPROVE (mutation red 2/18); main 4bf62e271 054caef8b + dist 4088f8cb3 |
|
|
728
728
|
| D62-VIS-F1 | D12 should-fix: SIGKILL the dev server process group after a short grace (a SIGTERM-ignoring server survives capture); verifyReceipt requires regular files for evidence_screens (path "." throws EISDIR) | loki-ts/src/features/visual_evidence.ts, tests/features/visual_evidence.test.ts | MEDIUM | review@2026-10-03T03:12Z | Review af6ddde5 2026-10-03T03:03Z. Built 77522987a with D70 default-on; opus review (verifier path) incl. moat base-vs-slice. |
|
|
729
729
|
| D61-03 | D61 slice 3, lean eligibility without a named file behind LOKI_SPEED | engine10/sizing.ts, features/speed/lean_select.ts, tests engine10/sizing_lean.test.ts | MEDIUM | merged@2026-10-03T03:13Z | TL APPROVE; 999ea6af3 in train/83 1a63ad156. |
|
|
730
730
|
| D61-09 | D61 slice 9, decomposability check with strict-schema confirm | features/speed/decompose_check.ts, tests engine10/decompose_check.test.ts | MEDIUM | merged@2026-10-03T03:13Z | TL APPROVE; 0393c5a6b in train/83 1a63ad156. |
|
|
@@ -758,6 +758,10 @@ Source: ~/git/autonomi-dev/research/2026-09-30-adoption/SWARM-PROMPT-ADOPTION.md
|
|
|
758
758
|
| P0-TC-SUPERSEDE | train-cycle Phase A superseded green unpromoted train/87 with train/88 and Phase B only evaluates the newest train; hold a green unpromoted train so Phase B promotes it first | scripts/train-cycle.sh, tests/test-train-cycle.sh | MEDIUM | merged@2026-10-03T06:18Z | Incident 06:13Z, RM promoted 87 by SHA by hand. Fix 5abab1f2c (red 47/3, green 50/0, shellcheck 0). TL APPROVE: A and B share REQUIRED_TRAIN and success rule; gh/fetch failures fail open; non-fast-forward train not held; mutation 47/3. Cherry-pick bd686b7c9. |
|
|
759
759
|
| D65-UI-NAMING | One UI command: loki serve --help points to loki / loki control serve; README control row and TOOL-INTEGRATION.md stop presenting loki serve or a LOKI_CONTROL=1 preview as the UI | autonomy/loki, README.md, docs/TOOL-INTEGRATION.md, CHANGELOG.md | LOW | merged@2026-10-03T06:25Z | Peer finding 06:20Z. Fix 5708413dd; serve routing unchanged. TL APPROVE (bash -n ok, serve --help exits 0 and binds nothing, wording matches control.ts LOKI_CONTROL=="0"). Follow-up D65-UI-NAMING-2 for bash fallback and cli.ts help. |
|
|
760
760
|
| D65-UI-NAMING-2 | Bash fallback cmd_control and loki-ts cli.ts help still say preview, needs LOKI_CONTROL=1; align with bun route (on by default, LOKI_CONTROL=0 off) | autonomy/loki, loki-ts/src/cli.ts, loki-ts/dist, tests, CHANGELOG.md | LOW | merged@2026-10-03T06:33Z | Fix 15f631fae (red: preview line rc=0 under LOKI_CONTROL=0; green: off line rc=0, no bun names bun rc=1). TL APPROVE: OFF_LINE byte-identical to control.ts:12, delegation unchanged, control plane 19/0, dist guard 13/0, shellcheck no new findings. Cherry-pick e564d2423 (CHANGELOG conflict resolved keeping both lines). Non-blocking: no-bun assertion depends on bun absent from /usr/bin:/bin. |
|
|
761
|
+
| D75-GITLEAKS-RANGE | train/** pushes scan merge-base(origin/main)..SHA via security-audit-gitleaks.sh; main-push secret-scan always full (no E-160 skip); release.yml required-ci reuses only main-branch or dispatch audit verdicts; weekly cron becomes daily | .github/workflows/security-audit.yml, .github/workflows/release.yml, tests/test-security-audit-config.sh | HIGH | merged | main baf694a9b/8da824056/09fe087ae; opus r3 APPROVE 08:02Z (live gate rc=0 today, stub gh error rc=1, 8 mutations red); test 54/0; follow-up D75b |
|
|
762
|
+
| D75b | release.yml sched_audit gate: separate schedule fetch, paginated newer-success check, indeterminate blocks (fail-closed on page overflow) | .github/workflows/security-audit.yml, .github/workflows/release.yml, tests/test-security-audit-config.sh | HIGH | merged | main (cherry-pick of 03914c5ab); opus APPROVE 08:09Z (live gate rc=0, created>= filter verified live, stub errors block, 11 mutations red); 57/0; LOW: missing total_count passes, newest-first ordering undocumented |
|
|
763
|
+
| P0-D75-PINS | D75 regressed tests/test_release_required_ci.py (24 fail, gh stub lacks scheduled-audit answers) and E-123 scanner pins; train/92 Tests red | | | merged@2026-10-03T08:27Z | opus APPROVE (5 gate mutations red); main ae8f70284; required_ci 63/0, E-123 31/0, audit-config 57/0 on main |
|
|
764
|
+
| D65-BUG7 | E2E leg 7: installed `loki workspace run` exits 1 with 0 receipts after BUG-5 (integration.json now written); expected one run per repo and rc 0 | engineer-determined (autonomy/lib workspace path, tests) | MEDIUM | merged | main b5a0085a0 (cherry-pick of 18ca83dd8); TL APPROVE 07:59Z (mutation red 15/1, restored 16/0); dist guard 13/0; e2e-d65 legs=9 fails=0 |
|
|
761
765
|
| D63-C6 | SLACK: two-way Slack on by default | features/slack_inbound.ts, docs/slack.md, README | HIGH | merged@2026-10-03T04:15Z | Opus round 2 APPROVE; cherry-picked 1acd2a9a2,4b2c242bd,f02609175, dist fc10b503c |
|
|
762
766
|
| D63-C6-F | SLACK follow-up: sender allowlist, 64 KB task cap, no local paths in replies, strict --port | features/slack_inbound.ts, docs/slack.md | MEDIUM | merged@2026-10-03T04:25Z | TL APPROVE e8837ffa4 (3 mutations red); cherry-picked 2a404421a, dist 7ad4a44e9 |
|
|
763
767
|
| P0-CORE-BUDGET | Core engine10 at 5001 lines after D61-13 (budget.test.ts needs < 5000); remove dead core code | loki-ts/src/engine10 | MEDIUM | building@2026-10-03T04:31Z | Blocks train 86 |
|
package/docs/v10/DECISIONS.md
CHANGED
|
@@ -559,3 +559,10 @@ The $20.00 default per-run cap stays. It is a hard stop on priced sessions only;
|
|
|
559
559
|
- Evidence: the gitleaks full-history scan took 8-15 min on trains 83-87 and was cancelled at the 15 min limit on trains 86, 88, 89 and 90 ("gitleaks scan (all reachable history) ##[error]The operation was canceled", run 37104195817 attempt 2). Every other Security Audit job passed.
|
|
560
560
|
- Decision: raise timeout-minutes to 30. Same scan, same config, same blocking posture; nothing is narrowed or skipped, so this is not a gate weakening.
|
|
561
561
|
- Follow-up slice: make the scan scale (incremental scan against a reviewed baseline commit) before history doubles again. Any change to scan scope needs a CTO pass.
|
|
562
|
+
|
|
563
|
+
## D75: gitleaks range scan on train/** pushes, full scan stays the release authority (CTO, 07:45Z 2026-10-03)
|
|
564
|
+
- Decision: train/** pushes scan merge-base(origin/main)..SHA through scripts/security-audit-gitleaks.sh (release-tag config, net .gitleaks.toml refusal, first-parent merges); any doubt falls back to the full scan.
|
|
565
|
+
- Gap found: E-160 reuse (train-verdict-reuse.sh:53-64) plus parent reuse in release.yml required-ci (fetch_runs:423, no branch filter) would let a range-only train verdict reach npm; train-cycle.sh:53 Phase C never waits on Security Audit.
|
|
566
|
+
- Conditions: secret-scan on main always runs full (no E-160 skip); required-ci reuses only main-branch or dispatch audit verdicts; the weekly cron becomes daily and a red daily scan halts releases.
|
|
567
|
+
- No base-config fallback (r3 class). PR, slice-*, main, schedule and dispatch stay full. HIGH tier, unanimous opus review. Proposed by peer autonomi-dev-76; decided by the CTO advisor.
|
|
568
|
+
- Saves about 15 min per promotion; release latency may still include the main full scan, accepted (moat over speed). Unmeasured hypothesis for a later CTO pass: --all on a fetch-depth 0 checkout also scans stale remote slice branches.
|
package/docs/v10/E2E-D65.md
CHANGED
|
@@ -113,3 +113,11 @@ New bugs found by this run (product code is not changed by this slice):
|
|
|
113
113
|
BUG-5 (P1, packaging): the npm package omits `schemas/`, so `loki workspace` fails on every installed copy. `package.json` `files` has no `schemas/` entry, while `autonomy/lib/loki_yaml.py:23` reads `schemas/loki-yaml.schema.json` relative to the package root. Repro: install the tarball, put a `workspaces:` block in `loki.yaml`, run `loki workspace run <name> <task>`; output `workspace: cannot read loki.yaml: [Errno 2] No such file or directory: '.../node_modules/loki-mode/autonomy/lib/../../schemas/loki-yaml.schema.json'`, rc=2. Leg 7 stays FAIL until `schemas/loki-yaml.schema.json` ships; the two-runs and `integration.json` assertions were therefore not reached.
|
|
114
114
|
|
|
115
115
|
BUG-6 (P1, container): `Dockerfile.control-plane` cannot build. Its build stage copies only `packages/control-plane/`, but `packages/control-plane/src/server/ingest.ts:3` and `:5` import `../../../../loki-ts/src/engine10/events.ts` and `../../../../loki-ts/src/util/redact.ts`. Repro: `docker build -f Dockerfile.control-plane .` fails at `RUN bun run build:all` with `error: Could not resolve: "../../../../loki-ts/src/engine10/events.ts"` and `.../util/redact.ts`. The `/ready` probe was therefore not reached and leg 9 is FAIL, not PASS.
|
|
116
|
+
|
|
117
|
+
### 6.1 Rerun after BUG-5, BUG-6 and BUG-7 fixes (2026-10-03)
|
|
118
|
+
|
|
119
|
+
The 07:56Z rerun on the main tree that includes the BUG-5 and BUG-6 fixes passed 8 of 9 legs. Legs 8 (MCP) and 9 (containers) PASS: `docker build` now succeeds and `/ready` answers 200. Leg 7 still failed with `workspace run rc=1, expected 0; found 0 receipts; integration.json written`.
|
|
120
|
+
|
|
121
|
+
BUG-7 (P1, engine): `excludeLokiDir` in `loki-ts/src/engine10/stages/intake.ts` hard-coded `<repo>/.git/info/exclude`. Workspace runs execute in linked git worktrees, where `.git` is a file, so `mkdir` threw `ENOTDIR: not a directory, mkdir '.../worktrees/e2e__api/.git/info'`. The first repo's run exited 1 and the second was skipped. Fix: resolve the path with `git rev-parse --git-path info/exclude` (main b5a0085a0). A new intake test goes red on the old code (15 pass, 1 fail) and green on the fix (16/0).
|
|
122
|
+
|
|
123
|
+
Result after the fix: `PASS leg 7 (2s) leg_07_workspaces: two runs (2 receipts) plus integration.json, rc=0`; `e2e-d65: legs=9 fails=0 total=19s`. BUG-5, BUG-6 and BUG-7 are resolved; all 9 stub legs pass from a clean npm install.
|
package/docs/v10/PROGRESS.md
CHANGED
|
@@ -1974,3 +1974,17 @@ The swarm is stopped: .loki/V10-STOP exists, the loop has no wake-ups, and the c
|
|
|
1974
1974
|
- Peer finding: `loki serve` is the deprecated alias of `loki api start`, not the Control Plane; docs and help disagreed. D65-UI-NAMING (62b592031) and D65-UI-NAMING-2 (e564d2423, bash fallback honors LOKI_CONTROL=0 and names bun) merged, both TL APPROVE.
|
|
1975
1975
|
- P0-TC-SUPERSEDE merged (bd686b7c9): train-cycle now holds a green unpromoted train so Phase B promotes it first.
|
|
1976
1976
|
- Train 88 was cut before the v10.6.9 release commit, so it is not a fast-forward of main. Merged origin/main into local main (7ad91e03f, no conflicts, dist rebuilt unchanged, dist guard 13/0) and pushed train 89 (8576564a7) carrying C11b, D65-BUG5, D65-BUG6, D65-BUG6-G, D61-04-F, P0-TC-SUPERSEDE, D65-UI-NAMING and -2.
|
|
1977
|
+
|
|
1978
|
+
## 2026-10-03T07:55Z tick (CoS)
|
|
1979
|
+
- Train 89 and 90 never went all-green: Security Audit cancelled both because the gitleaks full-history scan hit its 15 min timeout (also trains 86, 88; passing runs took 8-15 min). Train 90 Tests had one P9 red; full rerun green (flake, same code green on 89).
|
|
1980
|
+
- D74 (5d4530b18): gitleaks timeout 15 -> 30 min, same scope. Train 91 all six checks green; train-cycle promoted it at 07:41:45Z and cut v10.6.10 (a5a4f0c95, release run in progress at 07:55Z; npm still reads latest=10.6.9, not announced).
|
|
1981
|
+
- D75 (cacc31400): peer proposal for a train-range gitleaks scan; CTO APPROVE-WITH-CONDITIONS after finding the full scan would no longer guard npm publish (E-160 reuse plus unfiltered required-ci parent reuse). Slice D75-GITLEAKS-RANGE built (30e96b09c, test 43/0); opus adversarial review in flight.
|
|
1982
|
+
- Local main merged origin/main v10.6.10 (a6ebe9897), dist guard 13/0.
|
|
1983
|
+
- Drift audit vs CONTROL.md (last 6h): release cadence and merged-unreleased age violated by the gitleaks timeouts (fixed D74/D75); D12/D13 held; active builders 1 vs target 6. Only one ready row is dependency-free (D65-SPEC-F2, needs architect card). engine10 budget.test.ts 27/0 on main, so P0-CORE-BUDGET no longer blocks trains.
|
|
1984
|
+
|
|
1985
|
+
## 2026-10-03T07:56Z tick (CoS)
|
|
1986
|
+
- Correction: the previous entry is stamped 07:55Z but was written at 07:52Z (pulse FUTURE_TIMESTAMP). This entry's time comes from `date -u`.
|
|
1987
|
+
- D65-BUG7 merged as main b5a0085a0. Intake resolved `info/exclude` with a hard-coded `.git/` path, which threw ENOTDIR in linked worktrees. TL APPROVE (the mutation went red at 15/1). The intake test is 16/0 on main, the dist guard is 13/0, and `scripts/e2e-d65.sh` gives legs=9 fails=0. Documented in E2E-D65.md section 6.1.
|
|
1988
|
+
- D75-GITLEAKS-RANGE: opus r1 BLOCK B1 (a red daily scan did not halt releases). The r2 fix b11872776 adds a scheduled-run check in release.yml required-ci (47/0, W9 plus 2 mutations go red). The opus r2 re-review is running and also judges the fail-open path on an API error.
|
|
1989
|
+
- v10.6.10: the release workflow (a5a4f0c95) is still in_progress. npm shows latest=next=10.6.9. No push until it completes; the peer has not been told.
|
|
1990
|
+
- Drift audit (last 6h): 3 releases against the 18 that the 20 min cadence target implies (MISS; the main cause was Security Audit timeouts on trains 86-90, fixed by D74). 175 commits on local main. Ready rows: 25, of which 14 are dependency-blocked and most of the rest are eval, real-model or CTO-owned. Active builders: 3 (D65-SPEC-F2, D61-11 r3, and the D75 review), against a target of 6. Pulse budget projection: weekly 115.8%, max engineers 2. The D68 mandate floor (85% of live /usage) overrides this; live usage was 52% at 07:43 according to the peer, so it is within the floor.
|