openpencil/crates/op-web-sdk
Kayshen-X ace4c7257e feat(web): fetch preview assets at runtime instead of embedding them
The preview JPEGs (~2.4 MiB, already compressed so gzip passed them
straight through) leave the wasm data segment: a platform-free asset
registry in op-editor-core tracks per-route Absent/Pending/Ready/Failed
with single-flight and install-once semantics, the browser half fetches
over ArrayBuffer XHR with managed-mode headers and a slot-wrapped
callback so no synchronous failure can strand a route in Pending, and
paint sites fall back to the existing placeholder when bytes are not
(yet) there. Native keeps include_bytes verbatim. The staging script
copies the asset dirs into pkg/assets/ — under /pkg/ because the hub
frontend owns /assets/ — and the gate, CI workflow, and web image all
run it and assert the layout. Bundle: 7.13 → 5.10 MiB gzip, so the
tripwire returns to 6 MiB (85% occupancy); the sdk bundle keeps its own
8 MiB pending a real measurement.

Also closes the final review test gaps: the owner-session fixture now
returns a must-use lane guard (a dropped receiver made the saturated
lane read as Disconnected, not Full) and seeds the daemon's baseline
document so the hash check exercises the real path, and the closed
write barrier has a direct multi-page active-page regression test.
2026-08-09 01:37:06 +08:00
..
bindings feat(editor): improve document workflows and rendering 2026-07-23 21:15:04 +08:00
smoke feat(sdk): add op-web-sdk read-only web viewer crate 2026-06-19 17:52:12 +08:00
src feat(editor): give decks a full workspace of navigation, generation and export surfaces 2026-08-05 00:57:49 +08:00
tools feat(web): fetch preview assets at runtime instead of embedding them 2026-08-09 01:37:06 +08:00
.gitignore feat(sdk): add op-web-sdk read-only web viewer crate 2026-06-19 17:52:12 +08:00
Cargo.toml feat(sdk): add op-web-sdk read-only web viewer crate 2026-06-19 17:52:12 +08:00