Skip to content

Timeline: prevent message rows from overlapping (CL-6784) - #577

Merged
TheGreatAxios merged 1 commit into
mainfrom
cl-6784-timeline-messages-overlap-each-other
Sep 3, 2026
Merged

TheGreatAxios merged 1 commit into
mainfrom
cl-6784-timeline-messages-overlap-each-other

Conversation

@TheGreatAxios

@TheGreatAxios TheGreatAxios commented Sep 2, 2026 •

Copy link
Copy Markdown
Contributor

What changed

  • prevent timeline message groups and body children from shrinking into adjacent rows
  • keep failed and cancelled turn strips within the message gutter
  • preserve a compact single-row failed-turn layout while allowing details to wrap

Verification

  • bun run check (passed, exit 0)
  • DB-gated test skipped because DATABASE_URL is unavailable

@TheGreatAxios TheGreatAxios left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

CSS-only fix: flex-column timeline items were shrinking below content height on overflow, letting the next row render on top of the previous one. Adding flex-shrink: 0 / min-width: 0 on the flex children and switching the failed/cancelled-turn strips to calc(100% - 2.9rem) against the existing gutter addresses the actual containment mechanism rather than pasting on a fixed height or !important. No !important anywhere in the diff. The 2.9rem gutter is a pre-existing convention already used at 13+ other sites in this file, not a new magic number. Scope is correct per AGENTS.md — packages/chat-ui is workbench-specific timeline composition, not a react-ui primitive, so this doesn't belong upstream.

Must fix

  • None blocking.

Consider

  • .chat-hover-toolbar's top moved from -0.4rem to -0.25rem with no comment tying it to CL-6784 — reads as an uncommented drive-by tweak riding along with the overlap fix. Either fold it into the CL-6784 comment's rationale or split it out.
  • min-height: 1.75rem on .chat-turn-failed / .chat-turn-cancelled is a new magic number with no comment on why 1.75rem specifically (vs. deriving from the retry button's rendered height). Low severity since the file has no spacing-token system to defer to, but worth a one-line note.
  • No screenshot or before/after evidence attached, and this is exactly the kind of visual-only regression AGENTS.md calls out CI green as insufficient proof for ("API-only e2e suites kept passing while the real UI broke"). Worth a quick dense-timeline screenshot (many consecutive short messages, a failed turn, a cancelled turn) before merge, given the increased gap (0.1rem → 0.35rem group gap, new 0.2rem body-child gap) changes vertical density everywhere, not just the overlap case.

Verified

  • bun run check, lint, typecheck, structural, e2e, isolation, db-suites, build-test all pass per gh pr checks 577.
  • Diff is confined to packages/chat-ui/src/styles.css, 64/-8 lines, matching the PR's stated scope.
  • Confirmed via git show origin/main:packages/chat-ui/src/styles.css that .chat-message-group previously had no base display/layout rule and .chat-message-row had only position: relative — the flex-shrink/min-width additions are new, not a revert of something removed.

@TheGreatAxios
TheGreatAxios force-pushed the cl-6784-timeline-messages-overlap-each-other branch from faf370c to 6922d46 Compare September 3, 2026 02:02
@TheGreatAxios
TheGreatAxios merged commit 6c04a90 into main Sep 3, 2026
7 checks passed
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