What. enscribeAssetResolution's private walk (asset-load.js, the hand-rolled recursion near the bottom of the file) descends node.content with only an Array.isArray check (no isOpaqueContent guard — safe today only because opaque content is a string) and has NO cell descent — so a <code src="@id"> / <fig src="@id"> inside an opted-in table cell silently fails to resolve: no data: URI, no visible __asset-error, violating the always-renders framing.
Provenance. Pass-map audit §3.2 (a Wave-0 item never converted to an issue); re-confirmed on current main by the wave-1 walk-merges slice's walker inventory.
Fix shape. Route the walk through the shared discover walker (one visitor Map over fig/table/diagram/code/code-block) or add descendCellArrays + the opaque guard to the private walk. Byte-changing on documents with cell-resident @id references (they gain resolution or a visible error) — its own small output-adding slice with a fixture.
What.
enscribeAssetResolution's private walk (asset-load.js, the hand-rolled recursion near the bottom of the file) descendsnode.contentwith only anArray.isArraycheck (noisOpaqueContentguard — safe today only because opaque content is a string) and has NO cell descent — so a<code src="@id">/<fig src="@id">inside an opted-in table cell silently fails to resolve: no data: URI, no visible__asset-error, violating the always-renders framing.Provenance. Pass-map audit §3.2 (a Wave-0 item never converted to an issue); re-confirmed on current main by the wave-1 walk-merges slice's walker inventory.
Fix shape. Route the walk through the shared
discoverwalker (one visitor Map over fig/table/diagram/code/code-block) or adddescendCellArrays+ the opaque guard to the private walk. Byte-changing on documents with cell-resident@idreferences (they gain resolution or a visible error) — its own small output-adding slice with a fixture.