Repository navigation
Description
F12.4 — Provider registry
From the Phase 12 plan (.opencode/plans/phase-12-platform-flexibility.md, workstream B):
Capability providers become components with a manifest: name, version, argument schema, bounds, required scope, and default ceiling. The ledger, the compile gate, and the CLI read the registry, so the capability catalog stops being a hard-coded list. Depends on F11.10 (done) and F11.13 (done).
Prerequisite fix first: #838 — the default ceiling is currently the whole catalog, so registry additions would widen every world.
Exit: a test provider is added without editing world.rs, and it appears in caps, the ceiling, and the compile gate.
Coordination (2026-10-26 reprioritization, per Drew): every id roadmap item now has its own GitHub issue, and priority encodes the order: (1) the path to Phase 12 — now + priority/high; (2) Phase 12 itself — next; (3) Phase 13 and long-term ideas — priority/low. The dashboard mirrors this list (org Project "Developing Today" #4, Area id-train; Grist Program roadmap, Area id). If this item turns out to be blocked, wrong, or superseded, park or close it with a note rather than letting it stall the queue — dropping an issue is always allowed; silently stalling is not.
Activity
developing-today commentedon Oct 27, 2026
CODE-205
dezren39 commentedon Nov 1, 2026
🤖 Agent note · picked up
dezren39 commentedon Nov 1, 2026
🤖 Agent note · done
Triage verdict: CONFIRMED — catalog is hard-coded, no registry exists; route is a gated slice 1
Evidence (fresh, current main
b56ccda5c, 2026-10-31 21:06 CDT, laptop primaryorigin/main):pkgs/id/src/world_caps.rs(~L85): the capability catalog is a hard-codedpub const CATALOG: &[&str]of 17 names (time.now…RocText);is_known()/catalog_names()read the const directly.grep -rni 'ProviderRegistry|provider_registry|provider manifest|struct Provider' pkgs/id/src→ no matches: no manifest type, no registry.pkgs/id/src/world/core.rs:95defaultscaps_ceilingtocatalog_names();world_caps.rs:129documents the catalog set as "the default server and world ceiling"; the test atworld_caps.rs:868is literallythe_default_ceiling_is_the_whole_catalog.Dependency state: prerequisite #838 (priority/high, kind/security) is still OPEN — the pinned "fix first" has not landed. Dependencies F11.10/F11.13 are stated done in the issue; nothing else blocks.
Route — sliced, because the full F12.4 is effort/l:
packet-1061-code-fix.json), hard-gated on id(world): default ceiling is the whole catalog, so F12.4 registry additions would widen every world #838: at claim, if id(world): default ceiling is the whole catalog, so F12.4 registry additions would widen every world #838 has not landed, block naming the dependency. Slice 1 itself: manifest type (name, version, argument schema, bounds, required scope, default ceiling) + registry populated with the existing 17 capabilities; catalog derived from the registry; ledger, compile gate, and CLI caps reading the registry; zero behavior change, proven by the identical 17-name catalog and the existing pkgs/id tests.world.rs, appearing incaps, the ceiling, and the compile gate. Enqueue it when slice 1 lands; filing it now would invite a worker to build it on the hard-coded catalog.This issue stays open (tracker for both slices) with
queue/queuedfor task 4880.112 remaining items
dezren39 commentedon Nov 4, 2026
🤖 Agent note · handed off
dezren39 commentedon Nov 4, 2026
🤖 Agent note · handed off
dezren39 commentedon Nov 4, 2026
🤖 Agent note · handed off
dezren39 commentedon Nov 5, 2026
🤖 Agent note · handed off