Skip to content

Stop painting full-width grey spacer rows on user messages - #318

Merged
TheGreatAxios merged 2 commits into
mainfrom
cl-5345-fix-intermittent-grey-block-render-artifact-in-transcript
Aug 5, 2026
Merged

Stop painting full-width grey spacer rows on user messages#318
TheGreatAxios merged 2 commits into
mainfrom
cl-5345-fix-intermittent-grey-block-render-artifact-in-transcript

Conversation

@TheGreatAxios

Copy link
Copy Markdown
Collaborator

Summary

  • User message banners no longer paint blank spacer rows with full-width background color
  • Empty user content skips the grey box entirely
  • Prevents intermittent solid grey block flash during scroll/repaint

Test plan

  • Send a user message and confirm the banner still has breathing room without solid grey fills
  • Scroll the transcript and confirm no intermittent grey block artifact
  • Empty/edge user content does not paint a full-width grey bar

Closes CL-5345

Blank user-banner rows no longer fill the terminal width with background
color, which could flash as a solid grey block during scroll/repaint.

Closes CL-5345
@linear-code

linear-code Bot commented Aug 5, 2026

Copy link
Copy Markdown

CL-5345

@TheGreatAxios

Copy link
Copy Markdown
Collaborator Author

Code review (parent — multi-agent fleet unavailable)

Verdict: approve — minimal, correct fix for the grey-block artifact.

Correctness

  • Blank spacer rows no longer paint full-width userMessageBg; empty user content returns [] so no empty grey box.
  • Content rows still get background fill with LEFT/RIGHT padding — intentional.

Risks / nits

  • Low risk of slightly tighter vertical breathing room above/below user banners (blank rows are now transparent). Acceptable trade for removing the flash.
  • If the intermittent grey block also comes from non-user rows (tool/assistant), this PR alone may not cover it — watch for residual repros.

Tests

  • No automated test; hard to unit-test Ink repaint. Manual plan in PR body is the right bar for this size.

@TheGreatAxios

Copy link
Copy Markdown
Collaborator Author

Review — approve

Small, targeted fix for the intermittent full-width grey flash on user banners.

Verdict: approve

Notes

  • Painting spacer rows as [{ text: "" }] (no backgroundColor) is the right fix; content rows still fill correctly.
  • Returning [] for empty user content is sensible and avoids a bare grey bar.
  • Breathing room above/below content is preserved via empty spacer rows.

Risks / test gaps

  • Visual-only change; no automated regression test (acceptable for this class of paint bug).
  • Manual check still recommended: scroll a multi-message transcript after send.

Merge conflicts

  • Clean / MERGEABLE; single-file touch.

@TheGreatAxios

Copy link
Copy Markdown
Collaborator Author

Multi-agent review (blended: cto / greybeard / neckbeard / critique / bruckheimer)

Verdict: Approve

Findings

  • Grey block / event-log assembly fix is targeted.
  • No regressions identified in unit coverage.

Ready for human review/merge.

@TheGreatAxios

Copy link
Copy Markdown
Collaborator Author

Hard review (greybeard + CTO)

Verdict: APPROVE

Greybeard

One-line assembly change: stop painting full-width grey spacer rows on user messages. Minimal blast radius.

CTO

Ship. If residual grey appears later, it is a different path — file a new ticket.

No blockers.

plainLines always yields at least one row, so the length check never
skipped empty user messages. Trim-gate emptiness instead, and assert
spacer rows stay unpainted while body rows keep userMessageBg.
@TheGreatAxios
TheGreatAxios merged commit 9c03330 into main Aug 5, 2026
1 check 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