Commit graph

535 commits

Author SHA1 Message Date
Lawrence Chen
acd45bbd9e
Remove copy-on-select setting 2026-03-31 04:05:13 -07:00
Austin Wang
6e6a2c95b5
Merge pull request #2405 from manaflow-ai/issue-2388-sidebar-layout-regression
Fix duplicate sidebar git metadata publishes
2026-03-31 01:01:25 -07:00
austinpower1258
3666f48a9a Scope sidebar row observation to visible workspace state 2026-03-31 00:41:18 -07:00
austinpower1258
d75e97fb0a Align switcher fingerprint tests with display names 2026-03-30 23:39:01 -07:00
Austin Wang
a5120be321
Revert "Map Shift+Enter to raw newline in Ghostty" 2026-03-30 21:56:59 -07:00
austinpower1258
642aead088 Add regression tests for duplicate sidebar git publishes 2026-03-30 21:48:28 -07:00
Lawrence Chen
112358ed01
Merge pull request #2393 from manaflow-ai/issue-2391-cmd-p-animated-workspace-rerender
Keep cmd+p stable during animated workspace title updates
2026-03-30 21:21:09 -07:00
Lawrence Chen
4c1bdb554a
Address cmd-p review feedback 2026-03-30 21:15:51 -07:00
Lawrence Chen
208e741ddc
Clarify command palette open-state routing test 2026-03-30 20:58:01 -07:00
Lawrence Chen
0322e78e8a
Stop stale command palette empty-state flashes 2026-03-30 18:50:10 -07:00
Lawrence Chen
2877e2c80a
Add command palette empty-state regression test 2026-03-30 18:47:42 -07:00
Lawrence Chen
1dab226bcc
Add ctrl-k command palette regression tests 2026-03-30 18:38:39 -07:00
Lawrence Chen
ae00d5d2a7
Add regression test for switcher title churn 2026-03-30 18:36:30 -07:00
Austin Wang
2d2d8da1c7
Merge pull request #2355 from manaflow-ai/issue-2352-shift-enter-tmux
Map Shift+Enter to raw newline in Ghostty
2026-03-30 18:10:57 -07:00
austinpower1258
8336aae865 Use pane TTY fallback for tmux Shift+Enter 2026-03-30 04:15:23 -07:00
austinpower1258
f4c99d34f3 Fix tmux Shift+Enter state reporting 2026-03-30 03:49:00 -07:00
Austin Wang
0666a98ae9
Fix Dock persistence for manual app icons (#2360) 2026-03-30 03:34:35 -07:00
Austin Wang
867c93e4fa
Keep cmux browser Find shortcuts authoritative (#2356)
* Route browser Find shortcuts through web content first

* Keep cmux browser Find shortcuts authoritative

* Add browser Find inspector regression test

* Fix browser Find routing follow-ups
2026-03-30 03:16:10 -07:00
austinpower1258
9ce4997ced Fix Shift+Enter tmux follow-up regressions 2026-03-30 03:10:20 -07:00
Austin Wang
ae59e571a8
Fix #2347 terminal focus and surface recovery (#2354)
* Add regressions for issue #2347 terminal focus loss

* Fix issue #2347 terminal focus and surface recovery

* Add regressions for missing-surface recovery review cases

* Fix missing-surface recovery lifecycle and focus replay
2026-03-30 03:01:39 -07:00
austinpower1258
9080248393 Gate Shift+Enter newline remap to tmux 2026-03-30 02:55:19 -07:00
Austin Wang
29c0f525db
Add New Window to Dock menu (#2340)
* Add Dock menu new-window regression test

* Add New Window to Dock menu
2026-03-30 02:19:17 -07:00
Austin Wang
63dd7281f5
Fix fullscreen new windows opening in current Space (#2345)
* Fix fullscreen new windows opening in current Space

* works

* Stabilize fullscreen tiling regression test
2026-03-30 01:43:41 -07:00
Austin Wang
35cb42fbc8
Add copy-on-select preference (#2282) 2026-03-29 18:16:05 -07:00
Austin Wang
94cc865e83
Fix sidebar live refresh for branch and PR state (#2331)
* Add regression coverage for sidebar live refresh

* Refresh sidebar git metadata on active workspaces
2026-03-29 18:15:57 -07:00
Austin Wang
386f5abf67
Fix macOS compatibility: versioned geometry persistence and re-entrant layout crash (#2308)
- Version the persisted window geometry schema (v1 → v2) and clean up
  legacy UserDefaults keys so stale payloads from older releases don't
  cause crashes on startup.
- Defer layout follow-up flush via asyncAfter(0) and track an attempt
  version counter to invalidate stale retries, preventing re-entrant
  displayIfNeeded crashes triggered by SwiftUI geometry change callbacks.
- Replace fixed RunLoop delays in tests with polling waitUntil helpers
  and increase socket wait timeout for CI reliability.

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-28 14:17:16 -07:00
Austin Wang
f1be3978ab
Fix stale session geometry crash after 0.63.0 upgrade (#2306)
* Add regression coverage for stale window geometry migration

* Discard stale persisted window geometry on launch
2026-03-28 13:52:48 -07:00
Austin Wang
c4bc18d906
Fix ARC workspace inheritance crash and native Zig helper builds (#2283)
* Fix ARC workspace inheritance crash and native Zig helper builds

* Fix Nightly Cmd+N workspace creation crash

* Restore safe terminal config snapshots for Intel Nightly
2026-03-28 03:05:00 -07:00
Austin Wang
97fee253b5
fix: honor CJK-capable font-family before fallback injection (#2241) 2026-03-27 23:45:30 -07:00
Austin Wang
63904811f9
Revert "Fix Intel second-surface config inheritance crash (#2179)" (#2267)
This reverts commit 1f4fc476ab.
2026-03-27 20:07:12 -07:00
Austin Wang
1f4fc476ab
Fix Intel second-surface config inheritance crash (#2179) 2026-03-26 23:41:21 -07:00
Mikhail Andreev
cfe6cf89d8
fix: keyboard shortcuts not working with Russian layout (#2202)
* fix: keyboard shortcuts not working with Russian and other non-Latin layouts

When a non-Latin input source (Russian, etc.) is active, event characters
are non-ASCII. The ANSI keyCode fallback was blocked when the layout-based
translation resolved a character, leaving no safety net. Now the keyCode
fallback is always available for non-Latin layouts, matching the physical
key position — similar to Ghostty's `physical:` keybinding behavior.

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

* test: add unit tests for Russian keyboard layout shortcut matching

Two tests for Cmd+T with non-Latin (Russian) keyboard layout:
1. Layout provider returns "t" (normal ASCII fallback) — verifies
   the layout-based matching path works with Cyrillic event chars.
2. Layout provider returns nil (translation failure) — verifies the
   ANSI keyCode fallback catches the shortcut by physical key position.

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

* fix: scope ANSI keyCode fallback to non-ASCII events, add Russian to comments

Address review feedback:
- Split !hasUsableEventChars into two precise conditions:
  (hasEventChars && !eventCharsAreASCII) for non-Latin layouts, and
  (!hasEventChars && layoutCharacter empty) for synthetic/empty-char events.
  This prevents unintended keyCode fallback on Dvorak/Colemak with empty
  synthetic events.
- Add "Russian" to the non-Latin layout list in the guard comment at line 10626.

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

---------

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-26 15:25:36 -07:00
Austin Wang
fe0443fa2b
Fix Cmd+N nightly crash: avoid local Workspace refs in ARC hotpath (#2204)
* test: reproduce Cmd+N snapshot workspace lifetime race

* fix: retain snapshot workspaces through Cmd+N creation

* fix: repair workspace lifetime regression test

* fix: extract workspace config through self to avoid Xcode 16.x ARC crash

The snapshot approach (c1998e34) navigated workspace → panel → surface
through local variables. Xcode 16.4's -O ARC optimizer aggressively
elides retains on these locals through inlined call chains, causing
use-after-free on every Cmd+N in CI-built nightlies.

Fix: extract preferredWorkingDirectory and inheritedTerminalFontPoints
through self (always retained) BEFORE capturing locals. The snapshot
is now purely value-typed with no Workspace references held in locals.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-26 14:28:32 -07:00
Austin Wang
61e6a0e2b9
Fix Release-only Cmd+N workspace snapshot UAF (#2181)
* test: reproduce Cmd+N snapshot workspace lifetime race

* fix: retain snapshot workspaces through Cmd+N creation

* fix: repair workspace lifetime regression test
2026-03-25 19:12:24 -07:00
Lawrence Chen
18531fd78e
Merge pull request #2174 from manaflow-ai/task-pr-2089-followup-comments
Fix command palette follow-up review comments
2026-03-25 18:24:37 -07:00
Austin Wang
b93be12b08
Fix Cmd+N crash from workspace creation config snapshots (#2178)
* Add workspace config sanitization regression test

* Sanitize workspace creation config snapshots

---------

Co-authored-by: Lawrence Chen <lawrencecchen@users.noreply.github.com>
2026-03-25 18:10:25 -07:00
Lawrence Chen
0a1d8c2289
Skip SSH cleanup after moving the last remote surface (#2123)
* Add regression test for detached remote cleanup

* Skip SSH cleanup after remote surface transfer

* Add SSH lifecycle regression coverage

* Add SSH detach cleanup transfer regressions

* Transfer SSH cleanup ownership with detached remote terminals

* Document intentional SSH workspace focus

---------

Co-authored-by: Lawrence Chen <lawrencecchen@users.noreply.github.com>
2026-03-25 17:51:56 -07:00
Lawrence Chen
9295a7f676
Add command palette follow-up regressions 2026-03-25 17:40:38 -07:00
Lawrence Chen
8a3ab6b3f0
Fix command palette focus after terminal find (#2089)
* test: cover command palette focus guard

* fix: block terminal find from stealing palette focus

* test: cover text view focus-stealer fallback

* Add regression for hidden DevTools sync republish loop

* Avoid redundant DevTools visibility publishes

* test: cover browser find focus after workspace round-trip

* fix: restore browser find focus after workspace round-trip

* fix: keep browser find caret on workspace return

* Add workspace round-trip split find regressions

* Keep inactive find overlays from stealing focus

---------

Co-authored-by: Lawrence Chen <lawrencecchen@users.noreply.github.com>
2026-03-25 17:27:54 -07:00
Austin Wang
cbf08459d6
Fix Cmd+N workspace creation snapshot crashes (#2173)
* Add regression tests for Cmd+N workspace snapshot mutations

* Fix Cmd+N workspace creation snapshot races
2026-03-25 16:52:04 -07:00
Austin Wang
9f2adce830
fix: guard inherited terminal config against stale surfaces (#2101)
* test: add stale inherited surface regression

* fix: guard inherited terminal config against stale surfaces

* fix: address stale surface review feedback
2026-03-25 16:49:54 -07:00
Austin Wang
11a841e020
Merge pull request #2133 from manaflow-ai/issue-2131-cmd-n-crash-regression
Fix Cmd+N crash from stale workspace creation snapshots
2026-03-25 02:40:57 -07:00
austinpower1258
ad2c65e0ac Add regression test for Cmd+N snapshot close race 2026-03-25 02:38:10 -07:00
Austin Wang
71a64a1234
Fix titlebar double-click zoom handling (#2130) 2026-03-25 02:15:15 -07:00
Austin Wang
0ea16b12c2
Fix window position restore on relaunch (#2129)
* test: cover accessible window frame restore

* fix: preserve accessible window frame on relaunch
2026-03-25 02:05:13 -07:00
Austin Wang
da70f3fa47
Add regression coverage for Cmd+N workspace creation crash (#2127)
* Add Cmd+N workspace snapshot regression coverage (#2017)

* Add dev flag to stress Cmd+N workspace creation
2026-03-25 01:50:57 -07:00
jorge g
68ff39c444
Fix Ghostty resize_split keybind support (#1899)
* test: add resize_split regression coverage

* fix: implement Ghostty resize_split behavior

* test: cover more resize_split cases

* test: deduplicate split snapshot helper

* Resolve merge conflict: keep both splitNodes and waitForCondition helpers

---------

Co-authored-by: Lawrence Chen <lawrencecchen@users.noreply.github.com>
2026-03-25 00:26:27 -07:00
Lawrence Chen
a7e5050552
Fix SSH control master cleanup on remote teardown (#2104)
* test: add SSH control master cleanup regressions

* fix: close SSH control master on remote teardown

* test: keep SSH workspace after child exit

* fix: keep SSH workspace after child exit

* fix: keep connecting SSH workspaces after child exit

* test: add SSH child-exit demotion regression

* fix: keep SSH workspace after connected shell exit

* fix: address SSH cleanup review feedback

* test: cover SSH cleanup without explicit controlpath

* fix: clean up SSH control masters without explicit controlpath

* test: cover remote detach cleanup edge cases

* fix: preserve SSH sessions during remote detach

---------

Co-authored-by: Lawrence Chen <lawrencecchen@users.noreply.github.com>
2026-03-25 00:01:39 -07:00
Austin Wang
321f8c14c8
fix(browser): keep IME Enter on composition path (#2108)
* test: cover browser IME Enter composition routing

* fix(browser): keep IME Enter on composition path
2026-03-24 22:56:55 -07:00
Austin Wang
983ef2537d
Skip sidebar PR lookup on main/master (#2110) 2026-03-24 22:56:40 -07:00