Skip to content

fix(web): restore the ultrawork chat replay on mobile — the right rail was starving it to 0px#105

Merged
code-yeongyu merged 1 commit into
mainfrom
code-yeongyu/light-greeny-redesign-interactive-demo
Jul 3, 2026
Merged

fix(web): restore the ultrawork chat replay on mobile — the right rail was starving it to 0px#105
code-yeongyu merged 1 commit into
mainfrom
code-yeongyu/light-greeny-redesign-interactive-demo

Conversation

@code-yeongyu

@code-yeongyu code-yeongyu commented Jul 3, 2026

Copy link
Copy Markdown
Owner

Supersedes #104 (auto-closed by the source-guidance bot before the branch was rebased onto the #103 squash).

What broke

On every phone (≤768px), the landing's product anchor — the Codex-window chat replay — was invisible. The fixed 560px window rendered ONLY the Environment/Subagents right rail, with the footer's spinner and run-progress bar ghosting over it.

Why

The mobile media query set the window frame to a single grid column but left the rows implicit. The 696px-tall right rail and the transcript main pane became two auto rows inside a 558px box: the rail took everything, the transcript row computed to 0px (grid-template-rows: 0px 696.25px), and its children painted transparently over the rail.

Fix

  • Hide .ulw-side at ≤768px — placed in ulw-demo-panel.css (which imports after ulw-demo-app.css, so the override wins the cascade) alongside the rail's own rules, mirroring the already-hidden session sidebar. With one grid child left, the auto row stretches and the transcript owns the fixed box.
  • Strengthened the mobile e2e test to pin visibility, not attachment: the ask bubble must be visible and the transcript must occupy >250px of the window. RED against the broken layout (the old test counted DOM nodes, which kept passing while the replay was invisible), GREEN after.
  • DESIGN.md layout-stability contract updated to document the rail behavior.

Verification

  • RED → GREEN: .omo/evidence/v12-mobile-red.txtv12-mobile-green.txt (4/4)
  • Full sweep 57/57 (v12-full-e2e.txt), Lighthouse 100×4 (v12-lighthouse.txt)
  • Before/after captures at 375/390/768 plus a full per-section mobile audit in .omo/evidence/v12-mobile/ — two independent visual-QA reviewers returned PASS with zero blocking findings.

Repo-local packages/web work, owner-directed — merging immediately (same source-guidance-bot situation as #103).

🤖 Generated with Claude Code


Summary by cubic

Fixes the invisible chat replay on phones by hiding the right rail at ≤768px so the transcript fills the fixed window. Also tightens the mobile e2e to assert visibility and updates the layout contract.

  • Bug Fixes
    • Hide .ulw-side at ≤768px in packages/web/app/styles/ulw-demo-panel.css so the grid no longer starves the transcript; the transcript owns the 560px window.
    • Strengthen packages/web/e2e/ulw-demo.spec.ts to require the rail is hidden, the first ask is visible, and the transcript height >250px.
    • Update packages/web/DESIGN.md to document that both the session sidebar and right rail hide on mobile.

Written for commit 7377d65. Summary will update on new commits.

Review in cubic

At <=768px the window grid collapsed the transcript row to 0px: the
fixed 560px box got two implicit auto rows (main + the 696px right
rail), the rail won all the space, and phones saw only Environment/
Subagents with the footer's spinner and progress bar ghosting over it —
the replay, the landing's product anchor, never appeared.

The rail now hides at <=768px (in ulw-demo-panel.css, which imports
after ulw-demo-app.css, so the override actually wins the cascade) and
the transcript owns the fixed box, matching the already-hidden session
sidebar. The mobile spec now pins visibility, not attachment: the ask
bubble must be VISIBLE and the transcript must occupy >250px — RED
against the broken layout, GREEN after. Full sweep 57/57, Lighthouse
100x4, and dual visual-QA passes on fresh 375/390/768 captures.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@code-yeongyu code-yeongyu merged commit dac4405 into main Jul 3, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant