|
1 | 1 | # LeanKG Task Tracker |
2 | 2 |
|
3 | | -**Last synced:** 2026-09-14 — v4.11.2 **selfhost-validated wave**: S1 executed for real (dynamic HTTP server + `llama-server` bge-small sidecar over this repo's own index: 9,025 elements / 8,989 vectors / coverage 0.9984; all five gates green, memory survives restart). **FR-SELF-01 → DONE, FR-SELF-02 → IN_PROGRESS.** Four dogfood defects fixed failing-first: local embed text budget (chunker v2), per-item provider-failure fallback (a poison element no longer aborts a run), `leankg gc` implemented to make doctor's own hint real (5,810 dangling edges purged live; orphan check FAIL→PASS), held-lock doctor probe + PID stamping, + two test-hermeticity fixes. Test-layer policy codified (AGENTS + PRD §6): unit in-process+fast, real calls env-gated, **benchmarks never in CI**. Evidence: [§v4.11.2](prd.md#v4112-selfhost-validated--the-self-host-ran-on-itself-every-defect-it-found-is-fixed-2026-09-14). |
| 3 | +**Last synced:** 2026-09-14 — v4.11.2 wave two (same branch as the S1 record): the loop's first S3 step ran live — `games/` parent registered T0 (zero eager), child `the-survival` indexed+embedded (132/132, Coverage 1.0), portfolio fan-out attributed per-child, vanished demo registrations pruned. Two more dogfood defects fixed failing-first: dense content exceeded the 1000-rune budget (523 tokens/1000 runes on Godot/TS) → `embedFiles` now shrink-retries per item (repo's own 14 poison items embedded too → **Coverage 1.0 everywhere**); and `leankg-embed <verb> <dir>` silently ignored the positional dir (embedded the CWD store — the #370 footgun in the other binary) → `bindPositional` for all five verbs. **FR-SELF-01 DONE, FR-SELF-02 running (6 defects fixed), FR-SELF-03 running (first parent+child live).** Module-to-root relocation scoped and HELD as issue #403 (owner: after the parallel refactor waves land). |
4 | 4 | **Previous syncs:** v4.11.1 ship-surface (the deploy/brand/module work FR-SELF-01 was gated on — Docker/Render service, `go/vX.Y.Z` mirror, `serve --ui` `/health`); v4.11.0 self-host dogfood loop anchored (§3.10 + M10 + runbook, FR-SELF-01..04 added). |
5 | 5 | **SoT pairing:** narrative + ACs live in [`docs/prd.md`](prd.md); statuses live here. |
6 | 6 | **Status legend:** `IN_PROGRESS` (being worked now) · `TODO` (backlog, ordered) · `DONE` (implemented + verified) · `BLOCKED` (needs external input) · `WONT_DO` (explicitly cancelled). |
|
11 | 11 |
|
12 | 12 | | Status | Count | |
13 | 13 | |--------|------:| |
14 | | -| IN_PROGRESS | 2 (FR-ZCP-01; **FR-SELF-02** — the dogfood loop is running: first wave = 4 engine fixes from the v4.11.2 self-host run) | |
15 | | -| TODO | 38 (9 live + 26 carry-forward + FR-GO-DASH #371 + FR-SELF-03..04) | |
| 14 | +| IN_PROGRESS | 3 (FR-ZCP-01; **FR-SELF-02** — 6 engine defects found+fixed by the loop; **FR-SELF-03** — first parent `games/` + child `the-survival` live) | |
| 15 | +| TODO | 37 (9 live + 26 carry-forward + FR-GO-DASH #371 + FR-SELF-04) | |
16 | 16 | | DONE | 10 (FR-SELF-01: self-host bootstrapped + all five S1 gates verified live, v4.11.2) | |
17 | | -| Open work | 42 (36 archived-inventory + 3 Go-rewrite slices pending PR #370 merge + FR-GO-DASH #371 + 2 remaining M10 loop items; FR-SELF-02 IN_PROGRESS, FR-SELF-01 DONE) | |
| 17 | +| Open work | 42 (36 archived-inventory + 3 Go-rewrite slices pending PR #370 merge + FR-GO-DASH #371 + FR-SELF-04; FR-SELF-01 DONE, FR-SELF-02/03 IN_PROGRESS) — relocation of the Go module to the repo root tracked as #403 (held) | |
18 | 18 |
|
19 | 19 | **Inventory note (ID-level accounting):** the archived tracker holds **40 open inventory items** (35 master-table `NOT_DONE`/`PENDING`/`PARTIAL`/`OPEN` IDs + 5 `FR-HEA-*` section-table rows). All 40 are accounted for below: FR IDs appear as named rows; each paired `US-*` tracks with its FR (the archive itself pairs them `US-X / FR-X` as one work item); `FR-ZG-01..05` + `US-ZG-01..05` + `FR-B05` are superseded inside the live `FR-ZCP-*` rows (Supersedes column); `FR-HEA-05` is DONE (v4.0.0 §1 cutover). `FR-ZCP-09/10/11/12/13` are **new in v4.1.x–v4.3.0** (no archive IDs). Row-level open work = 1 IN_PROGRESS + 9 live + 26 carry-forward = 36. (The 26 carry-forward rows cover 35 archived open IDs: 3 rows pair multiple US stories with their FR; the inventory not… |
20 | 20 |
|
|
29 | 29 | | M7 — Embedding correctness | 1 | — | **DONE** (FR-ZCP-11 closed by #279: pinned catalog with 40-hex revisions and query/document prefixes, whole-identity `ModelStamp` incl. `chunker_version`, hard rebuild guard on both write paths **and** the read path, 3-signal detection, per-file atomic replace + truncation accounting, watcher reconciliation. Remaining: single-flight indexing — see §6b remainders) | |
30 | 30 | | M8 — Measured simplicity | 1 | — | **DONE** (FR-ZCP-12 T1 error catalog c5b4b991; T2 TTFV gate #280 — measured 21.6 s cold against a 300 s budget in CI; T3 superseded by v4.3.1's CI-enforced one-tool invariant) | |
31 | 31 | | M9 — Three tools + dual backend | 4 | — | **IN_PROGRESS** (FR-3T-01/02/03 DONE; FR-3T-04 live validation complete on this repo — 581 files, 9522 vectors, L1/L2/L3 verified; PR #284 merged (v4.3.x)) | |
32 | | -| M10 — Self-host dogfood loop | 4 | — | **IN_PROGRESS** (FR-SELF-01 **DONE** v4.11.2 — self-host live: 9,025 elements / 8,989 vectors, all five S1 gates green; FR-SELF-02 running (4 dogfood defects fixed); FR-SELF-03..04 TODO behind it — see §M10 below) | |
| 32 | +| M10 — Self-host dogfood loop | 4 | — | **IN_PROGRESS** (FR-SELF-01 **DONE** v4.11.2; FR-SELF-02 running — 6 dogfood defects fixed; FR-SELF-03 running — first portfolio parent+child verified live (Coverage 1.0, per-child attribution, zero eager indexing); FR-SELF-04 is the steady state — see §M10 below) | |
33 | 33 | | M-GO — Go engine rewrite (#365) | 3 | — | **IN_PROGRESS** (FR-GO-W1 core DONE on feat/go-rewrite: store/core/index/mcp/rest + live smoke; FR-GO-EMBED DONE: leankg-embed binary + stamp guards + NDJSON; FR-GO-MEM DONE: full-markdown memory + banks adapter; v4.6.0: ALL waves landed (W2 watcher/writer, W4 pgvector, W5 ConnectRPC+auth, session, graph verbs, goldens, benchmarks + executed Rust-vs-Go A/B REPORT) and the Rust tree REMOVED — deferred ledger in docs/prd.md) | |
34 | 34 | | FR-GO-LANGS | Lazy language wave (v4.7.0): 13-language registry + tstree/astgrep/lsp tiers + java/kotlin/swift/objc/dart extractors | **DONE** on feat/go-rewrite (objc/dart tree-sitter grammar gap documented) | |
35 | 35 | | FR-GO-DASH | #371: port the ui-v2 dashboard data API — legacy `/api/*` (11 endpoints) or rebuild ui-v2 against `/api/v1/*`; today the SPA fallback answers those calls with `index.html`, so the embedded dashboard loads no data | 2026-09-11 | **TODO** — ledger row `web api+ui` corrected to PARTIAL in v4.7.1 | |
|
60 | 60 | |----|-------|----------|--------|----------------------| |
61 | 61 | | FR-SELF-01 | Bootstrap the self-host: dynamic `leankg serve --http :9699 --rest :9700 --ui :9701 --memory --embed-provider local` over this repo (9700/9701 — the live onegw gateway owns 8080); index + embed (pinned `LEANKG_EMBED_*` identity) + memory live | **P0** | **DONE 2026-09-14 (v4.11.2)** — sidecar: `llama-server` bge-small-en-v1.5 f16 GGUF @ 127.0.0.1:8085; store: 9,025 elements / 19,662 edges / 8,989 vectors (coverage 0.9984, chunker-v2 stamp `ea104dace…`); gates verified live: `/health` ×3, L1/L2/L3 with provenance (L3 = cosine on real vectors), retain→recall survives restart, `doctor --deep` 0-fail after the wave's `leankg gc` run | exit criteria all met — evidence in [§v4.11.2](prd.md#v4112-selfhost-validated--the-self-host-ran-on-itself-every-defect-it-found-is-fixed-2026-09-14) | |
62 | 62 | | FR-SELF-02 | Build LeanKG with LeanKG: every exported-symbol change informed by `impact`/`callers`, every close by tested-by/traceability, every session-open by `session_recall`; wrong answers filed as engine defects, fixed failing-test-first against this repo's data, re-indexed, re-asked | **P0** | **IN_PROGRESS 2026-09-14** — the loop is producing: first wave fixed 4 defects found by running the pipeline/doctor on this repo's own data (embed 512-token budget + per-item provider-failure fallback; `leankg gc` implemented to make doctor's own hint real — purged 5,810 dangling edges live; held-lock probe + PID stamps; sidecar-test port hermeticity) | PRs cite graph evidence; dogfood findings enter this tracker; zero regressions attributed to missing graph context | |
63 | | -| FR-SELF-03 | Scale to nested-repo parents: add small parents one repo at a time via registry + `LEANKG_PROJECT_DIRS` (T0 manifest, T1 hot-set cap 8, zero eager indexing). Hard guard: never bulk-index the `freepeak` root (99,574 files, multi-GB store) | P1 | TODO (gate: S1+S2 smooth) | Portfolio fan-out attributes per child; per-child freshness honest; adding a repo = one register/index, no restart | |
| 63 | +| FR-SELF-03 | Scale to nested-repo parents: add small parents one repo at a time via registry + `LEANKG_PROJECT_DIRS` (T0 manifest, T1 hot-set cap 8, zero eager indexing). Hard guard: never bulk-index the `freepeak` root (99,574 files, multi-GB store) | P1 | **IN_PROGRESS 2026-09-14** — first increment verified: `games/` registered T0 (portfolio answered honestly `n/a` for the unindexed parent); `the-survival` child promoted (index 132 elements → embed Coverage 1.0 after the shrink-retry fix); `portfolio` query attributed hits to the child, no restart anywhere. Next increments: one child at a time; keep doctor honest | Portfolio fan-out attributes per child; per-child freshness honest; adding a repo = one register/index, no restart | |
64 | 64 | | FR-SELF-04 | Keep building, keep fixing: the loop is the end state — every wave surfaces defects, engine fixes ship via release-please, this PRD + tracker stay the status ledger | **P0** | TODO (steady state after S1–S3) | Dogfood-found defect rate > 0 with fix rate keeping pace; no milestone regresses; self-host up whenever development happens | |
65 | 65 |
|
66 | 66 | The deploy/brand/module surface FR-SELF-01 was gated on shipped as `REL-SHIP-01..04` (§Done). |
@@ -139,7 +139,7 @@ The deploy/brand/module surface FR-SELF-01 was gated on shipped as `REL-SHIP-01. |
139 | 139 | | REL-SHIP-05 | The deploy verified **live**, not just in a container: Render rebuilt from the restored Dockerfile after two consecutive `build_failed` deploys | `dep-dajp5slg1s2s73cln2o0` → `live`; <https://leankg.onrender.com> `/` 200 shell, `/health` `{"ok":true}`, `/favicon.svg` the new mark, `/api/index/status` → ~4.6k elements / ~14.7k relationships (rebuilt from the tree each image build, so the counts move), `/api/search` + `/api/graph/clusters` answering | |
140 | 140 | | REL-SHIP-06 | `go/README.md` (the pkg.go.dev module page) rewritten — it was the W1 slice note: shipped backends listed as deferred, a nonexistent `internal/ports/`, "7 packages" against 54, a moved doc link, Rust described as still maintained | Every claim read back against the code; both `go install` lines run for real | |
141 | 141 |
|
142 | | -*Last updated: 2026-09-14 (v4.11.1 — ship-surface wave: `REL-SHIP-01..04` closed (Go `Dockerfile` + Render rebuild, `serve --ui` `/health`, `go/vX.Y.Z` module tag + `go/v0.31.3`, brand mark + README badges/claims), which satisfies the FR-SELF-01 gate; running the self-host over this repo is the next action. Prior wave: v4.11.0 — self-host dogfood loop anchored, FR-SELF-01..04 / M10 added)* |
| 142 | +*Last updated: 2026-09-14 (v4.11.2 selfhost-validated + wave two: S1 all gates green, 6 dogfood defects fixed failing-first (embed budget/shrink, poison-item fallback, `leankg gc`, held-lock probe, sidecar-test + verb-positional hermeticity), Coverage 1.0 on both live stores, first S3 parent+child verified; module-to-root held as #403. Prior wave: v4.11.1 ship-surface, REL-SHIP-01..06)* |
143 | 143 |
|
144 | 144 | ## Repo hygiene (non-PRD) |
145 | 145 |
|
|
0 commit comments