loki-mode 11.63.7 → 11.63.8

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 (68) hide show
  1. package/SKILL.md +2 -2
  2. package/VERSION +1 -1
  3. package/dashboard/__init__.py +1 -1
  4. package/docs/CLI-REFERENCE.md +1 -1
  5. package/docs/INSTALLATION.md +1 -1
  6. package/docs/v10/FAILURE-CLASSES.md +32 -0
  7. package/loki-ts/dist/loki.js +1100 -1100
  8. package/mcp/__init__.py +1 -1
  9. package/package.json +2 -2
  10. package/packages/control-plane/dist/server.js +70 -52
  11. package/plugins/loki-mode/.claude-plugin/plugin.json +1 -1
  12. package/web-app/dist/assets/{AdminPage-Cp2bWPgv.js → AdminPage-MRok4gpK.js} +1 -1
  13. package/web-app/dist/assets/{Avatar-BWkjgfpQ.js → Avatar-C5naIgXq.js} +1 -1
  14. package/web-app/dist/assets/{Badge-DplLKpsq.js → Badge-zigD7yw6.js} +1 -1
  15. package/web-app/dist/assets/{Button-Bi9cmTkv.js → Button-DcMIUy9q.js} +1 -1
  16. package/web-app/dist/assets/{CockpitPage-ZBt9jJqb.js → CockpitPage-D7Bunb6e.js} +1 -1
  17. package/web-app/dist/assets/{ComparePage-BtfjcKUw.js → ComparePage-r1MlVPTe.js} +1 -1
  18. package/web-app/dist/assets/{ErrorBoundary-D7gzKuQl.js → ErrorBoundary-Dk4uHaS4.js} +1 -1
  19. package/web-app/dist/assets/{EvidenceReceiptPanel-B0qgQSt7.js → EvidenceReceiptPanel-C9ab9NGb.js} +1 -1
  20. package/web-app/dist/assets/{GitHubIssuesPanel-D7DLUV5y.js → GitHubIssuesPanel-DXE21JW5.js} +1 -1
  21. package/web-app/dist/assets/{GitHubPRsPanel-B-tSxFMu.js → GitHubPRsPanel-CEEJDQaF.js} +1 -1
  22. package/web-app/dist/assets/{HomePage-9zMRoQ2-.js → HomePage-Cc1RJgQP.js} +2 -2
  23. package/web-app/dist/assets/{LoginPage-CHahatjI.js → LoginPage-BgK3Un7s.js} +1 -1
  24. package/web-app/dist/assets/{MagicPage-CWDBY117.js → MagicPage-DracOHYk.js} +1 -1
  25. package/web-app/dist/assets/{MetricsPage-i0sQqMu5.js → MetricsPage-dpzE7rHk.js} +1 -1
  26. package/web-app/dist/assets/{NotFoundPage-Cep2hjC4.js → NotFoundPage-CwR1prG_.js} +1 -1
  27. package/web-app/dist/assets/{ProjectPage-B9jVtdf_.js → ProjectPage-DDeC9Cfy.js} +3 -3
  28. package/web-app/dist/assets/{ProjectsPage-DT6qTa8F.js → ProjectsPage-o3OfxJRf.js} +1 -1
  29. package/web-app/dist/assets/{SettingsPage-DMVIxFyL.js → SettingsPage-PI85tG1v.js} +1 -1
  30. package/web-app/dist/assets/{ShowcasePage-CenA1vR9.js → ShowcasePage-iYe1cAHf.js} +1 -1
  31. package/web-app/dist/assets/{SystemSettingsPage-Qqy7C834.js → SystemSettingsPage-B-dy7aEZ.js} +1 -1
  32. package/web-app/dist/assets/{TeamsPage-Dbc7PMBa.js → TeamsPage-CKN0wlJv.js} +1 -1
  33. package/web-app/dist/assets/{TemplatesPage-BNpJysCP.js → TemplatesPage-2Kkm5kRO.js} +1 -1
  34. package/web-app/dist/assets/{TerminalOutput-DrhATQOU.js → TerminalOutput-CsrWjt5Z.js} +1 -1
  35. package/web-app/dist/assets/{activity-DO1Lb3p_.js → activity-DRUoEUMH.js} +1 -1
  36. package/web-app/dist/assets/{bell-6USNNqOU.js → bell-DVtpHIbp.js} +1 -1
  37. package/web-app/dist/assets/{bot-C3WPr7Jc.js → bot-DQR3Z51i.js} +1 -1
  38. package/web-app/dist/assets/{check-0PtXKfN0.js → check-Cuz-bgBo.js} +1 -1
  39. package/web-app/dist/assets/{chevron-left-xlhDqXSB.js → chevron-left-D6t1u2bZ.js} +1 -1
  40. package/web-app/dist/assets/{circle-alert-GKhWaSzf.js → circle-alert-BrbRSY0L.js} +1 -1
  41. package/web-app/dist/assets/{clock-ui1bNcXF.js → clock-Ch7TiuRG.js} +1 -1
  42. package/web-app/dist/assets/{cloud-CKrUG6Hi.js → cloud-D9FgjItJ.js} +1 -1
  43. package/web-app/dist/assets/{code-xml-E0yaCnLv.js → code-xml-CTOxq-IZ.js} +1 -1
  44. package/web-app/dist/assets/{database-CKoePHfR.js → database-BXiIVvsI.js} +1 -1
  45. package/web-app/dist/assets/{dollar-sign-BLLEGeDo.js → dollar-sign-DSOoLXMA.js} +1 -1
  46. package/web-app/dist/assets/{file-code-corner-DNkK9sHC.js → file-code-corner-BSZSLbUC.js} +1 -1
  47. package/web-app/dist/assets/{file-plus-BZRpulA3.js → file-plus-wDq2a4vY.js} +1 -1
  48. package/web-app/dist/assets/{globe-B8KkmQx6.js → globe-DJKmdNYO.js} +1 -1
  49. package/web-app/dist/assets/{hammer-Bm6aLg_e.js → hammer-DL5Cuz8k.js} +1 -1
  50. package/web-app/dist/assets/{index-BQ_6SUYj.js → index-D7h5Efxx.js} +3 -3
  51. package/web-app/dist/assets/{layers-BwI4LLZC.js → layers-BMAnvaPd.js} +1 -1
  52. package/web-app/dist/assets/{loader-circle-DNNb2uHm.js → loader-circle-21-GyiHr.js} +1 -1
  53. package/web-app/dist/assets/{lock-C_-piZan.js → lock-D1n5V1WB.js} +1 -1
  54. package/web-app/dist/assets/{package-CGJ-QLzA.js → package-BZQKnof2.js} +1 -1
  55. package/web-app/dist/assets/{plus-BI3waAt8.js → plus-DcZZjvq4.js} +1 -1
  56. package/web-app/dist/assets/{refresh-cw-Cyc0Be2K.js → refresh-cw-DhVQ14GV.js} +1 -1
  57. package/web-app/dist/assets/{rotate-ccw-BMF9rcHQ.js → rotate-ccw-B3FdQA22.js} +1 -1
  58. package/web-app/dist/assets/{scroll-text-DeoapOot.js → scroll-text-CeT_KqRE.js} +1 -1
  59. package/web-app/dist/assets/{server-DvyYi0cU.js → server-DqUuxOrt.js} +1 -1
  60. package/web-app/dist/assets/{shield-alert-Bon6ZnUv.js → shield-alert-BtatVxYq.js} +1 -1
  61. package/web-app/dist/assets/{thumbs-up-98YsSw4r.js → thumbs-up-D4fCUUuq.js} +1 -1
  62. package/web-app/dist/assets/{trash-2-1U-mCJzW.js → trash-2-BHNJqbo6.js} +1 -1
  63. package/web-app/dist/assets/{trending-down-BlHQF7ZA.js → trending-down-CPggV6Fp.js} +1 -1
  64. package/web-app/dist/assets/{trending-up-C3BNDS1Z.js → trending-up-CnR04ozf.js} +1 -1
  65. package/web-app/dist/assets/{upload-CGW0PxJo.js → upload-DGc43kol.js} +1 -1
  66. package/web-app/dist/assets/{usePolling-l8CCUq6q.js → usePolling-CJr1dy5R.js} +1 -1
  67. package/web-app/dist/assets/{user-CTHngdi9.js → user-45NLDfA3.js} +1 -1
  68. package/web-app/dist/index.html +1 -1
