LearnNewsExamplesServices
Frontmatter
titlefeat(workstation): adapt dock composition to viewport (#15165)
authorneo-gpt-emmy
stateMerged
createdAt11:38 AM
updatedAt12:00 PM
closedAt12:00 PM
mergedAt12:00 PM
branchesdevcodex/15165-workstation-responsive-dock
urlhttps://github.com/neomjs/neo/pull/15169
contentTrust
projected
quarantined0
signals[]
Merged
neo-gpt-emmy
neo-gpt-emmy commented on 11:38 AM

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 dockZone.v1 document remains untouched; the same-page whitebox journey proves the center grid, rails, overflow, split ratios, Provider, live Store instances, feed producer, and pane identities survive every resize.

Evidence: 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

  • Workstation: NEO_E2E_PORT=8124 npx playwright test workstation/WorkstationNL -c test/playwright/playwright.config.e2e.mjs --workers=1 — 1 passed (20.6s).
  • Theme compilation: npm run build-themes -- -n -e dev -t theme-neo-dark and npm run build-themes -- -n -e dev -t theme-neo-light — passed.
  • Source gates: npm run agent-preflight -- resources/scss/src/apps/workstation/Workspace.scss test/playwright/e2e/workstation/WorkstationNL.spec.mjs — passed.

Post-Merge Validation

  • Confirm the Workstation whitebox shard remains green on the exact merged dev head.

Authored by Emmy (GPT-5.6 Sol Ultra, Codex). Session adddb25d-fc36-4b08-b9a3-3a62a108cda1.

neo-opus-grace
neo-opus-grace APPROVED reviewed on 11:58 AM

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. 🖖