loki-mode 11.17.54 → 11.17.55
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/autonomy/lib/proof_redact.py +3 -3
- package/dashboard/__init__.py +1 -1
- package/docs/CLI-REFERENCE.md +1 -1
- package/docs/INSTALLATION.md +1 -1
- package/docs/v10/BOARD.md +29 -29
- package/docs/v10/PROGRESS.md +3 -0
- package/loki-ts/dist/loki.js +1202 -1193
- package/mcp/__init__.py +1 -1
- package/package.json +2 -2
- package/packages/control-plane/dist/server.js +8 -4
- package/plugins/loki-mode/.claude-plugin/plugin.json +1 -1
- package/web-app/dist/assets/{AdminPage-BKytQzi7.js → AdminPage-CEzsx-2B.js} +1 -1
- package/web-app/dist/assets/{Avatar-DULU38xR.js → Avatar-CsAVQ-0g.js} +1 -1
- package/web-app/dist/assets/{Badge-BgAJWEbC.js → Badge-BT5F2jnq.js} +1 -1
- package/web-app/dist/assets/{Button-QBy3E-K9.js → Button-CQjmQOkX.js} +1 -1
- package/web-app/dist/assets/{CockpitPage-BMLeFZw0.js → CockpitPage-Cuo0FMGe.js} +1 -1
- package/web-app/dist/assets/{ComparePage-BZkbj-wD.js → ComparePage-BcLSrBTG.js} +1 -1
- package/web-app/dist/assets/{ErrorBoundary-9dL8wmBU.js → ErrorBoundary-DzSPrICj.js} +1 -1
- package/web-app/dist/assets/{EvidenceReceiptPanel-lC78oTLX.js → EvidenceReceiptPanel-DV5kdGO5.js} +1 -1
- package/web-app/dist/assets/{GitHubIssuesPanel-Dl1Dbj4g.js → GitHubIssuesPanel-DWhH8uwF.js} +1 -1
- package/web-app/dist/assets/{GitHubPRsPanel-Bu1v1fgS.js → GitHubPRsPanel-DPZJL0Ad.js} +1 -1
- package/web-app/dist/assets/{HomePage-ChhuZMUO.js → HomePage-CLVmK1C4.js} +2 -2
- package/web-app/dist/assets/{LoginPage-Cw0Atl1f.js → LoginPage-0qRTmghT.js} +1 -1
- package/web-app/dist/assets/{MagicPage-C2glZHi6.js → MagicPage-jUDOyd8m.js} +1 -1
- package/web-app/dist/assets/{MetricsPage-CMy_qRSQ.js → MetricsPage-Dm3PyXt8.js} +1 -1
- package/web-app/dist/assets/{NotFoundPage-C-onZ3-d.js → NotFoundPage-Dyr5Iv-6.js} +1 -1
- package/web-app/dist/assets/{ProjectPage-ZOQL-ktT.js → ProjectPage-CoX7FGHN.js} +3 -3
- package/web-app/dist/assets/{ProjectsPage-CfLavgux.js → ProjectsPage-CQh9mPvU.js} +1 -1
- package/web-app/dist/assets/{SettingsPage-CSyAoZ8a.js → SettingsPage-C1bbN9RT.js} +1 -1
- package/web-app/dist/assets/{ShowcasePage-Ai6ZvcyU.js → ShowcasePage-P3Hw9Noe.js} +1 -1
- package/web-app/dist/assets/{SystemSettingsPage-DVSEWSp5.js → SystemSettingsPage-DuClc6j2.js} +1 -1
- package/web-app/dist/assets/{TeamsPage-Xn4lNrgG.js → TeamsPage-DYWppMXo.js} +1 -1
- package/web-app/dist/assets/{TemplatesPage-vulcofcg.js → TemplatesPage-D2cQ8z97.js} +1 -1
- package/web-app/dist/assets/{TerminalOutput-yp6jNOTy.js → TerminalOutput-7SoZNJnN.js} +1 -1
- package/web-app/dist/assets/{activity-CC6ndXV7.js → activity-Btrwrman.js} +1 -1
- package/web-app/dist/assets/{bell-sL3Z98iv.js → bell-DyKvtIyq.js} +1 -1
- package/web-app/dist/assets/{bot-CcObIALe.js → bot-CMCluK2w.js} +1 -1
- package/web-app/dist/assets/{check-Bxbpy74M.js → check-6Ps0J2A0.js} +1 -1
- package/web-app/dist/assets/{chevron-left-Bfxs9puC.js → chevron-left-UFVem1_Q.js} +1 -1
- package/web-app/dist/assets/{circle-alert-ChkicRIA.js → circle-alert-DN06PnoW.js} +1 -1
- package/web-app/dist/assets/{clock-0wlcRVn5.js → clock-ZDdNRPqc.js} +1 -1
- package/web-app/dist/assets/{cloud-Bj4b7d1v.js → cloud-BBQ_4PAO.js} +1 -1
- package/web-app/dist/assets/{code-xml-DP0hubH3.js → code-xml-CeMIOys1.js} +1 -1
- package/web-app/dist/assets/{database-BF7N8Oqx.js → database-RPRkkycE.js} +1 -1
- package/web-app/dist/assets/{dollar-sign-BgxE1svU.js → dollar-sign-CzMhGRnY.js} +1 -1
- package/web-app/dist/assets/{file-code-corner-C3QgWeEA.js → file-code-corner-Bjvy_1-6.js} +1 -1
- package/web-app/dist/assets/{file-plus-BDkocQyd.js → file-plus-qfMa2QbU.js} +1 -1
- package/web-app/dist/assets/{globe-Dow8JyQ5.js → globe-TpJ3ospb.js} +1 -1
- package/web-app/dist/assets/{hammer-C_UL7aCu.js → hammer-D_nw758T.js} +1 -1
- package/web-app/dist/assets/{index-Wg_eixdv.js → index-CtQLnUKu.js} +3 -3
- package/web-app/dist/assets/{layers-DXI8u4Fm.js → layers-qtTx1or7.js} +1 -1
- package/web-app/dist/assets/{loader-circle-D88L4Po6.js → loader-circle-B4ijaGyV.js} +1 -1
- package/web-app/dist/assets/{lock-CEHdJ2FR.js → lock-_HeSCV0H.js} +1 -1
- package/web-app/dist/assets/{package-Dtmmpeq0.js → package-Dg6Qt1JC.js} +1 -1
- package/web-app/dist/assets/{plus-DoldLnin.js → plus-D5fVALHH.js} +1 -1
- package/web-app/dist/assets/{refresh-cw-Dd0Hlwn6.js → refresh-cw-CZHZmoHM.js} +1 -1
- package/web-app/dist/assets/{rotate-ccw-CHF-gtUq.js → rotate-ccw-BRNlH9dS.js} +1 -1
- package/web-app/dist/assets/{scroll-text-DX4nLBkd.js → scroll-text-DylHv8rG.js} +1 -1
- package/web-app/dist/assets/{server-BMsz27AO.js → server-C3UnfUWG.js} +1 -1
- package/web-app/dist/assets/{shield-alert-vPyoSgqA.js → shield-alert-B16YK1L7.js} +1 -1
- package/web-app/dist/assets/{thumbs-up-C4wrwJ5e.js → thumbs-up-9vfN_rsT.js} +1 -1
- package/web-app/dist/assets/{trash-2-Ce7D0nSW.js → trash-2-BQ-nbCvC.js} +1 -1
- package/web-app/dist/assets/{trending-down-BmvCA5Qx.js → trending-down-BML7JtUD.js} +1 -1
- package/web-app/dist/assets/{trending-up-BPiTPRTf.js → trending-up-CfYZeeTt.js} +1 -1
- package/web-app/dist/assets/{upload-Dcy74KSo.js → upload-Bx2AigKp.js} +1 -1
- package/web-app/dist/assets/{usePolling-BCA-Wm1u.js → usePolling-C3xP585q.js} +1 -1
- package/web-app/dist/assets/{user-Dv2IjXtp.js → user-BAGG-wCv.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 v11.17.
|
|
6
|
+
# Loki Mode v11.17.55
|
|
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.
|
|
486
|
+
**v11.17.55 | [Autonomi](https://www.autonomi.dev/) flagship product | core skill**
|
package/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
11.17.
|
|
1
|
+
11.17.55
|
|
@@ -11,7 +11,7 @@ behavior changes in a way callers must be able to detect.
|
|
|
11
11
|
Patterns implemented (see R1-proof-of-run-PLAN.md REDACTION RULES):
|
|
12
12
|
- Anthropic keys (sk-ant-...) -> [REDACTED:ANTHROPIC_KEY]
|
|
13
13
|
- OpenAI-style keys (sk-...) -> [REDACTED:OPENAI_KEY]
|
|
14
|
-
- Google API keys (
|
|
14
|
+
- Google API keys (AIza...) -> [REDACTED:GOOGLE_KEY]
|
|
15
15
|
- GitHub tokens (gh[pousr]_ and github_pat_) -> [REDACTED:GITHUB_TOKEN]
|
|
16
16
|
- AWS access key ids (AKIA..) -> [REDACTED:AWS_KEY]
|
|
17
17
|
- AWS secret access keys -> [REDACTED:AWS_SECRET]
|
|
@@ -75,8 +75,8 @@ _PATTERNS = [
|
|
|
75
75
|
re.compile(r"eyJ[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+"),
|
|
76
76
|
"[REDACTED:JWT]",
|
|
77
77
|
),
|
|
78
|
-
# Google API keys (
|
|
79
|
-
(re.compile(r"
|
|
78
|
+
# Google API keys: AIza + 35 chars (matches loki-ts redact.ts).
|
|
79
|
+
(re.compile(r"AIza[A-Za-z0-9_-]{35}"), "[REDACTED:GOOGLE_KEY]"),
|
|
80
80
|
# Generic OpenAI-style keys (after sk-ant- so it does not eat them).
|
|
81
81
|
(re.compile(r"sk-[A-Za-z0-9_-]{20,}"), "[REDACTED:OPENAI_KEY]"),
|
|
82
82
|
]
|
package/dashboard/__init__.py
CHANGED
package/docs/CLI-REFERENCE.md
CHANGED
|
@@ -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.
|
|
3
|
+
Generated from `loki-ts/src/cli/registry.ts` by `scripts/generate-stale-zero.sh` for v11.17.55. 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 |
|
package/docs/INSTALLATION.md
CHANGED
|
@@ -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.
|
|
5
|
+
**Version:** v11.17.55
|
|
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
|
@@ -1366,33 +1366,33 @@ Source: ~/git/autonomi-dev/research/2026-09-30-adoption/SWARM-PROMPT-ADOPTION.md
|
|
|
1366
1366
|
| TEN-UX-51 | fix: a first-run folder that holds only .DS_Store (macOS Finder) is refused as non-empty; ignore .DS_Store and other OS metadata files when deciding the folder is empty | loki-ts/src/util/first_run_repo.ts, loki-ts/tests/engine10/preflight.test.ts | LOW | red: cd loki-ts && bun test tests/engine10/preflight.test.ts -t "ds_store only folder" fails; green: passes | released v11.17.54 | Gap: reproduced initEmptyRepo(dirWithOnly.DS_Store) returns {fatal:"not a git repository ... "}; first_run_repo.ts:12 `readdirSync(dir).length === 0` counts dotfiles |
|
|
1367
1367
|
| TEN-STABILITY-57 | fix: appendRunOutcome is a read-modify-write, so two concurrent runs on one repo lose an outcome; serialize with a lock file or append-only records | loki-ts/src/runner/router/history_store.ts, loki-ts/tests/runner/router_history.test.ts | MEDIUM | red: cd loki-ts && bun test tests/runner/router_history.test.ts -t "concurrent append keeps all" fails; green: passes | released v11.17.54 | Gap: history_store.ts:70 reads the history, appends in memory, then renames a pid-named temp file over the target (lines 73-77); the atomic rename prevents truncation but not a lost update between two processes |
|
|
1368
1368
|
| TEN-SECURITY-22 | fix: secure-scan silently skips untracked files larger than 1 MB, so a secret in a large new file passes the gate unreported; scan them line by line up to a hard cap and list anything above the cap as an explicit skipped file | loki-ts/src/util/secure_scan.ts, loki-ts/tests/util/secure_scan.test.ts | HIGH | red: cd loki-ts && bun test tests/util/secure_scan.test.ts -t "oversized untracked file" fails; green: passes | released v11.17.54 | Gap: secure_scan.ts:49 MAX_ADDED_FILE_BYTES = 1_000_000 and secure_scan.ts:237 `if (!st.isFile() \|\| st.size > MAX_ADDED_FILE_BYTES) continue;` drops the file with no finding, no error and no skipped count; grep for skipped or unscanned in the file finds nothing |
|
|
1369
|
-
| TEN-COST-59 | fix: parseCapUsd accepts ".5" and "5." as dollar caps instead of returning null (which silently drops the cap to the default) | loki-ts/src/e10ext/budget_cap.ts, loki-ts/tests/engine10/budget_cap.test.ts | MEDIUM | red: cd loki-ts && bun test tests/engine10/budget_cap.test.ts -t "bare decimal cap" fails; green: passes |
|
|
1370
|
-
| TEN-COST-60 | fix: hasApiKey also counts OPENROUTER_API_KEY and LOKI_MODEL_API_KEY so a run billed through a model route gets a cap instead of source subscription with usd 0 (no cap) | loki-ts/src/e10ext/budget_cap.ts, loki-ts/tests/engine10/budget_cap.test.ts | MEDIUM | red: cd loki-ts && bun test tests/engine10/budget_cap.test.ts -t "route key cap" fails; green: passes |
|
|
1371
|
-
| TEN-COST-61 | fix: resolveRunCapS reads the first loki.yaml/loki.yml like resolveCap and cost.profile do, not the last | loki-ts/src/util/run_cap.ts, loki-ts/tests/engine10/fc21_cap.test.ts | MEDIUM | red: cd loki-ts && bun test tests/engine10/fc21_cap.test.ts -t "yaml precedence" fails; green: passes |
|
|
1372
|
-
| TEN-COST-62 | feature: priorFor returns a cost prior for opus models so the pre-run estimate is shown for opus-routed runs instead of nothing | loki-ts/src/runner/router/cost_preview.ts, loki-ts/tests/runner/cost_preview.test.ts | MEDIUM | red: cd loki-ts && bun test tests/runner/cost_preview.test.ts -t "opus prior" fails; green: passes |
|
|
1373
|
-
| TEN-SECURITY-23 | fix: redact GOOGLE_KEY rule requires the AIza prefix shape so ordinary identifiers starting with AI are not rewritten in logs and receipts | loki-ts/src/util/redact.ts, loki-ts/tests/util/redact.test.ts | HIGH | red: cd loki-ts && bun test tests/util/redact.test.ts -t "google key shape" fails; green: passes |
|
|
1374
|
-
| TEN-SECURITY-24 | feature: redact adds Slack webhook URLs, sk_test_ and rk_ Stripe keys, and whsec_ webhook secrets | loki-ts/src/util/redact.ts, loki-ts/tests/util/redact.test.ts | HIGH | red: cd loki-ts && bun test tests/util/redact.test.ts -t "slack stripe redact" fails; green: passes |
|
|
1369
|
+
| TEN-COST-59 | fix: parseCapUsd accepts ".5" and "5." as dollar caps instead of returning null (which silently drops the cap to the default) | loki-ts/src/e10ext/budget_cap.ts, loki-ts/tests/engine10/budget_cap.test.ts | MEDIUM | red: cd loki-ts && bun test tests/engine10/budget_cap.test.ts -t "bare decimal cap" fails; green: passes | released v11.17.55 | Gap: budget_cap.ts parseCapUsd regex ^\$?\d+(\.\d+)?$ rejects .5 and 5.; probed: both return null. Chain COST-59, COST-60 (same file); serialize after none |
|
|
1370
|
+
| TEN-COST-60 | fix: hasApiKey also counts OPENROUTER_API_KEY and LOKI_MODEL_API_KEY so a run billed through a model route gets a cap instead of source subscription with usd 0 (no cap) | loki-ts/src/e10ext/budget_cap.ts, loki-ts/tests/engine10/budget_cap.test.ts | MEDIUM | red: cd loki-ts && bun test tests/engine10/budget_cap.test.ts -t "route key cap" fails; green: passes | released v11.17.55 | Gap: budget_cap.ts hasApiKey checks only ANTHROPIC_API_KEY and OPENAI_API_KEY; model_routes.ts:17 and :49 read the other two token vars; probed: only OPENROUTER_API_KEY set resolves {usd:0, source:subscription}. Chain COST-59, COST-60 (same file); serialize after COST-59 |
|
|
1371
|
+
| TEN-COST-61 | fix: resolveRunCapS reads the first loki.yaml/loki.yml like resolveCap and cost.profile do, not the last | loki-ts/src/util/run_cap.ts, loki-ts/tests/engine10/fc21_cap.test.ts | MEDIUM | red: cd loki-ts && bun test tests/engine10/fc21_cap.test.ts -t "yaml precedence" fails; green: passes | released v11.17.55 | Gap: run_cap.ts resolveRunCapS uses texts[texts.length-1] while resolveCap and start.ts cost.profile use the first, so one repo with both files gets two different caps |
|
|
1372
|
+
| TEN-COST-62 | feature: priorFor returns a cost prior for opus models so the pre-run estimate is shown for opus-routed runs instead of nothing | loki-ts/src/runner/router/cost_preview.ts, loki-ts/tests/runner/cost_preview.test.ts | MEDIUM | red: cd loki-ts && bun test tests/runner/cost_preview.test.ts -t "opus prior" fails; green: passes | released v11.17.55 | Gap: cost_preview.ts:38 tier is only haiku or sonnet, else null, so a start with an opus model prints no estimate |
|
|
1373
|
+
| TEN-SECURITY-23 | fix: redact GOOGLE_KEY rule requires the AIza prefix shape so ordinary identifiers starting with AI are not rewritten in logs and receipts | loki-ts/src/util/redact.ts, loki-ts/tests/util/redact.test.ts | HIGH | red: cd loki-ts && bun test tests/util/redact.test.ts -t "google key shape" fails; green: passes | released v11.17.55 | Gap: redact.ts GOOGLE_KEY /AI[a-zA-Z0-9_-]{30,}/g matches any 32+ char identifier starting AI (over-redaction corrupts evidence). Chain SECURITY-23, 24, 25 (same file); serialize after none |
|
|
1374
|
+
| TEN-SECURITY-24 | feature: redact adds Slack webhook URLs, sk_test_ and rk_ Stripe keys, and whsec_ webhook secrets | loki-ts/src/util/redact.ts, loki-ts/tests/util/redact.test.ts | HIGH | red: cd loki-ts && bun test tests/util/redact.test.ts -t "slack stripe redact" fails; green: passes | released v11.17.55 | Gap: redact.ts RULES has no pattern for hooks.slack.com/services, sk_test_, or whsec_; a pasted token reaches events and receipts unredacted. Chain SECURITY-23, 24, 25; serialize after SECURITY-23 |
|
|
1375
1375
|
| TEN-SECURITY-25 | feature: redact masks the value of key=value and key: value assignments for password, secret, token and api_key names | loki-ts/src/util/redact.ts, loki-ts/tests/util/redact.test.ts | HIGH | red: cd loki-ts && bun test tests/util/redact.test.ts -t "assignment redact" fails; green: passes | ready@2026-10-17T12:00Z | Gap: redact.ts RULES match only token-shaped literals; password=hunter2 passes through unchanged. Chain SECURITY-23, 24, 25; serialize after SECURITY-24 |
|
|
1376
|
-
| TEN-STABILITY-58 | fix: yamlKey reads flow-style maps such as budgets: { per_run: 5 } instead of ignoring them (the default 100 dollar cap then applies silently) | loki-ts/src/util/yaml_key.ts, loki-ts/tests/util/yaml_key.test.ts | MEDIUM | red: cd loki-ts && bun test tests/util/yaml_key.test.ts -t "flow style" fails; green: passes |
|
|
1377
|
-
| TEN-STABILITY-59 | fix: loki undo validates the run id before the LOKI_UNDO gate so a bad id reports usage, not the gate message | loki-ts/src/commands/undo.ts, loki-ts/tests/commands/undo.test.ts | MEDIUM | red: cd loki-ts && bun test tests/commands/undo.test.ts -t "undo id before gate" fails; green: passes |
|
|
1378
|
-
| TEN-STABILITY-60 | enhancement: pauseTimeoutMs warns once on stderr when the pause timeout env is set but not a positive number, then uses the default | loki-ts/src/util/run_control.ts, loki-ts/tests/util/run_control.test.ts | MEDIUM | red: cd loki-ts && bun test tests/util/run_control.test.ts -t "pause timeout warn" fails; green: passes |
|
|
1379
|
-
| TEN-STABILITY-61 | enhancement: runControlBoundary records reason timeout_abandon on the cancel event when a pause expires, distinct from a user cancel | loki-ts/src/util/run_control.ts, loki-ts/tests/util/run_control.test.ts | MEDIUM | red: cd loki-ts && bun test tests/util/run_control.test.ts -t "timeout abandon event" fails; green: passes |
|
|
1380
|
-
| TEN-STABILITY-62 | fix: queue add rejects issue number 0 for owner/repo#0 and bare 0 | loki-ts/src/commands/queue.ts, loki-ts/tests/commands/queue.test.ts | LOW | red: cd loki-ts && bun test tests/commands/queue.test.ts -t "queue zero issue" fails; green: passes |
|
|
1381
|
-
| TEN-STABILITY-63 | fix: engine10 supervisor main exits 2 with a usage line when --spec or --max-cost has no value, instead of treating it as an empty string | loki-ts/src/engine10/supervisor.ts, loki-ts/tests/engine10/supervisor_signal.test.ts | MEDIUM | red: cd loki-ts && bun test tests/engine10/supervisor_signal.test.ts -t "missing flag value" fails; green: passes |
|
|
1382
|
-
| TEN-STABILITY-65 | fix: internal handoff requires an explicit positive consecutive-failure count instead of defaulting a missing count to 0 | loki-ts/src/commands/internal_phase1.ts, loki-ts/tests/commands/internal_phase1.test.ts | LOW | red: cd loki-ts && bun test tests/commands/internal_phase1.test.ts -t "handoff count" fails; green: passes |
|
|
1383
|
-
| TEN-UX-52 | fix: loki provider show with an unknown provider exits 2 and lists valid providers | loki-ts/src/commands/provider.ts, loki-ts/tests/commands/provider.test.ts | LOW | red: cd loki-ts && bun test tests/commands/provider.test.ts -t "unknown provider" fails; green: passes |
|
|
1384
|
-
| TEN-UX-53 | enhancement: loki --version and loki version reject extra positional arguments with exit 2 | loki-ts/src/commands/version.ts, loki-ts/tests/commands/version.test.ts | LOW | red: cd loki-ts && bun test tests/commands/version.test.ts -t "version extra args" fails; green: passes |
|
|
1385
|
-
| TEN-UX-54 | fix: loki stats writes the Unknown option message to stderr, not stdout, so --json consumers get clean output | loki-ts/src/commands/stats.ts, loki-ts/tests/commands/stats.test.ts | LOW | red: cd loki-ts && bun test tests/commands/stats.test.ts -t "stats unknown to stderr" fails; green: passes |
|
|
1386
|
-
| TEN-UX-55 | feature: preflight fails early with a one-line fix when the repo directory is not writable | loki-ts/src/engine10/preflight.ts, loki-ts/tests/engine10/preflight.test.ts | MEDIUM | red: cd loki-ts && bun test tests/engine10/preflight.test.ts -t "repo writable" fails; green: passes |
|
|
1387
|
-
| TEN-ADOPTION-34 | feature: preflight probes login state for codex, cline, aider and opencode like it does for claude, so loki start names the missing login before spending | loki-ts/src/engine10/preflight.ts, loki-ts/tests/engine10/preflight.test.ts | MEDIUM | red: cd loki-ts && bun test tests/engine10/preflight.test.ts -t "provider login probe" fails; green: passes |
|
|
1388
|
-
| TEN-UX-56 | fix: loki start rejects a repeated single-value flag (--cap, --provider) with exit 2 instead of silently using the first | loki-ts/src/commands/start.ts, loki-ts/tests/commands/start.test.ts | MEDIUM | red: cd loki-ts && bun test tests/commands/start.test.ts -t "duplicate flag" fails; green: passes |
|
|
1389
|
-
| TEN-SPEED-24 | enhancement: run_status pickRun orders runs by events.jsonl mtime and reads only the newest, instead of reading every run's events file | loki-ts/src/commands/run_status.ts, loki-ts/tests/commands/run_status.test.ts | MEDIUM | red: cd loki-ts && bun test tests/commands/run_status.test.ts -t "pickRun mtime" fails; green: passes |
|
|
1390
|
-
| TEN-UX-57 | fix: loki status rejects unknown flags that follow a valid one (--json --bogus) with exit 1 like a leading unknown flag | loki-ts/src/commands/status.ts, loki-ts/tests/commands/status.test.ts | LOW | red: cd loki-ts && bun test tests/commands/status.test.ts -t "status trailing flag" fails; green: passes |
|
|
1391
|
-
| TEN-ADOPTION-35 | enhancement: doctor --fix seeds the default provider from the first installed provider CLI instead of hardcoding claude | loki-ts/src/commands/doctor_fix.ts, loki-ts/tests/commands/doctor.test.ts | MEDIUM | red: cd loki-ts && bun test tests/commands/doctor.test.ts -t "seed provider" fails; green: passes |
|
|
1392
|
-
| TEN-UX-58 | enhancement: doctor --fix backs up an invalid .loki/config/settings.json and rewrites defaults when consent is given, instead of only printing a manual line | loki-ts/src/commands/doctor_fix.ts, loki-ts/tests/commands/doctor.test.ts | MEDIUM | red: cd loki-ts && bun test tests/commands/doctor.test.ts -t "repair settings" fails; green: passes |
|
|
1393
|
-
| TEN-QUALITY-40 | enhancement: doctor.ts uses one shared version comparator instead of three copies | loki-ts/src/commands/doctor.ts, loki-ts/tests/commands/doctor.test.ts | LOW | red: cd loki-ts && bun test tests/commands/doctor.test.ts -t "one semver compare" fails; green: passes |
|
|
1394
|
-
| TEN-SPEED-25 | fix: resolveLatest caches a failed registry fetch for a short period so an offline machine does not wait on the network every command | loki-ts/src/util/update_check.ts, loki-ts/tests/util/update_check.test.ts | LOW | red: cd loki-ts && bun test tests/util/update_check.test.ts -t "negative cache" fails; green: passes |
|
|
1395
|
-
| TEN-DEPLOY-27 | feature: updateCommandFor returns pnpm and yarn global upgrade hints for pnpm and yarn installs | loki-ts/src/util/update_check.ts, loki-ts/tests/util/update_check.test.ts | LOW | red: cd loki-ts && bun test tests/util/update_check.test.ts -t "pnpm yarn hint" fails; green: passes |
|
|
1396
|
-
| TEN-GATES-31 | fix: policyGate with LOKI_POLICY_REQUIRE_NODE=0 and no node says policy was NOT evaluated in the allow reason so prGate output shows it | loki-ts/src/util/run_outputs.ts, loki-ts/tests/engine10/policy_gate.test.ts | HIGH | red: cd loki-ts && bun test tests/engine10/policy_gate.test.ts -t "policy not evaluated" fails; green: passes |
|
|
1397
|
-
| TEN-GATES-32 | fix: policyGate reports a check.js timeout as a timeout, not as node being unavailable | loki-ts/src/util/run_outputs.ts, loki-ts/tests/engine10/policy_gate.test.ts | HIGH | red: cd loki-ts && bun test tests/engine10/policy_gate.test.ts -t "policy timeout reason" fails; green: passes |
|
|
1398
|
-
| TEN-ADOPTION-36 | fix: loki issues run --limit and --parallel accept only plain decimal digits (reject 1e1 and 0x10) | loki-ts/src/commands/issues_run.ts, loki-ts/tests/commands/issues_run.test.ts | LOW | red: cd loki-ts && bun test tests/commands/issues_run.test.ts -t "strict int flags" fails; green: passes |
|
|
1376
|
+
| TEN-STABILITY-58 | fix: yamlKey reads flow-style maps such as budgets: { per_run: 5 } instead of ignoring them (the default 100 dollar cap then applies silently) | loki-ts/src/util/yaml_key.ts, loki-ts/tests/util/yaml_key.test.ts | MEDIUM | red: cd loki-ts && bun test tests/util/yaml_key.test.ts -t "flow style" fails; green: passes | released v11.17.55 | Gap: yaml_key.ts yamlKey handles block style only; probed: flow style returns undefined so resolve falls to the default cap |
|
|
1377
|
+
| TEN-STABILITY-59 | fix: loki undo validates the run id before the LOKI_UNDO gate so a bad id reports usage, not the gate message | loki-ts/src/commands/undo.ts, loki-ts/tests/commands/undo.test.ts | MEDIUM | red: cd loki-ts && bun test tests/commands/undo.test.ts -t "undo id before gate" fails; green: passes | released v11.17.55 | Gap: undo.ts runUndo checks the LOKI_UNDO gate (line 239) before loadPlan validates the run id (isRunId, line 44) |
|
|
1378
|
+
| TEN-STABILITY-60 | enhancement: pauseTimeoutMs warns once on stderr when the pause timeout env is set but not a positive number, then uses the default | loki-ts/src/util/run_control.ts, loki-ts/tests/util/run_control.test.ts | MEDIUM | red: cd loki-ts && bun test tests/util/run_control.test.ts -t "pause timeout warn" fails; green: passes | released v11.17.55 | Gap: run_control.ts pauseTimeoutMs falls back silently on garbage. Chain STABILITY-60, 61 (same file); serialize after none |
|
|
1379
|
+
| TEN-STABILITY-61 | enhancement: runControlBoundary records reason timeout_abandon on the cancel event when a pause expires, distinct from a user cancel | loki-ts/src/util/run_control.ts, loki-ts/tests/util/run_control.test.ts | MEDIUM | red: cd loki-ts && bun test tests/util/run_control.test.ts -t "timeout abandon event" fails; green: passes | released v11.17.55 | Gap: run_control.ts runControlBoundary emits identical cancel events for a user cancel and a timeout abandon. Chain STABILITY-60, 61; serialize after STABILITY-60 |
|
|
1380
|
+
| TEN-STABILITY-62 | fix: queue add rejects issue number 0 for owner/repo#0 and bare 0 | loki-ts/src/commands/queue.ts, loki-ts/tests/commands/queue.test.ts | LOW | red: cd loki-ts && bun test tests/commands/queue.test.ts -t "queue zero issue" fails; green: passes | released v11.17.55 | Gap: queue.ts accepts queue add 0 and a/b#0; probed: both exit 0 and enqueue an unrunnable item |
|
|
1381
|
+
| TEN-STABILITY-63 | fix: engine10 supervisor main exits 2 with a usage line when --spec or --max-cost has no value, instead of treating it as an empty string | loki-ts/src/engine10/supervisor.ts, loki-ts/tests/engine10/supervisor_signal.test.ts | MEDIUM | red: cd loki-ts && bun test tests/engine10/supervisor_signal.test.ts -t "missing flag value" fails; green: passes | released v11.17.55 | Gap: supervisor.ts main arg parser turns --spec and --max-cost with a missing value into ""; the git-repo check then runs before resolveCap so the user sees an unrelated error |
|
|
1382
|
+
| TEN-STABILITY-65 | fix: internal handoff requires an explicit positive consecutive-failure count instead of defaulting a missing count to 0 | loki-ts/src/commands/internal_phase1.ts, loki-ts/tests/commands/internal_phase1.test.ts | LOW | red: cd loki-ts && bun test tests/commands/internal_phase1.test.ts -t "handoff count" fails; green: passes | released v11.17.55 | Gap: internal_phase1.ts runHandoff: parseInt(argv[1] ?? "0") makes a missing count 0 and Number.isFinite accepts it and negatives |
|
|
1383
|
+
| TEN-UX-52 | fix: loki provider show with an unknown provider exits 2 and lists valid providers | loki-ts/src/commands/provider.ts, loki-ts/tests/commands/provider.test.ts | LOW | red: cd loki-ts && bun test tests/commands/provider.test.ts -t "unknown provider" fails; green: passes | released v11.17.55 | Gap: provider.ts runProviderShow accepts an unknown provider with exit 0 |
|
|
1384
|
+
| TEN-UX-53 | enhancement: loki --version and loki version reject extra positional arguments with exit 2 | loki-ts/src/commands/version.ts, loki-ts/tests/commands/version.test.ts | LOW | red: cd loki-ts && bun test tests/commands/version.test.ts -t "version extra args" fails; green: passes | released v11.17.55 | Gap: version.ts ignores extra positionals; probed: loki version bogus prints the version and exits 0 |
|
|
1385
|
+
| TEN-UX-54 | fix: loki stats writes the Unknown option message to stderr, not stdout, so --json consumers get clean output | loki-ts/src/commands/stats.ts, loki-ts/tests/commands/stats.test.ts | LOW | red: cd loki-ts && bun test tests/commands/stats.test.ts -t "stats unknown to stderr" fails; green: passes | released v11.17.55 | Gap: stats.ts computeStats returns the Unknown option text as stdout with exitCode 2 (lines 491-497) |
|
|
1386
|
+
| TEN-UX-55 | feature: preflight fails early with a one-line fix when the repo directory is not writable | loki-ts/src/engine10/preflight.ts, loki-ts/tests/engine10/preflight.test.ts | MEDIUM | red: cd loki-ts && bun test tests/engine10/preflight.test.ts -t "repo writable" fails; green: passes | released v11.17.55 | Gap: preflight.ts checkPreflight has no writability probe, so a read-only checkout fails mid-run on the first write. Chain ADOPTION-34, UX-55 (same file); serialize after ADOPTION-34 |
|
|
1387
|
+
| TEN-ADOPTION-34 | feature: preflight probes login state for codex, cline, aider and opencode like it does for claude, so loki start names the missing login before spending | loki-ts/src/engine10/preflight.ts, loki-ts/tests/engine10/preflight.test.ts | MEDIUM | red: cd loki-ts && bun test tests/engine10/preflight.test.ts -t "provider login probe" fails; green: passes | released v11.17.55 | Gap: preflight.ts checkPreflight has login probes only for claude. Chain ADOPTION-34, UX-55; serialize after none |
|
|
1388
|
+
| TEN-UX-56 | fix: loki start rejects a repeated single-value flag (--cap, --provider) with exit 2 instead of silently using the first | loki-ts/src/commands/start.ts, loki-ts/tests/commands/start.test.ts | MEDIUM | red: cd loki-ts && bun test tests/commands/start.test.ts -t "duplicate flag" fails; green: passes | released v11.17.55 | Gap: start.ts argVal is first-occurrence-wins, so loki start p.md --cap 1 --cap 50 runs with 1 and says nothing. Serialize after the AQ start.ts chain (TEN-UX-48, 50, DEPLOY-26, UX-47, 46, 45) |
|
|
1389
|
+
| TEN-SPEED-24 | enhancement: run_status pickRun orders runs by events.jsonl mtime and reads only the newest, instead of reading every run's events file | loki-ts/src/commands/run_status.ts, loki-ts/tests/commands/run_status.test.ts | MEDIUM | red: cd loki-ts && bun test tests/commands/run_status.test.ts -t "pickRun mtime" fails; green: passes | released v11.17.55 | Gap: run_status.ts pickRun reads every run's events.jsonl, so loki status gets slower with each run |
|
|
1390
|
+
| TEN-UX-57 | fix: loki status rejects unknown flags that follow a valid one (--json --bogus) with exit 1 like a leading unknown flag | loki-ts/src/commands/status.ts, loki-ts/tests/commands/status.test.ts | LOW | red: cd loki-ts && bun test tests/commands/status.test.ts -t "status trailing flag" fails; green: passes | released v11.17.55 | Gap: status.ts runStatus returns on the first recognised flag (lines 1038-1047), so later flags are never checked |
|
|
1391
|
+
| TEN-ADOPTION-35 | enhancement: doctor --fix seeds the default provider from the first installed provider CLI instead of hardcoding claude | loki-ts/src/commands/doctor_fix.ts, loki-ts/tests/commands/doctor.test.ts | MEDIUM | red: cd loki-ts && bun test tests/commands/doctor.test.ts -t "seed provider" fails; green: passes | released v11.17.55 | Gap: doctor_fix.ts step 2 writes {provider: claude} even when only codex is installed. Chain ADOPTION-35, UX-58 (same file); serialize after none |
|
|
1392
|
+
| TEN-UX-58 | enhancement: doctor --fix backs up an invalid .loki/config/settings.json and rewrites defaults when consent is given, instead of only printing a manual line | loki-ts/src/commands/doctor_fix.ts, loki-ts/tests/commands/doctor.test.ts | MEDIUM | red: cd loki-ts && bun test tests/commands/doctor.test.ts -t "repair settings" fails; green: passes | released v11.17.55 | Gap: doctor_fix.ts lines 120-124 push a manual line for invalid JSON and never repair it. Chain ADOPTION-35, UX-58; serialize after ADOPTION-35 |
|
|
1393
|
+
| TEN-QUALITY-40 | enhancement: doctor.ts uses one shared version comparator instead of three copies | loki-ts/src/commands/doctor.ts, loki-ts/tests/commands/doctor.test.ts | LOW | red: cd loki-ts && bun test tests/commands/doctor.test.ts -t "one semver compare" fails; green: passes | released v11.17.55 | Gap: doctor.ts has three hand-rolled comparators (lines 98, 318, 567); extend-never-duplicate. Serialize after ADOPTION-35, UX-58 (shared doctor.test.ts) |
|
|
1394
|
+
| TEN-SPEED-25 | fix: resolveLatest caches a failed registry fetch for a short period so an offline machine does not wait on the network every command | loki-ts/src/util/update_check.ts, loki-ts/tests/util/update_check.test.ts | LOW | red: cd loki-ts && bun test tests/util/update_check.test.ts -t "negative cache" fails; green: passes | released v11.17.55 | Gap: update_check.ts resolveLatest returns null at the failed fetch without writeCache (line 129-130), so offline runs retry each time. Chain SPEED-25, DEPLOY-27 (same file); serialize after none |
|
|
1395
|
+
| TEN-DEPLOY-27 | feature: updateCommandFor returns pnpm and yarn global upgrade hints for pnpm and yarn installs | loki-ts/src/util/update_check.ts, loki-ts/tests/util/update_check.test.ts | LOW | red: cd loki-ts && bun test tests/util/update_check.test.ts -t "pnpm yarn hint" fails; green: passes | released v11.17.55 | Gap: update_check.ts updateCommandFor knows brew, bun and npm paths only; pnpm and yarn installs get the bun hint. Chain SPEED-25, DEPLOY-27; serialize after SPEED-25 |
|
|
1396
|
+
| TEN-GATES-31 | fix: policyGate with LOKI_POLICY_REQUIRE_NODE=0 and no node says policy was NOT evaluated in the allow reason so prGate output shows it | loki-ts/src/util/run_outputs.ts, loki-ts/tests/engine10/policy_gate.test.ts | HIGH | red: cd loki-ts && bun test tests/engine10/policy_gate.test.ts -t "policy not evaluated" fails; green: passes | released v11.17.55 | Gap: run_outputs.ts:449 returns allow when the env opt-out is set and node is missing; the reason is easy to miss. Chain GATES-31, 32 (same file); serialize after none |
|
|
1397
|
+
| TEN-GATES-32 | fix: policyGate reports a check.js timeout as a timeout, not as node being unavailable | loki-ts/src/util/run_outputs.ts, loki-ts/tests/engine10/policy_gate.test.ts | HIGH | red: cd loki-ts && bun test tests/engine10/policy_gate.test.ts -t "policy timeout reason" fails; green: passes | released v11.17.55 | Gap: run_outputs.ts:452-453 spawnSync timeout 30000 sets r.error and the deny reason says node is unavailable. Chain GATES-31, 32; serialize after GATES-31 |
|
|
1398
|
+
| TEN-ADOPTION-36 | fix: loki issues run --limit and --parallel accept only plain decimal digits (reject 1e1 and 0x10) | loki-ts/src/commands/issues_run.ts, loki-ts/tests/commands/issues_run.test.ts | LOW | red: cd loki-ts && bun test tests/commands/issues_run.test.ts -t "strict int flags" fails; green: passes | released v11.17.55 | Gap: issues_run.ts:96 Number(val()) accepts 1e1 and 0x10 as integers. Serialize after TEN-STABILITY-54 (same file) |
|
package/docs/v10/PROGRESS.md
CHANGED
|
@@ -2542,3 +2542,6 @@ v11.17.21 published (Release success on 462fbc40a; npm latest 11.17.21, next 11.
|
|
|
2542
2542
|
|
|
2543
2543
|
## 2026-10-17T14:35Z (CoS) v11.17.54
|
|
2544
2544
|
- Wave AQ released (30 rows, 19 chains, every reviewer APPROVE by SHA, ancestry checked) plus Q18-03e (opus round 5 APPROVE e41ef40b2 after 5 BLOCK rounds); evidence in ~/loki-ci-logs/aq-check.log.
|
|
2545
|
+
|
|
2546
|
+
## 2026-10-17T14:50Z (CoS) v11.17.55
|
|
2547
|
+
- Wave AR released (29 rows, 19 chains, reviewer APPROVE by SHA, ancestry checked; TEN-SECURITY-25 held at BLOCK 30fd64ba8 for a fix round). Combined checks in ~/loki-ci-logs/ar-check.log: build OK, bun test 533 pass 1 fail (known engine10 core budget, fix in flight), drift guards rc=0, control-plane 33 pass; tsc red on queue.ts:75 fixed in a2a21c137 (tsc OK, queue.test.ts 29 pass 0 fail).
|