Remote server / SSH
- Filter remote workspaces by creating device by @Jinwoo-H in #13718
- Fix repo-scoped Quick Commands across remote hosts by @Jinwoo-H in #13727
- Fix paired remote HTML browser ownership and focus by @AmethystLiang in #13876
- Fix remote-runtime terminal pane split authority by @brennanb2025 in #13867
- Fix terminal split source incarnation and rejection cleanup by @brennanb2025 in #14238
- fix(terminal): repaint a recovered remote pane from the host's retained buffer by @brennanb2025 in #14095
- fix(terminal): never wipe a painted pane for a snapshot that carries no image by @brennanb2025 in #14099
- Fix remote server browser tab fallback behavior by @AmethystLiang in #14194
- fix(browser): route remote terminal links to owning host by @AmethystLiang in #14117
- Gate paired web creation actions by provider by @AmethystLiang in #13909
- Fix paired web creation failure handling (STA-4024, STA-4025, STA-4063) by @AmethystLiang in #14100
- fix(workspaces): start task agents on remote hosts by @Jinwoo-H in #13412
- fix(terminal): wait for shell-ready before every SSH startup command by @brennanb2025 in #12963
- fix(ssh): release the relay-loss watcher before teardown mux writes by @nwparker in #13737
- perf(ssh): cancel abandoned remote port scans by @nwparker in #13548
- perf(git): reuse pinned OIDs for SSH file diffs by @nwparker in #13586
- perf(renderer): keep remote snapshot batches linear by @nwparker in #13676
- perf(renderer): preserve unchanged remote mirror resources by @nwparker in #13683
- perf(renderer): dedupe remote status hydration by @nwparker in #13705
- perf(renderer): park hidden remote session mirrors by @nwparker in #13621
- perf(renderer): park hidden remote browser screencasts by @nwparker in #13608
- perf(runtime): avoid forced SSH hydration on project refresh by @nwparker in #13636
- perf(codex): skip migration scans for nonshared reattaches by @nwparker in #13654
UI / workspace
- Polish Artifacts management UI by @Jinwoo-H in #13356
- Gate artifact publishing behind off-by-default capability by @AmethystLiang in #13368
- Add manual artifact sharing from HTML and Markdown views by @Jinwoo-H in #13369
- fix(artifacts): recover committed cloud mutations by @AmethystLiang in #13796
- Exclude idle current tabs from Cmd+J recent; add live attention badges by @AmethystLiang in #13299
- Add emoji picker to workspace editing and search by @nwparker in #13429
- Add Caffeinate controls to the status bar by @nwparker in #13480
- fix(ui): rename Caffeinate Auto mode to Agent by @brennanb2025 in #13751
- Add copy button for quick command by @AmethystLiang in #13768
- fix(quick-open): compact Cmd+P file rows by @nwparker in #13454
- Move Linear issue view to localStorage by @AmethystLiang in #13391
- fix(persistence): salvage corrupt workspace session entries by @Jinwoo-H in #13431
- fix(sidebar): close the workspace rename editor opened by the shortcut by @socar-jian in #13729
- Fix static analysis page stuck in loading state by @AmethystLiang in #13674
- fix(computer-use): prevent repeated screen recording prompts by @Jinwoo-H in #13427
- fix(composer): autosize Create Worktree note on PR prefill by @innocarpe in #10580
- fix(ui): align toggle switch handle symmetrically in on state by @sei0 in #9714
- fix(repo-icon): center emoji glyph within its sized icon box by @chucoding in #12057
- fix(i18n): restore the Japanese renderings the brand revert left in Latin by @makoto-developer in #12934
- test(i18n): match Japanese agent search label by @brennanb2025 in #13389
- fix(editor): map .jsp/.jspf to the html language id by @taehwanis in #12402
- fix(renderer): reject malformed cursor and language-pack inputs by @OrcaWin in #13451
- Strip liveness gate from AI Vault session delete by @AmethystLiang in #13279
Orchestration
- perf(orchestration): route federated reads over shared control by @nwparker in #13814
- fix(orchestration): close federated-read benchmark socket by @nwparker in #13939
- fix(orchestration): release context-only dispatches by @Jinwoo-H in #13376
- perf(orchestration): skip redundant federation acknowledgments by @nwparker in #13671
- Use provider-neutral Opus alias in orchestration guide by @AmethystLiang in #14119
Agents / native chat
- feat(agents): add Prime Agent as a supported TUI agent with session history by @smwbev in #12935
- feat(agents): add Prime Agent status hooks by @brennanb2025 in #13384
- feat(agent-hooks): support Prime Agent status in WSL by @brennanb2025 in #13430
- Support live toggle of agent status hooks with WSL relay gating by @AmethystLiang in #13361
- fix(agent-hooks): stop rewriting typed Prime commands by @brennanb2025 in #13906
- fix(agent-title): treat Claude Code quarter-circle spinners as working by @brennanb2025 in #13925
- fix(native-chat): type Codex slash commands by @brennanb2025 in #13685
- fix(codex): repair hook trust before restored shells reconnect by @brennanb2025 in #13745
- fix(native-chat): open composer pickers upward by @brennanb2025 in #13754
- fix(native-chat): scope persisted options to chat launches by @brennanb2025 in #13675
- Fix native chat history across transcript formats by @brennanb2025 in #13393
- fix(cursor): accept BOM-prefixed hook JSON by @plaonn in #12652
- fix(agent-hooks): accept BOM-prefixed hook configs by @brennanb2025 in #13383
- fix(grok): carry reasoning effort for models outside the seed catalog by @AmethystLiang in #13365
- Show directional lineage in agent map by @brennanb2025 in #13503
- fix(agent-dashboard): highlight agents awaiting input by @brennanb2025 in #13523
Windows / WSL
- fix(startup): restore Windows PATH before shell changes by @OrcaWin in #13792
- fix(windows): show first window before shell PATH hydration by @OrcaWin in #13799
- fix(windows): restore fresh-profile startup after durable fsync by @nwparker in #14173
- Fix Windows AI Vault resumes using the wrong shell by @OrcaWin in #13420
- fix(source-control): hydrate Windows shell profile PATH by @OrcaWin in #13418
- fix(git): support Windows-linked worktrees in WSL projects by @OrcaWin in #13483
- fix(git): bypass WSL login shells for status reads by @OrcaWin in #13207
- fix(wsl): preserve single-letter POSIX terminal cwd by @OrcaWin in #13859
- fix(settings): emit Windows font family names as UTF-8 by @bbingz in #12602
- fix(agent-hooks): exit Windows hooks when Orca env is missing by @innocarpe in #11568
- fix(settings): paste bash-native skill setup under WSL PTY by @bbingz in #13710
- Fix Ctrl+Z in Windows and Linux terminals by @brennanb2025 in #13398
Terminal
- feat(terminal): add anchored link action popovers by @Jinwoo-H in #13414
- feat(terminal): encode IME commits as CSI-u under the all-keys kitty flag by @nwparker in #13310
- P1 STA 3887 design Preview Kitty IME by @nwparker in #13940
- Fix terminal select-all and copy in Kitty-enabled TUIs by @brennanb2025 in #13388
- fix(terminal): preserve OSC 8 links across cold parking by @brennanb2025 in #13382
- fix(terminal): retain alt frames through park reveal by @brennanb2025 in #13882
- fix(terminal): require agent identity for guarded sends (STA-4028) by @brennanb2025 in #14092
- fix(terminal): prevent link action clicks reaching child by @brennanb2025 in #13797
- fix(terminal): claim printable keydowns structurally so committed IME text survives by @nwparker in #13288
- Show a preedit the IME resumes without a compositionstart by @nwparker in #13284
- fix(terminal): deliver SIGWINCH to the PTY foreground process group by @brennanb2025 in #13164
- fix(terminal): restore the floating workspace open and maximized by @brennanb2025 in #13258
- fix(terminal): keep the reattach grid push alive for a hidden pane by @brennanb2025 in #13155
- Reland canonical PTY hydration without evicting live legacy rows by @AmethystLiang in #13132
- fix(terminal): agent pane auto-launch lost under fish + Starship (STA-3417) by @brennanb2025 in #12840
- Fix fsync of read-only files on POSIX by @nwparker in #14235
Browser
- Allow directly search in google by @AmethystLiang in #13863
- fix(browser): disable unsupported FedCM by @AmethystLiang in #14023
- fix(browser): stop impersonating the source browser's UA on cookie import (STA-3514) by @brennanb2025 in #12849
GitHub / source control
- feat(github): support stacked pull requests by @Jinwoo-H in #13730
- fix(github): fail closed when stack metadata is unavailable by @Jinwoo-H in #13866
- feat(github): add PR comment reactions by @Jinwoo-H in #13470
- fix(github): complete PR reactions for CodeRabbit reviews by @nwparker in #13456
- fix(tasks): restore GitHub page and scroll position on reopen by @Jinwoo-H in #13096
Performance
- perf(renderer): defer Quick Command host work by @nwparker in #13517
- perf(renderer): unmount closed jump palette content by @nwparker in #13525
- perf(renderer): unmount closed Workspace Board content by @nwparker in #13619
- perf(renderer): unmount closed Quick Open content by @nwparker in #13618
- perf(renderer): unmount closed workspace cleanup content by @nwparker in #13567
- perf(renderer): unmount closed setup guide content by @nwparker in #13546
- perf(renderer): index GitHub resume lookups by @nwparker in #13698
- perf(renderer): keep the repos array identity across no-op refetches by @nwparker in #13744
- perf(renderer): keep catalog array identity and path-status cache on no-op refetches by @nwparker in #13770
- perf(renderer): skip runtime status map churn on unchanged re-probes by @nwparker in #13771
- perf(renderer): scope batched open-file reconciliation by worktree by @nwparker in #13748
- perf(ai-vault): isolate tab title resolution by @brennanb2025 in #13377
- perf(editor): stop hidden panels duplicating remote reloads by @nwparker in #13634
- perf(native-chat): suspend hidden transcript streams by @nwparker in #13622
- perf(runtime): coalesce project lineage refreshes by @nwparker in #13638
- perf(sqlite): cache prepared statements in SyncDatabase by @nwparker in #13769
- [Perf-LH] Reuse renderer locale collators by @nwparker in #13444
- [Perf-LH] Stop re-probing ordinary workspace folders every poll by @nwparker in #13437
- [Perf-LH] Skip impossible advertised URL scans in PTY output by @nwparker in #13514
- [Perf-SS] Keep orchestration drift Git off the Electron main thread by @nwparker in #13440
- [Perf-SS] Overlap Git status with conflict-marker reads by @nwparker in #13529
Mobile
- fix(mobile): load the repo list in GitHub Project mode by @Jinwoo-H in #12972
- [leas code] Use shared mobile source-control decisions by @nwparker in #13453
- [leas code] Use shared mobile GitHub Project sorting by @nwparker in #13459
- [leas code] Use canonical mobile diff and OSC implementations by @nwparker in #13433
- [leas code] Remove unused mobile PR and review code by @nwparker in #13404
- [leas code] Remove unused mobile review code by @nwparker in #13421
- [leas code] Remove mobile native-chat re-export facades by @nwparker in #13436
- [leas code] Remove orphaned mobile PR composer by @nwparker in #13450
Tests / CI
- test(e2e): stabilize triaged release failures by @AmethystLiang in #14242
- fix(ci): skip missing golden scripts on older release tags by @AmethystLiang in #14267
- Add golden E2E tests for fresh terminal and shell commands by @AmethystLiang in #14302
- fix(e2e): repair seven specs whose assertions drifted from shipped behavior by @nwparker in #13785
- fix(e2e): restore the helpers the macOS key-remap spec imports by @nwparker in #13758
- test(e2e): normalise the pty line terminator so the IME specs can run on Windows by @nwparker in #13313
- test(e2e): cover a macOS system key remap reaching the terminal (#11170) by @nwparker in #13314
- test(terminal): pin the macOS key-binding substitution against #11170 by @nwparker in #13315
- fix(ci): run the root-directory guard on stock macOS bash 3.2 by @ethznn in #12879
- Add nightly cut by @AmethystLiang in #13410
Full Changelog: v1.4.180...v1.4.182