loki-mode 11.63.2 → 11.63.4
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 +34 -0
- package/loki-ts/dist/loki.js +1217 -1217
- package/mcp/__init__.py +1 -1
- package/package.json +2 -2
- package/packages/control-plane/dist/server.js +33 -14
- package/plugins/loki-mode/.claude-plugin/plugin.json +1 -1
- package/web-app/dist/assets/{AdminPage-BMa6TWZp.js → AdminPage-NCWa4OEr.js} +1 -1
- package/web-app/dist/assets/{Avatar-DO3DH9U5.js → Avatar-Ds7ck0rm.js} +1 -1
- package/web-app/dist/assets/{Badge-CtjjUFgO.js → Badge-f1eo--LI.js} +1 -1
- package/web-app/dist/assets/{Button-DRNL_AgW.js → Button-D7OplnzG.js} +1 -1
- package/web-app/dist/assets/{CockpitPage-CCzgfC3N.js → CockpitPage-hR9V85Nf.js} +1 -1
- package/web-app/dist/assets/{ComparePage-DrHoHzA8.js → ComparePage-CFaarQGr.js} +1 -1
- package/web-app/dist/assets/{ErrorBoundary-BwOg8xJE.js → ErrorBoundary-Co61inVd.js} +1 -1
- package/web-app/dist/assets/{EvidenceReceiptPanel-C6HaK3fv.js → EvidenceReceiptPanel-mEC3eHmy.js} +1 -1
- package/web-app/dist/assets/{GitHubIssuesPanel-BFZJiBsE.js → GitHubIssuesPanel-BXo8ZQnL.js} +1 -1
- package/web-app/dist/assets/{GitHubPRsPanel-C50a8x7m.js → GitHubPRsPanel-BtNdFNU8.js} +1 -1
- package/web-app/dist/assets/{HomePage-Bd1em6t3.js → HomePage-DBcZ2YXK.js} +2 -2
- package/web-app/dist/assets/{LoginPage-CewGPLG0.js → LoginPage-Btd_h4d-.js} +1 -1
- package/web-app/dist/assets/{MagicPage-C-QtEkGy.js → MagicPage-B772E2dL.js} +1 -1
- package/web-app/dist/assets/{MetricsPage-BaiOWfeH.js → MetricsPage-jL-gZr95.js} +1 -1
- package/web-app/dist/assets/{NotFoundPage-D_MJNXY4.js → NotFoundPage-rN1rNHdP.js} +1 -1
- package/web-app/dist/assets/{ProjectPage-pbGjTu5N.js → ProjectPage-Dco8Hqay.js} +3 -3
- package/web-app/dist/assets/{ProjectsPage-Cd0nNHcR.js → ProjectsPage-DQPDWq7x.js} +1 -1
- package/web-app/dist/assets/{SettingsPage-Cj79H8uJ.js → SettingsPage-BmbolmtC.js} +1 -1
- package/web-app/dist/assets/{ShowcasePage-Dd19BtSr.js → ShowcasePage-BOTS_F9E.js} +1 -1
- package/web-app/dist/assets/{SystemSettingsPage-k-2yItbr.js → SystemSettingsPage-CLeE9alP.js} +1 -1
- package/web-app/dist/assets/{TeamsPage-nDtM3_tz.js → TeamsPage-DyVYQyzM.js} +1 -1
- package/web-app/dist/assets/{TemplatesPage-C9ho6ThF.js → TemplatesPage-CjeLDfXd.js} +1 -1
- package/web-app/dist/assets/{TerminalOutput-CHhzqF8l.js → TerminalOutput-d-R0F84e.js} +1 -1
- package/web-app/dist/assets/{activity-zBYgbj_t.js → activity-CbRsQu0p.js} +1 -1
- package/web-app/dist/assets/{bell-B8tFbV3u.js → bell-D5b0SzP9.js} +1 -1
- package/web-app/dist/assets/{bot-Br4tgKXH.js → bot-Db6ruVA1.js} +1 -1
- package/web-app/dist/assets/{check-DiCznuN4.js → check-BPiLwu4x.js} +1 -1
- package/web-app/dist/assets/{chevron-left-BQPIwBif.js → chevron-left-Dos4srIS.js} +1 -1
- package/web-app/dist/assets/{circle-alert-Dh7e5DtS.js → circle-alert-BSgwAznI.js} +1 -1
- package/web-app/dist/assets/{clock-D77p4Orw.js → clock-BnMWdooZ.js} +1 -1
- package/web-app/dist/assets/{cloud-2Agyk8Pc.js → cloud-B21wgJ4Y.js} +1 -1
- package/web-app/dist/assets/{code-xml-CaW2nMpL.js → code-xml-mow60fSY.js} +1 -1
- package/web-app/dist/assets/{database-B8faaxGl.js → database-Pf-HBZjL.js} +1 -1
- package/web-app/dist/assets/{dollar-sign-BGxO12Xv.js → dollar-sign-BO7hqbu-.js} +1 -1
- package/web-app/dist/assets/{file-code-corner-BVBoulCK.js → file-code-corner-CA6rNjyg.js} +1 -1
- package/web-app/dist/assets/{file-plus-CDKQeAm7.js → file-plus-CC2ERDHV.js} +1 -1
- package/web-app/dist/assets/{globe-Cl8qk-nm.js → globe-BB4ShqGf.js} +1 -1
- package/web-app/dist/assets/{hammer-BOo1csUi.js → hammer-C-qOLQPX.js} +1 -1
- package/web-app/dist/assets/{index-Bfv0biBw.js → index-ulkpjDVS.js} +3 -3
- package/web-app/dist/assets/{layers-BghFDcTD.js → layers-CazU2ZiD.js} +1 -1
- package/web-app/dist/assets/{loader-circle-DyAeYG6R.js → loader-circle-CWw__NwM.js} +1 -1
- package/web-app/dist/assets/{lock-C7bqAAYM.js → lock-BTsIeT-V.js} +1 -1
- package/web-app/dist/assets/{package-vidrb1q8.js → package-g3MsFvPA.js} +1 -1
- package/web-app/dist/assets/{plus-Cjj1YONN.js → plus-Bck3FIig.js} +1 -1
- package/web-app/dist/assets/{refresh-cw-CMwiY85m.js → refresh-cw-Bgl3rQW6.js} +1 -1
- package/web-app/dist/assets/{rotate-ccw-MPoGhAWY.js → rotate-ccw-DZ3sVtNY.js} +1 -1
- package/web-app/dist/assets/{scroll-text-CMfhHW7F.js → scroll-text-Cz6xEEGa.js} +1 -1
- package/web-app/dist/assets/{server-CDovLro6.js → server-jSR5T8p3.js} +1 -1
- package/web-app/dist/assets/{shield-alert-gJ0YTzsd.js → shield-alert-DhMcwhjI.js} +1 -1
- package/web-app/dist/assets/{thumbs-up-BOiqZkGe.js → thumbs-up-M6j3NuSC.js} +1 -1
- package/web-app/dist/assets/{trash-2-BYVzyETI.js → trash-2-DAwffHYL.js} +1 -1
- package/web-app/dist/assets/{trending-down-D-egAVmq.js → trending-down-Czc7cvTA.js} +1 -1
- package/web-app/dist/assets/{trending-up-CKTwFepe.js → trending-up-ByZbgX2z.js} +1 -1
- package/web-app/dist/assets/{upload-CsFnSHCn.js → upload-BkC3t3BQ.js} +1 -1
- package/web-app/dist/assets/{usePolling-CpAT-x8N.js → usePolling-CzrykHR2.js} +1 -1
- package/web-app/dist/assets/{user-Bh1eSNbN.js → user-Chxxzg7i.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: 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.
|
|
6
|
+
# Loki Mode v11.63.4
|
|
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.
|
|
479
|
+
**v11.63.4 | [Autonomi](https://www.autonomi.dev/) flagship product | core skill**
|
package/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
11.63.
|
|
1
|
+
11.63.4
|
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.63.
|
|
3
|
+
Generated from `loki-ts/src/cli/registry.ts` by `scripts/generate-stale-zero.sh` for v11.63.4. 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.63.
|
|
5
|
+
**Version:** v11.63.4
|
|
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
|
|
|
@@ -1718,3 +1718,37 @@ L0 review rule (ENGINE-LAWS.md L0): a fix that adds an `if` or a regex about the
|
|
|
1718
1718
|
- Siblings swept: loki-ts/src/engine10 neither writes nor reads the pointer (`git grep -n last-proof-id -- loki-ts/src/engine10` returns nothing). The readers (run.sh, loki, run-summary.sh, trigger-server.py) are route-agnostic and unchanged.
|
|
1719
1719
|
- Mechanism: clearStaleProofPointer in runner/proof.ts, called once from runAutonomous right after makeContext.
|
|
1720
1720
|
- Fixture: loki-ts/tests/runner/autonomous.test.ts "#211 Bun-route sibling" seeds run-A, stops the run before proof with LOKI_PROOF=0, expects the pointer absent. Mutant: remove the call in runAutonomous; the test goes red.
|
|
1721
|
+
|
|
1722
|
+
## FC-WALL-FILE-NOT-DISCOVERED-BY-RUNNER Verify runs the Wall only if the stack's test discovery also finds it, so a sealed loki_wall_*.py is never run and the receipt says "wall result not recorded by verify"
|
|
1723
|
+
- User-visible vs raw: user-visible. A Python run with a Wall file (`loki_wall_x.py`) never executes the Wall in verify; wall_passed stays undefined and Seal lists "wall result not recorded by verify" (seal.ts:250) as NOT PROVEN even though the Wall was authored, sealed and green on the base run.
|
|
1724
|
+
- Law: the Wall is the proof the run is judged by, so verify runs exactly the files the Wall sealed (outputs wall.files), never whichever of them the runner's discovery filter happens to list.
|
|
1725
|
+
- Cause (measured): wall.ts names every Wall file with the `loki_wall_` prefix and picks its runner with `guessRunner`; verify.ts built `wallTests` as `map.tests.filter(t => wallPaths.has(t.path))`, and `map.tests` comes from detect(), which pytest discovery limits to `test_*.py` and `*_test.py`. `loki_wall_x.py` matches neither, so the filter dropped it. The JS-only harness fallback below it covered one stack.
|
|
1726
|
+
- Siblings swept: Go (`loki_wall_x_test.go` ends in `_test.go`, so detect lists it and the old filter worked; the new path keeps it, with a regression fixture), JS (kept: the harness fallback is now the same code path, runner chosen by guessRunner), Rust (NOT closed here: guessRunner has no `.rs` mapping and `cargo test` takes no file argument, so a sealed Rust Wall file has no runner in wall.ts either; open as its own row against wall.ts).
|
|
1727
|
+
- Mechanism: `guessRunner` moved from wall.ts to testmap.ts (beside harnessRunners) and is exported; verify builds wallTests from the sealed paths with it, reusing the discovered ref when detect() already lists the file.
|
|
1728
|
+
- Fixture: loki-ts/tests/engine10/verify.test.ts "FC-WALL-FILE-NOT-DISCOVERED-BY-RUNNER" holding loki_wall_x.py beside test_x.py (red on origin/main: the Wall check is absent), plus a Go loki_wall_x_test.go case.
|
|
1729
|
+
|
|
1730
|
+
## FC-WALL-RUST-FILE-HAS-NO-RUNNER A Rust Wall file is sealed and shipped but nothing ever runs it: guessRunner has no .rs mapping and the cargo command takes no file, so the Wall proves nothing on a Rust repo
|
|
1731
|
+
- User-visible vs raw: user-visible. On a Rust repo the Wall author writes `loki_wall_x.rs`; wall.ts seals it (wall.sealed lists it) but `guessRunner` returns null, so the base run skips it and verify (after FC-WALL-FILE-NOT-DISCOVERED-BY-RUNNER) builds no check for it. The receipt carries a Wall that was never executed and says nothing about it.
|
|
1732
|
+
- Law: a sealed Wall file is either run by a runner that names it, or reported NOT PROVEN with the reason; it is never silently dropped and no check is invented for it.
|
|
1733
|
+
- Cause (measured): `guessRunner` in testmap.ts mapped .py, .go and JS only; `runnerCmd` in check_result.ts ran `cargo test` for every cargo ref, which selects no file. Cargo selects a single integration-test file only as `cargo test --test <stem>`, and only for a file directly under a `tests/` directory.
|
|
1734
|
+
- Siblings swept: Go and JS already map (FC-WALL-FILE-NOT-DISCOVERED-BY-RUNNER). Other extensions (.java, .rb, .c) still have no mapping and are not covered here; they are named in the open list below.
|
|
1735
|
+
- Mechanism: `guessRunner(path, runners)` takes the path and returns "cargo" for `<dir>/tests/<name>.rs` when the repo has the cargo runner; `runnerCmd` runs `cargo test --test <name>` for such a file; a sealed .rs path with no per-file runner is named by the generic FC-WALL-FILE-WITHOUT-RUNNER-SILENTLY-DROPPED line in not_proven ("Wall test not executed: <path>: no runner of this repo runs this file"). A cargo per-file red stays not_run (the coarse rule), never a false green.
|
|
1736
|
+
- Open siblings: Wall files with extensions that guessRunner does not map (anything other than .py, .go, .rs, JS/TS) are still sealed without a runner or a not_proven note.
|
|
1737
|
+
- Fixture: loki-ts/tests/engine10/verify.test.ts "FC-WALL-RUST-FILE-HAS-NO-RUNNER" (tests/loki_wall_x.rs runs `cargo test --test loki_wall_x`; src/loki_wall_x.rs is NOT PROVEN with the reason and invents no check) and loki-ts/tests/engine10/testmap.test.ts guessRunner cases.
|
|
1738
|
+
|
|
1739
|
+
## FC-WALL-GO-FILE-RUNS-WHOLE-PACKAGE A sealed Go Wall file is run as `go test ./<dir>`, the whole package, so a sibling test in the same package decides the Wall result
|
|
1740
|
+
- User-visible vs raw: user-visible. A Go Wall file `loki_wall_x_test.go` shares its package directory with the repo's own tests. Verify ran `go test -json ./<dir>`, so a red or slow sibling test (written by the repo, not the Wall) turns the Wall check red or hides what the Wall file proves.
|
|
1741
|
+
- Law: a Wall check reports on the Wall file, not on its neighbours. Go exit 0 stays never a pass (FC-16b): this row narrows what runs, it does not change how a Go result is trusted.
|
|
1742
|
+
- Cause (measured): `runnerCmd` case "go" in check_result.ts ignored the file name and passed only `./${dirname(t.path)}`.
|
|
1743
|
+
- Siblings swept: cargo is already per-file (FC-WALL-RUST-FILE-HAS-NO-RUNNER); pytest, vitest, jest, bun and node already take the file path. Go is the last per-file gap.
|
|
1744
|
+
- Mechanism: `runnerCmd` reads the file's top-level Test, Fuzz and Example function names by name only, never by signature (TestMain excluded; a signature check dropped multi-line, unnamed, aliased or dot-imported `*testing.T` and non-ASCII names, turning a red Wall into not_run, rev-b B1) and runs `go test -json -run '^(TestA|TestB)$' ./<dir>`. A file with no such function keeps the package run (it can only end not_run). The classification is unchanged: exit 0 is not_run (GO_EXIT0_REASON), a failed run is fail only with real failure evidence.
|
|
1745
|
+
- Open (needs a ruling, not decided here): a Go Wall file can never reach pass under FC-16b, so `wall_passed` stays unset for a Go-only repo and the receipt keeps saying the Wall result is not recorded. A pass from "exit 0 plus an ok line" would reopen the forgery FC-16b closed (TestMain os.Exit(0), a test printing `ok pkg`).
|
|
1746
|
+
- Fixture: loki-ts/tests/engine10/verify.test.ts "FC-WALL-GO-FILE-RUNS-WHOLE-PACKAGE" (a red sibling test in the package does not make the Wall check fail; the argv carries -run with the file's test names) and a runnerCmd unit case.
|
|
1747
|
+
|
|
1748
|
+
## FC-TEST-ALIAS-FWD-REDUNDANT-SPAWN The alias-forwarding suite re-ran the same alias --json command for two assertions, so its CLI spawn floor was higher than its assertions need (#183)
|
|
1749
|
+
- User-visible vs raw: raw. No product behavior changes; the suite is load-sensitive and a spawn count that is higher than needed lengthens every loaded run.
|
|
1750
|
+
- Law: one command run feeds every assertion that reads the same stdout, unless the command has a side effect the second run depends on.
|
|
1751
|
+
- Cause (measured): in tests/cli/test-alias-forwarding.sh assert_row, the alias --json command ran once for the stderr-suppression check and again for the 4b stdout parity check. The suite did 168 CLI spawns on origin/main 5cae48655 (counted by a wrapper around bin/loki, same on LOKI_ROUTE=bun and LOKI_ROUTE=bash).
|
|
1752
|
+
- Siblings swept: the export row cannot share the run: `export markdown --json` treats --json as an output filename, so the first run creates it and the canonical comparison relies on the second alias run seeing it already exist (first-run output "Exported to --json", later "File already exists: --json"; found when sharing it turned the row red). It keeps its second spawn. The other assert_row spawns each read distinct output.
|
|
1753
|
+
- Mechanism: the --json run keeps its stdout in a per-unit file and the 4b check reads it; every spawn goes through a counting wrapper and the total prints before the results line.
|
|
1754
|
+
- Fixture: the printed "CLI spawns" line (168 before, 154 after) with 202 passed and 9 failed on both routes before and after (the 9 are the stale help-group reds, a separate row). Mutant: make the alias lookup return the canonical stdout; with a planted differing alias stdout, 14 rows fail without the mutant and 0 with it.
|