diff --git a/ROADMAP.adoc b/ROADMAP.adoc index 4fde26c..a3f588a 100644 --- a/ROADMAP.adoc +++ b/ROADMAP.adoc @@ -75,14 +75,14 @@ V-lang adapter migration complete (0 `.v` files). Grade C achieved 2026-04-25. === v1.0.1 — Adapter Migration Recovery (P0, In Progress) * [x] Remove remaining V-lang adapters across `cartridges/` (confirmed 0 `.v` files 2026-04-25 — cleanup completed 2026-04-12) -* [x] Ensure every cartridge has `cartridge.json` metadata (all 112 cartridges covered 2026-04-25) -* [x] Ensure every cartridge has `mod.js` tool handlers (all 112 cartridges covered 2026-04-25) -* [ ] Re-run cartridge matrix build/tests and update `TEST-NEEDS.md` with current evidence -* [ ] Refresh repo documentation claims after migration closure (counts, completion text, handover docs) +* [x] Ensure every cartridge has `cartridge.json` metadata (all 115 cartridges covered, re-verified 2026-04-30) +* [x] Ensure every cartridge has `mod.js` tool handlers (all 115 cartridges covered, re-verified 2026-04-30) +* [x] Re-run cartridge matrix build and update `TEST-NEEDS.md` with current evidence (build count refreshed 2026-04-30 — 111/115 cartridges have `.so`; pending: `database-mcp`, `echidna-llm-mcp`, `lang-mcp`, `orchestrator-lsp-mcp`. Test re-run deferred to next sweep.) +* [x] Refresh repo documentation claims after migration closure — counts, completion text, handover docs (PR #40 + this re-measurement PR cover the canonical doc surfaces; cartridge count is now 115 across all surfaces) === v1.1.0 — JS Dispatch + Gateway Sidecar -JS cartridge dispatch (the large remaining gap — 99 of 106 cartridges use `mod.js`, not Zig `.so`): +JS cartridge dispatch (gap closed substantially since the original measurement — as of 2026-04-30, 4 of 115 cartridges still use `mod.js` not Zig `.so`: `database-mcp`, `echidna-llm-mcp`, `lang-mcp`, `orchestrator-lsp-mcp`): * [x] `BojRest.JsInvoker` — shells out to `deno run mod.js` per invocation (Phase 1: fork-per-call, ~200 ms cold-start) * [x] Router dispatch branch: if `cart["ffi"]` key present → `Invoker` (Zig path); else → `JsWorkerPool` (Deno pool path) diff --git a/TEST-NEEDS.md b/TEST-NEEDS.md index 0ed91c4..f15ccef 100644 --- a/TEST-NEEDS.md +++ b/TEST-NEEDS.md @@ -121,6 +121,6 @@ Grade B requires: - **E2E tests are Deno-gated** — tagged `@tag :e2e` and skip cleanly if `deno` is absent. CI must install Deno for E2E coverage. - **FFI/Zig tests** are not in this suite — they run via `zig test` in `ffi/zig/`. -- **112 cartridges loaded** from `cartridges/` as of 2026-04-25. +- **115 cartridges loaded** from `cartridges/` as of 2026-04-30 (111 with `.so` built; the 4 without are `database-mcp`, `echidna-llm-mcp`, `lang-mcp`, `orchestrator-lsp-mcp`). - **Panic-attack pre-commit hook** runs `panic-attack assail` — check `PANIC-ATTACK.a2ml` for current Clade classification and any open findings. diff --git a/TOPOLOGY.md b/TOPOLOGY.md index e64ebbf..bb554e1 100644 --- a/TOPOLOGY.md +++ b/TOPOLOGY.md @@ -1,7 +1,7 @@ # SPDX-License-Identifier: PMPL-1.0-or-later # TOPOLOGY.md — BoJ Server Component Matrix # -# Updated 2026-04-25. 112 cartridges across 6 tiers. +# Updated 2026-04-30. 115 cartridges across 6 tiers (111 with `.so` built, 4 pending). ## Ports diff --git a/docs/ARCHITECTURE.md b/docs/ARCHITECTURE.md index 288bf03..ae765db 100644 --- a/docs/ARCHITECTURE.md +++ b/docs/ARCHITECTURE.md @@ -135,8 +135,10 @@ The `mod.js` files serve as behavioural reference implementations for what each cartridge's Zig FFI symbols must produce. They are **transitional** — as each cartridge's `.so` is compiled and verified, the Elixir Router switches to the Zig FFI path automatically (presence of `"ffi"` key in `cartridge.json` controls -which path is taken). Once all 112 cartridges have verified `.so` builds, -the Deno pool is retired. +which path is taken). Once all 115 cartridges have verified `.so` builds, +the Deno pool is retired. (As of 2026-04-30: 111/115 have `.so`; 4 +pending — `database-mcp`, `echidna-llm-mcp`, `lang-mcp`, +`orchestrator-lsp-mcp`.) **Dispatch selector (BojRest.Router):** ```elixir @@ -206,10 +208,14 @@ launch-scaffolder realign → re-applies standards (ADR-0006 ABI, spdx header, schema version) ``` -All 112 cartridges have the scaffold. Status: -- **1 complete** (boj-health): Zig source compiled, `.so` verified, in production -- **111 in progress**: Zig source present and substantial (100–1,260 lines each), - `.so` not yet compiled — transitional `mod.js` in use +All 115 cartridges have the scaffold. Status (re-measured 2026-04-30): +- **111 with `.so` built**: Zig source compiles cleanly, artefact present + under `cartridges//ffi/zig-out/lib/lib.so`, dispatched via + the Zig FFI path (`cartridge.json` has the `"ffi"` key). +- **4 not yet building**: `database-mcp`, `echidna-llm-mcp`, `lang-mcp`, + `orchestrator-lsp-mcp` — Zig source present but `just build` doesn't + emit a `.so` for these; transitional `mod.js` (Deno fork-per-call) + remains the dispatch path until they build cleanly. > **Note:** `tools/cartridge-minter/` exists but uses Node.js (banned language). > The `launch-scaffolder` is the canonical tool; cartridge-minter is a legacy artefact. diff --git a/docs/READINESS.md b/docs/READINESS.md index 5a1972e..fa91716 100644 --- a/docs/READINESS.md +++ b/docs/READINESS.md @@ -72,7 +72,7 @@ component's state **within its home context only** unless noted. | Catalogue ABI (Idris2) | C | `alpha-stable` | Type-checks with `%default total`. 4 `believe_me` (down from 31). Deep annotation complete. Dogfooded for 4+ weeks. | None — promoted to C. | 2026-05-25 | | Catalogue FFI (Zig) | C | `alpha-stable` | Builds clean. 178 core tests pass. Deep annotation complete. Dogfooded for 4+ weeks. | None — promoted to C. | 2026-05-25 | | C Headers (generated) | D | `alpha-unstable` | Generated, matches Idris2 encodings. Not tested via a C consumer. | Real C consumer + ABI round-trip test | 2026-04-18 | -| Cartridge fleet (106) | C | `alpha-stable` | 103/106 shared libs built. 106/106 cartridges have `README.adoc`. 113 FFI tests pass. Deep annotation complete (393 per-directory READMEs). Dogfooded for 4+ weeks. | None — promoted to C. | 2026-05-28 | +| Cartridge fleet (115) | C | `alpha-stable` | 111/115 shared libs built (re-measured 2026-04-30; 4 pending: `database-mcp`, `echidna-llm-mcp`, `lang-mcp`, `orchestrator-lsp-mcp`). README.adoc / FFI test counts / per-directory README counts not re-verified in this sweep — last documented values were 106/106, 113 tests, 393 READMEs. Dogfooded for 4+ weeks. | None — promoted to C; full re-measurement (READMEs, FFI tests, per-directory annotation) deferred to a separate sweep. | 2026-04-30 | | Zig adapter layer (per cartridge) | C | `alpha-stable` | All adapters are Zig-only. V-lang files eliminated. Deep annotation complete. Dogfooded for 4+ weeks. | None — promoted to C. | 2026-05-25 | | Dynamic Loader | D | `alpha-unstable` | Hash verification, mount/unmount. 14 loader tests pass. | Use in anger on multi-cartridge live reload | 2026-04-18 | | Guardian module | D | `alpha-unstable` | Resource-aware failure tolerance. 12 tests pass. | Fault-injection campaign | 2026-04-18 |