loki-mode 11.17.74 → 11.17.76
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/CLI-REFERENCE.md +1 -1
- package/docs/INSTALLATION.md +1 -1
- package/docs/v10/FAILURE-CLASSES.md +19 -0
- package/docs/v10/PROGRESS.md +6 -0
- package/loki-ts/dist/loki.js +1212 -1212
- package/mcp/__init__.py +1 -1
- package/package.json +2 -2
- package/packages/control-plane/dist/server.js +462 -359
- package/plugins/loki-mode/.claude-plugin/plugin.json +1 -1
- package/web-app/dist/assets/{AdminPage-BMEz6PjD.js → AdminPage-C9CQBRCv.js} +1 -1
- package/web-app/dist/assets/{Avatar-CWqr7n5f.js → Avatar-BhmBNUPT.js} +1 -1
- package/web-app/dist/assets/{Badge-0HwtDygF.js → Badge-BvCq2-AU.js} +1 -1
- package/web-app/dist/assets/{Button-9dckZRDN.js → Button-TBmtKOqA.js} +1 -1
- package/web-app/dist/assets/{CockpitPage-nYMuXSfl.js → CockpitPage-BO-zbB8z.js} +1 -1
- package/web-app/dist/assets/{ComparePage-Bc5srye5.js → ComparePage-CKscZK_O.js} +1 -1
- package/web-app/dist/assets/{ErrorBoundary-BkDMHZsx.js → ErrorBoundary-BrkeH2Y3.js} +1 -1
- package/web-app/dist/assets/{EvidenceReceiptPanel-M8zrEQxG.js → EvidenceReceiptPanel-f9uCX3yS.js} +1 -1
- package/web-app/dist/assets/{GitHubIssuesPanel-MvOtqrJO.js → GitHubIssuesPanel-CAqtVRHw.js} +1 -1
- package/web-app/dist/assets/{GitHubPRsPanel-Cx6sFkSQ.js → GitHubPRsPanel-Jtx_ikWN.js} +1 -1
- package/web-app/dist/assets/{HomePage-KoGFVyhn.js → HomePage-_mPIzGn9.js} +2 -2
- package/web-app/dist/assets/{LoginPage-BJKuRfBJ.js → LoginPage-Cd92GhII.js} +1 -1
- package/web-app/dist/assets/{MagicPage-CH19MKyX.js → MagicPage-BmIqtGm5.js} +1 -1
- package/web-app/dist/assets/{MetricsPage-CTiPy6uL.js → MetricsPage-3CfsaG_m.js} +1 -1
- package/web-app/dist/assets/{NotFoundPage-B3x9Admx.js → NotFoundPage-Br-g9AbW.js} +1 -1
- package/web-app/dist/assets/{ProjectPage-B7NMYrmn.js → ProjectPage-Dx2AA5Y7.js} +3 -3
- package/web-app/dist/assets/{ProjectsPage-BNbo3wR3.js → ProjectsPage-DLHDbZoy.js} +1 -1
- package/web-app/dist/assets/{SettingsPage-Dk9w3rKx.js → SettingsPage-D94kuRCH.js} +1 -1
- package/web-app/dist/assets/{ShowcasePage-Dk7LBonS.js → ShowcasePage-CItGSA7Y.js} +1 -1
- package/web-app/dist/assets/{SystemSettingsPage-FTbJ_2Hn.js → SystemSettingsPage-DecZOv_a.js} +1 -1
- package/web-app/dist/assets/{TeamsPage-CdKmEVIO.js → TeamsPage-e0AUkZug.js} +1 -1
- package/web-app/dist/assets/{TemplatesPage-Du6EHrwu.js → TemplatesPage-CRUokO5z.js} +1 -1
- package/web-app/dist/assets/{TerminalOutput-BTlTI6D7.js → TerminalOutput-BDmhduwO.js} +1 -1
- package/web-app/dist/assets/{activity-BXuoHaM2.js → activity-D8ql1RlC.js} +1 -1
- package/web-app/dist/assets/{bell-DCDgirjw.js → bell-orReNr4N.js} +1 -1
- package/web-app/dist/assets/{bot-vJgiSrdQ.js → bot-CHD-p3yx.js} +1 -1
- package/web-app/dist/assets/{check-D-RGuqkl.js → check-CoV5lgtT.js} +1 -1
- package/web-app/dist/assets/{chevron-left-NKl5Cd-R.js → chevron-left-BNTcjUYJ.js} +1 -1
- package/web-app/dist/assets/{circle-alert-ByXEu_ry.js → circle-alert-Ctw93lag.js} +1 -1
- package/web-app/dist/assets/{clock-sHF7TkaL.js → clock-ghwe17Mr.js} +1 -1
- package/web-app/dist/assets/{cloud-D6mqiMKo.js → cloud-CPdhMe5M.js} +1 -1
- package/web-app/dist/assets/{code-xml-huk-YFT0.js → code-xml-D_ls460O.js} +1 -1
- package/web-app/dist/assets/{database-BOlnZ1VP.js → database--txjFRm7.js} +1 -1
- package/web-app/dist/assets/{dollar-sign-BkQRFa0q.js → dollar-sign-yBTfA9B-.js} +1 -1
- package/web-app/dist/assets/{file-code-corner-ugbZnTSY.js → file-code-corner-flbM-wFK.js} +1 -1
- package/web-app/dist/assets/{file-plus-C36sokvh.js → file-plus-ZqP1rdyQ.js} +1 -1
- package/web-app/dist/assets/{globe-CJQelTw1.js → globe-BxvmypwQ.js} +1 -1
- package/web-app/dist/assets/{hammer-DPzU4Wtq.js → hammer-UCzYuJUR.js} +1 -1
- package/web-app/dist/assets/{index-CmNcswQv.js → index-CuPW6Ff_.js} +3 -3
- package/web-app/dist/assets/{layers-DzMH-GEN.js → layers-DOUrmTFo.js} +1 -1
- package/web-app/dist/assets/{loader-circle-BNbNqvck.js → loader-circle-XV4GqxO0.js} +1 -1
- package/web-app/dist/assets/{lock-9PCIcJ6T.js → lock-Bp3KTqJq.js} +1 -1
- package/web-app/dist/assets/{package-j3aJqney.js → package-BPNFJPhi.js} +1 -1
- package/web-app/dist/assets/{plus-DGAY2LNf.js → plus-D5AJ9CbB.js} +1 -1
- package/web-app/dist/assets/{refresh-cw-BBJiyS_M.js → refresh-cw-MiVr91M1.js} +1 -1
- package/web-app/dist/assets/{rotate-ccw-BNLXFero.js → rotate-ccw-Bc97bvIq.js} +1 -1
- package/web-app/dist/assets/{scroll-text-CGG6Enap.js → scroll-text-DC1RvHx-.js} +1 -1
- package/web-app/dist/assets/{server-Bv6QDqpn.js → server-CSA-j7xn.js} +1 -1
- package/web-app/dist/assets/{shield-alert-BFJHSdqK.js → shield-alert-ubbkSf0j.js} +1 -1
- package/web-app/dist/assets/{thumbs-up-BGbIHMwH.js → thumbs-up-CxpcA4EK.js} +1 -1
- package/web-app/dist/assets/{trash-2-C7mlnJL3.js → trash-2-Bh1Pdz1Z.js} +1 -1
- package/web-app/dist/assets/{trending-down-BbxICDz5.js → trending-down-isclw9oO.js} +1 -1
- package/web-app/dist/assets/{trending-up-DQqCw2fH.js → trending-up-CHGt_Ghb.js} +1 -1
- package/web-app/dist/assets/{upload-SWiggmcJ.js → upload-DEdgXqPK.js} +1 -1
- package/web-app/dist/assets/{usePolling-CTxzJty2.js → usePolling-6K1dXGbq.js} +1 -1
- package/web-app/dist/assets/{user-DPVl5QyH.js → user-BsWjcTD2.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.76
|
|
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.76 | [Autonomi](https://www.autonomi.dev/) flagship product | core skill**
|
package/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
11.17.
|
|
1
|
+
11.17.76
|
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.76. 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.76
|
|
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
|
|
|
@@ -1203,3 +1203,22 @@ L0 review rule (ENGINE-LAWS.md L0): a fix that adds an `if` or a regex about the
|
|
|
1203
1203
|
- Fixture: loki-ts/tests/engine10/fc22_install.test.ts "absentDepRoots and intakeDeps (FC-DEPS-NOT-INSTALLED)"; loki-ts/tests/engine10/runner_errors.test.ts FC-DEPS-NOT-INSTALLED case.
|
|
1204
1204
|
- Budget change: the intake stage limit is now STAGE_BUDGETS.intake.limitS + INSTALL_CAP_MS/1000 + SUITE_BASELINE_BUDGET_S (120s), so a repo that needs an install or a per-command baseline gets that extra time at intake; a repo with nothing absent and no suites spends none of it.
|
|
1205
1205
|
- Hardening (D106, founder 2026-10-19): the intake install is the lockfile-frozen form when a lockfile exists (install.ts lockedInstall, one table for npm, pnpm, yarn, bun, uv, poetry, pipenv, cargo, bundler, composer), fails closed as harness-owned NOT PROVEN with no mutating fallback, and records `locked`, `lock_note` and `model_cmd` on the check. Fixture: fc22_install.test.ts "lockedInstall (locked, reproducible install)".
|
|
1206
|
+
|
|
1207
|
+
|
|
1208
|
+
## FC-ZERO-ON-BASE An impacted test that is a deliberate skip on base too was listed as NOT PROVEN for the change (ZERO-ON-BASE)
|
|
1209
|
+
- User-visible vs raw: user-visible. In FireLater#20 run e10-20261019T020704Z-103b verify selected `backend/tests/integration/request-approval-race.test.ts`, a deliberate `describe.skip` (needs a real DB), so it executed zero tests and the run carried "not run: vitest:backend/tests/integration/request-approval-race.test.ts" in NOT PROVEN although the change never touched it and the pristine base executes zero tests there too.
|
|
1210
|
+
- Law broken: a result the change did not cause is never charged to the change (the same base-comparison contract as A-112); zero-executed stays fail-closed whenever it could be about the change.
|
|
1211
|
+
- Siblings: any runner whose file-level skip, todo or empty file yields "no tests executed" (vitest, jest, pytest, node:test, go); Wall, task-named (relevant), holdout and edited test files, and a run that edited test configuration, are never exempt; the package and full-suite not_run lines (a suite is a command, not a file) keep their own handling.
|
|
1212
|
+
- Mechanism: verify.ts subtractBase (the A-112 pristine detached base worktree) reruns an untouched, non-Wall, non-relevant zero-executed check once and classifies it with the same classifyCheck; zero on base too puts the name in `skipped_on_base` (verify data, plus a `test.skipped_on_base` event "skipped on base: <check>"), and seal omits only those names from its "not run:" NOT PROVEN lines. Any other base outcome (tests ran, failed, missing, timed out) keeps NOT PROVEN. The rerun happens only in this case, and the check's installed node_modules or .venv are linked into the base worktree, never copied.
|
|
1213
|
+
- Fixture: loki-ts/tests/engine10/verify_prered.test.ts describe "FC-ZERO-ON-BASE" (untouched skip listed; edited file, Wall file and tests-ran-on-base all stay fail-closed) and loki-ts/tests/engine10/seal.test.ts "FC-ZERO-ON-BASE".
|
|
1214
|
+
- Hardening (HIGH review of 4e449d487): linking the head checkout's node_modules into the base worktree lets a workspace link (node_modules/shared -> ../shared, pnpm/npm/yarn workspaces) or an editable install (.venv with pip -e) resolve to HEAD sources, so the base rerun could execute the run's own edits and report a false zero-on-base. Choice: the excusal applies only when the run changed nothing but test files (`changed.every(isTestFile)`) and no test configuration, so no head source, manifest or lockfile exists for any link to expose; deps stay linked because base has none of its own. A run that edits any source keeps zero-executed as NOT PROVEN. Residual: edits made inside a gitignored node_modules or .venv are not in `changed`. Seal also writes one informational line "skipped on base (excused): <check>" next to the retained pre red lines (never downgrades). Regression fixture: verify_prered.test.ts "workspace link" (red before the rule).
|
|
1215
|
+
- Hardening 2 (HIGH re-review of 9a4267335, D99): a changed TEST file can also be reached through a workspace link (node_modules/shared/helper.test.js), so test-files-only is not enough. depsSeeHead (util/base_guard.ts) withholds the excusal whenever the dependency dirs the base rerun would link can see head sources: any top-level or @scope/* node_modules entry that is a symlink whose realpath is inside the repo, or a .venv holding a .pth, *.egg-link or direct_url.json that names the repo; an unreadable dependency dir counts as seeing head. This gate is in addition to the test-files-only gate. Fixture: verify_prered.test.ts "reviewer repro 2" (red before the guard).
|
|
1216
|
+
- Hardening 3 (round 3 HIGH review, D99): depsSeeHead now walks node_modules and .venv recursively without following symlinks (so node_modules/foo/node_modules/shared -> ../../../shared is seen), inspects every symlink target, and withholds when a target is inside the repo but outside the dependency dir it lives in (an npm .bin link or a pnpm store link stays self-contained). The repo is compared as given and as realpath (/var vs /private/var, a symlinked repo dir). Editable-install files (.pth, .egg-link, direct_url.json with its file:// URL decoded by fileURLToPath so %20 matches, and __editable___*_finder.py) are checked for the repo path, each named path also by realpath. The walk is bounded at 50000 entries; exceeding it or any read error other than a missing dir withholds. The helper logic lives in util/base_guard.ts (zeroOnBase, depsSeeHead), outside the engine core cap. A pnpm workspace package links to a path inside the repo but outside node_modules, so workspace pnpm repos are withheld; that is fail-safe, and the excusal is effectively inert wherever workspace links or editable installs exist.
|
|
1217
|
+
- Stated plainly: the motivating incident (FireLater#20, a run that edits source) stays NOT PROVEN by design. The excusal only fires for runs that changed test files alone with dependencies that cannot see head; Seal accuracy outranks delivered accuracy.
|
|
1218
|
+
## FC-FULLSUITE-ANSI-IDS A repo whose full suite was already red on base ended FAILED because the head full-suite run parsed no failure ids from colored output (FULLSUITE-ANSI-IDS)
|
|
1219
|
+
- User-visible vs raw: user-visible. FireLater#20 on loki 11.17.74: a frontend vitest suite with 307 known failing ids in `.loki/state/repo-profile.json` ended FAILED "full suite: frontend failed". Raw: the head run's output was colored, `failIds` returned [] (stripped, the same output yields 296 ids, all inside the base set), and attributeFullSuite treats ids=[] as "introduced (blocking)". The fix brief also carried only the command, so the fixer saw no failure text.
|
|
1220
|
+
- Law: a parser reads what the tool said, not how it was painted (FC-69); a user's environment must not change a verdict; unknown never excuses, but the reason it is unknown must be named.
|
|
1221
|
+
- Cause (measured): src/project_model/package_suite.ts runPackageSuites and the legacy loop in engine10/stages/deep.ts runFullSuite ran the suite with plain process.env (no plainTestEnv) and passed raw output to failIds without stripAnsi. The baseline writer (runner/repo_profile.ts shellRunner) already used both, so base had ids and head had none. Unswept sibling of FC-69.
|
|
1222
|
+
- Siblings swept (every `failIds(` and test-output-parsing `run(` under loki-ts/src, all checked): package_suite.ts runPackageSuites (fixed), engine10/stages/deep.ts runFullSuite (fixed), runner/repo_profile.ts shellRunner (already plainTestEnv + stripAnsi), engine10/stages/verify.ts runOnce (plainTestEnv + stripAnsi, FC-69) and its base rerun failIds at subtractBase (consumes runOnce output), runner/load_owner.ts runOnBase (plainTestEnv + stripAnsi), engine10/stages/wall.ts (plainTestEnv + stripAnsi), runner/quality_gates.ts npm test run (summaryFailedCount strips ANSI itself; no ids parsed). The remaining `run(` sites (python, doctor, proof, status, provider, supply, speed) do not parse test output.
|
|
1223
|
+
- Mechanism: one `suiteEnv(path)` (plainTestEnv plus the caller's PATH override) for both full-suite runners; ANSI stripped at capture before harnessLoadReason, classifyCheck and failIds; `failIds` strips ANSI itself (idempotent) so no caller can regress; attributeFullSuite says "head failure ids unparseable" instead of "none of the failing checks match them" when a failing check has no parsed ids against an attributable baseline (still blocking, fail-closed); a full-suite failure carries a redacted bounded `failureExcerpt` into the existing verify `excerpts` map, so the fix brief shows failure text.
|
|
1224
|
+
- Fixture: loki-ts/tests/engine10/verify_prered.test.ts "FC-FULLSUITE-ANSI-IDS" (colored vitest transcript), loki-ts/tests/engine10/monorepo_cwd.test.ts (colored failing package run keeps ids and a redacted excerpt; child runs under FORCE_COLOR=0 NO_COLOR=1), loki-ts/tests/runner/harness_intelligence.test.ts (colored head excused against a plain superset baseline, colored new ids still block, unparseable ids named, excerpt in the brief). Red before the fix, green after.
|
package/docs/v10/PROGRESS.md
CHANGED
|
@@ -2596,3 +2596,9 @@ v11.17.21 published (Release success on 462fbc40a; npm latest 11.17.21, next 11.
|
|
|
2596
2596
|
|
|
2597
2597
|
## 2026-10-19T03:16Z (CoS) v11.17.74
|
|
2598
2598
|
- 11.17.74: D106 follow-up, NODE_OPTIONS/BASH_ENV/ENV refused like PATH. af838b55 4284ae1fb cherry-picked. HIGH a1168a6d round 7 APPROVE: 4 files 5+/5-, probes 8 refused, no over-match, fc22_install+intake+budget 145 pass 0 fail; red 56/1 with source reverted.
|
|
2599
|
+
|
|
2600
|
+
## 2026-10-19T03:20Z (CoS) v11.17.75
|
|
2601
|
+
- 11.17.75: FC-ZERO-ON-BASE. a849c264 commits 9a4267335..58bb86a73 cherry-picked as 2a52da847..13b0b64c6 plus unused-import drop. HIGH a6dc6f16: BLOCK x4 (workspace link, nested links, venv spellings, spelled-target exemption), APPROVE round 5: attack set 11/0, verify_prered+seal+verify+budget 209/0. On main after cherry-pick: same 4 suites 209 pass 0 fail, tsc no engine10/base_guard errors.
|
|
2602
|
+
|
|
2603
|
+
## 2026-10-19T05:27Z (CoS) v11.17.76
|
|
2604
|
+
- 11.17.76: FC-FULLSUITE-ANSI-IDS. Diagnosed on FireLater#20 run e10-20261019T045437Z-7939 (base 156 fails, head 150, 0 new; failIds raw 0 vs stripped 296/307). Engineer b9767d997 red-then-green 5 tests; HIGH review APPROVE (190/0, mutation removing stripAnsi turns 2 tests red). Main after cherry-pick 9944bc030: 83/0 on 4 touched suites.
|