From 3432ea0d1c6201e2cc3cd897910ea02b869958fb Mon Sep 17 00:00:00 2001 From: type-two Date: Sat, 18 Jul 2026 16:52:36 +1000 Subject: [PATCH] Sprint 14 integration: merge a/e/c/b (406/0/0), mount B's score + C's wind panels in editor.html --- web/world/editor.html | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/web/world/editor.html b/web/world/editor.html index 4bc6130..f6ed01b 100644 --- a/web/world/editor.html +++ b/web/world/editor.html @@ -195,13 +195,24 @@ import { createEditor } from './js/editor.js'; try { - await createEditor({ + const EDITOR = await createEditor({ canvas: document.getElementById('ed-canvas'), side: document.getElementById('ed-side'), toolbar: document.getElementById('ed-toolbar'), readout: document.getElementById('ed-readout'), hint: document.getElementById('ed-hint'), }); + + // The two lane panels, mounted AFTER createEditor resolves because both need + // a live EDITOR — B's reads `globalThis.EDITOR` on import (self-registering, + // nothing to call), C's exports a mount function. Landed by the integrator at + // SPRINT14 integration: both lanes built against A's published seams and + // asked for this one line each; A had finished by then, so it's mine. Inside + // the try on purpose — a panel that throws is an editor that says so on the + // glass rather than a rail with a hole in it. + await import('./js/editor_score.js'); + const { mountWindPanel } = await import('./js/editor.wind.js'); + await mountWindPanel(EDITOR); } catch (err) { // The editor is a tool, so it fails LOUD and on the glass. index.html's boot // failure writes into a hidden #dev div and shows a stranger a blank page