package/SKILL.md CHANGED
@@ -3,7 +3,7 @@ name: loki-mode
3
3
  description: Runs an autonomous software factory that knows what it is supposed to deliver and proves it did, with a signed receipt. Use when the user says Loki Mode or asks to build, fix or verify software autonomously.
4
4
  ---
5
5
 
6
- # Loki Mode v11.63.7
6
+ # Loki Mode v11.63.8
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
 
@@ -476,4 +476,4 @@ Implemented, planned and deprecated items, with the version each landed in: `ski
476
476
 
477
477
  ---
478
478
 
479
- **v11.63.7 | [Autonomi](https://www.autonomi.dev/) flagship product | core skill**
479
+ **v11.63.8 | [Autonomi](https://www.autonomi.dev/) flagship product | core skill**
package/VERSION CHANGED
@@ -1 +1 @@
1
- 11.63.7
1
+ 11.63.8
@@ -7,6 +7,6 @@ Modules:
7
7
  control: Session control helpers (status, atomic writes, origin check)
8
8
  """
9
9
 
10
- __version__ = "11.63.7"
10
+ __version__ = "11.63.8"
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.63.7. Do not edit by hand.
3
+ Generated from `loki-ts/src/cli/registry.ts` by `scripts/generate-stale-zero.sh` for v11.63.8. 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.63.7
5
+ **Version:** v11.63.8
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
 
@@ -1702,6 +1702,38 @@ L0 review rule (ENGINE-LAWS.md L0): a fix that adds an `if` or a regex about the
1702
1702
  - Mechanism: in the P9 AST scan, a literal `await import("...safe_git...")` is accepted only as the initializer of an object destructuring whose every element is a plain identifier property (no rest, no computed key, no string key, no nested pattern) and none of whose names is an opt-in helper. Any other dynamic or require form still flags. A destructured safeGit with allowToken is still caught by the raw allowToken grep outside the two fetch callers.
1703
1703
  - Fixture: tests/moat/p9-rule-of-two.sh positive controls for a rest destructure, a computed-key destructure, a renamed opt-in helper and a destructured safeGit carrying allowToken (each must be flagged), and a negative control for the real `{ reviewerGitEnv }` form (must not flag). Mutant: accept any destructure shape; the rest and computed controls must go red.
1704
1704
 
1705
+ ## FC-FULL-SUITE-IGNORES-PROJECT-INTERPRETER The deep-verify full pytest suite ran under bare `python`, not the project's own interpreter, so a repo with a working .venv and no `python` on PATH could never prove its suite
1706
+ - User-visible vs raw: user-visible. An uninterrupted run on a Python fixture with a working .venv and ruff ended PARTIAL because the full-suite check could not run (bare `python` missing or without pytest), while per-test runs under the same repo used the venv.
1707
+ - Law: every check that executes project code resolves its interpreter through one resolver (project venv first), and no stage hardcodes a bare interpreter name.
1708
+ - Cause (measured): `FULL_SUITE_CMD` in util/check_result.ts was a static table (`python -m pytest -q`); the per-test path used `resolveTool` but the full-suite path (engine10/stages/deep.ts, project_model/package_suite.ts) did not.
1709
+ - Siblings swept: deep.ts and package_suite.ts (both consumers moved), non-pytest runners (vitest, jest, bun, node, npm, go, cargo: no interpreter, stay static), per-test pytest (already resolveTool).
1710
+ - Mechanism: `fullSuiteCmd(runner, repoDir)` resolves pytest through `resolveTool(repoDir, "python", "python3", "python")`; both consumers call it.
1711
+ - Fixture: tests/engine10/deep.test.ts "pytest full suite runs under the project .venv python when no bare `python` is on PATH" (red on the static table, green after).
1712
+
1713
+ ## FC-SUITE-RUN-LINE-BREAKS-ON-SPACED-PATH The full-suite baseline run line joined an absolute project interpreter path into a bash -c string unquoted, so any repo under a path with a space never ran its base suite
1714
+ - User-visible vs raw: user-visible. For a Python repo under a spaced path (for example `~/My Projects/app`) the intake baseline got `bash: .../My: No such file or directory` (rc 127), so a failure already red on base could not be excused and the run ended FAILED or PARTIAL for a harness reason.
1715
+ - Law: a command assembled from argv for a shell is quoted word by word; a path the harness resolves is never trusted to be space-free.
1716
+ - Cause (measured): FC-FULL-SUITE-IGNORES-PROJECT-INTERPRETER made `fullSuiteCmd` return an absolute `.venv/bin/python`; `fullSuiteSpecs` (project_model/package_suite.ts) joined `[cmd, ...args]` with spaces into `SuiteSpec.run`, which `baselineSuites` runs through `bash -c`. Reproduced by rev-c: rc 127 with a space in the path, rc 0 and "1 passed" without.
1717
+ - Siblings swept: `deep.ts` runs the same argv with no shell (unaffected); `packageSuiteSpecs` uses the project model's own command string (already a shell line, unchanged); `SuiteSpec.cmd` stays the plain display join so recorded commands and the root-baseline dedup (`normCmd(run)`) are unchanged for space-free repos.
1718
+ - Mechanism: `shellQuote` moves from runner/providers.ts to util/shell.ts, with `shellWord` (quotes a word only when bash would split or expand it). `fullSuiteSpecs` builds `run` with `shellWord` per token.
1719
+ - Fixture: tests/engine10/deep.test.ts "FC-SUITE-RUN-LINE-BREAKS-ON-SPACED-PATH" (a repo under `My Projects/app` with a `.venv/bin/python` runs rc 0 via `bash -c spec.run`; a plain go line stays byte-identical). Mutant dropping the per-word quoting gives rc 127 and the test goes red.
1720
+
1721
+ ## FC-LINT-TOOL-NEVER-USED-BY-PROJECT verify demanded lint:ruff of a Python repo that neither declares ruff nor has it installed, so the check ended not_run and the run PARTIAL
1722
+ - User-visible vs raw: user-visible. The 05:44Z python fixture run (kvparse, bench workdir loki-bench-loki-jxegolv0) had no .venv, no ruff config and no ruff on PATH; verify recorded lint:ruff not_run (reason "ruff not found on PATH") and seal listed "not run: lint:ruff" as NOT PROVEN, so a correct change could not reach VERIFIED.
1723
+ - Law: a verifier demands only the checks the project itself uses; a tool the project never names and the machine does not have is not applicable, while a tool the project names and the machine lacks stays not_run.
1724
+ - Cause (measured): runLintChecks (engine10/stages/verify.ts) ran lint:ruff for every changed .py with resolveTool's last resort `ruff`, which fails to spawn when nothing resolves.
1725
+ - Siblings swept: lint:shellcheck (bash -n always runs; shellcheck is a general tool on the changed set, unchanged), lint:eslint (already gated on an ESLint config in the package), lint:tsc (already gated on tsconfig.json). ruff was the only named-tool check with no project gate.
1726
+ - Mechanism: lint:ruff runs when ruff resolves (project .venv, uv, or PATH) or the project declares it (projectDeclaresRuff: ruff.toml, .ruff.toml, or `ruff` in pyproject.toml, setup.cfg, tox.ini, .pre-commit-config.yaml, Pipfile or a requirements file). Otherwise no check is recorded.
1727
+ - Fixture: tests/engine10/verify.test.ts "FC-LINT-TOOL-NEVER-USED-BY-PROJECT" (no ruff, nothing declared: no check; declared but absent: not_run). Mutant (gate always true) turns the first test red.
1728
+
1729
+ ## FC-VISUAL-EVIDENCE-NA-READ-AS-NOT-PROVEN Seal listed "visual evidence skipped: no package.json" for a repo with no UI and no changed page file, so a CLI or library change was NOT PROVEN for evidence it never had to produce
1730
+ - User-visible vs raw: user-visible. The same python fixture run and the first-run gate `scripts/first-run-gate.sh --entry start-empty` (eng-mcpchain, #357 criterion 3) ended PARTIAL with this line among the NOT PROVEN items.
1731
+ - Law: an item is NOT PROVEN only when the run could have produced it and did not; a capture that has no subject is not applicable.
1732
+ - Cause (measured): sealEvidence (features/visual_evidence.ts) added every capture skip reason to notProven, including the two that mean there is nothing to boot ("no package.json", "no dev, preview or start script") when no changed file is a page file.
1733
+ - Siblings swept: the LOKI_VISUAL_GATE evidence_failed branch (same predicate now), "no changed page files" (existing, pinned by the no-web-pages test, left as is), a changed page file with no package.json (still NOT PROVEN and still a gate failure), and LOKI_VISUAL_EVIDENCE=1 (API transcript requested, still reported).
1734
+ - Mechanism: one predicate in sealEvidence, noUi = skip reason is one of the two no-boot reasons AND the API transcript was not requested AND no changed file isPageFile; it suppresses both the NOT PROVEN line and evidence_failed.
1735
+ - Fixture: tests/features/visual_evidence.test.ts "FC-VISUAL-EVIDENCE-NA-READ-AS-NOT-PROVEN" (changed .py: no line, no failure; changed page file with no package.json: line and failure).
1736
+
1705
1737
  ## FC-RUNS-ENV-LEAKS-ACROSS-PROJECTS `loki runs` applied the caller's LOKI_DIR to every registered project, so one run list was reported once per project (repo "a" and repo "b")
1706
1738
  - User-visible vs raw: user-visible. `loki runs --json` returned the same run twice under two repo labels.
1707
1739
  - Law broken: a row's repo label names the project whose runs directory it was read from; a per-process env knob that points at one directory cannot be applied to N projects.