Migrated from Method backlog
GitHub Issues are now the live work tracker. Repository docs remain Method evidence.
| Field |
Value |
| Source backlog |
docs/method/backlog/bad-code/PORT_half-deleted-materialization-seam.md |
| Archived source |
docs/archive/backlog/github-issue-migration-2026-06-01/docs/method/backlog/bad-code/PORT_half-deleted-materialization-seam.md |
| Original lane |
bad-code |
| Original id |
PORT_half-deleted-materialization-seam |
| Original legend |
PORT |
| Original feature |
api-capabilities |
| Original release home |
v17.0.0 |
Original backlog card
_materializeGraph() survives the v17 reading contract
Effort: L
What's Wrong
v17 is supposed to expose Optics and Readings over causal worldlines,
not a graph-materialization API. The public WarpGraph type no longer
lists materialize, but the internal runtime still has
RuntimeHost._materializeGraph() and controllers still depend on it.
Observed during the 2026-05-04 audit:
src/domain/RuntimeHost.ts defines _materializeGraph()
QueryController depends on _materializeGraph()
SyncController calls _host._materializeGraph()
- patch, checkpoint, and subscription controller host types still name
_materializeGraph
This is a port/capability honesty problem: the internal port surface is
still speaking materialization while the public API claims the model is
readings.
Suggested Fix
Replace controller dependencies on _materializeGraph() with a named
reading-basis port or service. Add tests that install a throwing
_materializeGraph trap and prove blessed read/query/sync/subscription
paths do not call it. Delete _materializeGraph() rather than renaming
it to another whole-graph replay helper.
Migrated from Method backlog
GitHub Issues are now the live work tracker. Repository docs remain Method evidence.
docs/method/backlog/bad-code/PORT_half-deleted-materialization-seam.mddocs/archive/backlog/github-issue-migration-2026-06-01/docs/method/backlog/bad-code/PORT_half-deleted-materialization-seam.mdbad-codePORT_half-deleted-materialization-seamPORTapi-capabilitiesv17.0.0Original backlog card
_materializeGraph()survives the v17 reading contractEffort: L
What's Wrong
v17 is supposed to expose Optics and Readings over causal worldlines,
not a graph-materialization API. The public
WarpGraphtype no longerlists
materialize, but the internal runtime still hasRuntimeHost._materializeGraph()and controllers still depend on it.Observed during the 2026-05-04 audit:
src/domain/RuntimeHost.tsdefines_materializeGraph()QueryControllerdepends on_materializeGraph()SyncControllercalls_host._materializeGraph()_materializeGraphThis is a port/capability honesty problem: the internal port surface is
still speaking materialization while the public API claims the model is
readings.
Suggested Fix
Replace controller dependencies on
_materializeGraph()with a namedreading-basis port or service. Add tests that install a throwing
_materializeGraphtrap and prove blessed read/query/sync/subscriptionpaths do not call it. Delete
_materializeGraph()rather than renamingit to another whole-graph replay helper.