|
Some checks are pending
build-gate / build (push) Waiting to run
EVERY TAB FAILED TO LOAD. Introducing tree-base for the dev server prefixed it onto URLs that were already rooted, producing /__plugin-gallery//plugin-designs/<b>/index.js and a 404 on all 29 tabs. Both capability-5 shells had byte-identical resolve() implementations, so both carried the same defect; both now return an already-absolute ref untouched and join through exactly one slash. The built tree hands relative refs and keeps its base, so this is one rule for both trees rather than a dev-only branch. THE STUDIO NO LONGER FRAMES ANYTHING. Map elements were nested in iframes pointing at their standalone leaf pages, to dodge a one-shot customElements.define collision. That collision cannot occur here: 19 bundles claim 19 distinct tags, none shared, and two map elements were proven to coexist in one document with the first unaffected by the second. Every pane now mounts the plugin's real custom element, which is what makes a row both reviewable and nestable. Panes keep two lifetimes, and the difference is the WebGL context budget rather than taste. Light rows stay mounted so switching back is instant and state survives. Map rows are destroyed on deactivate, because a hidden map holds its GPU context: the browser caps live contexts, then silently reclaims the OLDEST, so a map visited ten tabs ago would go blank with no error anywhere. getContext never returns null and contextlost never fires on the new canvas, which is what makes that failure so hard to attribute. The dev server serves a leaf route for one element with no chrome, and passes the tree base to nested shells so they discover the live tree instead of a baked fallback. |
||
|---|---|---|
| .. | ||
| index.html | ||
| index.js | ||
| plugin-studio.instances.json | ||
| plugin-studio.meta.json | ||
| plugin-studio.vue | ||