loki-mode 10.5.9 → 10.5.10

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 (67) hide show
  1. package/SKILL.md +2 -2
  2. package/VERSION +1 -1
  3. package/dashboard/__init__.py +1 -1
  4. package/docs/INSTALLATION.md +1 -1
  5. package/docs/v10/BOARD.md +15 -13
  6. package/docs/v10/PROGRESS.md +14 -0
  7. package/loki-ts/dist/loki.js +298 -297
  8. package/mcp/__init__.py +1 -1
  9. package/package.json +1 -1
  10. package/plugins/loki-mode/.claude-plugin/plugin.json +1 -1
  11. package/web-app/dist/assets/{AdminPage-DGuj7br0.js → AdminPage-B67oykTq.js} +1 -1
  12. package/web-app/dist/assets/{Avatar-Cdvgpba5.js → Avatar-oGATGRH9.js} +1 -1
  13. package/web-app/dist/assets/{Badge-DJk8oc0R.js → Badge-BL6VnQ5l.js} +1 -1
  14. package/web-app/dist/assets/{Button-C27QH-Dz.js → Button-QGZm-VP0.js} +1 -1
  15. package/web-app/dist/assets/{CockpitPage-C1_NrOGR.js → CockpitPage-B42XvLAM.js} +1 -1
  16. package/web-app/dist/assets/{ComparePage-BDYsv1lI.js → ComparePage-CvXeI65J.js} +1 -1
  17. package/web-app/dist/assets/{ErrorBoundary-BtmEe2jX.js → ErrorBoundary-C7BGRqtK.js} +1 -1
  18. package/web-app/dist/assets/{EvidenceReceiptPanel-H4lTkLGL.js → EvidenceReceiptPanel-CWtQJFvz.js} +1 -1
  19. package/web-app/dist/assets/{GitHubIssuesPanel-BZpRTs0R.js → GitHubIssuesPanel-CaNG20H6.js} +1 -1
  20. package/web-app/dist/assets/{GitHubPRsPanel-mWeI_RUy.js → GitHubPRsPanel-CipAJzPg.js} +1 -1
  21. package/web-app/dist/assets/{HomePage-Ca2_4J8P.js → HomePage-_QeUkY15.js} +2 -2
  22. package/web-app/dist/assets/{LoginPage-BuHiEHdD.js → LoginPage-DWBRdcLN.js} +1 -1
  23. package/web-app/dist/assets/{MagicPage-DvoLcvE3.js → MagicPage-DWjFPG7D.js} +1 -1
  24. package/web-app/dist/assets/{MetricsPage-BCrWtOWC.js → MetricsPage-C4d6da1F.js} +1 -1
  25. package/web-app/dist/assets/{NotFoundPage-BqdiZUJ4.js → NotFoundPage-DeDsW3_m.js} +1 -1
  26. package/web-app/dist/assets/{ProjectPage-C5Ccnd1f.js → ProjectPage-Dm8ok-xS.js} +3 -3
  27. package/web-app/dist/assets/{ProjectsPage-B2B5nfJP.js → ProjectsPage-CTzhekl2.js} +1 -1
  28. package/web-app/dist/assets/{SettingsPage-C0UtFrfO.js → SettingsPage-CiLJNswp.js} +1 -1
  29. package/web-app/dist/assets/{ShowcasePage-BPaBrUbK.js → ShowcasePage-f_1nS83o.js} +1 -1
  30. package/web-app/dist/assets/{SystemSettingsPage-BvieTPpD.js → SystemSettingsPage-DYrUvPNT.js} +1 -1
  31. package/web-app/dist/assets/{TeamsPage-DLeJfrRc.js → TeamsPage-H4RiPWAZ.js} +1 -1
  32. package/web-app/dist/assets/{TemplatesPage-JminZlqP.js → TemplatesPage-CPuxRvnt.js} +1 -1
  33. package/web-app/dist/assets/{TerminalOutput-DUXMRrku.js → TerminalOutput-CWrePFkI.js} +1 -1
  34. package/web-app/dist/assets/{activity-Bk6IudiS.js → activity-P02y0O8o.js} +1 -1
  35. package/web-app/dist/assets/{bell-aPwkiiD-.js → bell-HQXzg-Hl.js} +1 -1
  36. package/web-app/dist/assets/{bot-BnBUDC1p.js → bot-Dk5s9GSN.js} +1 -1
  37. package/web-app/dist/assets/{check-De6ZtXP-.js → check-CwDjf4PE.js} +1 -1
  38. package/web-app/dist/assets/{chevron-left-8EnJBdER.js → chevron-left-C7TwN2mS.js} +1 -1
  39. package/web-app/dist/assets/{circle-alert-TGaR5cBZ.js → circle-alert-DM4oNAW-.js} +1 -1
  40. package/web-app/dist/assets/{clock-BTZjE2RX.js → clock-ds_JQQTA.js} +1 -1
  41. package/web-app/dist/assets/{cloud-CgCa6EIh.js → cloud-DH1iftlI.js} +1 -1
  42. package/web-app/dist/assets/{code-xml-RXTcr-zM.js → code-xml-DVxWm1OZ.js} +1 -1
  43. package/web-app/dist/assets/{database-BwIN4Cxo.js → database-DncR8cxO.js} +1 -1
  44. package/web-app/dist/assets/{dollar-sign-XzlY0uOG.js → dollar-sign-BgaDf1Xc.js} +1 -1
  45. package/web-app/dist/assets/{file-code-corner-CXejZOb7.js → file-code-corner-qXSN84-m.js} +1 -1
  46. package/web-app/dist/assets/{file-plus-pYhFeo4S.js → file-plus-C_G98fmf.js} +1 -1
  47. package/web-app/dist/assets/{globe-CjO4yGJz.js → globe-riusJlUK.js} +1 -1
  48. package/web-app/dist/assets/{hammer-BXBfEIuA.js → hammer-8rTeIjNL.js} +1 -1
  49. package/web-app/dist/assets/{index-CFfJypVK.js → index-Bm8x_X7_.js} +3 -3
  50. package/web-app/dist/assets/{layers-D3xS6bnJ.js → layers-lthGyhBX.js} +1 -1
  51. package/web-app/dist/assets/{loader-circle-UmuLyjjZ.js → loader-circle-Ct6LWreQ.js} +1 -1
  52. package/web-app/dist/assets/{lock-CoZpsC2Q.js → lock-ui-BaDIH.js} +1 -1
  53. package/web-app/dist/assets/{package-S61fPk28.js → package-BKKKJduw.js} +1 -1
  54. package/web-app/dist/assets/{plus-BC1ydTkW.js → plus-B4cHwuUk.js} +1 -1
  55. package/web-app/dist/assets/{refresh-cw-BqOursdF.js → refresh-cw-BJZsXiQT.js} +1 -1
  56. package/web-app/dist/assets/{rotate-ccw-jj6Q0-TE.js → rotate-ccw-DazXGjet.js} +1 -1
  57. package/web-app/dist/assets/{scroll-text-OXZfhCX_.js → scroll-text-CoXDGbkm.js} +1 -1
  58. package/web-app/dist/assets/{server-FOSZTk_O.js → server-BepN1rgV.js} +1 -1
  59. package/web-app/dist/assets/{shield-alert-BPLAVV5-.js → shield-alert-DLnd3crY.js} +1 -1
  60. package/web-app/dist/assets/{thumbs-up-BBolkaLF.js → thumbs-up-oUBuPBUu.js} +1 -1
  61. package/web-app/dist/assets/{trash-2-CgDkTHUS.js → trash-2-BY9HtMUs.js} +1 -1
  62. package/web-app/dist/assets/{trending-down-C328B6b6.js → trending-down-DZMdGaq1.js} +1 -1
  63. package/web-app/dist/assets/{trending-up-CPkF-hNs.js → trending-up-Cq5n8lwY.js} +1 -1
  64. package/web-app/dist/assets/{upload-C69LjzUb.js → upload-sdNXkoXm.js} +1 -1
  65. package/web-app/dist/assets/{usePolling-DrDcAFqm.js → usePolling-CFw3EoGh.js} +1 -1
  66. package/web-app/dist/assets/{user-DFs91eZ8.js → user-bN0b7P81.js} +1 -1
  67. package/web-app/dist/index.html +1 -1
