feat(sidecar): forward the asset manifest, the pixels and the body pass (Phase 3) #43
Reference in New Issue
Block a user
No description provided.
Delete Branch "feat/asset-bridge-p3"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Three routes for Asset Bridge phase 3, forwarded verbatim like everything else on this link:
This repo was not in the phase table, and that was a mistake in the plan
v8.md§16 listed phase 3 asservuo-plugins, module-uo.web.rsroutes every command explicitly — there is no generic/assets/*forwarder — solinkis in the phase. The docs PR corrects both places.The two POSTs are reads
The method is the request body, not a side effect: a few hundred asset keys do not belong in a query string. They are the only reads on this link that take one, which is worth a reviewer's eye.
assets_callisevent_call's shape with one difference that matters: it responds throughrespond_assets, sobridge.busymaps to 425 rather than being read as an idempotency collision. On this plane busy is the ordinary answer during an import — the shard serves one asset request at a time on purpose, because its outbound queue is bounded in lines rather than bytes — and a caller that treated it as an error would abandon a perfectly healthy transfer.422 gains a second meaning
Alongside "the shard has that file and cannot decode it", it is now also the mid-import guard. A manifest reply carries a
catalogid the shard derives from its own client files; passing it back on a fetch makes the shard refuse if those files moved in between. Without it, an operator who patches their client halfway through an import gets one asset set stitched out of two, with no error anywhere.Verified against the live shard
GET /assets/manifestcut: "end", 734 msGET /assets/manifest?family=staticthis shard serves the 'body' asset family onlyPOST /assets/fetchwith a stalecatalogPOST /assets/bodieswith 101 typesPOST /assets/bodies× 5 chunks (455 types)cargo buildclean; 64 tests pass.Review notes
PROTOCOL_VERSIONchange — phase 1 already took it to 8, and nothing here changes an existing message shape.servuo-plugins,Module-uo,docs.AI disclosure
🤖 Generated with Claude Code
https://claude.ai/code/session_016wDDVXWMDz82WqE1i969r4