Skip to content

fix: batch of five open-issue fixes (#57 #58 #59 #60 #61) - #62

Merged
talayash merged 1 commit into
masterfrom
fix/open-issues-batch
Sep 4, 2026
Merged

fix: batch of five open-issue fixes (#57 #58 #59 #60 #61)#62
talayash merged 1 commit into
masterfrom
fix/open-issues-batch

Conversation

@talayash

@talayash talayash commented Sep 4, 2026

Copy link
Copy Markdown
Owner

Summary

Five orthogonal fixes bundled into one commit — each maps to a distinct open issue and touches disjoint files.

Test plan

  • tsc --noEmit — clean
  • vitest run — 466/466 tests pass, 50 test files (includes +7 new tests for matchesKeyCode covering Hebrew/Cyrillic/Arabic/Greek e.key variants, CapsLock invariance, digit codes, and defensive rejection of non-letter/non-digit arguments)
  • vite build — clean production build
  • cargo check (src-tauri) — clean
  • npm run tauri dev — 523/523 crates compiled, claude-terminal.exe launched with no panics
  • Manual QA on Windows 11 dark theme:
    • Switch to Hebrew via Win+Space and confirm Ctrl+V pastes into a terminal (repeat for Ctrl+C copy, Ctrl+W, Ctrl+B, Ctrl+G, Ctrl+Shift+D)
    • Click a branch pill and confirm the popover reads flat/opaque, not glass
    • Verify all four rounded window corners show the same visible hairline
    • Sidebar 'New Session' → complete flow → press Enter → confirms Enter reaches the terminal, not the modal
    • Header X on active session closes it with an error-toast fallback

🤖 Generated with Claude Code

- #57 Ctrl+letter shortcuts under non-Latin keyboard layouts
  Introduces `matchesKeyCode(e, 'V')` (src/lib/keymap.ts) which compares
  `KeyboardEvent.code` (physical key position, layout-invariant) instead
  of `KeyboardEvent.key` (localized character). Migrates every letter and
  digit accelerator in useKeyboardShortcuts.ts and TerminalView.tsx's
  xterm handler; non-letter keys (Tab, F1-F8, `,`, `=`, `-`, `\`) keep
  reading `e.key`. Restores Ctrl+V, Ctrl+C, Ctrl+W, Ctrl+B, Ctrl+G,
  Ctrl+Shift+D and every other Ctrl+letter shortcut for users on Hebrew,
  Cyrillic, Arabic, Greek etc. layouts. +7 unit tests.

- #58 Enter re-opens New Terminal modal after creating a terminal
  Sidebar 'New Session' button now blurs itself before opening the modal,
  and NewTerminalModal explicitly focuses the newly-created xterm inside
  a double-rAF so focus wins the race against the visibility flip.

- #59 Add close-session button to terminal header
  Right cluster in TerminalTabs.tsx now hosts an X icon gated on
  `activeConfig && !activeFilePath`, mirroring SessionCards'
  closeWithReport error handling (toast.error + reportInvokeFailure).

- #60 Rounded window corners lack a visible border in dark theme
  Frameless transparent window composited outside its rounded shape
  against the desktop, so the outer `0 0 0 1px` hairline vanished on 3
  of 4 corners. Switched to `inset 0 0 0 1px` so the edge renders inside
  the opaque --canvas fill; every corner now shows the same subtle
  hairline in both themes.

- #61 Branch popover still uses old glass/material treatment
  Replaced `material-popover` (backdrop-blur + edge-light rim) on the
  branch switcher with the flat New UI treatment:
  `bg-elevation-4 ring-1 ring-inset ring-seam-strong shadow-elevation-3`.
  Global .material-popover migration deferred to a design-system pass.

Verification: tsc clean, 466/466 vitest tests pass, vite build clean,
cargo check clean, tauri dev launched end-to-end.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@ecc-tools

ecc-tools Bot commented Sep 4, 2026

Copy link
Copy Markdown
Contributor

ECC bundle files are already tracked in this repository. Skipping generation of another bundle PR.

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