Commit Graph
5391 Commits
Author SHA1 Message Date
Jinjing b76ffb9c3b Validate entry metadata when matching cached combined diff sections
Extract combined diff cache matching logic to a dedicated module and enhance it to verify status, area, old path, and added/removed counts. This prevents restoring cached diff content when the underlying files have changed or been renamed.
2026-06-24 23:20:20 -07:00
7cde0f0b76 fix(ai-vault): surface a workspace's own sessions past the recency cap (#6273)
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-authored-by: Orca <help@stably.ai>
Co-authored-by: brennanb2025 <brennankbenson@gmail.com>
2026-06-24 22:03:35 -07:00
Brennan BensonandOrca c328ac8a9c Fix duplicate hibernated agent resume (#6323)
Co-authored-by: Orca <help@stably.ai>
2026-06-24 20:33:27 -07:00
gatsby74andClaude Opus 4.8 c5d67a923b fix(ui): match left sidebar divider opacity with the rest of the UI (#6290)
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-24 20:33:13 -07:00
79d05110ed fix(orchestration): release dispatch lock when worker_done is sent via orchestration.send (#6317)
* fix(orchestration): release dispatch lock when worker_done is sent via orchestration.send (#6090)

* fix: preserve coordinator lifecycle accounting

Co-authored-by: Orca <help@stably.ai>

---------

Co-authored-by: Jinwoo-H <jinwoo0825@gmail.com>
Co-authored-by: Orca <help@stably.ai>
2026-06-24 20:30:55 -07:00
Rod BoevandJinwoo Hong 1732648928 fix(codex): prevent duplicate config.toml hook trust key on Windows (#6318)
* fix(codex): prevent duplicate config.toml hook trust key on Windows (#6163)

* fix codex hook trust key normalization

---------

Co-authored-by: Jinwoo Hong <73622457+Jinwoo-H@users.noreply.github.com>
2026-06-24 20:29:24 -07:00
Jinwoo HongandOrca cd1d4dfff3 Fix terminal scroll intent across workspace switches (#6319)
Co-authored-by: Orca <help@stably.ai>
2026-06-24 20:16:14 -07:00
9f8a27de33 Only create worktree root directory on blur, not per keystroke (#6300)
* Only create worktree root directory on blur, not per keystroke

Persist worktreeBasePath on input blur instead of on every change.
The per-keystroke updateRepo calls triggered prepareLocalWorktreeRootForRepo
on each character, creating a new directory for every intermediate value
(./w, ./wo, ./wor, …) while the user was still typing.

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

* Test that worktree path only persists on blur, not per keystroke

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

* Fix blur event dispatch in worktree path test

React delegates onBlur via focusout (which bubbles), not blur (which
doesn't). Dispatch focusout so the React handler is actually reached.

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

* Update src/renderer/src/components/settings/RepositoryWorktreeDefaultsSection.test.tsx

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* Apply suggestions

* Avoid no-op worktree path root preparation

Co-authored-by: Orca <help@stably.ai>

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: Jinwoo-H <jinwoo0825@gmail.com>
Co-authored-by: Orca <help@stably.ai>
2026-06-24 19:48:54 -07:00
Jinwoo HongandOrca 0be512fc23 Add diff word wrap toggle (#6214)
Co-authored-by: Orca <help@stably.ai>
2026-06-24 19:26:50 -07:00
Jinwoo HongandOrca 634a1b27e4 fix: group multi-host projects by git remote identity (#6309)
* test: reproduce multi-host legacy project split

Co-authored-by: Orca <help@stably.ai>

* fix: group multi-host projects by git remote identity

Co-authored-by: Orca <help@stably.ai>

* fix: tolerate lightweight runtime repo list handlers

Co-authored-by: Orca <help@stably.ai>

* fix: make git remote identity enrichment nonblocking

Co-authored-by: Orca <help@stably.ai>

* fix: use projected setups for sidebar grouping

Co-authored-by: Orca <help@stably.ai>

---------

Co-authored-by: Orca <help@stably.ai>
2026-06-24 19:19:31 -07:00
Saad KhanandClaude Opus 4.8 ae0bd8ef26 fix: allow selecting a project on a non-active host when creating a workspace (#5937)
The new-workspace project dropdown pinned resolution to the host of the
currently-active workspace: handleProjectChange passed that host to
resolveWorkspaceCreationRepoId as a hard `hostId` constraint. Picking a project
set up only on a different host resolved to no repo
(`project-not-set-up-on-host`), and the `if (!nextRepoId) return` guard swallowed
the click — so the dropdown option did nothing and only projects on the current
host were selectable.

Treat the current host as a preference (focusedHostScope) and fall back to any
host the project is ready on. The strict projectId+hostId path used by the
explicit "Run on" host picker is unchanged.

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-24 19:19:04 -07:00
e65306cb2f fix(codex): sanitize hooks config writes (#6247)
Co-authored-by: Orca <help@stably.ai>
Co-authored-by: brennanb2025 <brennankbenson@gmail.com>
2026-06-24 19:12:21 -07:00
Brennan BensonandNeil d9d870d93f Stabilize sharded e2e CI concurrency (#6312)
Co-authored-by: Neil <neil@stably.ai>
2026-06-24 18:39:02 -07:00
Jinwoo Hong bad9afe090 Fix pwsh availability cold-start cache (#6313) 2026-06-24 21:07:15 -04:00
Jinjing c3241bdb91 Wire terminal worktree navigation to back-and-forth stack (#6310)
* Wire terminal-initiated worktree navigation to back-and-forth stack

* Unify terminal-driven worktree activation and Cmd+J recency marking.
* Record worktree visits in the back/forward history stack unless navigating history.

* fix: focus terminal-initiated worktree tabs
2026-06-24 17:44:22 -07:00
Jinwoo HongandOrca 19b0174dca Apply agent defaults to AI Vault resume (#6299)
Co-authored-by: Orca <help@stably.ai>
2026-06-24 17:41:09 -07:00
Brennan BensonandOrca 7436a4cfc1 Show GitHub issue workspaces immediately while they initialize (#6139)
Co-authored-by: Orca <help@stably.ai>
2026-06-24 17:01:20 -07:00
Brennan Benson 379db68e43 Fix delete workspace confirmation spacing (#6304) 2026-06-24 16:51:08 -07:00
github-actions[bot] a82859020f release: v1.4.97 v1.4.97 2026-06-24 23:32:41 +00:00
Brennan BensonandOrca 14afd1314d Zoom the app after leaving terminal focus (#6301)
Co-authored-by: Orca <help@stably.ai>
2026-06-24 16:31:36 -07:00
Brennan BensonandOrca 23cde7bef0 Show prompt cache timers on compact agent rows (#6295)
Co-authored-by: Orca <help@stably.ai>
2026-06-24 16:27:36 -07:00
AJandbrennanb2025 3f775c34c1 Focus a surviving workspace after deleting the active worktree (#5931)
Co-authored-by: brennanb2025 <brennankbenson@gmail.com>
2026-06-24 16:11:34 -07:00
github-actions[bot] e55b0e1d76 release: v1.4.96-rc.2 [rc-slot:2026-06-24-15] v1.4.96-rc.2 2026-06-24 22:32:20 +00:00
Brennan Benson ce2a9a8de2 Hide unread dot while worktrees are working (#6296) 2026-06-24 14:37:07 -07:00
Brennan BensonandOrca 75545ff09d Improve PR comment sidebar readability (#6285)
Co-authored-by: Orca <help@stably.ai>
2026-06-24 14:35:53 -07:00
github-actions[bot] 67b1564adf release: v1.4.96-rc.1 v1.4.96-rc.1 2026-06-24 21:25:50 +00:00
Brennan BensonandOrca c6299f8b85 Improve Windows release signing reliability (#6292)
Co-authored-by: Orca <help@stably.ai>
2026-06-24 14:24:42 -07:00
Brennan BensonandOrca cfb7de4f8f Keep file changes fresh after external writes (#6289)
Co-authored-by: Orca <help@stably.ai>
2026-06-24 14:11:54 -07:00
Brennan BensonandOrca 4ac1e960d4 Harden Orca CLI skill security guidance (#6131)
Co-authored-by: Orca <help@stably.ai>
2026-06-24 13:55:53 -07:00
Brennan BensonandOrca 83f877ec35 Let terminal pane controls float over output (#6219)
Co-authored-by: Orca <help@stably.ai>
2026-06-24 13:47:40 -07:00
Brennan Benson ce85925c70 Keep inline-code link labels linked in rich Markdown (#6224) 2026-06-24 13:31:28 -07:00
github-actions[bot] ab2db04c43 release: v1.4.97-rc.0 v1.4.97-rc.0 2026-06-24 20:25:47 +00:00
Jinjing 04ec8e6276 Wire terminal-initiated worktree navigation to back-and-forth stack (#6243)
* Unify terminal-driven worktree activation and Cmd+J recency marking.
* Record worktree visits in the back/forward history stack unless navigating history.
2026-06-24 13:15:38 -07:00
Jinjing a1ec8d25a7 Fix local markdown image resolution and PDF export inlining (#6253)
* Resolve local images on editor context switch and inline blobs for PDF

* Inline renderer-scoped blob URLs as base64 data URLs during PDF export, ensuring images render properly in the separate PDF print window.
* Track the active editor document's context with a versioning and subscription scheme to trigger reloads of relative images on context switch.

* test commit
2026-06-24 13:11:08 -07:00
Brennan BensonandOrca 379ddf2a1b Prevent visible agent terminals from sleeping (#6248)
Co-authored-by: Orca <help@stably.ai>
2026-06-24 13:03:23 -07:00
Brennan BensonandOrca 20882d7a25 Increase Quick Command agent prompt limit (#6283)
Co-authored-by: Orca <help@stably.ai>
mobile-android-v0.0.16
2026-06-24 11:58:51 -07:00
github-actions[bot] 52b0f8bf68 release: v1.4.96 v1.4.96 2026-06-24 18:57:52 +00:00
github-actions[bot] dd41962c48 Update README downloads badge 2026-06-24 18:55:17 +00:00
github-actions[bot] 7369c4c957 release: v1.4.96-rc.0 v1.4.96-rc.0 2026-06-24 16:19:28 +00:00
Jinjing e3e00a9c1e Prepare mobile iOS 0.0.16
Bump Orca Mobile marketing version to 0.0.16 so TestFlight uploads use a new App Store train.
2026-06-24 01:01:38 -07:00
Brennan BensonandOrca 969cd94e0e Show Linear issue links in agent drafts (#6217)
Co-authored-by: Orca <help@stably.ai>
2026-06-24 00:45:25 -07:00
github-actions[bot] 7fb20cab03 Update README downloads badge 2026-06-24 07:29:39 +00:00
Jinjing d33c5260fd fix: cap orchestration task link token length (#6246) 2026-06-24 00:24:26 -07:00
Brennan BensonandNeil 6574e764d7 Bound Windows PR refresh crash storms (#6203)
Co-authored-by: Neil <neil@stably.ai>
2026-06-24 00:21:56 -07:00
0c0367ea88 feat(agents): native Xiaomi MiMo Code support (#6239)
* feat(agents): native Xiaomi MiMo Code support

Add mimo-code TUI agent (detect mimo, --prompt, --session resume).
Inject MIMOCODE_HOME overlay and /hook/mimo-code status plugin on mimo
launch when agent status hooks are enabled; restore via shell-ready
wrappers. Reuse OpenCode-family hook normalization in the listener.

SSH remote MiMo hook overlays are not included (local/daemon first).

Closes #6220

* fix(mimo): remirror overlay config idempotently

rmSync overlay config before mirror so a second mimo launch does not
hit EEXIST in mirrorEntry and fall back to the user MIMOCODE_HOME.

* review: harden mimo code support

Co-authored-by: Orca <help@stably.ai>

---------

Co-authored-by: Doan Bac Tam <24356000+doanbactam@users.noreply.github.com>
Co-authored-by: Jinwoo-H <jinwoo0825@gmail.com>
Co-authored-by: Orca <help@stably.ai>
2026-06-24 00:17:49 -07:00
b76a2ddae6 fix(settings): defer Display Name persistence until IME composition ends (#6238)
* fix(settings): defer Display Name persistence until IME composition ends

The repository Display Name input persisted every keystroke via async
updateRepo, including unconfirmed IME text. For Japanese (and other CJK)
input this wrote pre-confirmation text to the store, and its async echo
could cancel the active composition. Track composition state and hold
persistence until compositionend so only confirmed text reaches
updateRepo; non-IME typing still persists per keystroke.

* fix(settings): de-duplicate Display Name persist on trailing IME change

Some IMEs (e.g. Firefox) fire the final change event after compositionend,
which repeated the already-persisted confirmed value through updateRepo.
Track the composition-end text and skip the next matching change so the
confirmed value is persisted exactly once. Model the trailing input event
in the unit test so the single-fire guard is exercised.

* fix(settings): reset IME draft guards after repo changes

Co-authored-by: Orca <help@stably.ai>

---------

Co-authored-by: Jinwoo-H <jinwoo0825@gmail.com>
Co-authored-by: Orca <help@stably.ai>
2026-06-24 00:12:22 -07:00
d993336f90 fix: pr-bug-scan validated finding from #6136 (#6227)
* fix: address pr-bug-scan validated finding from #6136

removeProject now also drops lastVisitedAtByWorktreeId entries by repo-id mapping when the repo id is fully removed (no sibling host), catching unhydrated worktree timestamps.

* test: cover unhydrated SSH timestamp cleanup

* Test dropping visit timestamps for removed runtime repos

Verify that removing an unhydrated runtime repository successfully drops
its associated worktree entries from the persisted visit history.

---------

Co-authored-by: orca-bug-scan-bot <orca-bug-scan-bot@stably.ai>
Co-authored-by: Jinjing <6427696+AmethystLiang@users.noreply.github.com>
2026-06-23 23:46:26 -07:00
JinjingandOrca 5106e33947 fix(changes-tab): prevent freeze and stale highlights when staging/unstaging (#6229)
* fix(changes-tab): prevent freeze and stale highlights when staging/unstaging

When files are staged/unstaged while the Changes tab is open, the
diff viewer was re-rendering all sections, causing UI freezes and
highlight flickering.

- Add resolveCombinedUncommittedSnapshotEntries() to reconcile
  snapshot entries with live git status without destroying existing
  loaded diff content.
- Track retainedResolvedSnapshotEntries from current sections to
  preserve area state when live git status temporarily loses entries.
- Use Map-based O(snapshot + live) algorithm instead of nested loops.
- Add unit tests for the resolver logic.
- Add e2e test with performance measurement for stale unstaged diffs.

Co-authored-by: Orca <help@stably.ai>

* Prevent duplicate entries in uncommitted snapshot resolution

Track resolved snapshot entries using composite area and path keys to
ensure staged and unstaged sections remain distinct and do not duplicate
when live Git status changes or disappears.

Additionally, switch the retained entries from a Map to a list to support
multiple areas per path, and update CombinedDiffViewer to avoid rebuilding
the snapshot list on row load state changes.

* test: add test coverage for duplicate-path snapshot remapping

- Add unit test verifying that duplicate-path snapshots do not remap
  to a retained fallback area.
- Robustify E2E large diff freeze repro test by ensuring interval
  timers are always cleared in a finally block.
- Standardize path utilities in large diff fixtures to ensure cross-platform
  compatibility.

---------

Co-authored-by: Orca <help@stably.ai>
2026-06-23 22:16:20 -07:00
Brennan BensonandOrca c3a089ff44 Align folder workspace rows with new card style (#6137)
Co-authored-by: Orca <help@stably.ai>
2026-06-23 21:39:41 -07:00
Jinwoo Hong 1b6e65c4ef Fix terminal paste cancellation on transient blur (#6232)
Fix terminal paste cancellation on transient blur
2026-06-23 21:24:13 -07:00