package/SKILL.md CHANGED
@@ -3,7 +3,7 @@ name: loki-mode
3
3
  description: Autonomous spec-driven build system with a built-in trust layer. It does not call work done until it is verified (RARV-C closure loop, 8 quality gates, completion council, verified-completion evidence gate). Triggers on "Loki Mode". Takes a spec (PRD, GitHub issue, OpenAPI doc, etc.) to deployed product with minimal human intervention. Provider-agnostic. Requires --dangerously-skip-permissions flag.
4
4
  ---
5
5
 
6
- # Loki Mode v10.5.9
6
+ # Loki Mode v10.5.10
7
7
 
8
8
  **You are an autonomous agent. You make decisions. You do not ask questions. You do not stop.**
9
9
 
@@ -470,4 +470,4 @@ See `CHANGELOG.md` entries [7.5.7], [7.5.8], [7.5.13] for the per-fix list and r
470
470
 
471
471
  ---
472
472
 
473
- **v10.5.9 | [Autonomi](https://www.autonomi.dev/) flagship product | ~410 lines core**
473
+ **v10.5.10 | [Autonomi](https://www.autonomi.dev/) flagship product | ~410 lines core**
package/VERSION CHANGED
@@ -1 +1 @@
1
- 10.5.9
1
+ 10.5.10
@@ -7,7 +7,7 @@ Modules:
7
7
  control: Session control API (start/stop/pause/resume)
8
8
  """
9
9
 
10
- __version__ = "10.5.9"
10
+ __version__ = "10.5.10"
11
11
 
12
12
  # Expose the control app for easy import
13
13
  try:
@@ -2,7 +2,7 @@
2
2
 
3
3
  The flagship product of [Autonomi](https://www.autonomi.dev/). Loki Mode is a spec-driven autonomous builder with a built-in trust layer that takes any spec to a deployed product and verifies completion with evidence (quality gates plus a completion council), not just a "done" claim. Complete installation instructions for all platforms and use cases.
4
4
 
5
- **Version:** v10.5.9
5
+ **Version:** v10.5.10
6
6
 
7
7
  ---
8
8
 
package/docs/v10/BOARD.md CHANGED
@@ -410,7 +410,7 @@ set is declared to avoid overlap with those and with each other.
410
410
  | E-84 | Pulse TRAIN_LATE reads the last train push from the reflog of refs/remotes/origin/main (moves on every push and on fetches of others' pushes), then push-*.log, then UNKNOWN | scripts/v10-pulse.sh (last_train_push_epoch only), tests/test-v10-pulse.sh | MEDIUM | bash tests/test-v10-pulse.sh; fixture: temp repo plus bare remote, a real `git push` makes the check read under 1 min with no push-*.log present; no reflog and no logs reads UNKNOWN | released@2026-09-28T16:03Z | Source: founder 15:09Z; TRAIN_LATE read 681.9 min while trains were pushed at 14:42Z and later, because plain `git push` writes no push-*.log. TL APPROVE (sonnet) on eeace3f6: `bash tests/test-v10-pulse.sh` 109 passed 0 failed; against the old pulse 106 passed 3 failed; live pulse after merge reads "Minutes since last train push: 12.1". Released in v10.2.1 (npm publish 2026-09-28T16:03Z; every cited commit is an ancestor of the v10.2.1 tag; `git merge-base --is-ancestor`). |
411
411
  | E-85 | Security Audit: a narrowly scoped gitleaks allow rule for 40-hex commit pins in eval task.json (repo.ref, merge_sha) so pinned upstream SHAs stop tripping sourcegraph-access-token; CTO approval required (posture: no blanket suppressions) | .gitleaks.toml (or the workflow config), .github/workflows/security-audit.yml | HIGH | a fixture task.json with a 40-hex ref passes; the same string in any other file or key still fails | parked@2026-09-28T21:14Z | Source: v10.2.0 Release 36440534050 blocked by a pinned werkzeug SHA; EV-11b and EV-12A/B/C add more pins. Wave E27 (wf_bcacb1d1-e76). CTO-level opus review. Wave E27 stopped 18:37Z (founder: over budget, load 50). Build 1 commit on slice-E-85-gitleaks-pins, never reviewed. Parked 21:14Z: a regex allow rule for commit-pin shapes conflicts with the exact-fingerprint-only allowlist policy (security rule: no path or rule suppression). Pins are allowlisted per fingerprint with a reason, as done for werkzeug (82e39c29) and E-101 (6358e0a6). |
412
412
  | DEP-01 | Dependency inventory (D35): docs/v10/DEPS.md lists every manifest (all package.json incl. @anthropic-ai/sdk and claude-agent-sdk; every requirements*.txt and pyproject.toml; every uses: in .github/workflows and .github/actions; Node, Python, Bun matrices; Docker bases, Helm images, Terraform providers, Homebrew formula) with current and latest stable, patch/minor/MAJOR, and runtime EOL; no upgrades | docs/v10/DEPS.md, scripts/dep-inventory.py | LOW | python3 scripts/dep-inventory.py regenerates DEPS.md byte-identically on a second run (network results cached); every manifest found by `git ls-files` appears | released@2026-09-28T17:16Z | Source: founder directive 15:20Z (D35). DEP workstream: max 3 builders, never ahead of E/EV/M. Round 3 2794574b TL APPROVE (sonnet) after two REJECT rounds (bump column mismatch, Node 20 claim, 0.x class, Helm drift; then a missing helm/loki-mode chart and unverified floating tags); `bash tests/test-dep-inventory.sh` 5/5, `--self-test` 23/23. Released in v10.2.2 (npm gitHead 9a59750d). |
413
- | E-87 | Release dispatch path: required-ci also accepts a completed workflow_dispatch Security Audit run at the exact SHA (Tests and Bun Parity stay push-only), so a tree whose VERSION is already bumped can publish after an audit fix | .github/workflows/release.yml (required-ci only), a test that runs the extracted step against a fixture run list | HIGH | fixture: dispatched audit success at the SHA counts; a dispatched audit at another SHA does not; Tests via dispatch still does not | merged@2026-09-30T18:27Z | Source: v10.2.0 Release 36443541666 waited on an audit it could never count. CTO approval required (release gate). Wave E27 (wf_bcacb1d1-e76). CTO-level opus review. Wave E27 stopped 18:37Z (founder: over budget, load 50). REJECT (reproduced): tests pass with the completed-and-success condition removed from the dispatched-audit check. Branch kept. |
413
+ | E-87 | Release dispatch path: required-ci also accepts a completed workflow_dispatch Security Audit run at the exact SHA (Tests and Bun Parity stay push-only), so a tree whose VERSION is already bumped can publish after an audit fix | .github/workflows/release.yml (required-ci only), a test that runs the extracted step against a fixture run list | HIGH | fixture: dispatched audit success at the SHA counts; a dispatched audit at another SHA does not; Tests via dispatch still does not | released@2026-09-30T19:22Z | Source: v10.2.0 Release 36443541666 waited on an audit it could never count. CTO approval required (release gate). Wave E27 (wf_bcacb1d1-e76). CTO-level opus review. Wave E27 stopped 18:37Z (founder: over budget, load 50). REJECT (reproduced): tests pass with the completed-and-success condition removed from the dispatched-audit check. Branch kept. Released in v10.5.8 (merge b1be2085 is an ancestor of v10.5.8). |
414
414
  | E-88 | Release notes fully written (D36): scripts/release-notes.sh extracts the CHANGELOG section literally (dated headings), fails on a missing, empty, heading-only or placeholder section; release.yml fails instead of falling back and checks the published body; pre-push refuses a VERSION bump without a full section | scripts/release-notes.sh, .github/workflows/release.yml (extract step), .githooks/pre-push, docs/dev/release-checklist.md, tests/test-release-notes.sh | HIGH | bash tests/test-release-notes.sh; failing first against the old awk pattern | released@2026-09-28T21:01Z | Source: founder directive 16:05Z; six releases published with "Release vX.Y.Z" bodies (backfilled). Founder 17:22Z: stopped at 70 min and re-sliced as E-88a (auto-carry removed, explicit --include only). Wave E27 (wf_bcacb1d1-e76). Wave E27 stopped 18:37Z (founder: over budget, load 50). E-88a opus APPROVE (branch slice-E-88a); merge conflicts with E-86 in .githooks/pre-push; rebase after E-99 lands (same file). E-88a rebased onto E-99 as slice-E-88a-r2 62774912; opus APPROVE (pre-push diff purely additive, E-99 gitleaks steps byte-identical, stdin read once, gate main-only and fail-closed, release.yml exits 1 instead of a placeholder); merged 60ce7620; release-notes 41/0, pre-push-hook 13/0, pre-push-gitleaks 43/0. Non-blocking: gate runs the working tree release-notes.sh; _cl_tmp not in the EXIT trap. Released in v10.5.0 (merge 60ce7620 is an ancestor of v10.5.0). |
415
415
  | E-89 | Pulse RELEASE_CADENCE (D37): violation when more than 25 minutes pass with main green (Tests and Bun Parity success at HEAD) and at least one merged-unreleased slice commit (not an ancestor of the latest published tag, docs-only commits excluded) | scripts/v10-pulse.sh (one check), tests/test-v10-pulse.sh | MEDIUM | bash tests/test-v10-pulse.sh; fixtures: green plus unreleased slice commit 26 min old fires; red main does not; docs-only commits do not; 24 min does not | released@2026-09-28T22:02Z | Source: founder directive 16:20Z. Founder 17:22Z: stopped at 58 min; salvaged commit cce8f48a re-sliced as its own slice plus UNDERSTAFFED. Wave E27 (wf_bcacb1d1-e76). Wave E27 stopped 18:37Z (founder: over budget, load 50). TL APPROVE (sonnet) on the salvaged cce8f48a plus UNDERSTAFFED; merged locally; `bash tests/test-v10-pulse.sh` 129 passed 0 failed. Released in v10.5.2 (merge bd7d75f7 is an ancestor of v10.5.2). |
416
416
  | E-90 | Release Manager marks BOARD rows released after publish: scripts/board-mark-released.sh <tag> flips every merged row whose merge commit is an ancestor of <tag> to released@ with the tag and the ancestry evidence; pulse MERGED_NOT_RELEASED_STALE when a merged row is already in a published tag | scripts/board-mark-released.sh, scripts/v10-pulse.sh (one check), tests/test-board-mark-released.sh | MEDIUM | bash tests/test-board-mark-released.sh; a merged row in the tag flips, one not in it stays; BOARD line count unchanged | released@2026-09-28T22:02Z | Source: 16:20Z the BOARD showed 20 merged slices that had all shipped in v10.1.0 to v10.2.1, which read as a 20-slice release backlog. Founder 17:22Z: stopped; salvaged commit 1d9dfae7 re-sliced after E-89. Wave E27 (wf_bcacb1d1-e76). Wave E27 stopped 18:37Z (founder: over budget, load 50). Build on slice-E-90-r2 (5 commits) never reviewed; re-review as its own slice. Dispatched 21:14Z sonnet (fresh; the E27 branch was never reviewed). Tech Lead APPROVE bd7d75f7 (anchored slice grep, ancestry-only flips, atomic write); merged 7b1f7e3d; run for v10.5.0 flipped 42 rows (c62f3cb0). Released in v10.5.2 (merge 7b1f7e3d is an ancestor of v10.5.2). |
@@ -420,7 +420,7 @@ set is declared to avoid overlap with those and with each other.
420
420
  | E-91 | Pulse UNEVIDENCED_CLAIM and every row parser accept any slice id prefix ([A-Z]+-\d+, e.g. DEP-02, GF-1, PF-3), not a hardcoded S/E/EV/M list | scripts/v10-pulse.sh (row-id regexes only), tests/test-v10-pulse.sh | LOW | bash tests/test-v10-pulse.sh; a DEP row with "green" only in its Wall cell is not flagged, its notes cell still is | released@2026-09-28T21:01Z | Source: pulse flagged DEP-03/DEP-04 Wall cells (df7dc134), the E-71 bug class again. Serialize after E-89/E-90 and E-79..81 (same file). Wave E27 (wf_bcacb1d1-e76). After E-90 (same file). Wave E27 stopped 18:37Z (founder: over budget, load 50). Not started. Tech Lead APPROVE e311b47e; merged 039f8af2; test-v10-pulse.sh 131/0. Revealed DEP-02..04 stale building rows (parked). Released in v10.5.0 (merge 039f8af2 is an ancestor of v10.5.0). |
421
421
  | E-92 | P0 fix-forward: dep-inventory --self-test reached the real gh floating-tag resolver (actions/setup-node@v4), so CI without gh auth read bump unknown (Tests red since df7dc134, run 36451439320) | scripts/dep-inventory.py (self-test fixture) | HIGH | `env -u GH_TOKEN -u GITHUB_TOKEN PATH=/usr/bin:/bin python3 scripts/dep-inventory.py --self-test` rc=0; rc=1 on the previous version | released@2026-09-28T17:16Z | TL APPROVE (sonnet) on 81cdba4d: stripped-env self-test 23/23 rc=0, origin/main rc=1, fixture mutation goes red, no second network path in self_test(); merged 4f7f1487. Guard: E-93. Released in v10.2.2 (npm gitHead 9a59750d, Release run 36455687013). |
422
422
  | E-93 | Guard (D37 same-class-never-twice): tests/test-dep-inventory.sh runs --self-test under a stripped environment (no GH_TOKEN/GITHUB_TOKEN, PATH=/usr/bin:/bin, empty HOME) so a network-dependent self-test fails locally, not only in CI; GUARDS.md entry | tests/test-dep-inventory.sh, docs/v10/GUARDS.md | LOW | a self-test that calls an unstubbed fetcher fails the leg locally | released@2026-09-28T21:01Z | Source: E-92 incident. Wave E25 (wf_46137a6b-367). TL APPROVE (sonnet); merged on main 18:00Z; `bash tests/test-dep-inventory.sh` 6 passed 0 failed. Released in v10.5.0 (merge 76086e8f is an ancestor of v10.5.0). |
423
- | EV-12E | Upstream-first hidden-test enforcement (D38 criteria 1, 3, 4, 7, 9): validate requires hidden.provenance, hidden.sha256 and requirements[] on lg-* tasks; measure-size excludes typing-examples/, examples/, docs/; a test-harness leg applies every tasks/lg-*/shortcuts/*.patch and asserts not completed, and RED at ref is not collection-only; run.sh rows gain hidden_subset | eval/loki10/harness.py (validate only), eval/loki10/measure-size.py, eval/loki10/test-harness.sh (new section) | HIGH | fixture with a wrong sha256 fails validate rc=1; a passing shortcut fixture fails the leg; an attrs-602-shaped fixture reads medium | review@2026-09-30T18:49Z | Source: D38. Needs EV-12S merged first (measure-size). Wave E27 (wf_bcacb1d1-e76). Wave E27 stopped 18:37Z (founder: over budget, load 50). REJECT (reproduced): RED at ref must be by assertion (criterion 7) is untested. Branch slice-EV-12E kept (4 commits). |
423
+ | EV-12E | Upstream-first hidden-test enforcement (D38 criteria 1, 3, 4, 7, 9): validate requires hidden.provenance, hidden.sha256 and requirements[] on lg-* tasks; measure-size excludes typing-examples/, examples/, docs/; a test-harness leg applies every tasks/lg-*/shortcuts/*.patch and asserts not completed, and RED at ref is not collection-only; run.sh rows gain hidden_subset | eval/loki10/harness.py (validate only), eval/loki10/measure-size.py, eval/loki10/test-harness.sh (new section) | HIGH | fixture with a wrong sha256 fails validate rc=1; a passing shortcut fixture fails the leg; an attrs-602-shaped fixture reads medium | merged@2026-09-30T19:19Z | Source: D38. Needs EV-12S merged first (measure-size). Wave E27 (wf_bcacb1d1-e76). Wave E27 stopped 18:37Z (founder: over budget, load 50). REJECT (reproduced): RED at ref must be by assertion (criterion 7) is untested. Branch slice-EV-12E kept (4 commits). |
424
424
  | EV-12F | Retrofit lg-werkzeug-1513, 1680, 1769 and lg-httpx-1522 to D38 criteria 1-9 (requirements map, upstream-later tests first, authored public-API tests, sha256 freeze, saved shortcuts as must-fail fixtures from ~/loki-ci-logs/ev12-shortcuts/) | eval/loki10/tasks/lg-werkzeug-{1513,1680,1769}/, lg-httpx-1522/, their refdiffs | HIGH | per task: RED by assertion, GREEN at merge, every Ri-omission mutant fails, every shortcut fails, regression files pass, validate rc=0; independent opus 45-minute shortcut attempt passes nothing | ready@2026-09-28T18:00Z | Source: D38. Two engineers (task pairs). Wave E25 (wf_46137a6b-367). Two engineers (task pairs). Wave E25 opus REJECT on every retrofitted task (requirements not covering the sized refdiff, -k deselecting the only Ri test, deprecation requirements untested, shortcuts that omit stated requirements still passing). Deprioritized at 18:00Z behind EV-15 and E-98: the flip is blocked by the medium-tier result regardless of the large tier. |
425
425
  | EV-12G | Retrofit lg-httpx-1550, lg-httpx-3319, lg-attrs-660 to D38, then new upstream PRs (with later upstream tests first) until the large tier holds 10 | eval/loki10/tasks/lg-httpx-{1550,3319}/, lg-attrs-660/, new lg-* dirs, their refdiffs | HIGH | as EV-12F; at least 5 passing on main before the EV-14 large runs | ready@2026-09-28T18:00Z | Source: D38. Wave E25 (wf_46137a6b-367). Wave E25 opus REJECT on every retrofitted task (requirements not covering the sized refdiff, -k deselecting the only Ri test, deprecation requirements untested, shortcuts that omit stated requirements still passing). Deprioritized at 18:00Z behind EV-15 and E-98: the flip is blocked by the medium-tier result regardless of the large tier. |
426
426
  | E-94 | Guard for red main df7dc134 (a test passed locally only because gh was authenticated): local-ci fast tier re-runs every changed test file under a stripped environment (no GH_TOKEN, gh or network credentials) and fails on a difference | scripts/local-ci.sh (one check), tests/test-local-ci-hermetic.sh, docs/v10/GUARDS.md | MEDIUM | a fixture test that calls gh fails the check; the pre-E-92 dep-inventory.py is caught | released@2026-09-28T21:01Z | Source: founder 17:22Z (each red main becomes a pre-merge guard). Wave E27 (wf_bcacb1d1-e76). Wave E27 stopped 18:37Z (founder: over budget, load 50). TL APPROVE; merged locally; `bash tests/test-local-ci-hermetic.sh` 18 passed 0 failed. Released in v10.5.0 (merge 82c22684 is an ancestor of v10.5.0). |
@@ -464,24 +464,26 @@ set is declared to avoid overlap with those and with each other.
464
464
  | E-134 | spawn_env_fsmonitor.test.ts positive control fails on Bun 1.4.2 (Nightly red 2026-09-29 and 09-30, both OSes): Bun no longer inherits the START env for a spawn with no env option, so the bare control call stops leaking the canary and the test proves nothing there. Keep the product assertions unconditional; add a control that passes the canary explicitly so the hook is proven to record env on any Bun; report which inheritance mode the running Bun has | loki-ts/tests/runner/spawn_env_fsmonitor.test.ts | HIGH | cd loki-ts and bun test tests/runner/spawn_env_fsmonitor.test.ts on Bun 1.3.13 and on latest | released@2026-09-30T18:50Z | Source: Nightly run 36719756873 job 109901555421 (bun-v1.4.2): control record held the withheld sentinel, not the canary. Product calls still did not leak. Security guard, opus review. Released in v10.5.7 (merge f0ba0d4d is an ancestor of v10.5.7). |
465
465
  | E-135 | Post-Release Smoke PyPI install gives up after about 10.5 min (6 attempts, 30s steps) while the published version is still propagating; v10.5.5 failed this way though PyPI now has it. Add --no-cache-dir and widen the window | .github/workflows/post-release-smoke.yml | LOW | bash -n on the step script; a rerun of the smoke on the next release | released@2026-09-30T18:50Z | Source: Post-Release Smoke run 36497082408 job 109179083720 (FATAL loki-mode-sdk==10.5.5 not installable after retries); PyPI shows 10.5.5 on 2026-09-30. Rerun of the failed jobs requested. Released in v10.5.7 (merge 1d4975a1 is an ancestor of v10.5.7). |
466
466
  | E-136 | measure-size.py counts any touched non-test .py file, so a docstring-only or typing-only second file makes a one-file fix read as medium (click-3449 utils.py, marshmallow-2170, pluggy-442); count only files whose change alters code, not comments or docstrings | eval/loki10/measure-size.py, its test | MEDIUM | the measure-size self test plus a fixture diff with a docstring-only second file reading small | released@2026-09-30T18:50Z | Source: S41-20a opus review 2026-09-30 (criterion 7 cannot stand in for criterion 1). Use the Python ast module to compare function bodies with docstrings stripped. Released in v10.5.7 (merge d116c91b is an ancestor of v10.5.7). |
467
- | E-137 | S41-18 interrupt test (legA in eval/loki10/test-scorecard-run.sh) leaks an orphaned run.sh plus harness.py (tasks rt1,rt2) when the run is torn down: two groups found reparented to PID 1 after 18 and 32 min on 2026-09-30, from a removed worktree and a reviewer probe dir | eval/loki10/test-scorecard-run.sh | MEDIUM | bash eval/loki10/test-scorecard-run.sh twice, then no run.sh or harness.py with --tasks rt1,rt2 remains | merged@2026-09-30T18:27Z | Source: pulse Orphan worktree/run.sh processes 2 at 17:30Z; PIDs 56770/56781 and 96302/96310 stopped by literal PID after inspection (the python harness ignored SIGTERM). Fix: trap EXIT in the test that stops the recorded group, and assert no survivors. |
467
+ | E-137 | S41-18 interrupt test (legA in eval/loki10/test-scorecard-run.sh) leaks an orphaned run.sh plus harness.py (tasks rt1,rt2) when the run is torn down: two groups found reparented to PID 1 after 18 and 32 min on 2026-09-30, from a removed worktree and a reviewer probe dir | eval/loki10/test-scorecard-run.sh | MEDIUM | bash eval/loki10/test-scorecard-run.sh twice, then no run.sh or harness.py with --tasks rt1,rt2 remains | released@2026-09-30T19:22Z | Source: pulse Orphan worktree/run.sh processes 2 at 17:30Z; PIDs 56770/56781 and 96302/96310 stopped by literal PID after inspection (the python harness ignored SIGTERM). Fix: trap EXIT in the test that stops the recorded group, and assert no survivors. Released in v10.5.8 (merge 030cd521 is an ancestor of v10.5.8). |
468
468
  | E-138 | P7 scanner misses optional-call sinks and one-hop aliasing: setRows?.([...]), window[k]?.(rows), const s = setRows; s(rows), and a memo or local that forwards a fabricator result; accept an optional ?. before the call in the three sink heads and follow one alias hop | tests/moat/p7-no-fabricated-data.sh | HIGH | bash tests/moat/p7-no-fabricated-data.sh with red and green fixtures per form | review@2026-09-30T18:27Z | Source: E-128/E-131 opus review 2026-09-30 (lines 776, 1067, 1172 use a (?=[(<]) or \s*\( lookahead); pre-existing at base, not opened by E-131. |
469
469
  | E-139 | spawn_env_fsmonitor.test.ts follow-ups from E-134 review: comments at lines 16-17 and 114 overstate Bun 1.4.2 (Bun.spawn and Bun.spawnSync with no env still inherit the START env; only node:child_process inherits current), name spawn_env_guard.test.ts as the guard for them; line 94 driver should run process.execPath, not the bun on PATH | loki-ts/tests/runner/spawn_env_fsmonitor.test.ts | LOW | cd loki-ts and bun test tests/runner/spawn_env_fsmonitor.test.ts | ready@2026-09-30T18:08Z | Source: E-134 opus review 2026-09-30 (probe: Bun.spawn on 1.4.2 printed START env). |
470
- | E-140 | Something deletes run-owned loki-run.* directories under TMPDIR while another agent is using them (an opus reviewer's dir and its Bun 1.4.2 binary vanished mid-review on 2026-09-30; unfamiliar dirs with e10ext subdirs appeared inside). Find the sweeper (a test cleanup, a trap, or a script removing loki-run.* by pattern) and make it remove only its own validated dir | the offending script or test (to locate), plus a guard test | HIGH | a guard that plants two run-owned dirs and runs the suspected cleanup, asserting the foreign one survives | merged@2026-09-30T18:27Z | Source: E-134 opus review cleanup note 2026-09-30. CLAUDE.md forbids sweeping TMPDIR by pattern. |
470
+ | E-140 | Something deletes run-owned loki-run.* directories under TMPDIR while another agent is using them (an opus reviewer's dir and its Bun 1.4.2 binary vanished mid-review on 2026-09-30; unfamiliar dirs with e10ext subdirs appeared inside). Find the sweeper (a test cleanup, a trap, or a script removing loki-run.* by pattern) and make it remove only its own validated dir | the offending script or test (to locate), plus a guard test | HIGH | a guard that plants two run-owned dirs and runs the suspected cleanup, asserting the foreign one survives | released@2026-09-30T19:22Z | Source: E-134 opus review cleanup note 2026-09-30. CLAUDE.md forbids sweeping TMPDIR by pattern. Released in v10.5.8 (merge 98eadf90 is an ancestor of v10.5.8). |
471
471
  | E-141 | treeswap passes an explicit env to its git spawns (spawn_env_guard, BACKLOG 149) | loki-ts/src/e10ext/treeswap.ts and its test | MEDIUM | bun test tests/e10ext | released@2026-09-30T18:50Z | Merged c2305c99 via 0bf98fd0. S41-13 binding note records the scrubbed-env requirement. Released in v10.5.7 (merge 0bf98fd0 is an ancestor of v10.5.7). |
472
472
  | E-142 | D44-C follow-ups: structural-checks changed_chars diffs against the merge-base (committed dashes/emoji caught), typecheck prints SKIP without node_modules, register test-v10-ops.sh and fix the IGNORE comment (slow, not hanging) | scripts/structural-checks.sh, tests/test-structural-checks.sh, tests/test-registration-coverage.sh, tests/run-all-tests.sh, tests/shard-durations.tsv | LOW | bash tests/test-structural-checks.sh; each check under 10s | merged@2026-09-30T18:49Z | Source: D44-C TL review (APPROVE with notes). |
473
- | E-143 | Follow-ups from E-87/E-140 reviews: pin audit_verdict created_at tie-to-failure with a test; test-no-tmp-sweep static scan also flags find -delete and find -exec rm shapes; move hardcoded /tmp fixtures (test-stop-process-group, test-audit-chain-cross-file, test-memory-cli, test-lsp-diagnostics-regression, test-watch-command, test-provider-source-cli, test-issue-providers) under loki_run_tmp_create | tests/test_release_required_ci.py, tests/test-no-tmp-sweep.sh, the listed tests | LOW | each named suite passes; a tie fixture expects rc 1 | building@2026-09-30T18:40Z | Source: E-87 and E-140 TL reviews (both APPROVE). |
474
- | E-144 | tests/test-v10-ops.sh hardcodes the live docs/v10/BOARD.md path (line ~589) and md5-checks it, so a concurrent board edit fails it and it breaks the no-home-path rule; point it at a fixture copy under a run-owned temp dir | tests/test-v10-ops.sh | LOW | bash tests/test-v10-ops.sh rc=0 while BOARD.md is edited concurrently; tests/test-no-hardcoded-paths.sh | ready@2026-09-30T18:49Z | Source: E-142 TL review (v10-ops failed 2 checks once on a live board edit, passed on rerun). |
475
- | E-145 | tests/test-watch-command.sh leaves an orphaned run.sh (bash /tmp/loki-run-*.sh .../test-once/prd.md, reparented to launchd, sleep 300 loop) when the suite is killed by a timeout; two found and stopped by literal PID at 18:44Z (40 and 30 min old). Trap EXIT/TERM in the suite to stop its own recorded child PIDs, and move its /tmp paths under loki_run_tmp_create | tests/test-watch-command.sh | LOW | kill the suite with timeout 20; no orphan survives (check by recorded PID) | ready@2026-09-30T18:49Z | Source: pulse ORPHAN_WORKTREE twice. Coordinate with E-143 (same file, /tmp fixture move). |
476
- | E-146 | structural-checks follow-ups from E-142 review: print a stderr warning when no base ref resolves (today it silently scans only the working tree, so committed violations pass); the added-line pattern ^\+[^+] skips an added line whose content starts with +; drop the unused SC variable in tests/test-structural-checks.sh:9 (SC2034) | scripts/structural-checks.sh, tests/test-structural-checks.sh | LOW | test cases for no-base-ref warning and a ++ added line, red first | ready@2026-09-30T18:49Z | Source: E-142 TL review (APPROVE with notes). |
477
- | E-147 | tests/test-trust-core-probe-isolation.sh:37 wraps tests/test-trust-core-tests-detect.sh in `timeout 50`; on a loaded CI runner it hit rc=124 after all 9 visible cases passed (main Tests run 36760845105, shard 3/8, SHA 2b0d2e4d; the same SHA passed on train/4 run 36760063079). Measure the inner suite on CI, set the budget from the measurement with margin, and report the case that was running at the kill so a real hang still fails loudly | tests/test-trust-core-probe-isolation.sh, tests/shard-durations.tsv if its row changes | LOW | inner suite under a 3x load stressor passes; a planted hang still fails with the case name | ready@2026-09-30T19:03Z | Source: D44 MAIN_RED on 2b0d2e4d (timeout flake). Rerun of the failed job in flight. |
478
- | S41-10b | Static-first fixed-rules block for the implement and fix briefs (S41-10 card remainder): a byte-identical rules block in the cache-stable prefix, per-task context after it; drive-letter and ~ plan paths filtered like absolute ones | loki-ts/src/engine10/stages/implement.ts, fix.ts (prefix only), loki-ts/src/e10ext/context.ts and tests | MEDIUM | red first: two different tasks produce byte-identical prefix bytes; core net-zero lines | ready@2026-09-30T18:49Z | Source: S41-10 reviews (APPROVE r2, remainder). |
479
- | S41-20h | Medium-task MINING pass (no task building): shortlist 12 candidate merged PRs whose shape survives the one-file probe (a semantic or signature change in file A that an independently tested caller in file B must match; not helper extraction, parameter threading, moved classes or typing-only files), each with a written one-file-fix attempt run against the upstream tests and its result | eval/loki10/tasks/CANDIDATES.md (new) | MEDIUM | every shortlisted PR has a failing one-file attempt recorded with command and rc | ready@2026-09-30T18:49Z | Source: S41-20b/c/d/e/f: 11 of 16 candidates fell to a reviewer one-file fix; S41-20f built 0. |
473
+ | E-143 | Follow-ups from E-87/E-140 reviews: pin audit_verdict created_at tie-to-failure with a test; test-no-tmp-sweep static scan also flags find -delete and find -exec rm shapes; move hardcoded /tmp fixtures (test-stop-process-group, test-audit-chain-cross-file, test-memory-cli, test-lsp-diagnostics-regression, test-watch-command, test-provider-source-cli, test-issue-providers) under loki_run_tmp_create | tests/test_release_required_ci.py, tests/test-no-tmp-sweep.sh, the listed tests | LOW | each named suite passes; a tie fixture expects rc 1 | merged@2026-09-30T19:19Z | Source: E-87 and E-140 TL reviews (both APPROVE). |
474
+ | E-144 | tests/test-v10-ops.sh hardcodes the live docs/v10/BOARD.md path (line ~589) and md5-checks it, so a concurrent board edit fails it and it breaks the no-home-path rule; point it at a fixture copy under a run-owned temp dir | tests/test-v10-ops.sh | LOW | bash tests/test-v10-ops.sh rc=0 while BOARD.md is edited concurrently; tests/test-no-hardcoded-paths.sh | merged@2026-09-30T19:19Z | Source: E-142 TL review (v10-ops failed 2 checks once on a live board edit, passed on rerun). |
475
+ | E-145 | tests/test-watch-command.sh leaves an orphaned run.sh (bash /tmp/loki-run-*.sh .../test-once/prd.md, reparented to launchd, sleep 300 loop) when the suite is killed by a timeout; two found and stopped by literal PID at 18:44Z (40 and 30 min old). Trap EXIT/TERM in the suite to stop its own recorded child PIDs, and move its /tmp paths under loki_run_tmp_create | tests/test-watch-command.sh | LOW | kill the suite with timeout 20; no orphan survives (check by recorded PID) | building@2026-09-30T19:19Z | Source: pulse ORPHAN_WORKTREE twice. Coordinate with E-143 (same file, /tmp fixture move). |
476
+ | E-146 | structural-checks follow-ups from E-142 review: print a stderr warning when no base ref resolves (today it silently scans only the working tree, so committed violations pass); the added-line pattern ^\+[^+] skips an added line whose content starts with +; drop the unused SC variable in tests/test-structural-checks.sh:9 (SC2034) | scripts/structural-checks.sh, tests/test-structural-checks.sh | LOW | test cases for no-base-ref warning and a ++ added line, red first | merged@2026-09-30T19:19Z | Source: E-142 TL review (APPROVE with notes). |
477
+ | E-147 | tests/test-trust-core-probe-isolation.sh:37 wraps tests/test-trust-core-tests-detect.sh in `timeout 50`; on a loaded CI runner it hit rc=124 after all 9 visible cases passed (main Tests run 36760845105, shard 3/8, SHA 2b0d2e4d; the same SHA passed on train/4 run 36760063079). Measure the inner suite on CI, set the budget from the measurement with margin, and report the case that was running at the kill so a real hang still fails loudly | tests/test-trust-core-probe-isolation.sh, tests/shard-durations.tsv if its row changes | LOW | inner suite under a 3x load stressor passes; a planted hang still fails with the case name | released@2026-09-30T19:22Z | Source: D44 MAIN_RED on 2b0d2e4d (timeout flake). Rerun of the failed job in flight. Released in v10.5.8 (merge 2b0d2e4d is an ancestor of v10.5.8). |
478
+ | E-148 | Review follow-ups: test-stop-process-group.sh still kills by `pkill -f "loki-$PGTEST_TAG"` (pattern kill, forbidden by CLAUDE.md): replace with recorded PIDs or a process-group kill; test-audit-chain-cross-file.sh test 1 reads the real ~/.loki/dashboard/audit (fails on hosts with old tampered data): make it hermetic; E-147 timeout message says "after all cases passed" when there was zero output: say "no PASS output (possible hang before the first case)" | tests/test-stop-process-group.sh, tests/test-audit-chain-cross-file.sh, tests/test-trust-core-probe-isolation.sh | LOW | each suite passes on a host with a tampered ~/.loki audit file; no pkill -f remains | ready@2026-09-30T19:19Z | Source: E-143 and E-147 TL reviews (APPROVE with notes). |
479
+ | E-149 | loki-ts/tests/engine10/modernize/java_capture.test.ts "unitClassesFromGraph (M-04 integration)" times out at bun's 5s default under CI load (5169ms, Coverage run 36764748814 on train/5 1cd5feac; also failed on train/2 and in a local full run): measure, make it cheaper or set an explicit measured timeout; sweep modernize tests over 2.5s | loki-ts/tests/engine10/modernize/*.test.ts | LOW | before/after durations under 3x load; bun test tests/engine10/modernize 0 fail | building@2026-09-30T19:25Z | Source: D44 train/5 red (Coverage). Rerun of the failed job in flight. |
480
+ | S41-10b | Static-first fixed-rules block for the implement and fix briefs (S41-10 card remainder): a byte-identical rules block in the cache-stable prefix, per-task context after it; drive-letter and ~ plan paths filtered like absolute ones | loki-ts/src/engine10/stages/implement.ts, fix.ts (prefix only), loki-ts/src/e10ext/context.ts and tests | MEDIUM | red first: two different tasks produce byte-identical prefix bytes; core net-zero lines | merged@2026-09-30T19:19Z | Source: S41-10 reviews (APPROVE r2, remainder). |
481
+ | S41-20h | Medium-task MINING pass (no task building): shortlist 12 candidate merged PRs whose shape survives the one-file probe (a semantic or signature change in file A that an independently tested caller in file B must match; not helper extraction, parameter threading, moved classes or typing-only files), each with a written one-file-fix attempt run against the upstream tests and its result | eval/loki10/tasks/CANDIDATES.md (new) | MEDIUM | every shortlisted PR has a failing one-file attempt recorded with command and rc | merged@2026-09-30T19:19Z | Source: S41-20b/c/d/e/f: 11 of 16 candidates fell to a reviewer one-file fix; S41-20f built 0. |
480
482
  | D44-A | Green main by construction: scripts/train-promote.sh fast-forwards main only to a train SHA with green Tests, Bun Parity and Coverage; pre-push refuses a push to main unless it is Tier B green, a VERSION-only bump on a green parent, or docs-only (LOKI_D44_EMERGENCY override logged) | scripts/train-promote.sh, .githooks/pre-push, tests/test-train-promote.sh, docs/v10/TRAINS.md | HIGH | bash tests/test-train-promote.sh | building@2026-09-30T18:49Z | Source: D44 item 1. |
481
483
  | D44-B | Pulse RELEASE_CADENCE (green unreleased main commit older than 20 min) and MAIN_RED_BY_MERGE; hourly releases per hour into METRICS.md | scripts/v10-pulse.sh, scripts/metrics-releases-append.py, pulse tests | MEDIUM | the pulse test file plus the metrics script self-test | building@2026-09-30T18:11Z | Source: D44 items 5 and 6. |
482
484
  | D44-C | Structural checks under 10 s each (shard rows, hardcoded paths, registration, doc drift, line budgets) as scripts/structural-checks.sh, run first in Tier A (also on train/** push) and in the local-ci fast tier | scripts/structural-checks.sh, .github/workflows/tier-a.yml, scripts/local-ci.sh, tests/test-structural-checks.sh | MEDIUM | bash tests/test-structural-checks.sh | merged@2026-09-30T18:27Z | Source: D44 item 3; four red mains on 2026-09-30. |
483
485
  | S41-20d | Medium tier growth batch d: 4 new tasks from unused repos under the 2026-09-30 opus criteria (2 behavioral files, not fixed at ref, wrong-fix rejected, solvable from issue, refdiff, provenance) | eval/loki10/tasks/pub-* (new), refdiff, INDEX.md | HIGH | measure-size rc 0 and validate rc 0 on the new tasks | rejected@2026-09-30T18:49Z | Source: D43 item 2 (medium at 12 of 20). |
484
- | S41-20e | Medium tier growth batch e: 4 more tasks, repos disjoint from S41-20d | eval/loki10/tasks/pub-* (new), refdiff, INDEX.md | HIGH | as S41-20d | merged@2026-09-30T18:40Z | Source: D43 item 2. |
486
+ | S41-20e | Medium tier growth batch e: 4 more tasks, repos disjoint from S41-20d | eval/loki10/tasks/pub-* (new), refdiff, INDEX.md | HIGH | as S41-20d | released@2026-09-30T19:22Z | Source: D43 item 2. Released in v10.5.8 (merge 5cdbdc7b is an ancestor of v10.5.8). |
485
487
  | S41-16 | P0: Wall red-on-base is vacuous without python (launch error counted as failed on base) | see docs/v10/SCORECARD-PLAN.md | HIGH | per SCORECARD-PLAN.md card | released@2026-09-28T23:18Z | Source: D41, Architect plan 7f671f5c. Depends on D42. D42 (3) confirmed P0; merges before any wave-1 card touching wall, verify or Seal. Dispatched 21:42Z. r1 55e427ab opus REJECT: not_run never reaches seal (seal.ts:117 ignores not_run, so pass 1 fail 0 not_run 1 seals ALREADY_SATISFIED: a new false verdict); jest/vitest/bun non-zero exit without a parsed count read as red; AttributeError/NameError anywhere counted as repo red; system-interpreter results must be not_run. r2 dispatched 21:58Z. r2 d5bb05bd (seal refuses not_run; per-runner red rules; traceback path under repo; system interpreter not_run); core 4997; opus re-review 22:10Z. opus APPROVE r2 d5bb05bd (seal refuses not_run: real-seal test; receipts byte-stable when not_run 0; per-runner red rules; system interpreter not_run). Merged, dist rebuilt. Follow-up E-125. Released in v10.5.5 (merge 8788d54d is an ancestor of v10.5.5). |
486
488
  | S41-01 | Harness: accept partial-stream cost, allowlist LOKI_E10_CASCADE, new row fields | see docs/v10/SCORECARD-PLAN.md | HIGH | per SCORECARD-PLAN.md card | released@2026-09-30T18:50Z | Source: D41, Architect plan 7f671f5c. Depends on none. Dispatched 21:41Z. WIND-DOWN 2026-09-28: built at 68d1fc28 on slice-S41-01 (test-harness.sh 126/0; red vs its merge-base 0fe549a0 119/7, the 7 S41-01 legs; positive control provider_cost on e98f default-r1 pub-werkzeug-3121 gives 0.37101 with partial 0.0628). Sonnet TL APPROVE on content (af2109d7): partial-stream cost, never-silently-0, 7-knob allowlist, row fields, repriced files beside untouched originals. The 2 nocascade nulls are killed sessions with no partial-usage file and must stay null (E-98e engine gap). NOT MERGED: (1) rebase onto main conflicts in harness.py V10_ENGINE_ENV_ALLOWLIST (S41-09 and S41-11 added LOKI_E10_PREFIX and LOKI_E10_TRIM), keep one of each and rerun test-harness.sh; (2) SCORECARD-PLAN tags the card HIGH, so D12 needs an opus review before merge (this row said MEDIUM). WEDNESDAY STEP 1. Released in v10.5.7 (merge 9e815035 is an ancestor of v10.5.7). |
487
489
  | S41-02 | Scorecard tool: per-tier completion, cost per completed, p50, raw vs loki, into METRICS.md | see docs/v10/SCORECARD-PLAN.md | LOW | per SCORECARD-PLAN.md card | released@2026-09-28T22:26Z | Source: D41, Architect plan 7f671f5c. Depends on none. Dispatched 21:41Z. Built 42c0d88d (21/0; null-cost mutation flips n/a red to green, caught); replay reproduces E-98f exactly; EV-15 medium red on all 3 columns. Tech Lead review 21:51Z. Tech Lead APPROVE (definitions match section 2; replayed all 3 E-98f arms exactly). Merged. Released in v10.5.3 (merge a4cdb78f is an ancestor of v10.5.3). |
@@ -501,7 +503,7 @@ set is declared to avoid overlap with those and with each other.
501
503
  | S41-17 | Scorecard 95% intervals: bootstrap (seeded, 10000 resamples, per-task clustered over reps) CIs on completion, cost per completed and p50 for each arm and for the Loki minus raw difference; a mark is green or red only when the difference CI excludes 0, else inconclusive, and inconclusive blocks the tier verdict | eval/loki10/scorecard, eval/loki10/test-scorecard.sh | HIGH | bash eval/loki10/test-scorecard.sh | released@2026-09-30T18:50Z | Source: D43 item 2. Deterministic seed; a fixture where arms differ by noise only must read inconclusive, a clear gap must read green or red. Stdlib only. WIND-DOWN 2026-09-28: built at f3f1d985 on slice-S41-17 (test-scorecard.sh 43/43; new cases a to e are 27 pass 16 fail on the old scorecard). Seeded (41) 10000-resample percentile bootstrap clustered by task; marks need the difference CI strictly outside 0; headline cost uses the ratio against 0.5; over 2.5 percent undefined replicates downgrades to inconclusive. Not benchmarked at real-eval scale. NEXT: opus review (HIGH, flip gate), then merge. Released in v10.5.7 (merge 446a1c7f is an ancestor of v10.5.7). |
502
504
  | S41-18 | scorecard-run.sh resume: before each arm and rep, read that rep's --out file and pass the harness only tasks with no status ok row; a rerun after an interrupt or auth stop finishes the missing rows and never repeats done ones; auth_guard still runs before every rep | eval/loki10/scorecard-run.sh, eval/loki10/test-scorecard-run.sh | MEDIUM | bash eval/loki10/test-scorecard-run.sh | released@2026-09-30T18:50Z | Source: D43 item 4. Do not change auth_guard logic or harness.py (S41-01 owns it). Test with the stub arm: kill mid-rep, rerun, assert each task row appears exactly once per rep. WIND-DOWN 2026-09-28: built at 66cc1882 on slice-S41-18 (scorecard-run.sh resume; test-scorecard-run.sh 11/11, legs a to d red on the old script then green). LEFT: leg (a) seeds via a clean run, not a real SIGTERM mid-rep; no assertion for a capped (timeout) row; missing_tasks tier filter does not fail loud on an invalid tier; an empty tier now exits 0 instead of erroring. NEXT: close those 4, then TL review. Released in v10.5.7 (merge cad4615f is an ancestor of v10.5.7). |
503
505
  | S41-19 | Stage wall-clock profile: derive per-stage seconds (intake, plan, wall, implement, verify, fix, seal) per run from the preserved E-98f engine10 journals, publish a per-arm p50 and p90 table in METRICS.md and name the slowest stage | eval/loki10/stage-profile.py, docs/v10/METRICS.md | MEDIUM | python3 eval/loki10/stage-profile.py --self-test | released@2026-09-30T18:50Z | Source: D43 item 3. Read only on run data. If the journals lack stage timestamps, say so with evidence and propose the minimal event field instead of guessing. The cut slice is cut from its result. WIND-DOWN 2026-09-28: built at e06fa612 on slice-S41-19 (eval/loki10/stage-profile.py with --self-test, METRICS section over all 63 E-98f runs). Result: implement is 72.5 to 85.7 percent of wall-clock in every arm; wall is 23 to 29 percent and hits its own 90s timeout in 9/21 (default) and 11/21 (nocascade) runs, directly on the critical path, which clears D42 item 2's 15 percent revival bar for S41-14. NEXT: TL review and merge, then CTO call on reopening S41-14 (wall off the critical path) and an implement token/turn cut. Released in v10.5.7 (merge cf4360ed is an ancestor of v10.5.7). |
504
- | S41-20a | Medium tier growth, batch a: add 5 new pub-* medium tasks from pallets repos (click, flask, jinja, itsdangerous, markupsafe) meeting the D30 medium criteria in INDEX.md | eval/loki10/tasks/pub-* (new dirs only) | HIGH | measure-size.py and validate rc=0 on the new tasks; RED at base and GREEN with the merged upstream fix for each | merged@2026-09-30T18:27Z | Source: D43 item 2 (medium to 20). Return the INDEX.md lines in the report, do not edit INDEX.md (merge appends). No task whose issue is already present. WIND-DOWN 2026-09-28: 2 of 5 tasks built and self-verified at d8d8d41e on slice-S41-20a: pub-flask-6093 (fix flask#6096) and pub-click-3449 (fix click#3533), RED rc=1, GREEN rc=0, deletion mutant red, no-op baseline not completed; INDEX lines in the engineer report (not yet in INDEX.md). Stopped mid-screen: flask#5736 (asserts span 2 test files), flask#5526, itsdangerous#151. Rejected: click#2836 (emoji in issue body). NEXT: opus review of the 2 tasks, append INDEX lines, then resume the 3 candidates. |
506
+ | S41-20a | Medium tier growth, batch a: add 5 new pub-* medium tasks from pallets repos (click, flask, jinja, itsdangerous, markupsafe) meeting the D30 medium criteria in INDEX.md | eval/loki10/tasks/pub-* (new dirs only) | HIGH | measure-size.py and validate rc=0 on the new tasks; RED at base and GREEN with the merged upstream fix for each | released@2026-09-30T19:22Z | Source: D43 item 2 (medium to 20). Return the INDEX.md lines in the report, do not edit INDEX.md (merge appends). No task whose issue is already present. WIND-DOWN 2026-09-28: 2 of 5 tasks built and self-verified at d8d8d41e on slice-S41-20a: pub-flask-6093 (fix flask#6096) and pub-click-3449 (fix click#3533), RED rc=1, GREEN rc=0, deletion mutant red, no-op baseline not completed; INDEX lines in the engineer report (not yet in INDEX.md). Stopped mid-screen: flask#5736 (asserts span 2 test files), flask#5526, itsdangerous#151. Rejected: click#2836 (emoji in issue body). NEXT: opus review of the 2 tasks, append INDEX lines, then resume the 3 candidates. Released in v10.5.8 (merge 03db8ab4 is an ancestor of v10.5.8). |
505
507
  | S41-20b | Medium tier growth, batch b: add 5 new pub-* medium tasks from attrs, more-itertools, packaging, humanize, faker meeting D30 | eval/loki10/tasks/pub-* (new dirs only) | HIGH | as S41-20a | merged@2026-09-30T18:40Z | Source: D43 item 2. Same rules as S41-20a. WIND-DOWN 2026-09-28: 3 of 5 tasks built at 881126a0 on slice-S41-20b: pub-attrs-1327 (fix attrs#1328), pub-packaging-1162 (fix packaging#1163, hidden test trimmed, pins pytest<9), pub-humanize-103 (fix humanize#110), each RED rc=1, GREEN rc=0, deletion mutant red; D30 no-op baseline NOT run for any. INDEX lines in the engineer report. Stopped: faker#2206 (fix #2211) venv installed, RED/GREEN not run. more-itertools has no 2-source-file fixes (rejected). NEXT: run the no-op baseline on the 3, opus review, append INDEX lines, then finish faker#2206. |
506
508
  | S41-20c | Medium tier growth, batch c: add 5 new pub-* medium tasks from werkzeug, jsonschema, and other pure-Python repos with pytest suites (for example marshmallow, httpx, pluggy) meeting D30 | eval/loki10/tasks/pub-* (new dirs only) | HIGH | as S41-20a | rejected@2026-09-30T18:27Z | Source: D43 item 2. Same rules as S41-20a. WIND-DOWN 2026-09-28: 1 of 5 tasks built at f6ea1d02 on slice-S41-20c: pub-httpx-2536 (fix httpx#2543; hidden test trimmed to test_url_query_encoding), RED 1 failed, GREEN 1 passed, deletion mutant red; D30 no-op baseline NOT run. Stopped: marshmallow#2170 (fix #2792, 3 source files) cloned only. jsonschema, pluggy, most httpx fixes are single-file (rejected); httpx#1850 needs Python below 3.13 (cgi). NEXT: no-op baseline, opus review, INDEX line, then marshmallow#2170. Medium tier after 20a/b/c: 7 plus 6 candidates = 13, still short of 20. |
507
509
  | E-98b | a spec_conflict implement exit still runs verify and fix; receipt keeps SPEC_CONFLICT | loki-ts/src/engine10/machine.ts, loki-ts/tests/engine10/machine*.test.ts | HIGH | fake-stage test red on main; core +3 max | released@2026-09-28T21:01Z | Source: MEDIUM-ANALYSIS.md. Dispatched 19:40Z sonnet; opus review. opus APPROVE 214b8dd2 (seal stays SPEC_CONFLICT through verify and fix; empty diff fails verify, no false pass); merged 97b80ca4; machine+budget 26/0. Released in v10.5.0 (merge 97b80ca4 is an ancestor of v10.5.0). |
@@ -1530,3 +1530,17 @@ The swarm is stopped: .loki/V10-STOP exists, the loop has no wake-ups, and the c
1530
1530
  - train/5 staging (S41-20b-r2, E-115, E-142, S41-10, dist rebuild): local bun test 2581 pass 0 fail; blocked only by an E-142 false positive (dash/emoji scan flagged a byte-exact upstream refdiff and dist sourcesContent); exclusion fix 2e541b6a in TL review.
1531
1531
  - Rejections this hour, each with a reproduced attack: M-15 r3 and r4 (conformance bypass via pytest.toml, then via stdlib-shadowing modules), E-125 r4 (-ra -q addopts false not_run; forgeable exit via pytest.exit), D44-A r2 (hook refused a replay of the real v10.5.7 bump; flaky fixture), EV-12E (lg- task could omit tier), S41-10 r1 (empty brief). Reworks committed: M-15 8097d44a, E-125 018a6e06, D44-A d956294f; opus re-reviews held while opus share is 38 percent (D13 cap 30).
1532
1532
  - Medium tier: 12 on local main. S41-20d 0/4 and S41-20f 0 kept; S41-20g markdown-1390 needs one authored test; S41-20h mining shortlisted 2 (platformdirs#540, flask#5736), being built as S41-20i.
1533
+
1534
+ ## 2026-09-30T19:20Z (Chief of Staff and Release Manager)
1535
+ - v10.5.8 released at 346577f9 from 2b0d2e4d after main's own Tests rerun passed (run 36760845105 completed success 19:07:16Z; Bun Parity and Coverage success); Release run in flight, watcher armed.
1536
+ - train/5 pushed at 1cd5feac (S41-20b-r2, E-115, E-142, S41-10, S41-20g markdown-1390, E-144/E-146, mining notes, v10.5.8 merged): shellcheck rc=0, structural all passed, test-structural-checks 11/0, harness 130/0, scorecard 67/0, typecheck rc=0. Tier B watcher armed.
1537
+ - train/6 staging on local main: E-147, E-143, S41-10b, EV-12E, S41-20j notes (validate rc=0, structural all passed).
1538
+ - Medium tier: 13 of 20 on local main (counts line and disk agree, 13 task.json with tier medium). Three mining passes (S41-20h, S41-20i, S41-20j) screened about 30 PRs and kept 0: independent reviewers keep writing one-file fixes. Kept rule: a route that works only by import-time patching or injecting another module is contrived and does not fail criterion (b) (packaging-1162, markdown-1390). The D43 decision run stays blocked on the 20-task floor; mining continues with one engineer.
1539
+ - Opus share 40 to 50 percent this hour (D13 cap 30) from the HIGH review rounds on M-15, E-125 and D44-A; their next opus re-reviews are held until the share falls.
1540
+
1541
+ ## 2026-09-30T19:45Z (Chief of Staff and Release Manager)
1542
+ - Releases this hour: v10.5.8 (346577f9, verified: npm 10.5.8 gitHead 346577f9) and v10.5.9 (2c7685b7 from green train/5 1cd5feac; Release run finishing). train/5 Coverage went red once on a timing flake (java_capture M-04 test 5169ms against bun's 5s default; rerun success 19:29:17Z); guard E-149 merged (explicit 20s timeout on the five real-JVM tests, proven by a 1 ms mutation).
1543
+ - train/6 staging on local main (E-143, E-144/146, E-145, E-147, E-148, E-149, S41-10b, EV-12E, pub-dotenv-661, dist rebuilt): local gate so far shellcheck rc=0, structural all passed, harness 150/0, scorecard 67/0, changed suites rc=0, typecheck rc=0; full bun test running.
1544
+ - DECISION NEEDED (founder or CTO) 1, medium tier: 14 of 20. Six mining passes screened about 90 merged PRs and kept 2. In small Python libraries a bug fix is almost always one source file; two-file PRs are refactors or new APIs whose tests name the new symbol. Options: (a) run a D43 pilot now on the 14 medium tasks (not decision-grade, surfaces harness cost and failures), keep mining at one engineer; (b) allow authored issue-stated tests more broadly to close natural one-file routes; (c) widen the pool beyond small Python libraries (larger apps, other languages the harness can run). Default if no answer: (a) is NOT started (it spends provider budget with an uncalibrated governor); mining continues at one engineer.
1545
+ - DECISION NEEDED 2, D34 large-over-medium rule: EV-12F-a's three werkzeug large tasks (267, 468, 509 added lines) measure below pub-faker-2206 (declared medium, 1032 added lines, mostly word-list data), so the D34 gate "large must measure above the largest medium" fails. Options: count data-only lines (string literal lists) out of measure-size, re-tier pub-faker-2206, or change the rule. EV-12F-a held until decided. Its builder also excluded eval/loki10/tasks/*/hidden/** from the emoji scan because verbatim upstream tests contain emoji and editing them breaks the sha256 freeze; that exclusion needs a TL review.
1546
+ - Opus share 57 percent over the last hour (D13 cap 30): HIGH re-reviews held: E-138 (77 min), E-125 r5, D44-A r3, M-15 r5, plus EV-12F-a when unblocked.