Context
#17844's census at dev@cce07cdade (2026-09-13) lists five Workstation Neural Link arms red that were green or skipped at dev@22c183ccf9 on the same host. All five follow from one layout change. In the census's 800×600 headless window, where the Workstation's inner size is 756×469, the topology bar now wraps onto a second row and takes 40px from the dock.
| head |
topology bar |
dock host |
readout box |
| 22c183ccf9 |
43px |
328px |
none |
| f9709716ad |
83px, two rows |
288px |
20×12px, hidden |
The Problem
At this width the bar's content box is 732px: 756px less --toolbar-padding: 6px 12px (#18560). The row needs 746px: Save 159, Close 165, Reset 175, readout 20, Undo 96 and Redo 95, plus six 6px gaps (the action spacer has no basis). So Redo wraps.
26px of that row is the readout, which has nothing to say at boot. It hides by toggling neo-hidden (apps/workstation/view/Workspace.mjs:475), and neo-hidden is visibility: hidden (resources/scss/src/Global.scss:116), so its 20px padding box and its gap stay in the flex line. Without them the row needs 720px and fits.
Two one-row controls ran at dev@5dc6b80fef on the same host, each running the three spec files whole plus a bar probe. The only change between f9709716ad and that head is #18649, which touches comments, a guide and the docs SEO script.
| arm |
22c183ccf9 |
f9709716ad |
bar wrap: 'nowrap' |
readout hidden |
WorkstationHumanPopupOverlapNL large-over-small ×2 (:1585) |
skipped |
failed |
skipped |
skipped |
WorkstationPopOutSparklinesNL (:68) |
passed |
failed |
passed |
passed |
WorkstationTearOutSourceContinuityNL film and plain pace (:1017, :1022) |
passed |
failed |
passed |
passed |
| bar / dock host |
43 / 328px |
83 / 288px |
45 / 326px |
45 / 326px |
nowrap gets its row by shrinking every button (Save 159→155px). Hiding the readout keeps every button at its natural width. This is the defect #18016 fixed for the toolbar rail: a withdrawn element takes no space.
The Architectural Reality
- The readout is a view-owned component in the view-declared bar (
Workspace.createTopologyBar). Its cls and html bindings both go through Workspace.topologyStateText, so visibility and text cannot disagree.
- Hiding belongs to
Neo.component.Base: hidden with the default hideMode_: 'removeDom' (src/component/Base.mjs:148) keeps the vdom node and removes its DOM, while 'visibility' is the opt-in that keeps the box. The class toggle reproduces that opt-in by accident.
WorkspaceController.syncTopologyBar inserts two recovery buttons per popup ahead of the action spacer, so at narrow widths the bar needs wrap: 'wrap'. The wrap is not the defect.
The Fix
Bind hidden to the same formatter, hidden: data => !Workspace.topologyStateText(lineState(data)), keep workstation-topology-state as a static cls, and drop the neo-hidden toggle.
Acceptance Criteria
Out of Scope
- Once the readout shows text, its box alone exceeds the 12px the row has left, so at this width the bar still wraps while the readout speaks. Truncating the readout instead is a separate design question.
wrap: 'wrap' itself, and the #16756 display requirement.
Decision Record impact: none.
Related
#17844 (census) · #18553 / #18595 (the readout) · #18560 (the padding token) · #18015 / #18016 (the rail precedent) · #18456 (parent epic)
Live latest-open sweep: checked the latest 20 open issues at 2026-09-13T11:40:20Z (newest #18658); no equivalent. A2A claim sweep (30 most recent, all read-states, 11:40Z): no claim on the bar or its readout. Memory Core sweep: no hit on the bar wrapping or the readout's box. Own-assignment sweep: #17844 is the census owner; nothing else of mine on the bar. Content sweep: the local mirror (resources/content/issues) was last synced 2026-08-28, stops at #17800 and holds no topology-bar ticket, so an all-state GitHub title search stands in: #18545 and #18558, neither about the bar's width.
Origin Session ID: d010413d-0559-4755-b8f7-34cbcdc8d0b3
Retrieval Hint: "Workstation topology bar wraps to two rows at 756px: the hidden readout keeps its visibility:hidden box, dock host 328→288px, five NL arms red"
Context
#17844's census at dev@cce07cdade (2026-09-13) lists five Workstation Neural Link arms red that were green or skipped at dev@22c183ccf9 on the same host. All five follow from one layout change. In the census's 800×600 headless window, where the Workstation's inner size is 756×469, the topology bar now wraps onto a second row and takes 40px from the dock.
The Problem
At this width the bar's content box is 732px: 756px less
--toolbar-padding: 6px 12px(#18560). The row needs 746px: Save 159, Close 165, Reset 175, readout 20, Undo 96 and Redo 95, plus six 6px gaps (the action spacer has no basis). So Redo wraps.26px of that row is the readout, which has nothing to say at boot. It hides by toggling
neo-hidden(apps/workstation/view/Workspace.mjs:475), andneo-hiddenisvisibility: hidden(resources/scss/src/Global.scss:116), so its 20px padding box and its gap stay in the flex line. Without them the row needs 720px and fits.Two one-row controls ran at dev@5dc6b80fef on the same host, each running the three spec files whole plus a bar probe. The only change between f9709716ad and that head is #18649, which touches comments, a guide and the docs SEO script.
wrap: 'nowrap'hiddenWorkstationHumanPopupOverlapNLlarge-over-small ×2 (:1585)WorkstationPopOutSparklinesNL(:68)WorkstationTearOutSourceContinuityNLfilm and plain pace (:1017,:1022)nowrapgets its row by shrinking every button (Save 159→155px). Hiding the readout keeps every button at its natural width. This is the defect #18016 fixed for the toolbar rail: a withdrawn element takes no space.The Architectural Reality
Workspace.createTopologyBar). Itsclsandhtmlbindings both go throughWorkspace.topologyStateText, so visibility and text cannot disagree.Neo.component.Base:hiddenwith the defaulthideMode_: 'removeDom'(src/component/Base.mjs:148) keeps the vdom node and removes its DOM, while'visibility'is the opt-in that keeps the box. The class toggle reproduces that opt-in by accident.WorkspaceController.syncTopologyBarinserts two recovery buttons per popup ahead of the action spacer, so at narrow widths the bar needswrap: 'wrap'. The wrap is not the defect.The Fix
Bind
hiddento the same formatter,hidden: data => !Workspace.topologyStateText(lineState(data)), keepworkstation-topology-stateas a staticcls, and drop theneo-hiddentoggle.Acceptance Criteria
:669) stays red on its 1200px display requirement, as it is at both heads.Out of Scope
wrap: 'wrap'itself, and the #16756 display requirement.Decision Record impact: none.
Related
#17844 (census) · #18553 / #18595 (the readout) · #18560 (the padding token) · #18015 / #18016 (the rail precedent) · #18456 (parent epic)
Live latest-open sweep: checked the latest 20 open issues at 2026-09-13T11:40:20Z (newest #18658); no equivalent. A2A claim sweep (30 most recent, all read-states, 11:40Z): no claim on the bar or its readout. Memory Core sweep: no hit on the bar wrapping or the readout's box. Own-assignment sweep: #17844 is the census owner; nothing else of mine on the bar. Content sweep: the local mirror (
resources/content/issues) was last synced 2026-08-28, stops at #17800 and holds no topology-bar ticket, so an all-state GitHub title search stands in: #18545 and #18558, neither about the bar's width.Origin Session ID: d010413d-0559-4755-b8f7-34cbcdc8d0b3 Retrieval Hint: "Workstation topology bar wraps to two rows at 756px: the hidden readout keeps its visibility:hidden box, dock host 328→288px, five NL arms red"