loki-mode 11.17.36 → 11.17.37

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.
Files changed (72) hide show
  1. package/SKILL.md +2 -2
  2. package/VERSION +1 -1
  3. package/autonomy/lib/help-core.sh +1 -1
  4. package/autonomy/loki +1 -1
  5. package/completions/_loki +3 -1
  6. package/dashboard/__init__.py +1 -1
  7. package/docs/CLI-REFERENCE.md +1 -1
  8. package/docs/INSTALLATION.md +1 -1
  9. package/docs/v10/BOARD.md +8 -8
  10. package/docs/v10/PROGRESS.md +3 -0
  11. package/loki-ts/dist/loki.js +1026 -1009
  12. package/mcp/__init__.py +1 -1
  13. package/package.json +2 -2
  14. package/packages/control-plane/dist/server.js +7 -1
  15. package/plugins/loki-mode/.claude-plugin/plugin.json +1 -1
  16. package/web-app/dist/assets/{AdminPage-B-I1NRtL.js → AdminPage-8Ms4e7v3.js} +1 -1
  17. package/web-app/dist/assets/{Avatar-DT_8Mdba.js → Avatar-D-_RMtAF.js} +1 -1
  18. package/web-app/dist/assets/{Badge-C09l4W-0.js → Badge-BiTryACM.js} +1 -1
  19. package/web-app/dist/assets/{Button-aC5gMeUz.js → Button-D5J90sJA.js} +1 -1
  20. package/web-app/dist/assets/{CockpitPage-CpH1eekK.js → CockpitPage-CBsCLHsX.js} +1 -1
  21. package/web-app/dist/assets/{ComparePage-hM6QwfSW.js → ComparePage-ZU4NYIxk.js} +1 -1
  22. package/web-app/dist/assets/{ErrorBoundary-6c3dc7IQ.js → ErrorBoundary-kRsIDD2c.js} +1 -1
  23. package/web-app/dist/assets/{EvidenceReceiptPanel-DKE4l5Tk.js → EvidenceReceiptPanel-DV6ZxN0r.js} +1 -1
  24. package/web-app/dist/assets/{GitHubIssuesPanel-abdxEU9p.js → GitHubIssuesPanel-B0uPt2Uy.js} +1 -1
  25. package/web-app/dist/assets/{GitHubPRsPanel-pHo-s2C4.js → GitHubPRsPanel-DnrIz7Qh.js} +1 -1
  26. package/web-app/dist/assets/{HomePage-_-344_LT.js → HomePage-SjkWXTYO.js} +2 -2
  27. package/web-app/dist/assets/{LoginPage-frrXakkY.js → LoginPage-D1XU1UOK.js} +1 -1
  28. package/web-app/dist/assets/{MagicPage-BhafCYFh.js → MagicPage-Cg6MzSOR.js} +1 -1
  29. package/web-app/dist/assets/{MetricsPage-C5zf292O.js → MetricsPage-Bs4xxEL4.js} +1 -1
  30. package/web-app/dist/assets/{NotFoundPage-D6M43Y9l.js → NotFoundPage-xoIjTbo3.js} +1 -1
  31. package/web-app/dist/assets/{ProjectPage-D4kvygK3.js → ProjectPage-DtX7g5N3.js} +3 -3
  32. package/web-app/dist/assets/{ProjectsPage-Cu7lmyKY.js → ProjectsPage-BZiUAYq4.js} +1 -1
  33. package/web-app/dist/assets/{SettingsPage-8itZwlRh.js → SettingsPage-BGWiG3O9.js} +1 -1
  34. package/web-app/dist/assets/{ShowcasePage-CYlATNwJ.js → ShowcasePage-DgrnwUsK.js} +1 -1
  35. package/web-app/dist/assets/{SystemSettingsPage-DBDfGnoQ.js → SystemSettingsPage-cHvinh4M.js} +1 -1
  36. package/web-app/dist/assets/{TeamsPage-unFdeJaG.js → TeamsPage-BVCDcah9.js} +1 -1
  37. package/web-app/dist/assets/{TemplatesPage-c6QupvoO.js → TemplatesPage-BVZWaHmc.js} +1 -1
  38. package/web-app/dist/assets/{TerminalOutput-DzuhSLY5.js → TerminalOutput-DXipqPhV.js} +1 -1
  39. package/web-app/dist/assets/{activity-C3i3sjXj.js → activity-CshhOoCC.js} +1 -1
  40. package/web-app/dist/assets/{bell-BXgcpNiL.js → bell-C2aVKCgl.js} +1 -1
  41. package/web-app/dist/assets/{bot-gYi5RFNf.js → bot-CS4hsHcl.js} +1 -1
  42. package/web-app/dist/assets/{check--JEYw3iQ.js → check-C9BOGqR2.js} +1 -1
  43. package/web-app/dist/assets/{chevron-left-CJAjz61W.js → chevron-left-BBTdOAuW.js} +1 -1
  44. package/web-app/dist/assets/{circle-alert-1GfPVQQS.js → circle-alert-D7SSuEIf.js} +1 -1
  45. package/web-app/dist/assets/{clock-DjpWVOcn.js → clock-CHFYgPU3.js} +1 -1
  46. package/web-app/dist/assets/{cloud-Cgitkgr5.js → cloud-cEefzPuf.js} +1 -1
  47. package/web-app/dist/assets/{code-xml-CxZaU6C9.js → code-xml-B7St2q5i.js} +1 -1
  48. package/web-app/dist/assets/{database-DOrPow1f.js → database-irsYoPwy.js} +1 -1
  49. package/web-app/dist/assets/{dollar-sign-DqAZbHwb.js → dollar-sign-ChdZBjDE.js} +1 -1
  50. package/web-app/dist/assets/{file-code-corner-whhcIwS0.js → file-code-corner-CdnsaqHY.js} +1 -1
  51. package/web-app/dist/assets/{file-plus-Dp5DUu4j.js → file-plus-Cm5WJLtA.js} +1 -1
  52. package/web-app/dist/assets/{globe-Dq6fTDw8.js → globe-itCMNb3u.js} +1 -1
  53. package/web-app/dist/assets/{hammer--bO0oBWq.js → hammer-DpZbHRqZ.js} +1 -1
  54. package/web-app/dist/assets/{index-M9OMp27I.js → index-BY6H3gcR.js} +3 -3
  55. package/web-app/dist/assets/{layers-CDURqqkV.js → layers-Pja4FEia.js} +1 -1
  56. package/web-app/dist/assets/{loader-circle-C1bCbfqC.js → loader-circle-CeRQm3kJ.js} +1 -1
  57. package/web-app/dist/assets/{lock-DVMr4ren.js → lock-DN-Y7N_K.js} +1 -1
  58. package/web-app/dist/assets/{package-CpLzC77t.js → package-xmriszo-.js} +1 -1
  59. package/web-app/dist/assets/{plus-CXi3LhCN.js → plus-_Uj6A6jB.js} +1 -1
  60. package/web-app/dist/assets/{refresh-cw-26KajS9u.js → refresh-cw-BsssvIIM.js} +1 -1
  61. package/web-app/dist/assets/{rotate-ccw-DAXQ_5XQ.js → rotate-ccw-BuGEgNBP.js} +1 -1
  62. package/web-app/dist/assets/{scroll-text-ipwVF4bE.js → scroll-text-D3I5iPxb.js} +1 -1
  63. package/web-app/dist/assets/{server-B6Yla6UI.js → server-CmqFqyr6.js} +1 -1
  64. package/web-app/dist/assets/{shield-alert-BunS6EV9.js → shield-alert-BDfXzBqa.js} +1 -1
  65. package/web-app/dist/assets/{thumbs-up-X1xmkCyf.js → thumbs-up-_tO386xs.js} +1 -1
  66. package/web-app/dist/assets/{trash-2-DrY1jsTr.js → trash-2-BY17xDYh.js} +1 -1
  67. package/web-app/dist/assets/{trending-down-D5A0-8g2.js → trending-down-2q53wyOn.js} +1 -1
  68. package/web-app/dist/assets/{trending-up-BUVdVPXq.js → trending-up-k3BMoWKv.js} +1 -1
  69. package/web-app/dist/assets/{upload-BMHttdxa.js → upload-BchR2Xs4.js} +1 -1
  70. package/web-app/dist/assets/{usePolling-C108x_AT.js → usePolling-DO8v6wKt.js} +1 -1
  71. package/web-app/dist/assets/{user-C0rsicvA.js → user-ThJCW69N.js} +1 -1
  72. 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 v11.17.36
