generated from Labyricorn/labyricorn-project-template
Steps 6.4-6.7B — Local surfaces, reference-exhibit validation, SciFi Observation surface
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.
This commit is contained in:
@@ -2428,3 +2428,30 @@ body.xzbt-tv-aspect .observation-overlay:not(.active){display:none}
|
||||
@media (max-width:700px){
|
||||
.watch-experience-wrap{min-width:150px}.watch-experience-help{font-size:.54rem}
|
||||
}
|
||||
|
||||
/* ==========================================================================
|
||||
Step 6.7B -- Observation surface mode (body.surface-observation).
|
||||
Applied when this document is booted as the non-authoritative Observation
|
||||
surface (?surface=observation&xi=...). Presentation-only: additive rules,
|
||||
nothing above this block is touched. The console DOM (header/main) is
|
||||
hidden rather than removed -- observation-engine.js keeps binding to it
|
||||
exactly as it does today, unmodified, per the Step 6.7A design.
|
||||
========================================================================== */
|
||||
body.surface-observation > header,
|
||||
body.surface-observation > main {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
body.surface-observation .observation-overlay {
|
||||
position: fixed;
|
||||
inset: 0;
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
/* Exiting/returning to the console is NGN's job (pane lifecycle), not the
|
||||
surface's -- these controls would otherwise mutate the *console's* own
|
||||
view.observation overlay flag from a stray click (report SS7/SS8). */
|
||||
body.surface-observation #obs-btn-exit,
|
||||
body.surface-observation #observation-return-pill {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user