Context
Operator verdict on the v0.5 cut: "popup content NOT styled." @neo-fable frame-proved it from take-15 d2 (both legs, t13.0 + t18.2): the vessel shows a dark background — the token bridge from #15928 delivered — while the pane content renders as raw stacked text ("LIVE METRICS / 99.9 / System Metrics / system envelope stableLIVE"), no panel layout, no typography, no sparkline canvas, against a fully-skinned sibling pane in the main room in the same frame.
This is my incomplete fix, and my own evidence was mis-scoped. #15928 moved the design-token bridge from .workstation-workspace to .workstation-viewport and its commit asserted: "what remains below is workspace-only presentation the vessel must not inherit — the gradient backdrop belongs to the dense composition, not to a bare pane host." I never enumerated the remaining selectors to check that claim. Several are pane skin, not workspace chrome.
Two prior falsifications of mine were also mis-scoped, which is why this survived review:
- I probed the vessel's stylesheet set (67 sheets,
hasGrid: true, hasTab: true) and declared "incomplete stylesheet set" falsified — but I measured a vessel with no pane torn into it, so the probe never tested the travelling pane's needs.
- @neo-fable's earlier "vessel styled" note in the handback was a thumbnail misread (owned in their verdict); dark ≠ skinned, and my token measurement proved only the former.
The Problem
resources/scss/src/apps/workstation/Workspace.scss keeps pane-affecting rules inside the .workstation-workspace block. Verified against the built CSS:
.workstation-workspace .neo-tab-container > .neo-tab-body-container
.workstation-workspace .neo-tab-header-toolbar
.workstation-workspace .neo-grid-header-button
.workstation-workspace .neo-grid-header-button .neo-button-glyph
… 7 pane-affecting rules total
Workstation.view.Viewport#onConstructed adds workstation-popout-host and returns without mounting Workspace — by design. So a vessel-hosted pane has no .workstation-workspace ancestor and loses its header toolbar background/border, its tab-body frame treatment, and its grid-header skin. It keeps the tokens (hence the dark ground) and Neo's default component CSS, which is exactly "dark but unskinned."
Why the #15928 fix looked complete: the token bridge genuinely was the cause of the first symptom (cells resolving to the ground colour). Fixing it changed the frame — dark background appeared — which made the remaining defect look like a different, smaller thing rather than the same defect one layer up.
The Architectural Reality
resources/scss/src/apps/workstation/Workspace.scss — the .workstation-workspace block; 7 pane-affecting selectors nested inside workspace chrome (.neo-dashboard-dock-* correctly belongs there).
resources/scss/src/apps/workstation/Viewport.scss — where #15928 moved the token bridge; the scope both boot modes carry.
apps/workstation/view/Viewport.mjs — ?popout= returns before mounting Workspace.
- PR #15928 / #15923 — the partial fix and its mis-scoped falsification.
- Frame receipts: take-15 d2, t13.0 + t18.2 (@neo-fable, available on request).
The Fix
Split the block by consumer, not by convenience. Rules that style the pane and its primitives move to .workstation-viewport alongside the token bridge; rules that style the dense composition (.neo-dashboard-dock-edge-*, splitters, rails, the gradient backdrop, tourbar/statusbar) stay on .workstation-workspace.
The discriminator is mechanical, not aesthetic: would this rule need to apply to a pane that has been torn out of the workspace? If yes it is pane skin; if no it is workspace chrome.
Not "move everything up" — the vessel must not inherit the gradient backdrop or dock-zone chrome; that would make a bare pane host pretend to be a workspace.
Acceptance Criteria
Out of Scope
- The flicker/blank census — #15927, @neo-gpt-emmy.
- Choreography and the showcase beat — #15933, film lane.
- The sparkline canvas, unless skin alone restores it (see AC5). Canvas-per-window is a different subsystem from CSS scope, and bundling them would repeat exactly the mistake this ticket exists to correct.
Avoided Traps
- Measuring the vessel's stylesheet set again. That probe is what falsely cleared this in #15923: the sheets are present; the selectors do not match. Any re-check must assert on computed style of a vessel-hosted pane, not on which files loaded.
- Moving the whole block to the viewport. Fast, and it would give a bare pane host the dense composition's backdrop and dock chrome.
- Treating "dark background" as "styled." The verdict, the earlier handback misread, and my own token measurement all made this error from different directions.
Related
#15923 / PR #15928 (the token bridge — partial fix), #15252 (film lane), #15927 (flicker census), #15933 (showcase beat), #15906 (cross-window docking).
Live latest-open sweep: latest 12 open plus a targeted vessel skin styled popout search at 2026-07-25T22:45Z; no equivalent — #15927 is flicker, #15933 is choreography.
Origin Session ID: 26e73986-66fa-4d28-9b02-6053541a5671
Retrieval Hint: "vessel pane unskinned workstation-workspace scoped tab-header-toolbar grid-header-button popout"
Context
Operator verdict on the v0.5 cut: "popup content NOT styled." @neo-fable frame-proved it from take-15 d2 (both legs, t13.0 + t18.2): the vessel shows a dark background — the token bridge from #15928 delivered — while the pane content renders as raw stacked text ("LIVE METRICS / 99.9 / System Metrics / system envelope stableLIVE"), no panel layout, no typography, no sparkline canvas, against a fully-skinned sibling pane in the main room in the same frame.
This is my incomplete fix, and my own evidence was mis-scoped. #15928 moved the design-token bridge from
.workstation-workspaceto.workstation-viewportand its commit asserted: "what remains below is workspace-only presentation the vessel must not inherit — the gradient backdrop belongs to the dense composition, not to a bare pane host." I never enumerated the remaining selectors to check that claim. Several are pane skin, not workspace chrome.Two prior falsifications of mine were also mis-scoped, which is why this survived review:
hasGrid: true,hasTab: true) and declared "incomplete stylesheet set" falsified — but I measured a vessel with no pane torn into it, so the probe never tested the travelling pane's needs.The Problem
resources/scss/src/apps/workstation/Workspace.scsskeeps pane-affecting rules inside the.workstation-workspaceblock. Verified against the built CSS:Workstation.view.Viewport#onConstructedaddsworkstation-popout-hostand returns without mountingWorkspace— by design. So a vessel-hosted pane has no.workstation-workspaceancestor and loses its header toolbar background/border, its tab-body frame treatment, and its grid-header skin. It keeps the tokens (hence the dark ground) and Neo's default component CSS, which is exactly "dark but unskinned."Why the #15928 fix looked complete: the token bridge genuinely was the cause of the first symptom (cells resolving to the ground colour). Fixing it changed the frame — dark background appeared — which made the remaining defect look like a different, smaller thing rather than the same defect one layer up.
The Architectural Reality
resources/scss/src/apps/workstation/Workspace.scss— the.workstation-workspaceblock; 7 pane-affecting selectors nested inside workspace chrome (.neo-dashboard-dock-*correctly belongs there).resources/scss/src/apps/workstation/Viewport.scss— where #15928 moved the token bridge; the scope both boot modes carry.apps/workstation/view/Viewport.mjs—?popout=returns before mountingWorkspace.The Fix
Split the block by consumer, not by convenience. Rules that style the pane and its primitives move to
.workstation-viewportalongside the token bridge; rules that style the dense composition (.neo-dashboard-dock-edge-*, splitters, rails, the gradient backdrop, tourbar/statusbar) stay on.workstation-workspace.The discriminator is mechanical, not aesthetic: would this rule need to apply to a pane that has been torn out of the workspace? If yes it is pane skin; if no it is workspace chrome.
Not "move everything up" — the vessel must not inherit the gradient backdrop or dock-zone chrome; that would make a bare pane host pretend to be a workspace.
Acceptance Criteria
.workstation-workspaceis enumerated in the PR body with its verdict (pane skin → viewport / workspace chrome → stays), so the split is reviewable as a list rather than as a claim.Out of Scope
Avoided Traps
Related
#15923 / PR #15928 (the token bridge — partial fix), #15252 (film lane), #15927 (flicker census), #15933 (showcase beat), #15906 (cross-window docking).
Live latest-open sweep: latest 12 open plus a targeted
vessel skin styled popoutsearch at 2026-07-25T22:45Z; no equivalent — #15927 is flicker, #15933 is choreography.Origin Session ID: 26e73986-66fa-4d28-9b02-6053541a5671
Retrieval Hint: "vessel pane unskinned workstation-workspace scoped tab-header-toolbar grid-header-button popout"