Skip to content

fix: terminal display cutoff and rendering issues#30

Merged
oso95 merged 5 commits intomainfrom
fix/terminal-display-cutoff
Mar 22, 2026
Merged

fix: terminal display cutoff and rendering issues#30
oso95 merged 5 commits intomainfrom
fix/terminal-display-cutoff

Conversation

@oso95
Copy link
Owner

@oso95 oso95 commented Mar 22, 2026

Summary

  • Fill terminal canvas background to prevent display cut-off after window resize
  • Force full row rebuild when scrolled back to prevent display cycling artifacts
  • Sort hook signals by timestamp to prevent stale status overwrites

Test plan

  • Resize the terminal window and verify no cut-off or blank areas appear
  • Scroll up in terminal history, then scroll back down — no flickering or cycling
  • Trigger multiple hook signals rapidly and verify the latest status is displayed

🤖 Generated with Claude Code

oso95 added 5 commits March 21, 2026 17:22
… resize

Empty terminal rows use the default background color and produce no
bg_rects_hsla entries, so they showed the panel_bg from the outer div
rather than the terminal background color. This was visible as a visual
cut-off when dragging a session from a smaller pane into a larger one.

Fix by painting the full canvas bounds with terminal_bg at the start of
the paint closure, before any cell-specific backgrounds. Non-default
background cells still paint their own color on top, as before.
…ling

When new output arrives while the viewport is scrolled into scrollback,
alacritty's partial damage tracking only reports rows changed in the
active area. But new output can push lines into scrollback, shifting all
content visible in the scrolled viewport. Using partial damage leaves
most rows stale, causing a cycling/repeating display artifact.

Skip the partial-damage optimization when display_offset > 0 so all
viewport rows are rebuilt from the current grid state.
When multiple signal files target the same session (e.g., parent + subagent),
non-deterministic read_dir order could let a stale "idle" from the parent
overwrite a newer "working" from the subagent, keeping the status stuck on idle.
On app restart, finalize_restored_session_bootstrap overwrote the workspace
session's session_uuid with the old UUID from state.json. But the PTY was
already spawned with the new UUID from Session::new() as the
CODIRIGENT_SESSION_UUID env var. This mismatch caused hook signal routing
to fail silently — signals carried the PTY's UUID but the workspace had the
old one — keeping status stuck on Idle.
- Add sign-and-upload.ps1 script for local MSI signing with Certum cert
- Add windows-release-signing.md documenting the full signing workflow
- Exclude MSI from CI checksums (replaced by signed version post-build)
- Reorganize docs into features/, release/, workflows/ subdirectories
- Remove obsolete plan files and gitignore specs/
@oso95 oso95 merged commit d2997ac into main Mar 22, 2026
5 checks passed
@oso95 oso95 deleted the fix/terminal-display-cutoff branch March 22, 2026 19:52
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