Skip to content

Fix terminal UI regressions, font fallback handling, and hook session routing#28

Merged
oso95 merged 24 commits intomainfrom
feat/bug-fixes
Mar 21, 2026
Merged

Fix terminal UI regressions, font fallback handling, and hook session routing#28
oso95 merged 24 commits intomainfrom
feat/bug-fixes

Conversation

@oso95
Copy link
Owner

@oso95 oso95 commented Mar 19, 2026

  • fix terminal font selection and platform fallback handling

    • use platform-specific default terminal fonts instead of JetBrains Mono everywhere
    • sanitize saved terminal fonts against detected installed monospace fonts
    • fall back to an installed platform-appropriate font on Windows/macOS instead of keeping stale missing fonts in settings
    • stop showing unavailable terminal fonts in the settings dropdown
  • add terminal search and keyboard shortcut support

    • add Cmd/Ctrl+F terminal search action and keybinding wiring
    • add literal case-insensitive terminal search over the Alacritty grid
    • render match highlights in the terminal viewport
    • support next/previous match navigation
    • add search markers to the terminal scrollbar
  • fix terminal search input and keyboard navigation

    • stop swallowing printable input before GPUI text insertion reaches the search field
    • allow typing into the search box again
    • add keyboard focus state for search controls
    • support Tab / Shift+Tab navigation across input, prev, next, and close
    • support Enter / Space activation for focused search controls
  • add terminal scrollbar interactions

    • render terminal scrollbars with hover/fade behavior
    • support track clicking and thumb dragging
    • keep scrollbar visibility in sync with scroll activity
  • fix shortcut recording focus in settings

    • restore workspace focus when clicking a shortcut row so the next shortcut is actually captured
    • update the recording prompt to say Press a shortcut... to match the supported behavior
  • fix layout toggle to follow saved/top-bar profiles

    • switch toggle layout from the legacy hardcoded LayoutProfile cycle to the top bar/profile manager sequence
    • keep active layout state synced with saved/custom layout profiles
    • clear invalid active-profile state instead of leaving stale selection behind
    • prevent shortcut-driven layout cycling from surfacing layouts that are not in the current visible profile set
  • fix task board shortcut conflict

    • keep sidebar on Cmd/Ctrl+B
    • move task board toggle to Cmd/Ctrl+T
    • avoid the previous Cmd/Ctrl+B overlap
  • fix hook signal routing by stable UUID/session identity

    • prefer CLI-provided session IDs and Codirigent session UUIDs over the legacy integer session ID path
    • route Codex/Gemini hook signals by UUID when available
    • avoid backfilling CLI session IDs from filenames when the filename is actually the Codirigent session UUID
    • keep Claude routing behavior consistent while tightening fallback behavior

Verification

  • cargo fmt --all
  • cargo check -p codirigent-ui --features gpui-full
  • targeted codirigent-ui tests for terminal search, layout profile cycling, and top bar active-profile clearing
  • prior branch verification also covered full build/test/clippy gates and unwrap audit

oso95 added 24 commits March 18, 2026 14:56
The hook now prefers CODIRIGENT_SESSION_UUID over CODIRIGENT_SESSION_ID
for signal filenames. On the app side, Codex/Gemini signal routing now
matches by session UUID (like Claude already did) before falling back to
the legacy integer ID.
Hook-sourced resting states (Idle, ResponseReady) were being evicted
from the cache after the 600s TTL, causing the detector's Working
status (from the shell's CommandExecuted state) to take over.
- Clamp cell dimensions to safe minimums in compute_cell_dimensions to
  prevent freeze when a symbol font (e.g. Wingdings) produces zero-width
  or degenerate metrics
- Filter known symbol/dingbat/emoji fonts from the monospace font picker
- Remove terminal_font_family from theme JSON files — font choice is a
  user setting, not a theme property, so theme switches no longer reset it
- Run sanitize_terminal_font_family once after font detection instead of
  every render frame
@oso95 oso95 merged commit 1b75c98 into main Mar 21, 2026
5 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