Skip to content

fix(app): keep session composer within timeline width#464

Merged
Astro-Han merged 1 commit into
devfrom
codex/i456-input-width
May 6, 2026
Merged

fix(app): keep session composer within timeline width#464
Astro-Han merged 1 commit into
devfrom
codex/i456-input-width

Conversation

@Astro-Han

Copy link
Copy Markdown
Owner

Summary

Fix the session timeline width cap so the visible conversation flow stays wider than the composer in the md viewport range.

Why

Fixes #456.

The previous fix shipped in the release asset, but it missed the middle desktop width band. The composer used fixed pixel caps (720px / 920px), while the timeline used md:max-w-200. With PawWork's 13px root font size, max-w-200 resolves to 650px, so the composer could become wider than the message flow around a 893px CSS viewport.

Related Issue

Closes #456

Human Review Status

Pending. A human should make the final merge decision after reviewing the final diff and verification evidence.

Review Focus

Check that the timeline width cap change is intentionally scoped to session layout and does not alter global spacing tokens.

Risk Notes

Low. This changes only the centered session timeline max width at md and keeps the existing 2xl cap unchanged. It does not touch persistence, release packaging, updater, permissions, or dependencies.

How To Verify

Focused regression before fix: failed at 893x776 with timeline 650px vs composer 720px
Session E2E: 3 passed with bun --cwd packages/app test:e2e e2e/app/session.spec.ts
Typecheck: passed with bun --cwd packages/app typecheck
Diff check: no whitespace errors with git diff --check
Electron dev visual check: user confirmed the composer now aligns with the conversation flow

Screenshots or Recordings

Manual Electron dev verification was performed against the reported layout. The user confirmed the updated UI now looks normal in the thread screenshot.

Checklist

  • Human review status is stated above as pending, approved, or not required
  • I linked the related issue, or stated why there is no issue
  • This PR has type, primary area, and priority labels, or I requested maintainer labeling
  • I described the review focus and any meaningful risks
  • I listed the relevant verification steps and the key result for each
  • I did not introduce unrelated refactors, dependencies, generated files, or file changes beyond the stated scope
  • I manually checked visible UI or copy changes when needed, with screenshots or recordings
  • I considered macOS and Windows impact for platform, packaging, updater, signing, paths, shell, or permissions changes
  • I called out docs, release notes, dependencies, permissions, credentials, deletion behavior, generated content, or local file changes when relevant
  • I reviewed the final diff for unrelated changes and suspicious dependency changes
  • I am targeting dev, and my PR title and commit messages use Conventional Commits in English

@Astro-Han Astro-Han added bug Something isn't working P1 High priority ui Design system and user interface labels May 6, 2026
@coderabbitai

coderabbitai Bot commented May 6, 2026

Copy link
Copy Markdown
Contributor

Warning

Rate limit exceeded

@Astro-Han has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 41 minutes and 11 seconds before requesting another review.

To continue reviewing without waiting, purchase usage credits in the billing tab.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: a02c9d31-8f8a-47bf-b97d-423b874ab4e6

📥 Commits

Reviewing files that changed from the base of the PR and between 52e7fd2 and 06d5438.

📒 Files selected for processing (2)
  • packages/app/e2e/app/session.spec.ts
  • packages/app/src/pages/session/message-timeline.tsx
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch codex/i456-input-width

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request updates the message timeline's maximum width constraints for medium viewports and adds a corresponding E2E test case. The review feedback suggests extending the 1000px width cap to the xl breakpoint (1280px) to ensure the timeline remains wider than the composer across all desktop resolutions. Additionally, the reviewer recommends adding an E2E test case specifically for the xl range to verify these layout improvements.

Comment thread packages/app/src/pages/session/message-timeline.tsx
Comment thread packages/app/src/pages/session/message-timeline.tsx
Comment thread packages/app/e2e/app/session.spec.ts
@Astro-Han Astro-Han merged commit bf28d5b into dev May 6, 2026
22 checks passed
@Astro-Han Astro-Han deleted the codex/i456-input-width branch May 6, 2026 00:43
Astro-Han added a commit that referenced this pull request May 6, 2026
Root cause:
- PR #464 fixed the original composer/timeline mismatch by replacing the session timeline medium-width cap with explicit `md:max-w-[800px]`.
- The #440 UI slice merge chain later regressed that fix. PR #461 first changed both timeline caps back to `md:max-w-200`, which resolves to about 650px with PawWork's 13px root font.
- PR #460 then kept that same `message-timeline.tsx` state while removing dead delete-session code, so #479 surfaced as the composer still appearing wider than the reading column at right-panel-hidden desktop widths.

Fix:
- Restore both session timeline medium-width caps to `md:max-w-[800px]`.
- Keep the existing 2xl timeline cap and composer caps unchanged, preserving the prior #217/#456 intent that composer remains inset at very wide desktop sizes.
- Add a focused E2E checkpoint for #479: viewport 1280x900 with `#right-panel[aria-hidden="true"]`, then reuse the existing timeline/composer bounding-box contract.

Verification:
- Red check: temporarily restored the old `md:max-w-200` cap and confirmed the focused E2E failed at the new 1280px/right-panel-hidden checkpoint with timeline 651px vs composer 720px.
- Focused E2E passed: `bun --cwd packages/app test:e2e e2e/app/session.spec.ts -g "session timeline visible content is not narrower than composer shell"`.
- Typecheck passed: `bun --cwd packages/app typecheck`.
- Diff check passed: `git diff --check`.
- PR CI passed, including typecheck, unit-app, unit-opencode, unit-desktop, e2e-artifacts, smoke-macos-arm64, CodeQL, dependency review, commit lint, and PR title lint.

Follow-up:
- No immediate product follow-up is required for #479.
- A separate architecture issue may still be worth opening later for the broader session width contract, because timeline, message item, and composer width values are still split across files and have accumulated breakpoint-specific tests.

Closes #479.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working P1 High priority ui Design system and user interface

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant