Deliver the provider-only registry commands¶
As a maintainer, I want a finite list of work that closes #383, with each task owned and checked. The plan fixes scope and baseline. Checked boxes mean the stated action completed; source already on main is not marked tested.
Establish the baseline¶
- [x] Preserve the prior branch and dirty work, then reset
feat/383-provider-closureto main6efe1f119a2332484e690b4c128c4bc5fd4d689b. Owner: orchestrator. Backup and stash are recorded inplan.md. - [x] Replace stale planning status in
specs/383-provider-interfaces/plan.mdand add this executable task list. Owner: orchestrator. - [x] Record the initial
nix develop --quiet -c just ciresult. Owner: orchestrator. Model, application, simulator and browser checks passed; docs failed on the decisions-to-plan anchor removed during cleanup. Planning changed during this run, so it is not clean-main full-CI evidence. Log:/tmp/e371-383-main-baseline.log; GLM owns the link repair.
Run every command through the provider¶
- [x] Migrate retained callers in
offchain/andconformance/from obsolete Provider/View/node APIs to the existing generic capabilities; preserve main's tracing, datum delivery and recovery behavior. Owner: Sol. Check: relevant Cabal targets compile. Done at source commit64d8f9f0: final required-componentcabal buildexit 0 across library, services, commands and test targets. - [x] Remove
offchain/node-internal/production read/indexer modules and obsoleteProvider/Serviceswrappers; updateoffchain/singular-registry.cabal,offchain/nix/component-inventory.nix,offchain/nix/checks.nixand affected component declarations. Owner: Sol. Check: no retained production node adapter or unresolved retired import. Done at source commit64d8f9f0:tools/node_confinement_check.shexit 0 over 213 retained source files, with the nine retired directories excluded by the existing inventory classification; no unresolved retired import. - [x] Preserve required behavior in
offchain/test/andoffchain/e2e-test/while migrating fixtures; run pure provider composed reads/history/submission, pure trie proofs, local evaluation and pinned time comparisons, command receipts and bounded confirmation checks. Owner: Sol. Check: actual selected tests pass with command and counts recorded. Full cage suite exit 0 at64d8f9f0: 1028 examples, 0 failures, 11 pending — the pending rows publish the retired node/view/indexer requirements as unsupported, not passed; conformance appendix suite 590 examples, 0 failures against the current model transport. No live ledger is claimed. - [x] Update node-confinement, component-inventory and signed-submission checks under
tools/to the removed component layout, retaining their negative controls. Owner: Muse. Depends on Sol's final module layout. Check: each existing check and its controls pass. All pass at12bdae8c: confinement exit 0 over 213 retained files with 6 allowlisted entries and 48 negative controls; component inventory 626 mapped files with 9/9 controls; the signed-tx-control Nix check exit 0 — normal signing accepted, three forgeries refused, exported-constructor positives, exact exports, planted forge rejected (log/tmp/muse-signed-tx-control.log).
Keep the development-network journey running¶
- [x] Reconcile
tools/demo1_cli_journey.shand relevant.github/workflows/registry.ymljobs with current main and migrated callers; preserve all-fact Unverified assertions, independent provider data and required Koios call coverage. Owner: Muse. Check: unchanged obligations have executable assertions; no weakened or skipped journey. Muse confirmed main already carries every journey assertion unchanged; only a workflow comment changed, integrated at8e47cd88. No weakened or skipped journey. - [x] Run the packaged Demo 1 journey against the actual private devnet facade, and the bounded registry journey; repair migration failures in the owning files. Owner: Muse with Sol for Haskell repairs. Depends on compiled candidate. Check: successful receipts and exit status on the integrated candidate. Local bounded journey 11/11, exit 0 at
12bdae8c. Hosted, on the exact head12bdae8c: the release-archive Demo 1 journey — the CLI journey, page controls and retained insert-active/update-terminal controls over the archive exactly as published — plus the separate-actor negative control and the hosted bounded journey, all success. No local archive execution is claimed; the hosted archive receipts are the actual required development-network execution.
Ship accurate existing documentation¶
- [x] Reconcile
specs/383-provider-interfaces/spec.mdanddecisions.mdwith ticket scope and current model binding; preserve historical rulings without claiming obsolete status is current. Owner: GLM. Done at9c124690, integrated at8e47cd88: reset baseline and constitution 1.13.0 model blobs bound, stale anchors and intake-era status repaired, rulings preserved as history. - [x] Update existing node/provider ownership and API documentation under
docs/, plus only required reference-generation/packaging paths (tools/api_reference.py,nix/docs.nix,mkdocs.yml). Owner: GLM. Depends on Sol's module layout; no new documentation project. Done atab5fac29–86ea396a, integrated at8e47cd88: ownership page rewritten to the provider-era inventory, API reference extent 75→73 from the candidate Cabal, generator's dead private-owner machinery removed; strict build, presentation and narration checks green in the GLM worktree. The packaged docs, speech, narration and presentation checks passed withinjust ciat12bdae8c. - [x] Regenerate changed pages' speech companions and required narration using repository tools; verify docs/presentation against the actual candidate. Owner: GLM. Includes
plan.mdandtasks.md; never stamp stale speech as current. Every changed page's companion was re-extracted and its changed segments re-voiced through the series (9c124690…8dc3b495); the full packaged docs, speech, narration and presentation checks passed withinjust ciexit 0 at12bdae8c.
Integrate and finish¶
- [x] Inspect and integrate each worker's scoped diff into
feat/383-provider-closure; reject unrelated work and preserve the reset baseline's behavior. Owner: orchestrator. No worker pushes or merges. Source integrated at64d8f9f0, tools and documentation at8e47cd88; unrelated companion drift was rejected at integration. - [x] Run
nix develop --quiet -c just ciand required offchain tests on the integrated candidate; fix failures and record exact commands, exits and commit. Owner: orchestrator with assigned workers.nix develop --quiet -c just ciexit 0 in a clean checkout at12bdae8c— a clean checkout excludes the ignored Cabal build cache that a format-control scratch copy still carries — with the full local cage suite 1028/0 with 11 retired pending and the conformance appendix 590/0 at source64d8f9f0as recorded above. Hosted at the same head: CI and Conformance, both success. Not the final repaired head: after this result, source-only test correctionsa0456196(generic phase-log schema; packaged contract suite 40/0 with 26 retired pending) andef93d4f4(E2E checks the exact generic AtTxIn fact instead of forbidding the adapter's necessary address lookup) changed no production behavior. Theef93d4f4repair's local verification is complete: the packaged node-boot lane rannix run --quiet .#cage-tests-e2e -- --match '{lane:node-boot}' --fail-on=emptywith the release blueprint — 22 examples, 0 failures, 7 retired pending (log/tmp/muse-node-boot.log, read independently by the parent). Exact-head verification of the assembled candidate — its hosted gates and the merge — remains the open tasks below. - [ ] Update PR #460 using
.github/pull_request_template.md, push the scoped candidate with the appropriate lease, and require the ticket's devnet journey jobs green on that PR head. Owner: orchestrator. The draft PR already carries12bdae8c; the two test repairs are not pushed yet — final candidate publication, its checks and the merge remain pending. - [ ] Merge the verified PR, close #383, and stop its three worker panes. Owner: orchestrator. Check remote merge/issue state before reporting completion. Final candidate publication, exact-head checks and merge still pending.
Dependencies and parallel work¶
Sol's migration, Muse's script preparation and GLM's spec cleanup start in parallel in separate worktrees. Muse's journey execution and GLM's final API references depend on the integrated module layout. Only one expensive shared build or devnet run is started at a time under the orchestrator. Final checks, push, merge and closure follow integration in that order.