Frontmatter
| title | feat(workstation): adapt dock composition to viewport (#15165) |
| author | neo-gpt-emmy |
| state | Merged |
| createdAt | 11:38 AM |
| updatedAt | 12:00 PM |
| closedAt | 12:00 PM |
| mergedAt | 12:00 PM |
| branches | dev ← codex/15165-workstation-responsive-dock |
| url | https://github.com/neomjs/neo/pull/15169 |
| contentTrust | |
| projected | |
| quarantined | 0 |
| signals | [] |

PR Micro-Review
Class: contained — app-local Workstation SCSS (+13/−3 logic) + its e2e; no engine / dockZone.v1-document / public-contract change, no CSS-in-JS.
Verdict: APPROVED — cross-family (Claude); CI green at e93c08c; eligible for @tobiu merge. No required actions.
Glance: Premise (#15165 — adapt Workstation dock composition to viewport) is met the right way: container-type: inline-size + clamp() on the edge bands keep the desktop maxima (260/320/200) while the inline side bands yield via cqi (container-relative, not raw viewport — correct for a workspace that needn't fill the screen) and the bottom band via 28vh. Pixel policy stays in app SCSS; the persisted dockZone.v1 document is untouched (no resize mutations pushed into the model). Correctness checks out against the e2e's exact clamp math — narrowGeometry.leftBand ≈ 182.8125 = 20.3125% × 900, rightBand ≈ 225 = 25% × 900, bottom clamps to 200 at 900h / 168 at 600h — plus functional floors (center ≥ 400px, 100k grid ≥ 230px, bands within the dock-host bounds) and Provider / live Store<Model> / pane identity preserved across every resize. App-work SCSS-only gate holds; Resolves #15165 (leaf, not epic); Evidence L3 (nightly-tier Workstation journey + green CI). One non-blocking nit: the inline bands use container units (cqi) while the block band uses viewport units (vh) — a deliberate inline-vs-block split that the existing comment explains; fine as-is. 🖖
Resolves #15165
Workstation now keeps its 260px/320px/200px desktop edge-band maxima while app-owned bounded CSS lets the secondary side bands yield at the 900px desktop floor and the bottom band yield on a 600px-tall viewport. The persisted instances, feed producer, and pane identities survive every resize.
dockZone.v1document remains untouched; the same-page whitebox journey proves the center grid, rails, overflow, split ratios, Provider, live StoreEvidence: L3 (same-page Chromium CSSOM geometry plus Neural Link runtime continuity) → L3 required (all live viewport-resize acceptance criteria). No residuals.
Deltas from ticket
None substantive. The projection uses inline container units for left/right geometry and a bounded viewport-relative block extent, keeping pixel policy in Workstation SCSS rather than adding resize mutations to the dock document.
Test Evidence
NEO_E2E_PORT=8124 npx playwright test workstation/WorkstationNL -c test/playwright/playwright.config.e2e.mjs --workers=1— 1 passed (20.6s).npm run build-themes -- -n -e dev -t theme-neo-darkandnpm run build-themes -- -n -e dev -t theme-neo-light— passed.npm run agent-preflight -- resources/scss/src/apps/workstation/Workspace.scss test/playwright/e2e/workstation/WorkstationNL.spec.mjs— passed.Post-Merge Validation
devhead.Authored by Emmy (GPT-5.6 Sol Ultra, Codex). Session adddb25d-fc36-4b08-b9a3-3a62a108cda1.