Commit Graph
3946 Commits
Author SHA1 Message Date
Jinjing 6dd82b974d Track and sync base ref throughout Create PR intent flow (#5907)
* Track and sync base ref throughout create PR intent flow

* Capture and track the review base ref (`baseRef`) directly inside the Create PR intent run token to keep async steps anchored to the base selected when the run started.
* Resolve intent flow and eligibility bases safely using the compare-base picker to override stale default refs.
* Keep the PR dialog's base field in sync with the active compare base while untouched by the user.

* Ignore stale generated PR fields if base ref syncs while in flight

Track user-initiated edits to the base field separately using a ref.
When the base ref is synced automatically from Source Control, mark
the base field dirty to increment its revision. This ensures stale
generated fields from an in-flight request cannot overwrite or revert
the newly updated base.
2026-06-20 03:39:45 -07:00
Jinjing 97dc6d63e3 Accept merged fallback PRs during branch lookup (#5908)
Ensure that when a visible fallback PR has been merged (e.g., outside
Orca with a deleted head branch), it is still accepted and refreshed by
branch lookup instead of being discarded as an implicit merged PR.

* Add `acceptMergedFallbackPR` option to GitHub branch lookups
* Enable this option during manual and background refreshes of fallback PRs
* Plumb the new option through preload APIs, IPC handlers, and RPC protocols
2026-06-20 03:30:18 -07:00
Jinjing 1419193bea Add explicit task title and display name to orchestration tasks (#5901)
Introduce optional `task-title` and `display-name` parameters for orchestration tasks, persisting them in the database and propagating them through the RPC and Orca runtime.

This allows the CLI, dashboard, activity page, and sidebar to display concise, user-friendly labels for dispatched worker agents instead of verbose, raw system preambles.
2026-06-20 03:29:21 -07:00
Jinjing b050bcff03 Keep mobile-controlled browser panes paintable and park idle hidden panes (#5900)
* Keep mobile-driven browser panes paintable and park idle hidden panes

- Add useSyncExternalStore-based hooks to reactively track mobile-driven pages.
- Prevent unmounting or losing paintability for panes controlled by a mobile device.
- Park heavy browser pane subtrees in hidden worktrees to improve performance.

* Derive workflow platforms dynamically in runtime contract test

Avoid hardcoding Linux, macOS, and Windows platforms in the Electron
runtime package contract test. Instead, extract the platforms directly
from the golden E2E workflow matrix strategy and map them to their
corresponding run steps.
2026-06-20 03:25:53 -07:00
JinjingandOrca 553d47bf4f Fix Windows workspace deletion runtime resolution (#5888)
* Add test file for workspace delete bug

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

* Fix Windows workspace deletion runtime resolution

Resolve project-created workspace deletion through the selected project runtime so Windows paths are listed strictly without falsely tripping the unregistered worktree guard.

Design doc: docs/delete-workspace-windows-unregistered.md

---------

Co-authored-by: Orca <help@stably.ai>
2026-06-20 03:16:29 -07:00
Jinjing 55456e0c2d Show branch-discovered PRs on worktrees with no linked PRs (#5894)
Allow branch-discovered GitHub and GitLab PRs to display on the
worktree card even when the worktree has no explicitly linked PR
metadata.

This is enabled by passing the review hint key option down and
allowing the PR display logic to show neutral branch-level lookups
when no linked review key is present.
2026-06-20 03:00:52 -07:00
Jinjing c2433f5910 Enhance AI Vault session rows with conversation previews (#5896)
Revamp the session display in the AI Vault to prioritize visible
conversation history (user and assistant turns) over raw metadata.

- Display the latest conversation turn directly on collapsed rows
- Redesign expanded details to show the "Original ask" and latest turns
- Integrate visible preview text into session search filters
- Add a dedicated drag handle for resuming sessions to prevent
  accidental drags on the row card
- Update row height and virtual scroll metrics to accommodate previews
2026-06-20 02:14:24 -07:00
Jinjing a1cbb31f27 Clarify worktree lineage and handoff rules in skills and CLI help (#5892)
- Explain that `--no-parent` only controls Orca lineage, not the Git
  base branch, and detail how to target independent top-level work.
- Define full handoffs as ownership transfer and forbid the use of
  orchestration dispatch injection for them.
- Update CLI help text for `orca worktree create` to reflect the
  lineage and base-branch guidance.
- Add tests to verify that these guidance patterns exist in the skill
  markdown files.
2026-06-20 01:51:35 -07:00
Jinjing e2c8a66ee0 fix: address review findings (#5889) 2026-06-20 01:15:58 -07:00
Jinjing a04a9013f6 Prioritize Create PR intent over blocked notices in header action (#5884)
Resolve the Create PR/MR preparation intent first in the header action,
falling back to blocked notices only for states that cannot be safely
prepared (such as auth issues, default branch, or unsafe sync blockers).
This allows recoverable states like dirty files or unpublished commits
to proceed via the preparation flow.
2026-06-20 00:26:54 -07:00
Jinjing e19949f280 test: align tab strip layout assertion (#5875) 2026-06-19 21:53:05 -07:00
Jinjing dd8c78c129 Revert "Show worktree delete icon on sidebar row hover" (#5874)
This reverts commit ce253354fe.
2026-06-19 20:48:57 -07:00
Brennan BensonandOrca 8264cd2416 Send notes to working agents (#5748)
Co-authored-by: Orca <help@stably.ai>
2026-06-19 20:30:51 -07:00
Jinjing 13427a7de0 Hide native scrollbars on terminal tab strip (#5838)
* Hide native scrollbars on terminal tab strip

Remove the 'scrollbar-sleek' class and hide the scrollbars entirely using
CSS on '.terminal-tab-strip'. Horizontal tab strips scroll via chevrons,
wheel, and trackpad, so a native scrollbar thumb overlays tab labels and
looks broken.

* Introduce tab strip scroll indicator and fade masks for overflow

* Adds a top-aligned scroll indicator overlay to provide visual feedback for overflowing tabs.
* Applies CSS gradient mask-image fades to scroll edges to handle tab clipping cleanly.
* Employs ResizeObserver and MutationObserver to reliably recalculate scroll metrics as tab lengths or labels change.
* Extracts and tests scroll thumb layout and metrics logic under a dedicated module.
2026-06-19 20:27:00 -07:00
Brennan Benson d6cb38b45a Keep Codex terminal transcripts readable during redraws (#5858) 2026-06-19 19:49:54 -07:00
Jinwoo HongandOrca 3478efca08 fix: stabilize release terminal e2e (#5869)
Co-authored-by: Orca <help@stably.ai>
2026-06-19 19:43:42 -07:00
Brennan Benson 230297b430 Improve unread workspace contrast in the sidebar (#5866) 2026-06-19 19:35:23 -07:00
Brennan Benson 3f3a9ef94b Keep Source Control AI generation available when actions are hidden (#5859) 2026-06-19 19:16:05 -07:00
Brennan Benson 202827ecfa Prevent tab icons from briefly showing the wrong agent (#5860) 2026-06-19 19:07:16 -07:00
Jinjing 294089212f Refactor project header drag-and-drop to support project groups (#5867)
- Enable project header manual reordering when project groups are present.
- Restrict dragging to the project icon handle instead of the entire row.
- Integrate autoscrolling during sidebar drags via requestAnimationFrame.
- Fix drop index comparison in drag-commit logic to handle filtered sibling indices correctly.
- Modularize drag contract, initialization, and measurement helpers.
2026-06-19 19:00:37 -07:00
067c88fe55 feat(source-control): make group order configurable (#2188)
Co-authored-by: Neil <4138956+nwparker@users.noreply.github.com>
Co-authored-by: brennanb2025 <brennankbenson@gmail.com>
2026-06-19 18:50:05 -07:00
Jinwoo HongandOrca 7320c1e8ba Show Codex reset credit expiry (#5865)
Co-authored-by: Orca <help@stably.ai>
2026-06-19 18:49:22 -07:00
Jinjing 2a42a4e9ab Relax Source Control git action availability (#5853)
* Relax source control action availability

Implements the behavior described in docs/lift-git-action-restrictions.md: keep eligible git and review actions clickable so existing git/provider errors can surface, preserve partially staged commit availability, and show a readable inline notice when Create Review is blocked.

* Address source control review follow-ups

* rm design doc
2026-06-19 18:24:51 -07:00
Brennan Benson 5a85528b28 Test restored terminal pane titles (#5861) 2026-06-19 18:15:44 -07:00
Jinjing d063e8d5cb fix: address review findings (#5862) 2026-06-19 18:11:12 -07:00
Brennan BensonandOrca 6c941d8e75 Fix terminal pane title focus handling (#2756)
Co-authored-by: Orca <help@stably.ai>
2026-06-19 17:50:16 -07:00
Trevin Chow ce253354fe Show worktree delete icon on sidebar row hover
Reveals the standard workspace delete action from sidebar rows on hover or keyboard focus, while keeping primary/main worktrees protected.

Maintainer follow-up:
- prevent hidden delete buttons from receiving pointer events
- merge latest main and resolve localization conflict

Validated with CI PR Checks plus local typecheck, lint, Vitest, and Electron hover/focus/delete-confirmation checks.
2026-06-19 17:43:12 -07:00
Jinjing b3bd785da6 fix: address review findings (#5857) 2026-06-19 17:41:40 -07:00
Jinwoo Hong 972078f2c4 Fix paste ownership, input bounds, and IPC validation
Supersedes #5745, #5746, and #5747.
2026-06-19 17:14:55 -07:00
Brennan BensonandOrca a5920b2183 Improve Settings integrations readability (#5851)
Co-authored-by: Orca <help@stably.ai>
2026-06-19 17:11:51 -07:00
357d293bb0 Reduce renderer listener churn (#5831)
Co-authored-by: Orca <help@stably.ai>
Co-authored-by: brennanb2025 <brennankbenson@gmail.com>
2026-06-19 17:11:17 -07:00
slashdevcorpseandbrennanb2025 6f6664e744 Validate shell openPath targets (#5830)
Co-authored-by: brennanb2025 <brennankbenson@gmail.com>
2026-06-19 17:10:43 -07:00
Jinwoo HongandOrca 8ef8596ba1 Fix remote browser/editor tab props persistence (#5847)
Co-authored-by: Orca <help@stably.ai>
2026-06-19 17:01:10 -07:00
Jinwoo HongandOrca 0562240a92 fix: handle tall workspace drag previews (#5849)
Co-authored-by: Orca <help@stably.ai>
2026-06-19 16:53:30 -07:00
Brennan BensonandOrca 8bed35aa29 Refine experimental worktree card status visuals (#5848)
Co-authored-by: Orca <help@stably.ai>
2026-06-19 16:49:00 -07:00
Devin345458 bb0e98fcd1 fix(quick-open): restore panel focus when dismissing the Go to file dialog
Restore focus to the active panel when dismissing QuickOpen, including terminal, editor, simulator, local browser, and remote browser surfaces.

Reviewed-by: Codex
2026-06-19 16:47:27 -07:00
Prethish Kumar 21d0391881 fix(kimi): map AskUserQuestion to waiting and expose hook status
Maps Kimi AskUserQuestion PreToolUse events to waiting, exposes the Kimi hook status IPC/preload surface, and hardens Kimi session parsing plus remote hook path construction.
2026-06-19 16:45:34 -07:00
Neil 4eb3e75b9e feat(kimi): Kimi Code sessions in AI Vault + agent status hooks
Adds Kimi Code session parsing for AI Vault and managed Kimi agent status hooks.
2026-06-19 16:42:59 -07:00
Neil 9600e15757 fix(shortcuts): redesign keyboard shortcut settings with per-binding rows (#5850) 2026-06-19 16:41:05 -07:00
41b54c4d75 fix(settings): surface relative-path behavior in Workspace Directory helper (#5692)
* fix(settings): surface relative-path behavior in Workspace Directory helper

The global Workspace Directory field's helper text only duplicated the
section description, so the per-project relative-path behavior was
undiscoverable: a relative value resolves under each repo root, an absolute
value is one shared location (worktree-logic.ts resolveWorkspaceDirForRepo).
The per-repo "Worktree Location" field already explains this; the global one
didn't. Replace the redundant line with a helper stating both modes, under a
new i18n key across all five locales.

Also translate the host-scope strings in this block (Client default, Apply
to, Overrides/Inherits client default, Reset) that were still English in
zh/ko/ja/es.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01M3VivWTrvHx31HdobBmPQ1

* fix(i18n): use 'Restablecer' for Reset action in es locale

'Reiniciar' reads as restarting Orca; 'Restablecer' is the correct
verb for resetting a setting to its default.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BnKfKNJJskzs7eWE7MyJDF

---------

Co-authored-by: Daniil Zinenko <dzinenko@welmi.ai>
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-authored-by: Jinwoo-H <jinwoo0825@gmail.com>
Co-authored-by: Orca <help@stably.ai>
2026-06-19 16:19:58 -07:00
JinHyeok Jeong b346717234 fix(i18n): correct Korean mistranslations
Correct Korean locale mistranslations, preserve cross-locale overrides while splitting KO data, and add regression coverage for key-specific localization repairs.
2026-06-19 15:52:05 -07:00
Jinwoo HongandOrca abbfb6d53f fix: handle macOS terminal command arrow scrolling (#5846)
Co-authored-by: Orca <help@stably.ai>
2026-06-19 15:48:03 -07:00
Jinwoo HongandOrca 3afed388fc fix: expose terminal visual layout and copyable handles (#5845)
Co-authored-by: Orca <help@stably.ai>
2026-06-19 15:42:13 -07:00
Brennan BensonandOrca c442f3aa00 Keep new workspace cards consistent after compact upgrades (#5843)
Co-authored-by: Orca <help@stably.ai>
2026-06-19 15:34:46 -07:00
OrcaWinandNeil 4ea550bbef fix(release): sign Windows installers with SignPath
Co-authored-by: Neil <neil@stably.ai>
2026-06-19 14:06:21 -07:00
Brennan BensonandOrca 1a7c579df0 feat(worktree): assign parent worktrees from sidebar (#4908)
Co-authored-by: Orca <help@stably.ai>
2026-06-19 14:05:32 -07:00
Brennan BensonandOrca e780d2980e Rename experimental agent sleep setting (#5837)
Co-authored-by: Orca <help@stably.ai>
2026-06-19 13:52:19 -07:00
Trevin ChowandCursor 8e524dfd33 fix(source-control): expand file context menu and shell-based Open in apps (#5825)
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-19 12:54:21 -07:00
NeilandOrca ef45305aa4 fix(runtime): evict ClaudeAgentTeams team on natural leader PTY exit (#5823)
createLaunchEnv adds a team (with nested panes map) per agent-team leader,
keyed by a fresh teamId. The only eviction (removeTeamForLeaderHandle) ran
solely from closeTerminal (explicit user-close). The natural-exit paths
onPtyExit and dropDisconnectedPtyRecord tore down every other per-pty map
but never the team, so a leader exiting on its own leaked the team + panes
map permanently.

Evict via the leader handle (handleByPtyId.get(ptyId)) in both onPtyExit
and dropDisconnectedPtyRecord, mirroring the closeTerminal call. Add
getActiveTeamCount for assertability.

Regression test drives the real onPtyExit/dropDisconnectedPtyRecord: fails
before the fix (teams leak) and passes after.

Co-authored-by: Orca <help@stably.ai>
2026-06-19 12:34:53 -07:00
NeilandOrca 3b4dc246d8 fix(terminal): evict lastCompletionIdentityByPaneKey on genuine pane teardown (#5822)
dispatchCompletion writes a per-paneKey entry into the module-scoped
lastCompletionIdentityByPaneKey on every completion. paneKey is a
never-reused ${tabId}:${leafUUID}. The map is module-scoped so it survives
a live-stream remount (dispose-then-recreate, isLive() still true), but
dispose never evicted it, so genuine teardown (PTY gone) leaked one entry
per closed pane.

Evict in dispose only when !options.isLive() — the same discriminator the
cross-remount dedup tests rely on (remount disposes with isLive() true).

Regression test fails before the fix (identity survives teardown, 200 leak)
and passes after; the existing cross-remount dedup suite still passes.

Co-authored-by: Orca <help@stably.ai>
2026-06-19 12:34:50 -07:00