loki-mode 11.17.13 → 11.17.16
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/loki +110 -4
- package/autonomy/mcp-launch.sh +157 -0
- package/dashboard/__init__.py +1 -1
- package/docs/CLI-REFERENCE.md +2 -1
- package/docs/INSTALLATION.md +1 -1
- package/docs/dev/release-checklist.md +5 -5
- package/docs/v10/BOARD.md +67 -45
- package/docs/v10/CLI-MODERN.md +1 -1
- package/docs/v10/DECISIONS.md +13 -1
- package/docs/v10/DEPS.md +2 -6
- package/docs/v10/FAILURE-CLASSES.md +21 -0
- package/docs/v10/OPERATING-MODEL.md +2 -3
- package/docs/v10/PROGRESS.md +3 -0
- package/loki-ts/dist/loki.js +1155 -1046
- package/mcp/__init__.py +1 -1
- package/package.json +2 -2
- package/packages/control-plane/dist/ask-tools-server.js +16 -2
- package/packages/control-plane/dist/server.js +2185 -1986
- package/plugins/loki-mode/.claude-plugin/plugin.json +1 -1
- package/skills/factory-operations.md +6 -7
- package/skills/release-cadence.md +12 -16
- package/web-app/dist/assets/{AdminPage-CwtSZac4.js → AdminPage-Nf1Q3SV5.js} +1 -1
- package/web-app/dist/assets/{Avatar-BfguNHDC.js → Avatar-CnVyVV_m.js} +1 -1
- package/web-app/dist/assets/{Badge-DQGEOIqb.js → Badge-CaBCk2uD.js} +1 -1
- package/web-app/dist/assets/{Button-CRb-wJga.js → Button-BRrCQWBX.js} +1 -1
- package/web-app/dist/assets/{CockpitPage-DnA9wewN.js → CockpitPage-Br6uoiqi.js} +1 -1
- package/web-app/dist/assets/{ComparePage-DX6F_G0l.js → ComparePage-Bre0q8cO.js} +1 -1
- package/web-app/dist/assets/{ErrorBoundary-VVIdgfkb.js → ErrorBoundary-D2NcPhuR.js} +1 -1
- package/web-app/dist/assets/{EvidenceReceiptPanel-FxknNXxU.js → EvidenceReceiptPanel-C3epF3H4.js} +1 -1
- package/web-app/dist/assets/{GitHubIssuesPanel-DqiraoJP.js → GitHubIssuesPanel-C6riGNjm.js} +1 -1
- package/web-app/dist/assets/{GitHubPRsPanel-BYkTsRfQ.js → GitHubPRsPanel-DnDaPqIB.js} +1 -1
- package/web-app/dist/assets/{HomePage-BjpWZdl4.js → HomePage-DgEwjQUp.js} +2 -2
- package/web-app/dist/assets/{LoginPage-DdBnFY4Y.js → LoginPage-duKQQvm4.js} +1 -1
- package/web-app/dist/assets/{MagicPage-ihQmO1wm.js → MagicPage-Cmxo4A4h.js} +1 -1
- package/web-app/dist/assets/{MetricsPage-Dq5YARm1.js → MetricsPage-D5-qIvza.js} +1 -1
- package/web-app/dist/assets/{NotFoundPage-CLzwsmxk.js → NotFoundPage-D9MW-hOZ.js} +1 -1
- package/web-app/dist/assets/{ProjectPage-Dm8X4ntm.js → ProjectPage-D7inWAiO.js} +3 -3
- package/web-app/dist/assets/{ProjectsPage-DI3PhBwa.js → ProjectsPage-BQE1wHOt.js} +1 -1
- package/web-app/dist/assets/{SettingsPage-D3bL3Ll-.js → SettingsPage-4WruO-H2.js} +1 -1
- package/web-app/dist/assets/{ShowcasePage-ypNyQAKe.js → ShowcasePage-wINi-tQI.js} +1 -1
- package/web-app/dist/assets/{SystemSettingsPage-a9KPi49-.js → SystemSettingsPage-C7-NwbQe.js} +1 -1
- package/web-app/dist/assets/{TeamsPage-B2KmQjeS.js → TeamsPage-nI1kMyd6.js} +1 -1
- package/web-app/dist/assets/{TemplatesPage-BnK5NB62.js → TemplatesPage-cYG4rEHV.js} +1 -1
- package/web-app/dist/assets/{TerminalOutput-CYbPu51X.js → TerminalOutput-5N1DSuEO.js} +1 -1
- package/web-app/dist/assets/{activity-DBIfCcER.js → activity-FBZfN02x.js} +1 -1
- package/web-app/dist/assets/{bell-B9HN4QkY.js → bell-BIabKNrl.js} +1 -1
- package/web-app/dist/assets/{bot-DamtEiBN.js → bot-Cxvkdr2Q.js} +1 -1
- package/web-app/dist/assets/{check-DXifl-uv.js → check-BK9OE0AO.js} +1 -1
- package/web-app/dist/assets/{chevron-left-BrlJBb8m.js → chevron-left-JU1GR1jb.js} +1 -1
- package/web-app/dist/assets/{circle-alert-CVKCTAb9.js → circle-alert-BCXT4GEL.js} +1 -1
- package/web-app/dist/assets/{clock-HQ6E5gSp.js → clock-D7dTHgoA.js} +1 -1
- package/web-app/dist/assets/{cloud-B15Ysqug.js → cloud-C7JE0VyG.js} +1 -1
- package/web-app/dist/assets/{code-xml-hqFIp0_h.js → code-xml-CPk8coOb.js} +1 -1
- package/web-app/dist/assets/{database-CcSm0M_K.js → database-CUbozRg2.js} +1 -1
- package/web-app/dist/assets/{dollar-sign-acxpddMc.js → dollar-sign-CqapDZIS.js} +1 -1
- package/web-app/dist/assets/{file-code-corner-B5IIv12W.js → file-code-corner-Cjyd0vE9.js} +1 -1
- package/web-app/dist/assets/{file-plus-CkbMFWJb.js → file-plus-CK0O76xH.js} +1 -1
- package/web-app/dist/assets/{globe-CWmZ3xTF.js → globe-Btlp8WbD.js} +1 -1
- package/web-app/dist/assets/{hammer-BSaCsCAo.js → hammer-Dhx3vv-6.js} +1 -1
- package/web-app/dist/assets/{index-BCf0fCNu.js → index-Dc_xDhlb.js} +3 -3
- package/web-app/dist/assets/{layers-CL82nJ3b.js → layers-BN-rnVzd.js} +1 -1
- package/web-app/dist/assets/{loader-circle-DBhm8R7M.js → loader-circle-B5drrE7g.js} +1 -1
- package/web-app/dist/assets/{lock-wWcqImfq.js → lock-TV6tjnhb.js} +1 -1
- package/web-app/dist/assets/{package-BaZa22IO.js → package-CSbH8fIY.js} +1 -1
- package/web-app/dist/assets/{plus-TFOQPEeK.js → plus-DfKZYO-a.js} +1 -1
- package/web-app/dist/assets/{refresh-cw-BOKfYIta.js → refresh-cw-DVhK4NFt.js} +1 -1
- package/web-app/dist/assets/{rotate-ccw-DrH5oGwW.js → rotate-ccw-DsP-00k8.js} +1 -1
- package/web-app/dist/assets/{scroll-text-aY8_wIJd.js → scroll-text-BE1U-3Xd.js} +1 -1
- package/web-app/dist/assets/{server-C6FQ01rB.js → server-mht7K1pl.js} +1 -1
- package/web-app/dist/assets/{shield-alert-DurYyWUo.js → shield-alert-CeIANeNA.js} +1 -1
- package/web-app/dist/assets/{thumbs-up-wUuSs67Q.js → thumbs-up-viM2SkMc.js} +1 -1
- package/web-app/dist/assets/{trash-2-DAob0LKZ.js → trash-2-BGg8UrMr.js} +1 -1
- package/web-app/dist/assets/{trending-down-yKL9mp2O.js → trending-down-B4GYlBAd.js} +1 -1
- package/web-app/dist/assets/{trending-up-BD55eCE3.js → trending-up-D4xbMall.js} +1 -1
- package/web-app/dist/assets/{upload-0IJxnT31.js → upload-CQtefdPg.js} +1 -1
- package/web-app/dist/assets/{usePolling-DuBiboP5.js → usePolling-wgMepn3O.js} +1 -1
- package/web-app/dist/assets/{user-BDw_rGaY.js → user-ee6764Ui.js} +1 -1
- package/web-app/dist/index.html +1 -1
package/docs/v10/CLI-MODERN.md
CHANGED
|
@@ -11,7 +11,7 @@ Classes: KEEP-MODERN (v10-native or engine-neutral), UPDATE (live but needs mode
|
|
|
11
11
|
- DROP-LEGACY: 31
|
|
12
12
|
- DELETE: 14
|
|
13
13
|
- Total rows: 141
|
|
14
|
-
- Registry paths (commands and nested subcommands):
|
|
14
|
+
- Registry paths (commands and nested subcommands): 198
|
|
15
15
|
|
|
16
16
|
## Commands
|
|
17
17
|
|
package/docs/v10/DECISIONS.md
CHANGED
|
@@ -785,7 +785,7 @@ Amends FC-35 (the router-on plan no longer skips small tasks) and D89 Amendment
|
|
|
785
785
|
2. Line budgets are never raised to admit a feature. Overflow is extracted along docs/v11/REGISTRIES.md.
|
|
786
786
|
3. RG-06 approved: loki-ts/src/contrib/ with a 1200-line cap and the D66 import rules. Binding guards: core (engine10) never imports contrib; each contrib module is optional (deleting one leaves core compiling and flag-off goldens unchanged); no verdict logic in contrib (D42); the cap failure lists per-file line counts.
|
|
787
787
|
|
|
788
|
-
## D96 (2026-10-08, founder directive relayed by steering at 17:45Z, CoS records): every approved slice is a release; next by merge, latest by promotion
|
|
788
|
+
## D96 (2026-10-08, founder directive relayed by steering at 17:45Z, CoS records): every approved slice is a release; next by merge, latest by promotion (point 3 SUPERSEDED by D102: latest and next publish together)
|
|
789
789
|
Founder: "you are taking hours long for releases, I wanted 3 releases to 10 releases per hour ... release asap to accommodate that many". Supersedes D94 point 1 (trains) and the D91 clock cut; D90 moves from publish to promotion. D94 points 2 and 3 stand.
|
|
790
790
|
1. A slice that passes merge-gate merges straight to main, and main publishes a PATCH to npm `next` within 15 minutes. There are no trains and no batching. Target: 3 or more releases per hour, 10 when the queue allows.
|
|
791
791
|
2. `next` gate (budget 10 min from push to npm): tsc, impacted tests plus always-run guards, moat P9 (never waived), dist guard, pack smoke.
|
|
@@ -829,3 +829,15 @@ Standing: from this grant on, the CoS decides founder-queue items without waitin
|
|
|
829
829
|
- Cost: an unrelated edit to pnpm-workspace.yaml now caps. Accepted: such edits are rare and moat beats convenience.
|
|
830
830
|
- Rejected: more regexes on a strict subset (round 1 showed the class is open); bundling js-yaml (pnpm can change parsers between versions).
|
|
831
831
|
- Reverse: only by comparing with the exact parser the installed package manager uses, proven by a differential fuzz against it.
|
|
832
|
+
|
|
833
|
+
## D102 (2026-10-17, founder directive, CoS records): a VERSION push publishes npm `latest` and `next` at once; no CI gate before npm
|
|
834
|
+
Founder: "stability I don't want nightly delaying latest version in npm, make an update and always a release should get into npm as well asap, but never cost time of testing, i hate delays, i want fastest releases into npm, significantly fastest and much faster than anyone in the world. within seconds." Supersedes D96 point 3 (latest by promotion), the `next` gate wait of D96 point 2, and the required-ci wait described in earlier release docs.
|
|
835
|
+
1. A push to main that changes VERSION runs release.yml. The new `publish-npm` job needs only `pack-npm` (which already verifies the packed tarball carries a fresh dist and records its sha256). It does not wait on `gate`, Tests, Security Audit, nightly, the backstop, Post-Release Smoke, the git tag or the GitHub Release.
|
|
836
|
+
2. `publish-npm` verifies the tarball digest, publishes with `--tag next`, then moves `latest` and `next` to VERSION only behind a `sort -V` never-backwards guard (VERSION must be the highest). A rerun for a version npm already serves only re-asserts the dist-tags; any other publish failure is fatal. The TypeScript SDK does the same (publish `--tag next`, then guarded tag moves).
|
|
837
|
+
The `release-npm` concurrency group (and `release-npm-sdk` for the SDK, `cancel-in-progress: false`) keeps one pending job, so an intermediate version can be skipped on npm while `latest` still ends at the newest.
|
|
838
|
+
3. Deleted: the `required-ci` job, `.github/workflows/promote.yml` and their tests (test-promote-head-stamp.sh, test-promote-smoke-sha.sh, test_release_required_ci.py). The Docker `:latest` tag and the Homebrew formula bump that promote.yml performed now run inside release.yml after the release job.
|
|
839
|
+
4. Tests, Security Audit, the nightly and the backstop still run in parallel on every push. They are fix-forward signals: a red result opens a P0 fix slice, never delays or blocks npm. `gate`, tag, GitHub Release, SBOM, notify, docker and the SDKs still use it. `npm-visible` stays informational.
|
|
840
|
+
5. Safety net unchanged: never unpublish; `npm deprecate` is allowed for a bad version, then ship the fix as the next PATCH. The never-backwards guard now lives in publish-npm (publish under next, move latest and next only if VERSION is the highest by sort -V; serialized by a release-npm concurrency group); the gitHead stamp, packed-version check and release-actor tag guards stay.
|
|
841
|
+
6. Pulse: a promotion lag violation, if one exists, fires only when npm `latest` differs from `next`.
|
|
842
|
+
- Cost accepted: a red build can reach `latest` for minutes. Reason: the founder ranks speed of release over pre-publish testing, and deprecate plus fix-forward bounds the damage.
|
|
843
|
+
- Reverse: only by a founder directive.
|
package/docs/v10/DEPS.md
CHANGED
|
@@ -178,10 +178,6 @@ Inventory only. No dependency, lockfile, workflow or image was changed to produc
|
|
|
178
178
|
| `.github/workflows/post-release-smoke.yml` | `actions/checkout@v4` | `v4 (resolves to v4.4.0)` | `v7.0.1` | MAJOR | tag-pinned (not SHA-pinned); floating tag v4 resolves to v4.4.0 (commit 11d5960a3267), behind latest release v7.0.1 (commit 3d3c42e5aac5); action.yml declares `using: node20` -- this action IS the deprecated Node 20 runtime |
|
|
179
179
|
| `.github/workflows/post-release-smoke.yml` | `actions/setup-node@v4` | `v4 (resolves to v4.4.0)` | `v7.0.0` | MAJOR | tag-pinned (not SHA-pinned); floating tag v4 resolves to v4.4.0 (commit 49933ea5288c), behind latest release v7.0.0 (commit 820762786026); action.yml declares `using: node20` -- this action IS the deprecated Node 20 runtime |
|
|
180
180
|
| `.github/workflows/post-release-smoke.yml` | `actions/setup-python@v5` | `v5 (resolves to v5.6.0)` | `v7.0.0` | MAJOR | tag-pinned (not SHA-pinned); floating tag v5 resolves to v5.6.0 (commit a26af69be951), behind latest release v7.0.0 (commit 5fda3b95a4ea); action.yml declares `using: node20` -- this action IS the deprecated Node 20 runtime |
|
|
181
|
-
| `.github/workflows/promote.yml` | `actions/checkout@v4` | `v4 (resolves to v4.4.0)` | `v7.0.1` | MAJOR | tag-pinned (not SHA-pinned); floating tag v4 resolves to v4.4.0 (commit 11d5960a3267), behind latest release v7.0.1 (commit 3d3c42e5aac5); action.yml declares `using: node20` -- this action IS the deprecated Node 20 runtime |
|
|
182
|
-
| `.github/workflows/promote.yml` | `actions/setup-node@v4` | `v4 (resolves to v4.4.0)` | `v7.0.0` | MAJOR | tag-pinned (not SHA-pinned); floating tag v4 resolves to v4.4.0 (commit 49933ea5288c), behind latest release v7.0.0 (commit 820762786026); action.yml declares `using: node20` -- this action IS the deprecated Node 20 runtime |
|
|
183
|
-
| `.github/workflows/promote.yml` | `oven-sh/setup-bun@0c5077e51419868618aeaa5fe8019c62421857d6` | `0c5077e51419868618aeaa5fe8019c62421857d6 # v2` | `v2.2.0` | minor | SHA-pinned |
|
|
184
|
-
| `.github/workflows/promote.yml` | `docker/login-action@v3` | `v3 (resolves to v3.7.0)` | `v4.6.0` | MAJOR | tag-pinned (not SHA-pinned); floating tag v3 resolves to v3.7.0 (commit c94ce9fb4685), behind latest release v4.6.0 (commit dbcb813823bd); action.yml declares `using: node20` -- this action IS the deprecated Node 20 runtime |
|
|
185
181
|
| `.github/workflows/release.yml` | `actions/checkout@v4` | `v4 (resolves to v4.4.0)` | `v7.0.1` | MAJOR | tag-pinned (not SHA-pinned); floating tag v4 resolves to v4.4.0 (commit 11d5960a3267), behind latest release v7.0.1 (commit 3d3c42e5aac5); action.yml declares `using: node20` -- this action IS the deprecated Node 20 runtime |
|
|
186
182
|
| `.github/workflows/release.yml` | `oven-sh/setup-bun@0c5077e51419868618aeaa5fe8019c62421857d6` | `0c5077e51419868618aeaa5fe8019c62421857d6 # v2` | `v2.2.0` | minor | SHA-pinned |
|
|
187
183
|
| `.github/workflows/release.yml` | `actions/setup-python@v5` | `v5 (resolves to v5.6.0)` | `v7.0.0` | MAJOR | tag-pinned (not SHA-pinned); floating tag v5 resolves to v5.6.0 (commit a26af69be951), behind latest release v7.0.0 (commit 5fda3b95a4ea); action.yml declares `using: node20` -- this action IS the deprecated Node 20 runtime |
|
|
@@ -419,12 +415,12 @@ Counts are all from the single `Bump` column (current line vs newest line in the
|
|
|
419
415
|
- `actions/cache` v4 (resolves to v4.3.0) -> `v6.1.0`: .github/workflows/test.yml
|
|
420
416
|
- `actions/checkout` 11d5960a326750d5838078e36cf38b85af677262, v4 (resolves to v4.4.0) -> `v7.0.1`: .github/workflows/bun-parity.yml, .github/workflows/claude-code-review.yml, .github/workflows/coverage.yml, .github/workflows/first-run-gate.yml, .github/workflows/integrity-audit.yml, +12 more
|
|
421
417
|
- `actions/download-artifact` v4 (resolves to v4.3.0) -> `v8.0.1`: .github/workflows/release.yml
|
|
422
|
-
- `actions/setup-node` v4 (resolves to v4.4.0) -> `v7.0.0`: .github/workflows/integrity-audit.yml, .github/workflows/nightly.yml, .github/workflows/post-release-smoke.yml, .github/workflows/
|
|
418
|
+
- `actions/setup-node` v4 (resolves to v4.4.0) -> `v7.0.0`: .github/workflows/integrity-audit.yml, .github/workflows/nightly.yml, .github/workflows/post-release-smoke.yml, .github/workflows/release.yml, +6 more
|
|
423
419
|
- `actions/setup-python` v5 (resolves to v5.6.0) -> `v7.0.0`: .github/workflows/bun-parity.yml, .github/workflows/coverage.yml, .github/workflows/integrity-audit.yml, .github/workflows/model-catalog-probe.yml, .github/workflows/nightly.yml, +6 more
|
|
424
420
|
- `actions/upload-artifact` ea165f8d65b6e75b540449e92b4886f43607fa02, v4 (resolves to v4.6.2) -> `v7.0.1`: .github/workflows/coverage.yml, .github/workflows/first-run-gate.yml, .github/workflows/parity-drift.yml, .github/workflows/release.yml, .github/workflows/sbom.yml, +3 more
|
|
425
421
|
- `azure/setup-helm` v4 (resolves to v4.3.1) -> `v5.0.1`: .github/workflows/integrity-audit.yml, .github/workflows/test.yml
|
|
426
422
|
- `docker/build-push-action` v5 (resolves to v5.4.0) -> `v7.4.0`: .github/workflows/release.yml
|
|
427
|
-
- `docker/login-action` v3 (resolves to v3.7.0) -> `v4.6.0`: .github/workflows/
|
|
423
|
+
- `docker/login-action` v3 (resolves to v3.7.0) -> `v4.6.0`: .github/workflows/release.yml
|
|
428
424
|
- `docker/setup-buildx-action` v3 (resolves to v3.12.0) -> `v4.4.1`: .github/workflows/release.yml
|
|
429
425
|
- `peter-evans/dockerhub-description` v4 (resolves to v4.0.2) -> `v5.0.0`: .github/workflows/release.yml
|
|
430
426
|
- `sigstore/cosign-installer` v3 (resolves to v3.9.1) -> `v4.1.2`: .github/workflows/release.yml
|
|
@@ -976,3 +976,24 @@ L0 review rule (ENGINE-LAWS.md L0): a fix that adds an `if` or a regex about the
|
|
|
976
976
|
- Siblings: every literal reason produced by reasonOf (output.ts:74); the supervisor call site that passes the reason.
|
|
977
977
|
- Mechanism: nextOf in util/run_summary.ts takes reason and outcome and maps each failure class to one command; verified, done-unverified, budget and stopped output stays byte-identical.
|
|
978
978
|
- Fixture: run_summary.test.ts table rows copied from the real reason literals, a pin of the old outputs, and a source scan that every reasonOf literal has a mapping; tests/features/contract.test.ts covers fatal:auth end to end.
|
|
979
|
+
|
|
980
|
+
## FC-AGENT-PROOF A VERIFIED verdict proven only by agent-authored evidence (TEN-GATES-01)
|
|
981
|
+
- User-visible vs raw: the receipt says VERIFIED, but every executed pass is a test the implementer added in the same diff or an LLM judge verdict; raw shows no check the agent could not write itself.
|
|
982
|
+
- Law broken: success needs evidence the implementing agent did not author (exogenous gates are the moat).
|
|
983
|
+
- Siblings to sweep: engine10 seal proof, proof-generator headline, deep council pass.
|
|
984
|
+
- Mechanism: util/check_result.ts checkProvenance classifies each check (exogenous, independent, agent_authored, llm_judge; unknown is exogenous) and hasExogenousProof is the one predicate every consumer calls.
|
|
985
|
+
- Fixture: loki-ts/tests/engine10/check_result.test.ts "TEN-GATES-01 check provenance" (added test file, same path pre-existing, Wall path, council, unknown name).
|
|
986
|
+
|
|
987
|
+
## FC-TEN-GROUP-AUTH Group child sessions lose the OS identity vars and report no cost (SCOPED-ENV-NO-IDENTITY)
|
|
988
|
+
- User-visible vs raw: every unit session of a group run printed "Not logged in" and failed in about 6s at $0 on macOS Claude OAuth; the run then said nothing about the dollars the surviving units spent.
|
|
989
|
+
- Law broken: a scoped child env must keep what the provider CLI needs to authenticate (USER and LOGNAME key the macOS keychain lookup) while still dropping unrelated secrets; spend that happened must be reported, never silently unmeasured.
|
|
990
|
+
- Siblings: run_group.ts ENV_KEEP (broken); commands/start.ts START_ENV_NAMES and util/skill_checks.ts SKILL_CHECK_ENV_ALLOW already keep USER, LOGNAME, SHELL; features/speed/fix_units.ts suiteTail (the group's fix-unit suite run) was a fourth allowlist and now keeps the same three vars; a git grep of env allowlists in loki-ts/src found no other. The remaining child-env helpers copy the full env and remove named secrets, so they never dropped identity.
|
|
991
|
+
- Mechanism: ENV_KEEP in run_group.ts gains USER, LOGNAME, SHELL; parseGroupCost and groupCostLine sum the per-unit cost rows of every backlog.py launch and print one measured, partial or not-measured `Cost:` line like a single run, and writeGroupCostRecord rolls the sum into the parent .loki/metrics/efficiency so collect_efficiency, receipts and the bench read it. parseGroupCost ignores output with no Summary table. No shared base list: the allowlists differ in everything but the identity trio, so a shared list would not remove the copies.
|
|
992
|
+
- Fixture: tests/features/run_group_env_cost.test.ts (scopedEnv keeps USER and LOGNAME and drops an unrelated secret; group cost equals the sum of unit costs, unmeasured rows read partial, none reads not measured; a runGroup test with a fake launcher asserts the Cost line and the efficiency record); tests/runner/spawn_env_guard.test.ts stays green.
|
|
993
|
+
|
|
994
|
+
## FC-BUNDLE-SDK-LEAK A server bundle pulls loki-ts SDK code through a one-constant import (v11.17.14)
|
|
995
|
+
- User-visible vs raw: v11.17.14 never reached npm and the 11.17.15 docker images failed to build; raw was `Could not resolve: "@anthropic-ai/sdk"` while bundling packages/control-plane src/server/serve.ts.
|
|
996
|
+
- Law broken: a module imported by the control-plane server must not reach runner code that needs loki-ts runtime deps; a shared constant lives in a leaf module.
|
|
997
|
+
- Siblings: deep.ts was the only engine10 stage importing runner/quality_gates.ts (git grep); xreview.ts already imports providers/claude_flags.ts. pack-npm also lacked a loki-ts install, fixed in 386e73f32.
|
|
998
|
+
- Mechanism: REVIEW_GUARD_DENYLIST moves to providers/claude_flags.ts; quality_gates.ts re-exports it; deep.ts imports the leaf.
|
|
999
|
+
- Fixture: tests/test-control-plane.sh builds serve.ts with a metafile and fails if runner/sdk_invoker appears (red with the old import: 3 hits; green: 0).
|
|
@@ -31,9 +31,8 @@ The CEO is Lokesh Mure (Loki), the founder. Everyone else is an agent. The compa
|
|
|
31
31
|
## Release pipeline
|
|
32
32
|
- Tier A fast gate on every change (target 60-120s): syntax checks, changed-file shellcheck, diff-selected tests, moat suite split per property. It is feedback, not release authority.
|
|
33
33
|
- Tier B: every main commit has a full Tier B verdict on its exact tree, run on main or on the train that produced it (D55); never cancelled on main.
|
|
34
|
-
- Every approved slice is a release (D96): merge-gate merges to main, and
|
|
35
|
-
-
|
|
36
|
-
- If the backstop fails on main: promotion stops, and a P0 fix-forward slice opens within the hour. Never unpublish; npm deprecate is allowed.
|
|
34
|
+
- Every approved slice is a release (D96, D102): merge-gate merges to main, and a VERSION push publishes to npm under `latest` AND `next` within seconds, depending only on pack-npm. No CI, nightly, backstop or smoke result delays npm. No trains, no batching. Target 3-10 releases per hour.
|
|
35
|
+
- Tests, Security Audit, nightly and the backstop run in parallel as fix-forward signals. If one fails on main, a P0 fix-forward slice opens within the hour. Never unpublish; npm deprecate is allowed.
|
|
37
36
|
|
|
38
37
|
## Large tasks (for example "rebuild the dashboard")
|
|
39
38
|
- The Architect splits the task into 10-40 slices behind a feature flag.
|
package/docs/v10/PROGRESS.md
CHANGED
|
@@ -2410,3 +2410,6 @@ The swarm is stopped: .loki/V10-STOP exists, the loop has no wake-ups, and the c
|
|
|
2410
2410
|
- 2026-10-17T01:30Z v11.17.11: ships Q18-03b (merge 31e4f4b47) FC-09x (merge b97c1e635, dist 2eeec3851) and COST-WALL-e (HIGH r2 APPROVE 439ed90e3, 132 passed). Founder asked for 10/10 on every competitive axis; architect workflow wrixi4afj is slicing COST, QUALITY, DEPLOY, UX, GATES, STABILITY and ADOPTION into board rows. Q17-02 r1 fix 11eac46fa in TL r2 review.
|
|
2411
2411
|
- 2026-10-17T02:00Z v11.17.12: v11.17.11 published (npm next 11.17.11, Tests and Release green on df98addc8). Ships Q18-05b (TL APPROVE 82058ff97, merge ae90c2875) and COST-WALL-f (HIGH r2 APPROVE ef9979ad8, merge 3d0587f4f). Q18-03c parked after 2 rounds (regex-literal strip regression), continued as Q18-03d. 64 TEN rows on BOARD; wave 1 batches A and B building.
|
|
2412
2412
|
- 2026-10-17T02:30Z v11.17.13: v11.17.12 (42315dc52) Tests red on one stale assertion in tests/test_cost_summary.py (1 failed, 3825 passed on Python 3.10 and 3.13), so Release skipped publish; fix-forward f5b1d1681. First v11.17.13 bump refused on 2 red global guard rows (l0 allowlist after CORE-TRIM, completions coverage newly promoted by STABILITY-04), fixed 6f2355aa7. TEN-UX-02b merged 672b74c79; TEN-DEPLOY-01b conflicts with DEPLOY-01, back to ready. Ships v11.17.12 content plus Q18-07, Q18-11, Q17-02, Q18-03d and 12 TEN wave 1 rows (DEPLOY-01, UX-02, COST-02, COST-03, STABILITY-01/04/05/08, FC-ROWS, CORE-TRIM, SECURE-SCAN-UTIL, BADGE-UTIL), each with a TL or HIGH APPROVE. Batches E, F, G and Q18-04/Q18-02b r2 building.
|
|
2413
|
+
- 2026-10-17T03:00Z v11.17.14: v11.17.13 published (Release run success on 850b7f67c, npm next 11.17.13); 19 rows marked released (Q18-03c was parked, superseded by Q18-03d). Ships Q18-04 and Q18-02b (HIGH r2 APPROVE 3fa77dc4e, 9482dbe62), TEN-QUALITY-02 and TEN-GATES-01 (HIGH r2 APPROVE 05cafda44, 10be1a1bd), QUALITY-04, QUALITY-06, QUALITY-09, COST-05, COST-07, STABILITY-06, and batch H (GATES-09, UX-06, ADOPTION-05, DEPLOY-07; TL APPROVE). First bump refused on the sigpipe ratchet (1730 > 1728) from STABILITY-06 pulse tests; fixed 053e28991. Batch J (QUALITY-03, GATES-03, ADOPTION-03, GATES-08, ADOPTION-04, UX-07) building. Founder directive 2026-10-17: every release publishes npm latest and next immediately with no test gating; TEN-RELEASE-INSTANT building with HIGH review. C-F1 cost proof running locally on Claude Code. Later merged into this release: ADOPTION-02, DEPLOY-01b, QUALITY-07, COST-06, GROUP-AUTH, COST-17, COST-18, COST-20, RELEASE-INSTANT (HIGH r3 under D99). Bump retries: sigpipe ratchet fixed 54b716856; structural-checks timed out at load 29 and passed alone (25 passed). GATES-05 parked, re-sliced as GATES-05b (r2 BLOCK, r3 dispatched); STABILITY-02 superseded; COST-22 rejected (false premise).
|
|
2414
|
+
- 2026-10-17T03:40Z v11.17.15: v11.17.14 (624c12346) pushed but Release run 38998897240 failed in pack-npm (control-plane server bundle could not resolve @anthropic-ai/sdk; pack-npm had no loki-ts install). Fix 386e73f32 adds the install step; v11.17.15 ships it plus all v11.17.14 content (first release through the TEN-RELEASE-INSTANT path). Guard rows skipped on this bump (LOKI_RELEASE_SKIP_GUARDS=1, D99 velocity); workflow-no-masked-failures and release-gate-dedup (12 passed) run by hand. Batch L building: GATES-05b r3, COST-09, COST-10, COST-12, COST-13, COST-23.
|
|
2415
|
+
- 2026-10-17T03:45Z v11.17.16: v11.17.15 published (Release 38999077422: "+ loki-mode@11.17.15" and "+latest: loki-mode@11.17.15", first latest move through TEN-RELEASE-INSTANT) but docker publish failed: deep.ts pulled runner/sdk_invoker into the control-plane bundle. Fix cd5aa32a8 (FC-BUNDLE-SDK-LEAK, control-plane 530 pass, guard red 3 to green 0) plus RELEASE-INSTANT-F1 (TL APPROVE 29ca496f1) and COST-18-F1 (TL APPROVE 924cec1c8).
|