Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 5 additions & 5 deletions ROADMAP.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
2 changes: 1 addition & 1 deletion TEST-NEEDS.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.
2 changes: 1 addition & 1 deletion TOPOLOGY.md
Original file line number Diff line number Diff line change
@@ -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

Expand Down
18 changes: 12 additions & 6 deletions docs/ARCHITECTURE.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -206,10 +208,14 @@ launch-scaffolder realign <name>
→ 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/<name>/ffi/zig-out/lib/lib<name>.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.
Expand Down
2 changes: 1 addition & 1 deletion docs/READINESS.md
Original file line number Diff line number Diff line change
Expand Up @@ -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. | Nonepromoted 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 sweeplast 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 |
Expand Down
Loading