What's Changed
- Reduce SSH passphrase focus effect by @nwparker in #3351
- fix: bound hosted repo ref caches by @nwparker in #4084
- Reduce file explorer inline focus effect by @nwparker in #3347
- Focus diff comment popover from ref by @nwparker in #3333
- fix: bound unwatchable filesystem roots by @nwparker in #4086
- perf: bound desktop screenshot payloads by @nwparker in #4083
- fix: bound terminal capability cache by @nwparker in #4087
- fix: bound hosted review cache by @nwparker in #4088
- Fix terminal pane resize redraw storm by @nwparker in #3325
- Fix AppImage CLI launcher path by @nwparker in #3320
- perf: throttle CLI screenshot cleanup by @nwparker in #4089
- fix: bound github auxiliary caches by @nwparker in #4091
- fix: detect branch conflicts for slashed remotes by @nwparker in #4080
- fix: block ssh worktrees for remote branch conflicts by @nwparker in #4085
- perf: move update card timer cleanup to ref by @nwparker in #4093
- fix: map closed gitea drafts as closed by @nwparker in #4092
- perf: strip cached macOS screenshots by @nwparker in #4094
- fix: prune local share from quick open by @nwparker in #4090
- Normalize floating workspace bounds before commit by @nwparker in #3269
- Resolve sidebar SSH reconnect prompts before commit by @nwparker in #3267
- fix: release remote agent detection promises by @nwparker in #4095
- fix: bound metadata request caches by @nwparker in #4096
- perf: move browser settings scroll cleanup to ref by @nwparker in #4097
- fix: parse numstat paths with nul output by @nwparker in #4098
- fix: clear removed web session tab tracking by @nwparker in #4099
- fix: release idle remote terminal multiplexers by @nwparker in #4101
- perf: move settings subsection scroll cleanup to ref by @nwparker in #4102
- Gate scheduled automations with precheck commands by @nwparker in #3266
- fix: clear removed browser eviction notices by @nwparker in #4103
- perf: bound mobile terminal WebView queues by @nwparker in #4100
- perf: move worktree reveal timer cleanup to ref by @nwparker in #4105
- fix: bound telemetry validator warn cache by @nwparker in #4106
- fix: use nul numstat for compare counts by @nwparker in #4104
- perf: avoid sorting CLI worktree selectors by @nwparker in #4107
- fix: prune closed agent hook coordinators by @nwparker in #4108
- Add pinned tab close protection by @nwparker in #3265
- Add sidebar bulk close selection by @nwparker in #3264
- fix: bound dictation stopped sessions by @nwparker in #4110
- fix: allow slash remote push targets by @nwparker in #4109
- fix: dispose stale pty title sources by @nwparker in #4111
- perf: move markdown preview timer cleanup to ref by @nwparker in #4112
- fix: bound renderer crash dedupe cache by @nwparker in #4113
- Send review notes to the active agent session by @nwparker in #3262
- fix: resolve slashed upstream remotes by @nwparker in #4114
- perf: bound branch rename dedupe cache by @nwparker in #4115
- fix: close late ssh channel callbacks by @nwparker in #4116
- fix: clear daemon cold restore cache on exit by @nwparker in #4117
- Fix GitLab branch pipeline fallback by @nwparker in #4118
- perf: batch migration unsupported clears by @nwparker in #4119
- perf: move activity portal cleanup to root ref by @nwparker in #4120
- perf: remove redundant crash viewer cleanup effect by @nwparker in #4121
- Add default tab templates from orca.yaml by @nwparker in #3252
- Move mobile session ref mirrors out of effects by @nwparker in #3250
- Fix Quick Open backslash path queries by @nwparker in #4123
- fix: clear mobile fit pane bindings on teardown by @nwparker in #4124
- perf: derive notes send menu open state by @nwparker in #4125
- perf: bound amp hook post queue by @nwparker in #4122
- Add per-project worktree base paths by @nwparker in #3248
- fix: close removed runtime subscriptions by @nwparker in #4126
- perf: bound hermes run count cache by @nwparker in #4127
- Fix descendant paths in file explorer multi-drag by @nwparker in #4128
- perf: fold pet size clamp into resize effect by @nwparker in #4129
- fix: clear pending pane serializers on destroy by @nwparker in #4130
- Fix Markdown Preview Windows worktree matching by @nwparker in #4131
- fix: bound runtime compatibility cache by @nwparker in #4133
- perf: derive feature tip reduced-motion command count by @nwparker in #4134
- Add file tree dotfile visibility toggle by @nwparker in #3246
- Clarify terminal access in onboarding by @nwparker in #3237
- perf: clean up destroyed browser guest policies by @nwparker in #4132
- Fix default terminal tab session patch marker by @nwparker in #4135
- fix: preserve browser debugger stream listeners by @nwparker in #4136
- perf: derive workspaces visual reduced-motion promotion by @nwparker in #4138
- perf: bound cdp capture request bookkeeping by @nwparker in #4137
- fix: expire stale browser focus requests by @nwparker in #4140
- Fix WSL UNC setup runner casing by @nwparker in #4139
- fix: clear drained browser command queues by @nwparker in #4141
- fix: clear stale browser intercept restores by @nwparker in #4142
- Add explicit proxy settings by @nwparker in #3222
- perf: reuse fresh Claude usage scans by @nwparker in #4143
- perf: fold browser stream ref cleanup into unmount by @nwparker in #4144
- Add Markdown document templates by @nwparker in #3233
- fix: bound editor self-write stamps by @nwparker in #4145
- Fix browser history pruning by recency by @nwparker in #4146
- perf: append Codex migration diagnostics by @nwparker in #4147
- perf: render markdown template request ref by @nwparker in #4149
- fix: clear visible pr refresh state on window destroy by @nwparker in #4148
- perf: skip unchanged Codex config writes by @nwparker in #4151
- fix: expire retained diagnostic bundle previews by @nwparker in #4152
- Resolve lazy modal mounts before commit by @nwparker in #3220
- Resolve Project dialog state before commit by @nwparker in #3214
- perf: reuse fresh Codex usage scans by @nwparker in #4153
- fix: bound github merge metadata cache by @nwparker in #4154
- perf: stop failed macOS provider startups by @nwparker in #4155
- fix: bound gitlab rate limit cache by @nwparker in #4156
- Reconcile source control selection before commit by @nwparker in #3212
- Fix shifted remote browser shortcuts by @nwparker in #4157
- perf: move browser grab timer cleanup to root ref by @nwparker in #4158
- perf: bound daemon ndjson lines by @nwparker in #4159
- feat(ui): add instruction hints to command and prompt dialogs by @sudoeren in #4150
- Add copy actions for Markdown review notes by @nwparker in #3183
- Fix oversized daemon stream output drops by @nwparker in #4160
- perf: bound daemon checkpoint fanout by @nwparker in #4161
- perf: move file search cleanup to root ref by @nwparker in #4163
- fix: clear web session tab tracking on teardown by @nwparker in #4162
- fix: bound github project owner caches by @nwparker in #4164
- perf: cap generated hook posts by @nwparker in #4166
- Fix Windows attribution shim ordering by @nwparker in #3173
- Move mobile pairing stage repair into refresh path by @nwparker in #3180
- perf: move remote file browser cleanup to root ref by @nwparker in #4167
- fix: bound remote workspace snapshot cache by @nwparker in #4168
- fix: drop destroyed senders during watcher startup by @nwparker in #4170
- fix: use base ref details for review creation by @nwparker in #4169
- perf: bound working tree diff reads by @nwparker in #4171
- Suppress milestone completion notifications by @nwparker in #3171
- fix: bound submitted crash report ids by @nwparker in #4172
- perf: move repository hooks flush cleanup to root ref by @nwparker in #4173
- perf: bound worktree sparse probes by @nwparker in #4174
- fix: use resources/bin/orca.cmd for packaged Windows CLI path by @sudoeren in #4165
- fix: cancel hook completion on title working by @nwparker in #4175
- fix: unwatch ssh filesystem roots on dispose by @nwparker in #4176
- perf: fold feature wall telemetry cleanup into open effect by @nwparker in #4177
- Derive integrations preflight statuses by @nwparker in #3154
- Remove quick agent selection repair effect by @nwparker in #3148
- perf: bound GitLab todos fetch by @nwparker in #4178
- perf: fold browser grab page cleanup into lifecycle effect by @nwparker in #4179
- perf: bound GitLab MR detail payloads by @nwparker in #4181
- fix: preserve packaged Windows CLI launcher by @nwparker in #4180
- Remove commit AI instruction draft sync effects by @nwparker in #3140
- fix: bound amp hook thread caches by @nwparker in #4182
- perf: bound Hermes hook payload normalization by @nwparker in #4183
- perf: move unread dock badge cleanup to app root by @nwparker in #4185
- Remove GitLab comment draft reset effect by @nwparker in #3124
- fix: target current browser page for grab mode by @nwparker in #4184
- Remove Linear text draft sync effect by @nwparker in #3130
- perf: bound filesystem auth cache rebuild by @nwparker in #4186
- fix: clear stale github pr refresh snapshots by @nwparker in #4187
- perf: streamline runtime upload staging by @nwparker in #4189
- Reduce combined diff state repair effects by @nwparker in #3120
- fix: clear hosted review request generations by @nwparker in #4190
- perf: bound WSL watcher polling by @nwparker in #4191
- perf: move notes send cleanup to trigger ref by @nwparker in #4193
- perf: move notebook draft cleanup to root ref by @nwparker in #4188
- Fix pending local watcher listener registration by @nwparker in #4192
- perf: bound notification cooldown tracking by @nwparker in #4194
- Clamp pet overlay position during render on size changes by @nwparker in #3118
- fix: clear inflight filesystem watcher senders by @nwparker in #4195
- perf: sanitize rate limit polling intervals by @nwparker in #4197
- Move rich markdown editor refs out of effects by @nwparker in #3079
- fix: clean up failed runtime directory imports by @nwparker in #4198
- perf: move rich markdown cleanup to root ref by @nwparker in #4196
- fix: clear stale pty orphan cleanup listener by @nwparker in #4200
- Improve renderer crash report diagnostics by @nwparker in #2438
- fix: clear stale browser guest registrations by @nwparker in #4201
- perf: move file explorer reveal cleanup to shell ref by @nwparker in #4204
- fix: clean up failed ssh directory imports by @nwparker in #4202
- fix: reject impossible weekly automation schedules by @nwparker in #4205
- fix: clear advertised url state on worktree removal by @nwparker in #4206
- perf: move terminal rename cleanup to container ref by @nwparker in #4199
- fix: clear stale pr refresh backoff entries by @nwparker in #4207
- fix: validate git repo detection by @nwparker in #4021
- fix: decode git cquoted status paths by @nwparker in #4019
- perf: move commit prompt cleanup to pane ref by @nwparker in #4209
- fix: clear claude live pty state on provider teardown by @nwparker in #4210
- perf: parallelize remote workspace pushes by @nwparker in #4208
- perf: move branch prompt cleanup to setting ref by @nwparker in #4211
- fix: release ssh mux handlers on dispose by @nwparker in #4212
- fix: clean up daemon stream sockets by @nwparker in #4214
- fix: import all default Ghostty configs by @nwparker in #4213
- fix: dispose renderer crash diagnostics hooks by @nwparker in #4216
- perf: move onboarding cleanup to modal root by @nwparker in #4217
- test: isolate Ghostty import config env by @nwparker in #4218
- fix: bound terminal path link cache by @nwparker in #4219
- fix: cancel sidebar reveal frames by @nwparker in #4222
- perf: move mobile task copy cleanup to root ref by @nwparker in #4224
- fix: scope terminal path cache by SSH connection by @nwparker in #4225
- perf: avoid shifting runtime call queues by @nwparker in #4215
- fix: bound mobile state hydration buffer by @nwparker in #4226
- fix: dedupe filesystem watcher teardown timer by @nwparker in #4227
- perf: move pair confirm cleanup to root ref by @nwparker in #4228
- fix: clear speech progress callbacks by @nwparker in #4229
- fix: restore duplicate browser pages by index by @nwparker in #4230
- fix: reject web runtime waiters on close by @nwparker in #4231
- perf: move troubleshoot cleanup to root ref by @nwparker in #4232
- fix: release main-window service closures on close by @nwparker in #4233
- perf: move mobile source control cleanup to root ref by @nwparker in #4234
- fix: honor mobile rpc timeout while reconnecting by @nwparker in #4235
- fix: stop cdp load polling after timeout by @nwparker in #4236
- perf: move mobile session timer cleanup to root ref by @nwparker in #4238
- perf: avoid focused cleanup metadata scan by @nwparker in #4237
- fix: handle malformed mobile diagnostic endpoints by @nwparker in #4239
- fix: close runtime sockets during stop by @nwparker in #4240
- fix: avoid late terminal stream listener registration by @nwparker in #4241
- perf: move pair scan cleanup to root ref by @nwparker in #4243
- fix: unref mobile fit cleanup timers by @nwparker in #4245
- perf: clean workspace port registration by @nwparker in #4242
- fix: respect platform link edit shortcut by @nwparker in #4244
- fix: unref browser download approval timeout by @nwparker in #4246
- fix: unref browser grab timeout by @nwparker in #4247
- perf: move mobile session cache cleanup to root ref by @nwparker in #4248
- fix: detach runtime subscription listener on close by @nwparker in #4250
- fix: clear claude usage pty timers on exit by @nwparker in #4252
- perf: move worktree reveal cleanup to scroll root ref by @nwparker in #4253
- fix: ignore stale mobile socket events by @nwparker in #4249
- fix: drop late remote terminal subscription handles by @nwparker in #4254
- perf: cap worktree listAll repo scans by @nwparker in #4251
- perf: move pr link copy cleanup to button ref by @nwparker in #4255
- fix: close remote runtime subscriptions after protocol errors by @nwparker in #4257
- fix: ignore stale web runtime socket messages by @nwparker in #4256
- perf: skip ssh repos during pty hydration by @nwparker in #4258
- fix: resolve windows markdown drive links by @nwparker in #4259
- perf: move github item link copy cleanup to button ref by @nwparker in #4260
- fix: preserve windows markdown link fragments by @nwparker in #4261
- perf: latch compact agent expansion during render by @nwparker in #4262
- fix: bound desktop snapshot cache by @nwparker in #4265
- fix: normalize localhost query urls by @nwparker in #4264
- perf: cap usage worktree canonicalization by @nwparker in #4263
- fix: open localhost tab entry suffix urls by @nwparker in #4266
- fix: bound github pr issue caches by @nwparker in #4267
- perf: sync task status state during render by @nwparker in #4268
- perf: reset comment code context during render by @nwparker in #4271
- fix: bound process-gone crash dedupe by @nwparker in #4272
- perf: hash Pi overlay directories by @nwparker in #4269
- fix: tolerate malformed ssh url usernames by @nwparker in #4270
- perf: reset external automation runs during render by @nwparker in #4273
- fix: flag incomplete mcp server transports by @nwparker in #4275
- Add GitHub label management link by @AmethystLiang in #3884
- Add --workspace-status flag to
orca worktree setby @BorjaLL in #3332 - perf: reuse port scan worktree attribution by @nwparker in #4274
- perf: sync agent combobox command state during render by @nwparker in #4279
- fix: bound relay hermes run count cache by @nwparker in #4278
- Fix GitLab remote paths ending in .git/ by @nwparker in #4277
- perf: avoid stat fanout in nested repo scans by @nwparker in #4276
- perf: sync comment reply target during render by @nwparker in #4281
- fix: cancel superseded relay exec children by @nwparker in #4283
- Fix pairing URL route validation by @nwparker in #4282
- perf: reset github checks tab state during render by @nwparker in #4287
- fix: normalize provider remote git suffixes by @nwparker in #4286
- perf: cache Windows PATH registry probes by @nwparker in #4284
- fix: bound disconnected runtime pty records by @nwparker in #4288
- perf: reset linear api key dialog state during render by @nwparker in #4290
- fix: clear pending serializer on disposed reattach by @nwparker in #4291
- perf: coalesce codex status settle timers by @nwparker in #4289
- fix: cleanup combined diff scrollbar drag listeners by @nwparker in #4293
- perf: reset github link copy state during render by @nwparker in #4294
- Remove onboarding demo label from feature wall setup UI by @AmethystLiang in #4295
- Fix nested missing authorized file paths by @nwparker in #4292
- fix: cleanup tab split resize listeners by @nwparker in #4296
- perf: sync github body drafts during render by @nwparker in #4297
- fix: cleanup custom pet blob loads by @nwparker in #4301
- fix: preserve comma git history refs by @nwparker in #4299
- perf: cap repo icon source scans by @nwparker in #4300
- Revert sidebar bulk close selection by @AmethystLiang in #4298
- Increase worktree card bottom padding by @AmethystLiang in #4302
- perf: cap e2ee keypair startup reads by @nwparker in #4303
- perf: sync proxy drafts during render by @nwparker in #4304
- fix: resolve nested repo icon hrefs by @nwparker in #4305
- perf: collapse large runtime file watch batches by @nwparker in #4306
- fix: cleanup pending agent browser sessions by @nwparker in #4307
- perf: cap mobile dictation audio chunks by @nwparker in #4309
- Fix orchestration mail from WSL and SSH terminals by @Jinwoo-H in #3918
- Revert pause hidden terminal renderer output by @Jinwoo-H in #4314
- Preserve Codex runtime config preferences by @Jinwoo-H in #3944
- Add image viewer pinch zoom by @Jinwoo-H in #3531
- fix: preserve Linear context for workspace creation by @AmethystLiang in #4317
- Support WSL Codex launch homes by @Jinwoo-H in #4318
New Contributors
Full Changelog: v1.4.36-rc.11...v1.4.36-rc.12