loki-mode 11.17.67 → 11.17.70
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 +17 -0
- package/docs/v10/PROGRESS.md +9 -0
- package/loki-ts/dist/loki.js +1126 -1125
- package/mcp/__init__.py +1 -1
- package/package.json +2 -2
- package/packages/control-plane/dist/server.js +391 -339
- package/plugins/loki-mode/.claude-plugin/plugin.json +1 -1
- package/web-app/dist/assets/{AdminPage-Qa4gBgov.js → AdminPage-C8zLzG9P.js} +1 -1
- package/web-app/dist/assets/{Avatar-efTNmkmO.js → Avatar-BxkDd5Ky.js} +1 -1
- package/web-app/dist/assets/{Badge-CK4rc7EB.js → Badge-BE9L7_X6.js} +1 -1
- package/web-app/dist/assets/{Button-EJaTtEtn.js → Button-BMthYbbY.js} +1 -1
- package/web-app/dist/assets/{CockpitPage-BQTfAMqI.js → CockpitPage-Ch9RXUR9.js} +1 -1
- package/web-app/dist/assets/{ComparePage-BVrkV0Ng.js → ComparePage-DpLN_1NE.js} +1 -1
- package/web-app/dist/assets/{ErrorBoundary-BNuHgr9r.js → ErrorBoundary-DIR1nyku.js} +1 -1
- package/web-app/dist/assets/{EvidenceReceiptPanel--Wa-QyXy.js → EvidenceReceiptPanel-BAxk0hmb.js} +1 -1
- package/web-app/dist/assets/{GitHubIssuesPanel-D-rAxU57.js → GitHubIssuesPanel-D1hOaali.js} +1 -1
- package/web-app/dist/assets/{GitHubPRsPanel-D-EkwtNX.js → GitHubPRsPanel-Dyr0TT9N.js} +1 -1
- package/web-app/dist/assets/{HomePage-DOqpDt3n.js → HomePage-RnUPYApY.js} +2 -2
- package/web-app/dist/assets/{LoginPage-BdIpRA07.js → LoginPage-CZLGuthx.js} +1 -1
- package/web-app/dist/assets/{MagicPage-JmGuSXOw.js → MagicPage-CATb1U3u.js} +1 -1
- package/web-app/dist/assets/{MetricsPage-rZmEbfYy.js → MetricsPage-DFQgVHqB.js} +1 -1
- package/web-app/dist/assets/{NotFoundPage-0f68R93z.js → NotFoundPage-CIVqFbWC.js} +1 -1
- package/web-app/dist/assets/{ProjectPage-Bp-ESNWK.js → ProjectPage-DeCNtwLv.js} +3 -3
- package/web-app/dist/assets/{ProjectsPage-BsBCWYpr.js → ProjectsPage-T2kqtUgd.js} +1 -1
- package/web-app/dist/assets/{SettingsPage-CNX97dyG.js → SettingsPage-DXfQYlMB.js} +1 -1
- package/web-app/dist/assets/{ShowcasePage-B6USf2fE.js → ShowcasePage-Cx8oZ4Vj.js} +1 -1
- package/web-app/dist/assets/{SystemSettingsPage-JOg76RLX.js → SystemSettingsPage-1NWy3ZM2.js} +1 -1
- package/web-app/dist/assets/{TeamsPage-C_MbEYKQ.js → TeamsPage-B5BCWS_Y.js} +1 -1
- package/web-app/dist/assets/{TemplatesPage-D6GG3YaD.js → TemplatesPage-Av1q2HPZ.js} +1 -1
- package/web-app/dist/assets/{TerminalOutput-xPHdR6Pn.js → TerminalOutput-DVf_AW1W.js} +1 -1
- package/web-app/dist/assets/{activity-BsfOdOmx.js → activity-CZD34I9W.js} +1 -1
- package/web-app/dist/assets/{bell-Bv2c5maD.js → bell-C_Lu49qH.js} +1 -1
- package/web-app/dist/assets/{bot-CwISrbFp.js → bot-BrgsltFj.js} +1 -1
- package/web-app/dist/assets/{check-4UMCmMrx.js → check-CgShmrwf.js} +1 -1
- package/web-app/dist/assets/{chevron-left-DpKdpXdw.js → chevron-left-Da-3x397.js} +1 -1
- package/web-app/dist/assets/{circle-alert-B10hQv6x.js → circle-alert-SMHKSLOW.js} +1 -1
- package/web-app/dist/assets/{clock-_fgSSzc8.js → clock-C3bdH6et.js} +1 -1
- package/web-app/dist/assets/{cloud-DcqwLZCt.js → cloud-DtAGHOLw.js} +1 -1
- package/web-app/dist/assets/{code-xml-DWSzxARy.js → code-xml-B5fCkATo.js} +1 -1
- package/web-app/dist/assets/{database-BZNt8CdB.js → database-HmsM5sBU.js} +1 -1
- package/web-app/dist/assets/{dollar-sign-T2Q2FX-M.js → dollar-sign-DzFwhOyy.js} +1 -1
- package/web-app/dist/assets/{file-code-corner-CNVXYv89.js → file-code-corner-CmCbprFE.js} +1 -1
- package/web-app/dist/assets/{file-plus-J498H8Gi.js → file-plus-BM5YyLdN.js} +1 -1
- package/web-app/dist/assets/{globe-yPUkr5E_.js → globe-h2t5L5Mf.js} +1 -1
- package/web-app/dist/assets/{hammer-CiEKjMkP.js → hammer-DUbUMRvA.js} +1 -1
- package/web-app/dist/assets/{index-B9O_HR7I.js → index-BX6GplCp.js} +3 -3
- package/web-app/dist/assets/{layers-C5je2Gm3.js → layers-D308eL3g.js} +1 -1
- package/web-app/dist/assets/{loader-circle-i2izIIWo.js → loader-circle-CfYZScj9.js} +1 -1
- package/web-app/dist/assets/{lock-B-jl4ziA.js → lock-CdTUNuJe.js} +1 -1
- package/web-app/dist/assets/{package-D5x3FL7c.js → package-Ck4x5HwQ.js} +1 -1
- package/web-app/dist/assets/{plus-BzSslmtd.js → plus-FR3Um3e8.js} +1 -1
- package/web-app/dist/assets/{refresh-cw-DfnUhgek.js → refresh-cw-D0Ff6M9-.js} +1 -1
- package/web-app/dist/assets/{rotate-ccw-iuRaooxt.js → rotate-ccw-Bkz7v9_y.js} +1 -1
- package/web-app/dist/assets/{scroll-text-C7vGPzBx.js → scroll-text-VKrN3JDY.js} +1 -1
- package/web-app/dist/assets/{server-CQqjDruY.js → server-6-yehhyF.js} +1 -1
- package/web-app/dist/assets/{shield-alert-DhvInzrc.js → shield-alert-ETx0RQi5.js} +1 -1
- package/web-app/dist/assets/{thumbs-up-BJkdEnFB.js → thumbs-up-BHRQiq26.js} +1 -1
- package/web-app/dist/assets/{trash-2-DRXkf-Xt.js → trash-2-DzFtZxGV.js} +1 -1
- package/web-app/dist/assets/{trending-down-LoBkUtqd.js → trending-down-BOgz9AUQ.js} +1 -1
- package/web-app/dist/assets/{trending-up-BZrKN4XD.js → trending-up-BeyFblCb.js} +1 -1
- package/web-app/dist/assets/{upload-ChWk0ZsA.js → upload-CteqcfAf.js} +1 -1
- package/web-app/dist/assets/{usePolling-Ttl__jEW.js → usePolling-Cgx51BPt.js} +1 -1
- package/web-app/dist/assets/{user-CuR9mmaM.js → user-CDDo_Y7o.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.70
|
|
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.70 | [Autonomi](https://www.autonomi.dev/) flagship product | core skill**
|
package/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
11.17.
|
|
1
|
+
11.17.70
|
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.70. 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.70
|
|
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
|
|
|
@@ -291,6 +291,7 @@ L0 review rule (ENGINE-LAWS.md L0): a fix that adds an `if` or a regex about the
|
|
|
291
291
|
- Siblings: every harness-authored file that later runs under the user's tooling (Wall tests, presealed Wall in modernize, generated fixtures); every place a fix round can target a file the model is forbidden to edit.
|
|
292
292
|
- Mechanism: the Wall reads the package's module system and test conventions from the Project Model (type, module, test runner, import style) and writes to match; a lint or type error located inside a Wall file is harness-owned: the Wall file is regenerated once or discarded with a NOT PROVEN note, and no fix round is ever spent on it.
|
|
293
293
|
- Fixture: loki-ts/tests/engine10/fc23_wall_conventions.test.ts (a CommonJS package: the Wall brief carries the convention and an import.meta Wall file is discarded with a NOT PROVEN note; a Wall-only tsc error yields not_run, owner harness, zero grouped failures; control: a user-code type error still fails and gets a fix round). Readers: loki-ts/src/project_model/conventions.ts, loki-ts/src/util/wall_owned.ts.
|
|
294
|
+
- Update (FireLater#20 run e10-20261019T020704Z-103b, v11.17.67): the CommonJS brief told the Wall to use require(); the package's eslint (@typescript-eslint/no-require-imports, `eslint src` includes the Wall file) rejected it, so lint:eslint:backend was not_run (harness-owned) on every verify and the seal carried NOT PROVEN. Lint over a Wall file under src/ is correct (it ships in the user's tree); the brief must not instruct a construct the package lint forbids. The CommonJS brief now says to write import statements in TypeScript and keep require() for plain .js/.cjs. Fixture: fc23_wall_conventions.test.ts "CommonJS brief does not instruct require() in TypeScript". The run's STALLED outcome was NOT this check: the fix rounds chased `full suite: frontend` (156 failures identical on base), owned by FC-BASELINE-PER-PACKAGE (v11.17.68).
|
|
294
295
|
|
|
295
296
|
## FC-24 Agent-written code in the runner's process can forge a pass (summary and exit code)
|
|
296
297
|
- User saw: nothing yet (found in the FC-16b round 2 review, 2026-10-04). Reproduced at f28b15d78 with pytest on python 3.14.6: a conftest.py `pytest_sessionfinish` hook writes "===== 5 passed in 0.01s =====" and calls `os._exit(0)`; the only test is `assert False`; classifyCheck returns {"result":"pass","n":5}. The Go form (init or TestMain prints RUN and PASS for a failing test, then os.Exit(0)) defeated every name check in FC-16b.
|
|
@@ -1177,3 +1178,19 @@ L0 review rule (ENGINE-LAWS.md L0): a fix that adds an `if` or a regex about the
|
|
|
1177
1178
|
- Siblings: both lazy-fetch fixtures in the file (run_lazy_case and the filter-case repo); any test asserting a repo-local ssh, fsmonitor or filter command runs.
|
|
1178
1179
|
- Mechanism: both fixtures unset GIT_SSH, GIT_SSH_COMMAND, GIT_NO_LAZY_FETCH, GIT_CONFIG_COUNT, GIT_CONFIG_PARAMETERS, GIT_DIR, GIT_WORK_TREE and set GIT_CONFIG_NOSYSTEM=1 GIT_CONFIG_GLOBAL=/dev/null, and run_lazy_case sets f.txt mtime to 2030 (as run_eq_case already does) so status always re-hashes. The control runs first; a dead control is a FAIL that marks the real leg NOT PROVEN, never a skip or pass. The real assertion is unchanged.
|
|
1179
1180
|
- Fixture: the same file passes 21/0 on 40 consecutive clean runs (was 19/1 once in 20) and with GIT_SSH_COMMAND=false GIT_NO_LAZY_FETCH=1 set.
|
|
1181
|
+
|
|
1182
|
+
## FC-BASELINE-PER-PACKAGE A full suite already red on base was blocked as a regression because the baseline ran a different command (BASELINE-PER-PACKAGE)
|
|
1183
|
+
- User-visible vs raw: user-visible. `loki start asklokesh/FireLater#20` (run e10-20261018T205157Z-678e) ended FAILED with "full suite: frontend failed" after $2.60: verify ran one full suite per Project Model package, `(cd frontend && npm test)`, while the intake baseline had run only the repo's first test command at the root, so attributeFullSuite found no baseline for that command and excused nothing; vitest's per-test cross line also carried its duration ("5ms"), so even a matching command would give different ids on base and head.
|
|
1184
|
+
- Law broken: a failure the change did not cause is never charged to the change; base and head are measured with the same command and the same id parser.
|
|
1185
|
+
- Siblings: the legacy per-runner full suite (FULL_SUITE_CMD, `npm test --silent` vs the profile's `npm test`), the multi-root package suites (runPackageSuites), every runner whose failure line carries a timing suffix (failIds), and the REPOMEM reuse path (a new HEAD drops the per-command entries, so they are re-recorded).
|
|
1186
|
+
- Mechanism: package_suite.ts fullSuiteSpecs is the one list of full-suite commands; verify runs it and intake's baselineSuites records a baseline per command in its own cwd (shared budget, a suite past it is recorded not run); attributeFullSuite matches each failing check to its own command's baseline and stays fail-closed (no baseline for a command, an unattributable one, or no known ids: nothing excused); failIds strips a trailing duration ("5ms", "1.2s") from FAIL and cross lines.
|
|
1187
|
+
- Fixture: loki-ts/tests/runner/harness_intelligence.test.ts "baselineSuites records one entry per full-suite command" and "attributeFullSuite matches each package check to its own suite baseline"; loki-ts/tests/engine10/verify_prered.test.ts FC-BASELINE-PER-PACKAGE vitest duration case.
|
|
1188
|
+
|
|
1189
|
+
## FC-DEPS-NOT-INSTALLED A fresh clone ran its tests with no dependencies installed, and the runner's "missing packages" error read as the code's failure (DEPS-NOT-INSTALLED)
|
|
1190
|
+
- User-visible vs raw: raw. In the same FireLater#20 run every package declared an install command (`npm ci`, citing its package-lock.json) but nothing was installed, so the Wall base run and the baseline ran against an empty dependency tree and npx printed "npm error npx canceled due to missing packages and no YES option"; that line matched no load pattern, so it was a test failure owned by the code and spent fix rounds.
|
|
1191
|
+
- Law broken: the harness prepares the environment the repo declares before it measures anything; an environment failure is the harness's, never a fix round.
|
|
1192
|
+
- Siblings: the FC-22b install library (prepareDeps) existed but was never wired; the runner load classifier (npm and npx missing packages, POSIX sh "N: tool: not found" next to the bash "command not found" already covered); every ecosystem whose install command the Project Model cites (decided by git, not by a list of dependency directory names).
|
|
1193
|
+
- Mechanism: install.ts absentDepRoots names a model package whose install command cites an existing manifest or lockfile in its root while git shows no untracked or ignored directory there (Loki's own .loki/ excluded); intakeDeps runs prepareDeps for those roots once per run, after the profile's first main baseline (measured on the bare clone) but before the Wall base run; after any successful install the main baseline and every per-command suite baseline are re-run, so none is left measured without dependencies; whatever the install created untracked (node_modules without a gitignore, lockfiles, .venv) is recorded in intake as install_created (a content hash per file, created directories) and never written to git config or exclude files, so an untouched install artifact stays out of verify changedFiles and the commit while an agent-edited lockfile still counts as a change; it emits deps.install per package, and a failed install becomes deps_not_proven, which verify carries into not_proven while the run goes on; the intake stage limit grows by the install and suite-baseline caps; runner_errors.ts LOAD_PATTERNS classify both missing-package forms as a harness-owned load error, anchored at the start of a line so test output quoting them stays a test failure.
|
|
1194
|
+
- Residual risk: source shipped inside an install-created directory (for example a new build/ or vendor/) is not committed, and a symlink to a directory is not recorded.
|
|
1195
|
+
- 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.
|
|
1196
|
+
- 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.
|
package/docs/v10/PROGRESS.md
CHANGED
|
@@ -2575,3 +2575,12 @@ v11.17.21 published (Release success on 462fbc40a; npm latest 11.17.21, next 11.
|
|
|
2575
2575
|
|
|
2576
2576
|
## 2026-10-19T00:10Z (CoS) v11.17.67
|
|
2577
2577
|
- FC-LAZY-CONTROL-ENV: Tests 39174561642 shard 6 red on 8cc81a1b8. Causes reproduced: env GIT_SSH_COMMAND=false or GIT_NO_LAZY_FETCH=1 fails the control; clean env failed 1/20 (racy index). Fix 4735b5c14: env isolation + f.txt mtime 2030 + control-first fail. 40/40 clean runs 21/0; hostile env 21/0. TL APPROVE with mutation (drop GIT_NO_LAZY_FETCH in run.sh:10826 -> real leg FAIL 20/1, restored 21/0); select-tests 119/0.
|
|
2578
|
+
|
|
2579
|
+
## 2026-10-19T00:19Z (CoS) v11.17.68
|
|
2580
|
+
- FireLater#20 (FC-BASELINE-PER-PACKAGE, FC-DEPS-NOT-INSTALLED): 4 HIGH rounds. R1 BLOCK c3ea3ec1e (B1 untyped not-found keys, B2 install leak, B3 FAIL-line duration strip). R2 BLOCK f1db1bb88 (info/exclude dropped agent lockfile, persisted, shared across worktrees). R3 BLOCK 37bff6049 (load_owner changedSince unfiltered: Cannot find package zod -> code failure). R4 APPROVE b8418f695: real runCheck repro fail -> not_run/harness; positive control stays fail; 650 pass 0 fail across 19 files; tsc clean outside control-plane. Rebased onto 0d153a7e9 as 52bb0fb78, loki-ts src/tests diff vs reviewed = empty. drift 4/0, sigpipe rc 0, select-tests 119/0.
|
|
2581
|
+
|
|
2582
|
+
## 2026-10-19T02:38Z (CoS) v11.17.69
|
|
2583
|
+
- FC-23 Wall CJS brief (FireLater#20 rerun on 11.17.67: Wall failed lint:eslint:backend no-require-imports). Engineer 2cfe35140, TL APPROVE: fc23_wall_conventions 10/0, red with parent conventions.ts 9/1. Cherry-picked as edef17cd5.
|
|
2584
|
+
|
|
2585
|
+
## 2026-10-19T02:44Z (CoS) v11.17.70
|
|
2586
|
+
- 11.17.70: CI fix 82c3edbc (intake.test.ts hermetic; slow-PATH red 32/22, green 54/0; CS reviewed test-only diff) + dup-note 7a04c3839 (TL APPROVE 55/0, red 54/1). Combined on main: intake+budget 88 pass 0 fail.
|