6
+ # Loki Mode v11.17.37
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 previous bash loop. PRD-file starts (`loki start ./prd.md`) and the opencode provider still run on it until FC38-SWEEP ports them; the legacy-engine command and the LOKI_ENGINE switch remain removed. Prefer `loki owner/repo#N` for issues.
9
9
 
@@ -483,4 +483,4 @@ See `CHANGELOG.md` entries [7.5.7], [7.5.8], [7.5.13] for the per-fix list and r
483
483
 
484
484
  ---
485
485
 
486
- **v11.17.36 | [Autonomi](https://www.autonomi.dev/) flagship product | core skill**
486
+ **v11.17.37 | [Autonomi](https://www.autonomi.dev/) flagship product | core skill**
package/VERSION CHANGED
@@ -1 +1 @@
1
- 11.17.36
1
+ 11.17.37
@@ -117,7 +117,7 @@ Verification
117
117
  loki verify --json One JSON object: command, exit_code, ok, output
118
118
  loki verify --pubkey FILE Check a receipt against a public key
119
119
  loki receipt Inspect the proof-of-run receipt
120
- loki undo <run> [--plan] Plan or apply an undo of a run
120
+ loki undo <run> [--plan|--dry-run] Plan or apply an undo of a run
121
121
 
122
122
  Exit codes: see loki help exit-codes.
123
123
  T
package/autonomy/loki CHANGED
@@ -1853,7 +1853,7 @@ show_help_all() {
1853
1853
  echo " review [opts] Standalone code review with quality gates"
1854
1854
  echo " ultracode \"task\" Run a task as a native Claude Code Dynamic Workflow (opt-in, Claude-only)"
1855
1855
  echo " trust [cmd] Visible trust trajectory; 'trust detail' for metrics"
1856
- echo " undo <run> [--plan] Plan or apply (LOKI_UNDO=1) an undo of a run; verifies the receipt"
1856
+ echo " undo <run> [--plan|--dry-run] Plan or apply (LOKI_UNDO=1) an undo of a run; verifies the receipt"
1857
1857
  echo ""
1858
1858
  echo "Observe:"
1859
1859
  echo " dashboard [cmd] Operations UI server (start|stop|status|url|open)"
package/completions/_loki CHANGED
@@ -194,6 +194,8 @@ function _loki {
194
194
  '--receipt[Cited receipt file for a deploy record]:receipt:_files' \
195
195
  '--max-age[Reject a receipt older than DUR]:duration:' \
196
196
  '--require-exogenous[Exit 4 when a VERIFIED receipt has no agent-independent passing check]' \
197
+ '--explain[List each gate as exogenous or agent-influenced with the evidence it read]' \
198
+ '--json[Print the verdict and gates as JSON on stdout]' \
197
199
  '--seal-composite[Sign a workspace composite]:run dir:_directories' \
198
200
  '--help[Show help]' \
199
201
  '*:receipt or deploy record:_files'
@@ -301,7 +303,7 @@ function _loki_commands {
301
303
  'verify-pr:Verify a PR against its linked issue in a sandbox'
302
304
  'queue:Overnight issue queue with a morning digest'
303
305
  'issues:Run every open issue in a repo and open PRs'
304
- 'undo:Show what undoing a run would do (read-only plan)'
306
+ 'undo:Show what undoing a run would do (read-only plan; --dry-run adds the diffstat)'
305
307
  'chat:Interactive chat session (run, attach)'
306
308
  'route:Print the engine, provider and model route without running'
307
309
  'edit:Make a scoped edit to files'
@@ -7,6 +7,6 @@ Modules:
7
7
  control: Session control helpers (status, atomic writes, origin check)
8
8
  """
9
9
 
10
- __version__ = "11.17.36"
10
+ __version__ = "11.17.37"
11
11
 
12
12
  __all__ = ["__version__"]
@@ -1,6 +1,6 @@
1
1
  # CLI reference
2
2
 
3
- Generated from `loki-ts/src/cli/registry.ts` by `scripts/generate-stale-zero.sh` for v11.17.36. Do not edit by hand.
3
+ Generated from `loki-ts/src/cli/registry.ts` by `scripts/generate-stale-zero.sh` for v11.17.37. Do not edit by hand.
4
4
  Hidden and legacy-only commands are omitted; see `docs/v10/CLI-MODERN.md` for the full inventory.
5
5
 
6
6
  | Command | Description |
@@ -2,7 +2,7 @@
2
2
 
3
3
  Loki Mode, by [Autonomi](https://www.autonomi.dev/), turns a spec or an issue into a verified pull request with a receipt you can check. This page covers installing it, a first run, and the options around it.
4
4
 
5
- **Version:** v11.17.36
5
+ **Version:** v11.17.37
6
6
 
7
7
  **Engine note:** `loki start` is the primary command. `loki start`, `loki "<task>"`, `loki owner/repo#N` and `loki quick` all run the Loki 10 engine, whatever the flag order or input form (PRD file, issue ref, task or one-word brief). The previous loop runs only on `--engine legacy`, `LOKI_ENGINE=legacy`, or for one call when a flag Loki 10 cannot honor is present. See the [user guide](v10/GUIDE.md) and the [5-minute quickstart](QUICKSTART.md).
8
8
 
package/docs/v10/BOARD.md CHANGED
@@ -1125,27 +1125,27 @@ Source: ~/git/autonomi-dev/research/2026-09-30-adoption/SWARM-PROMPT-ADOPTION.md
1125
1125
  | TEN-QUALITY-11 | enhancement: a Python repo with uv.lock and no .venv runs tests and lint through uv run as the project interpreter | loki-ts/src/engine10/stages/verify.ts (resolveTool only, at most 3 core lines), loki-ts/tests/engine10/verify.test.ts | MEDIUM | red: uv.lock repo without .venv gets interpreter system and 'tests ran on the system interpreter' NOT PROVEN (verify.ts:43,339); green: interpreter project via uv run; no uv on PATH keeps today's system result | released v11.17.36 | goal: avoid a false PARTIAL for uv projects; verify.ts has no uv handling today |
1126
1126
  | TEN-QUALITY-12 | enhancement: repo map cap configurable (LOKI_E10_REPOMAP_MAX_FILES) and truncation drops vendored or generated dirs before source | loki-ts/src/engine10/repomap.ts (at most 3 core lines), loki-ts/tests/engine10/repomap.test.ts | LOW | red: 2500-file repo with 1500 vendor/ files maps mostly vendor and ignores the env knob; green: knob honored, vendor/ node_modules dist dropped first, default 2000 unchanged | released v11.17.36 | goal: plan context quality on large repos; complements TEN-QUALITY-10 with no shared file |
1127
1127
  | TEN-DEPLOY-04-F1 | register --badge in dispatcher route, help, registry and completions | loki-ts/src/commands/run_status.ts, registry.ts, cli.ts, autonomy/loki, help-core.sh, completions | LOW | help-changelog drift and completions coverage pass; removing the route line turns the status test red | released@2026-10-17T05:34Z v11.17.24 | TL APPROVE 50579a177 |
1128
- | TEN-COST-11-F1 | enhancement: direct test for the machine.ts wall-stage distrust call (TEN-COST-11 review follow-up) | loki-ts/tests/engine10/machine.test.ts | LOW | wall base run green while implement changed files must yield already_satisfied false and base_run unproven; red mutation: delete the distrustGreenBase call at machine.ts:221 turns the test red; cd loki-ts && bunx tsc --noEmit && bun test tests/engine10/machine.test.ts | ready@2026-10-17T07:00Z | goal: pin the fail-closed branch (machine.ts:221) that has no direct test; test only, no src change |
1129
- | TEN-COST-28 | feature: per-stage share of spend printed in the cost summary (plan, wall, implement, fix, xreview) with the top stage named | loki-ts/src/engine10/cost.ts, loki-ts/tests/engine10/cost.test.ts | MEDIUM | red: summary shows only a total; green: stage shares sum to 100 percent, unmetered stages say unmetered not 0; cd loki-ts && bunx tsc --noEmit && bun test tests/engine10/cost.test.ts | ready@2026-10-17T07:00Z | goal: make the 2x cost proof attributable; grep cost.ts for an existing by-stage field first |
1128
+ | TEN-COST-11-F1 | enhancement: direct test for the machine.ts wall-stage distrust call (TEN-COST-11 review follow-up) | loki-ts/tests/engine10/machine.test.ts | LOW | wall base run green while implement changed files must yield already_satisfied false and base_run unproven; red mutation: delete the distrustGreenBase call at machine.ts:221 turns the test red; cd loki-ts && bunx tsc --noEmit && bun test tests/engine10/machine.test.ts | released v11.17.37 | goal: pin the fail-closed branch (machine.ts:221) that has no direct test; test only, no src change |
1129
+ | TEN-COST-28 | feature: per-stage share of spend printed in the cost summary (plan, wall, implement, fix, xreview) with the top stage named | loki-ts/src/engine10/cost.ts, loki-ts/tests/engine10/cost.test.ts | MEDIUM | red: summary shows only a total; green: stage shares sum to 100 percent, unmetered stages say unmetered not 0; cd loki-ts && bunx tsc --noEmit && bun test tests/engine10/cost.test.ts | released v11.17.37 | goal: make the 2x cost proof attributable; grep cost.ts for an existing by-stage field first |
1130
1130
  | TEN-COST-29 | enhancement: flag a cache-cold stage (cache read under 30 percent of input) with one line in the cost breakdown | loki-ts/src/util/cost_breakdown.ts, loki-ts/tests/engine10/cost_unmetered.test.ts | LOW | red: a stage with 5 percent cache reads prints no hint; green: one 'cache cold: <stage>' line, none when all stages are warm or unmetered; cd loki-ts && bunx tsc --noEmit && bun test tests/engine10/cost_unmetered.test.ts | ready@2026-10-17T07:00Z | goal: surface the biggest cost lever (prefix cache hit) per run |
1131
1131
  | TEN-COST-30 | fix: an unknown cost.profile value in loki.yaml or --cost (for example 'leen') warns once and names the valid profiles instead of silently using default | loki-ts/src/util/cost_profile.ts, loki-ts/tests/util/cost_profile.test.ts | MEDIUM | red: 'leen' resolves to default with no message; green: one stderr warning naming lean and default, valid values unchanged and quiet mode keeps stdout clean; cd loki-ts && bunx tsc --noEmit && bun test tests/util/cost_profile.test.ts | ready@2026-10-17T07:00Z | goal: a typo must not forfeit the cost win silently; follows TEN-COST-27 |
1132
- | TEN-SPEED-03 | feature: run summary Time line names the slowest stage and its share of wall time | loki-ts/src/util/run_summary.ts, loki-ts/tests/util/run_summary.test.ts | LOW | red: Time line has total only; green: 'slowest: <stage> NN%' appended, omitted when stage durations are missing; cd loki-ts && bunx tsc --noEmit && bun test tests/util/run_summary.test.ts | ready@2026-10-17T07:00Z | goal: speed work needs a visible per-run bottleneck |
1132
+ | TEN-SPEED-03 | feature: run summary Time line names the slowest stage and its share of wall time | loki-ts/src/util/run_summary.ts, loki-ts/tests/util/run_summary.test.ts | LOW | red: Time line has total only; green: 'slowest: <stage> NN%' appended, omitted when stage durations are missing; cd loki-ts && bunx tsc --noEmit && bun test tests/util/run_summary.test.ts | released v11.17.37 | goal: speed work needs a visible per-run bottleneck |
1133
1133
  | TEN-SPEED-04 | enhancement: repo map and test map reused across fix rounds when the git tree hash is unchanged | loki-ts/src/engine10/cache.ts, loki-ts/tests/engine10/cache.test.ts | MEDIUM | red: second fix round rebuilds the map with identical tree; green: cache hit counted, miss when tree hash differs; cd loki-ts && bunx tsc --noEmit && bun test tests/engine10/cache.test.ts | ready@2026-10-17T07:00Z | goal: cut seconds per fix round; read cache.ts key first and skip if the tree hash is already in the key |
1134
1134
  | TEN-SPEED-05 | fix: back-to-back loki start runs reuse a successful claude login probe for 10 minutes instead of re-spawning the CLI every time | loki-ts/src/engine10/preflight.ts, loki-ts/tests/engine10/preflight.test.ts | MEDIUM | red: two starts inside 10 min spawn the probe twice; green: second reuses the result, a failed probe is never cached, TTL expiry re-probes; cd loki-ts && bunx tsc --noEmit && bun test tests/engine10/preflight.test.ts | ready@2026-10-17T07:00Z | goal: shave start latency without hiding a logged-out state |
1135
- | TEN-QUALITY-13 | feature: cross-review (xreview) prompt carries the intent card Acceptance lines and the verdict names any line left unmet | loki-ts/src/engine10/stages/xreview.ts, loki-ts/tests/engine10/xreview.test.ts | MEDIUM | red: reviewer prompt omits acceptance lines; green: prompt includes them, verdict lists unmet lines, absent card keeps today's prompt byte-identical; cd loki-ts && bunx tsc --noEmit && bun test tests/engine10/xreview.test.ts | ready@2026-10-17T07:00Z | goal: review checks what the user asked, not only the diff |
1135
+ | TEN-QUALITY-13 | feature: cross-review (xreview) prompt carries the intent card Acceptance lines and the verdict names any line left unmet | loki-ts/src/engine10/stages/xreview.ts, loki-ts/tests/engine10/xreview.test.ts | MEDIUM | red: reviewer prompt omits acceptance lines; green: prompt includes them, verdict lists unmet lines, absent card keeps today's prompt byte-identical; cd loki-ts && bunx tsc --noEmit && bun test tests/engine10/xreview.test.ts | released v11.17.37 | goal: review checks what the user asked, not only the diff |
1136
1136
  | TEN-QUALITY-14 | enhancement: Wall authoring prompt requires one negative-case assertion (rejects bad input or fails before the fix) per acceptance line | loki-ts/src/engine10/stages/wall.ts, loki-ts/tests/engine10/wall.test.ts | MEDIUM | red: prompt has no negative-case rule; green: rule present, prompt size growth under 400 chars, existing wall tests green; cd loki-ts && bunx tsc --noEmit && bun test tests/engine10/wall.test.ts | ready@2026-10-17T07:00Z | goal: stronger Wall checks reject wrong implementations; wall.ts line budget applies (shrink-or-flat) |
1137
1137
  | TEN-QUALITY-15 | fix: fix rounds stop retrying the same model when the failing test set is identical two rounds in a row and escalate once | loki-ts/src/engine10/stages/fix.ts, loki-ts/tests/engine10/fix.test.ts | MEDIUM | red: identical failure signature loops on the same model to the round cap; green: escalates once then stops with a stalled reason; cd loki-ts && bunx tsc --noEmit && bun test tests/engine10/fix.test.ts | ready@2026-10-17T07:00Z | goal: stop wasted fix spend; grep stallClimb in unit_model.ts and reuse it, do not duplicate |
1138
- | TEN-GATES-14 | feature: loki verify --explain lists each gate with exogenous or agent-influenced and the evidence it read | loki-ts/src/engine10/verify_cmd.ts, loki-ts/tests/engine10/verify_cmd.test.ts | HIGH | red: --explain is an unknown flag; green: one line per gate, exit code unchanged, --json carries the same fields; cd loki-ts && bunx tsc --noEmit && bun test tests/engine10/verify_cmd.test.ts | ready@2026-10-17T07:00Z | goal: make the moat legible to buyers; read-only output, no verdict change |
1138
+ | TEN-GATES-14 | feature: loki verify --explain lists each gate with exogenous or agent-influenced and the evidence it read | loki-ts/src/engine10/verify_cmd.ts, loki-ts/tests/engine10/verify_cmd.test.ts | HIGH | red: --explain is an unknown flag; green: one line per gate, exit code unchanged, --json carries the same fields; cd loki-ts && bunx tsc --noEmit && bun test tests/engine10/verify_cmd.test.ts | released v11.17.37 | goal: make the moat legible to buyers; read-only output, no verdict change |
1139
1139
  | TEN-GATES-15 | enhancement: Seal receipt records the seeded-defect corpus version and catch rate used for the ablation gate | loki-ts/src/engine10/stages/seal.ts, loki-ts/tests/engine10/seal_verify_roundtrip.test.ts | HIGH | red: receipt lacks corpus id; green: corpus version and rate in the signed payload and loki verify rejects a tampered value; cd loki-ts && bunx tsc --noEmit && bun test tests/engine10/seal_verify_roundtrip.test.ts | ready@2026-10-17T07:00Z | goal: tie the load-bearing claim to evidence; builds on TEN-GATES-12/13 (released) |
1140
1140
  | TEN-GATES-16 | fix: loki verify reports DRIFT, not OK, when HEAD moved after the seal and the changed paths overlap the sealed diff | loki-ts/src/util/seal_drift.ts, loki-ts/tests/engine10/log_seal.test.ts | HIGH | red: sealed run then an amend on a sealed path still verifies OK; green: DRIFT with the path named, unrelated commits keep OK; cd loki-ts && bunx tsc --noEmit && bun test tests/engine10/log_seal.test.ts | ready@2026-10-17T07:00Z | goal: a seal must not vouch for code it did not see; read seal_drift.ts first and extend it |
1141
- | TEN-UX-13 | feature: loki undo --dry-run prints the diffstat it would revert and changes nothing | loki-ts/src/commands/undo.ts, loki-ts/tests/commands/undo.test.ts | LOW | red: --dry-run unknown or applies the revert; green: diffstat printed, tree and HEAD unchanged, exit 0; cd loki-ts && bunx tsc --noEmit && bun test tests/commands/undo.test.ts | ready@2026-10-17T07:00Z | goal: safe undo; new test file because no existing test owns undo.ts (rollback.test.ts covers rollback.ts only) |
1141
+ | TEN-UX-13 | feature: loki undo --dry-run prints the diffstat it would revert and changes nothing | loki-ts/src/commands/undo.ts, loki-ts/tests/commands/undo.test.ts | LOW | red: --dry-run unknown or applies the revert; green: diffstat printed, tree and HEAD unchanged, exit 0; cd loki-ts && bunx tsc --noEmit && bun test tests/commands/undo.test.ts | released v11.17.37 | goal: safe undo; new test file because no existing test owns undo.ts (rollback.test.ts covers rollback.ts only) |
1142
1142
  | TEN-UX-14 | enhancement: loki queue list shows age and status columns and a count footer | loki-ts/src/commands/queue.ts, loki-ts/tests/commands/queue.test.ts | LOW | red: list prints ids only; green: id, age, status columns and 'N queued' footer, empty queue prints a next step; cd loki-ts && bunx tsc --noEmit && bun test tests/commands/queue.test.ts | ready@2026-10-17T07:00Z | goal: queue is inspectable at a glance |
1143
1143
  | TEN-UX-15 | fix: shell completions list flags added after the completion table was written (--probe, --badge, --cost) from the registry | loki-ts/src/commands/completion.ts, loki-ts/tests/commands/cli_help_routes.test.ts | LOW | red: completion output lacks a registered flag; green: every flag in registry.ts appears for its command; cd loki-ts && bunx tsc --noEmit && bun test tests/commands/cli_help_routes.test.ts | ready@2026-10-17T07:00Z | goal: no hand-maintained drift; derive from registry |
1144
1144
  | TEN-ADOPTION-11 | feature: loki trust prints a copyable README badge snippet for the last sealed run | loki-ts/src/commands/trust.ts, loki-ts/tests/commands/trust.test.ts | MEDIUM | red: no snippet; green: markdown snippet pointing at the verified badge, absent when no sealed run (prints the next step); cd loki-ts && bunx tsc --noEmit && bun test tests/commands/trust.test.ts | ready@2026-10-17T07:00Z | goal: every sealed repo advertises Loki; reuse the TEN-DEPLOY-04 badge output |
1145
1145
  | TEN-ADOPTION-12 | enhancement: after an upgrade the next loki start prints a one-line what-is-new once | loki-ts/src/util/update_check.ts, loki-ts/tests/util/update_check.test.ts | LOW | red: no notice after version change; green: one line once per version, none in quiet or CI mode; cd loki-ts && bunx tsc --noEmit && bun test tests/util/update_check.test.ts | ready@2026-10-17T07:00Z | goal: retention; no network call added |
1146
- | TEN-DEPLOY-11 | feature: loki rollback prints the provider rollback command (names only, no secrets) for the last deploy record | loki-ts/src/commands/rollback.ts, loki-ts/tests/commands/rollback.test.ts | MEDIUM | red: rollback ignores deploy records; green: prints provider command from the record, nothing when no record, no env values; cd loki-ts && bunx tsc --noEmit && bun test tests/commands/rollback.test.ts | ready@2026-10-17T07:00Z | goal: complete the deploy loop; read-only, never executes the provider command |
1146
+ | TEN-DEPLOY-11 | feature: loki rollback prints the provider rollback command (names only, no secrets) for the last deploy record | loki-ts/src/commands/rollback.ts, loki-ts/tests/commands/rollback.test.ts | MEDIUM | red: rollback ignores deploy records; green: prints provider command from the record, nothing when no record, no env values; cd loki-ts && bunx tsc --noEmit && bun test tests/commands/rollback.test.ts | released v11.17.37 | goal: complete the deploy loop; read-only, never executes the provider command |
1147
1147
  | TEN-DEPLOY-12 | fix: loki status --probe retries once after 5 seconds before reporting a regression, so a cold start is not a false alarm | loki-ts/src/commands/status.ts, loki-ts/tests/commands/status.test.ts | MEDIUM | red: first 503 then 200 exits non-zero; green: retry passes exit 0, two failures exit non-zero, retry visible in output; cd loki-ts && bunx tsc --noEmit && bun test tests/commands/status.test.ts | ready@2026-10-17T07:00Z | goal: stop false regressions; depends on TEN-DEPLOY-10 (released v11.17.33) |
1148
- | TEN-STABILITY-11 | enhancement: run_pid detects a reused PID by comparing process start time and treats it as dead | loki-ts/src/util/run_pid.ts, loki-ts/tests/engine10/run_pid.test.ts | MEDIUM | red: unrelated live process with the recorded PID blocks a new run; green: start-time mismatch treated as stale; cd loki-ts && bunx tsc --noEmit && bun test tests/engine10/run_pid.test.ts | ready@2026-10-17T07:00Z | goal: no phantom lock after reboot; never kill by name or pattern |
1148
+ | TEN-STABILITY-11 | enhancement: run_pid detects a reused PID by comparing process start time and treats it as dead | loki-ts/src/util/run_pid.ts, loki-ts/tests/engine10/run_pid.test.ts | MEDIUM | red: unrelated live process with the recorded PID blocks a new run; green: start-time mismatch treated as stale; cd loki-ts && bunx tsc --noEmit && bun test tests/engine10/run_pid.test.ts | released v11.17.37 | goal: no phantom lock after reboot; never kill by name or pattern |
1149
1149
  | TEN-STABILITY-12 | fix: a truncated outbox entry left by a crash is quarantined and skipped, not fatal to the next start | loki-ts/src/util/outbox.ts, loki-ts/tests/util/outbox.test.ts | MEDIUM | red: half-written JSON entry throws on drain; green: entry moved to a quarantine name, the rest drain, one warning printed; cd loki-ts && bunx tsc --noEmit && bun test tests/util/outbox.test.ts | ready@2026-10-17T07:00Z | goal: crash-safe delivery |
1150
1150
  | TEN-SECURITY-01 | feature: the pre-PR secure scan also matches provider keys (sk-ant, AIza, xox[bp]-, ghp_) in added lines and blocks with the file and line | loki-ts/src/util/secure_scan.ts, loki-ts/tests/util/secure_scan.test.ts | HIGH | red: fixture with a runtime-built sk-ant key passes the scan; green: blocked naming file:line without echoing the secret, clean diff passes; cd loki-ts && bunx tsc --noEmit && bun test tests/util/secure_scan.test.ts | ready@2026-10-17T07:00Z | goal: no leaked key in a Loki PR; fixtures build keys at runtime (gitleaks rule); grep first, extend patterns only |
1151
1151
  | TEN-SECURITY-02 | fix: redact() strips URL userinfo (https://user:pass@host) and Authorization headers from logged and receipted output | loki-ts/src/util/redact.ts, loki-ts/tests/util/redact.test.ts | HIGH | red: https://u:p@host survives redact; green: userinfo replaced, plain URLs and existing redactions unchanged; cd loki-ts && bunx tsc --noEmit && bun test tests/util/redact.test.ts | ready@2026-10-17T07:00Z | goal: close a credential-in-log path; new test file because no existing test owns redact.ts |
@@ -2488,3 +2488,6 @@ v11.17.21 published (Release success on 462fbc40a; npm latest 11.17.21, next 11.
2488
2488
 
2489
2489
  ## 2026-10-17T07:11Z (CoS) v11.17.36
2490
2490
  - Wave AC released: TEN-QUALITY-11, TEN-QUALITY-12, TEN-ADOPTION-09 (HIGH), TEN-UX-12, TEN-ADOPTION-07, TEN-ADOPTION-08; 6 of 6 APPROVE, merged clean via merge.sh (merged-ac.txt).
2491
+
2492
+ ## 2026-10-17T07:20Z (CoS) v11.17.37
2493
+ - Wave AD released: TEN-COST-11-F1, TEN-COST-28, TEN-SPEED-03, TEN-QUALITY-13, TEN-GATES-14 (HIGH), TEN-UX-13, TEN-DEPLOY-11 (7 APPROVE, merged clean, merged-ad.txt). TEN-STABILITY-11 already shipped (run_pid.ts verifyRunPid). TEN-SECURITY-01 BLOCK 13bec58ff after fix round. Combined tree: bun test tests/engine10 had 1 fail, the core size budget (core is 5006 lines, cap 5000), pre-existing at 18900e64d and b81a1012a; P0 fix-forward dispatched.