generated from Labyricorn/labyricorn-project-template
One commit for the work accumulated in the working tree since Step 6.3, which had never been split into per-step commits: - src/local-surfaces.js + src/surface-url.js (new); src/ui.js, src/validation.js, src/connection.js and public/index.html updated for local-surface hosting and generic surface rendering - tests: local-surfaces (20), scifi-surfaces (24) and postmessage-interop (7) new; connection/museum-gallery/surface-validation suites updated - reference exhibits: shared/contract-core.js defaults to Contract 5.3 (major 5, minor 3, xzbt 5.3); museum-gallery advertises its surface catalog; aquarium/haunted-house/planetarium adapters updated - SciFi-XZBT (Step 6.7A/6.7B): surface-mode.js + surface-bus.js, Observation-surface boot branch, local-change hooks, view.pillars / view.warp-flight targets; fixture byte-identical to G:/.vibe/SciFi-XZBT - SciFi-XZBT contract adapter handshake fix: the inbound bridge filter no longer gates on an exact advisory xzbt value (Contract 5.3 §6.5), only on its presence/type, matching the host's own envelope validation; the adapter now advertises contract minor 3 / version 5.3.0, which it already implemented via the 5.3 surfaces field. Root cause of the five failing postmessage-interop tests (host hello was silently dropped). - docs: architecture 6.4 and 6.7A, reference 6.6 and 6.7; evidence logs; test-fixtures/PROVENANCE.md resync record Test results: NGN 154/154 (was 149/154); postmessage-interop 7/7 (was 2/7); SciFi contract harness 21/21, real-adapter suite 32/32. git diff --check clean for changed files; two pre-existing trailing-whitespace lines remain in test-fixtures/reference-exhibits/scifi/index.html, copied verbatim from the authoritative SciFi source. Step 6.7 live verification (browser Observation, packaged standalone) is still pending and is not claimed here.
172 lines
6.1 KiB
Plaintext
172 lines
6.1 KiB
Plaintext
- banner:
|
|
- heading "XZBT-NGN Exhibit Engine" [level=1]
|
|
- paragraph: Contract 5.2/5.3 · One exhibit at a time
|
|
- main:
|
|
- heading "Connection" [level=2]
|
|
- generic: Exhibit URL (same origin)
|
|
- textbox "Exhibit URL (same origin)":
|
|
- /placeholder: /public/exhibits/example/index.html
|
|
- text: http://127.0.0.1:4173/test-fixtures/reference-exhibits/museum-gallery/control.html
|
|
- button "Load exhibit"
|
|
- button "Reconnect"
|
|
- button "Disconnect"
|
|
- paragraph: Enter a trusted exhibit's local served path or a URL on this origin. Load exhibit also switches exhibits. Reconnect starts a new session, or reloads the last exhibit after disconnect.
|
|
- status: connected · synchronized
|
|
- paragraph: Museum Gallery · 0.1.0 · Contract 5.3
|
|
- paragraph: "Exhibit location: http://127.0.0.1:4173/test-fixtures/reference-exhibits/museum-gallery/control.html"
|
|
- iframe:
|
|
- banner:
|
|
- heading "Museum Gallery — Control Room" [level=1]
|
|
- generic: Primary surface · Contract 5.3 · standalone-capable
|
|
- generic: host attached
|
|
- main:
|
|
- paragraph: The Orrery
|
|
- paragraph: "Lighting: 60%"
|
|
- paragraph: "Rotation: 0.4x"
|
|
- paragraph: "Labels: ON"
|
|
- paragraph: "Attached non-primary surfaces: 0"
|
|
- complementary:
|
|
- heading "Artifact" [level=2]
|
|
- generic: Selected artifact
|
|
- combobox "Selected artifact":
|
|
- option "The Orrery" [selected]
|
|
- option "Star Map"
|
|
- option "Meteorite Fragment"
|
|
- heading "Environment" [level=2]
|
|
- generic: Lighting level
|
|
- generic: 60%
|
|
- slider "Lighting level 60%"
|
|
- generic: Rotation speed
|
|
- generic: 0.4x
|
|
- slider "Rotation speed 0.4x"
|
|
- generic: Labels enabled
|
|
- button "Toggle" [pressed]
|
|
- heading "Actions" [level=2]
|
|
- button "Flash spotlight"
|
|
- contentinfo:
|
|
- generic: Control Room
|
|
- generic: Control Room standing by.
|
|
- heading "Exhibit controls (5)" [level=2]
|
|
- generic "Capabilities"
|
|
- paragraph: Reported values are authoritative. New values are drafts; select Set or Invoke to submit. Rediscovery resets drafts.
|
|
- heading "gallery" [level=3]
|
|
- article:
|
|
- heading "Selected Artifact" [level=3]
|
|
- code: artifact.selected
|
|
- paragraph: selection · readable · writable
|
|
- status: "Reported value: \"the-orrery\""
|
|
- generic "Target descriptor"
|
|
- paragraph
|
|
- text: New value
|
|
- combobox "New value":
|
|
- option "The Orrery" [selected]
|
|
- option "Star Map"
|
|
- option "Meteorite Fragment"
|
|
- button "Set"
|
|
- article:
|
|
- heading "Lighting Level" [level=3]
|
|
- code: lighting.level
|
|
- paragraph: range · readable · writable
|
|
- status: "Reported value: 0.6"
|
|
- generic "Target descriptor"
|
|
- paragraph
|
|
- text: New value
|
|
- spinbutton "New value": "0.6"
|
|
- button "Set"
|
|
- article:
|
|
- heading "Rotation Speed" [level=3]
|
|
- code: rotation.speed
|
|
- paragraph: range · readable · writable
|
|
- status: "Reported value: 0.4"
|
|
- generic "Target descriptor"
|
|
- paragraph
|
|
- text: New value
|
|
- spinbutton "New value": "0.4"
|
|
- button "Set"
|
|
- article:
|
|
- heading "Labels Enabled" [level=3]
|
|
- code: labels.enabled
|
|
- paragraph: state · readable · writable
|
|
- status: "Reported value: true"
|
|
- generic "Target descriptor"
|
|
- paragraph
|
|
- text: New value
|
|
- checkbox "New value" [checked]
|
|
- button "Set"
|
|
- heading "action" [level=3]
|
|
- article:
|
|
- heading "Spotlight Flash" [level=3]
|
|
- code: action.spotlight-flash
|
|
- paragraph: impulse · not readable · not writable
|
|
- status: No persistent value reported.
|
|
- generic "Target descriptor"
|
|
- paragraph
|
|
- button "Invoke"
|
|
- heading "Presentation surfaces (3)" [level=2]
|
|
- paragraph: Open Contract 5.3 presentation surfaces locally below. URLs resolve against the supplying exhibit. Disconnecting or switching exhibits closes these views. Remote/cast displays remain deferred.
|
|
- article:
|
|
- heading "Control Room" [level=3]
|
|
- code: surface.control
|
|
- generic: Primary
|
|
- generic: "Role: control"
|
|
- paragraph: "URL: control.html"
|
|
- status: Open in the authoritative control frame. Use Connection controls to reload or disconnect.
|
|
- button "Open" [disabled]
|
|
- button "Reload" [disabled]
|
|
- button "Close" [disabled]
|
|
- article:
|
|
- heading "Artifact Display" [level=3]
|
|
- code: surface.artifact
|
|
- generic: Non-primary
|
|
- generic: "Role: ambient"
|
|
- paragraph: "URL: artifact.html"
|
|
- status: open
|
|
- button "Open" [disabled]
|
|
- button "Reload"
|
|
- button "Close"
|
|
- iframe:
|
|
- banner:
|
|
- heading "Museum Gallery — Artifact Display" [level=1]
|
|
- generic: Non-primary surface · attaches to the Control Room
|
|
- generic: surface
|
|
- main:
|
|
- paragraph: The Orrery
|
|
- paragraph: "Lighting: 60%"
|
|
- paragraph: "Rotation: 0.4x"
|
|
- paragraph:
|
|
- button "Cycle artifact"
|
|
- paragraph: Attached to Control Room.
|
|
- contentinfo:
|
|
- generic: Artifact Display
|
|
- generic: Waiting for shared state.
|
|
- article:
|
|
- heading "Information Wall" [level=3]
|
|
- code: surface.info-wall
|
|
- generic: Non-primary
|
|
- generic: "Role: information"
|
|
- paragraph: "URL: info-wall.html"
|
|
- status: open
|
|
- button "Open" [disabled]
|
|
- button "Reload"
|
|
- button "Close"
|
|
- iframe:
|
|
- banner:
|
|
- heading "Museum Gallery — Information Wall" [level=1]
|
|
- generic: Non-primary surface · attaches to the Control Room
|
|
- generic: surface
|
|
- main:
|
|
- paragraph: The Orrery
|
|
- paragraph: "Labels: ON"
|
|
- paragraph:
|
|
- button "Toggle labels"
|
|
- paragraph: Attached to Control Room.
|
|
- contentinfo:
|
|
- generic: Information Wall
|
|
- generic: Waiting for shared state.
|
|
- heading "State and metadata" [level=2]
|
|
- button "Refresh state"
|
|
- generic "Session and exhibit metadata"
|
|
- generic "Current persistent state"
|
|
- heading "Protocol diagnostics" [level=2]
|
|
- generic "Incoming events"
|
|
- generic "Protocol and errors" |