Commit Graph
4943 Commits
Author SHA1 Message Date
Jinwoo-HandOrca 29ebf4b3bc Record Jira task workspace usage
Co-authored-by: Orca <help@stably.ai>
2026-06-12 21:10:05 -07:00
Jinwoo-HandOrca 18d83e924d Resolve task PR bases on run host
Co-authored-by: Orca <help@stably.ai>
2026-06-12 21:07:37 -07:00
Jinwoo-HandOrca 01152100ab Scope Jira optimistic task patches
Co-authored-by: Orca <help@stably.ai>
2026-06-12 21:03:00 -07:00
Jinwoo-HandOrca f91d83dfcd Preserve Jira task source context
Co-authored-by: Orca <help@stably.ai>
2026-06-12 20:58:45 -07:00
Jinwoo-HandOrca 44f61b1aee Show host scope for provider API budgets
Co-authored-by: Orca <help@stably.ai>
2026-06-12 20:48:18 -07:00
Jinwoo-HandOrca 88d71b9950 Persist GitLab task detail source context
Co-authored-by: Orca <help@stably.ai>
2026-06-12 20:41:58 -07:00
Jinwoo-HandOrca ea127e0924 Show host ownership for CLI provider accounts
Co-authored-by: Orca <help@stably.ai>
2026-06-12 20:34:52 -07:00
Jinwoo-HandOrca e40496d808 Update GitHub source-context checklist status
Co-authored-by: Orca <help@stably.ai>
2026-06-12 20:30:10 -07:00
Jinwoo-HandOrca bf55667eaa Route GitHub task row actions by source context
Co-authored-by: Orca <help@stably.ai>
2026-06-12 20:28:00 -07:00
Jinwoo-HandOrca bad7711930 Guard GitHub metadata selectors
Co-authored-by: Orca <help@stably.ai>
2026-06-12 20:16:21 -07:00
Jinwoo-HandOrca 65e1baf7a3 Guard GitLab selectors with repo context
Co-authored-by: Orca <help@stably.ai>
2026-06-12 20:12:05 -07:00
Jinwoo-HandOrca b33de4b815 Route GitHub drawer reads by source context
Co-authored-by: Orca <help@stably.ai>
2026-06-12 20:07:01 -07:00
Jinwoo-HandOrca d7bf736635 Scope task retry state by source context
Co-authored-by: Orca <help@stably.ai>
2026-06-12 19:54:42 -07:00
Jinwoo-HandOrca f9125fd949 Preserve Linear task source context in history
Co-authored-by: Orca <help@stably.ai>
2026-06-12 19:43:13 -07:00
Jinwoo-HandOrca 502a4bdebb Route Linear and Jira tasks by source context
Co-authored-by: Orca <help@stably.ai>
2026-06-12 19:31:25 -07:00
Jinwoo-HandOrca 762f42a4e4 Continue host context checklist implementation
Co-authored-by: Orca <help@stably.ai>
2026-06-12 18:55:55 -07:00
Jinwoo-HandOrca 293f84546c Finish host context merge repair
Co-authored-by: Orca <help@stably.ai>
2026-06-12 18:24:21 -07:00
Jinwoo-H 694fb2947e Merge remote-tracking branch 'origin/main' into Jinwoo-H/feature-control-multiple-orca-servers-concurrent 2026-06-12 17:17:27 -07:00
Jinwoo HongandOrca 71bfbbf840 Fix rich markdown image paste bloat (#5290)
Co-authored-by: Orca <help@stably.ai>
2026-06-12 16:48:09 -07:00
Jinwoo HongandOrca 630bcce530 fix: replace per-5s full-buffer terminal checkpoints with an incremental log (#5292)
Co-authored-by: Orca <help@stably.ai>
2026-06-12 16:31:24 -07:00
a3478c9f1c Add keyboard shortcuts to launch agent tabs (default agent + per-agent bindings) (#5214)
* Add keyboard shortcuts to launch agent tabs

Cmd+T opens a plain terminal tab, but launching an agent in a new tab was
mouse-only (tab bar + menu). This adds:

- tab.newAgent ("New agent tab"): launches the default agent in a new tab
  in the active workspace. Default chord Cmd+Alt+T on macOS; unassigned on
  Windows/Linux (AltGr / desktop-terminal chord conflicts), bindable in
  Settings. Resolves the agent via the configured default when detected
  and enabled, otherwise the shared auto-pick order; a 'blank' default
  falls through to auto-pick since an explicit agent chord wants an agent.
- tab.newAgent.<id>: one bindable action per TUI agent so each enabled
  agent can sit on its own chord. All ship unassigned. Settings →
  Shortcuts shows them in a new "Agents" group, hiding disabled agents;
  a per-agent chord launches its agent even when detection hasn't
  confirmed the binary (explicit request fails visibly in the tab).

Launches go through launchAgentInNewTab (same path as the tab-bar quick
launch) with launch_source 'shortcut'. Agent display names move to a
shared module so the keybinding registry can title the generated actions
without importing renderer code. groupDefinitions moves out of
ShortcutsPane.tsx to keep it under the max-lines lint cap.

* Fix recording Option-composed shortcuts on macOS

On macOS, Option changes the produced character (Cmd+Alt+C reports
key 'ç'), so the shortcut recorder rejected Alt combos with 'Press a
key, not only a modifier'. Capture now falls back to the physical key
code when Alt is held, matching the existing matcher behavior.

* fix: ignore disabled agent shortcuts in conflict checks

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

* fix: align mac option shortcut capture with matching

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

---------

Co-authored-by: Jinwoo-H <jinwoo0825@gmail.com>
Co-authored-by: Orca <help@stably.ai>
2026-06-12 16:28:49 -07:00
Jinwoo Hong 5087facefb Fix Windows task issue header overlap (#5295) 2026-06-12 19:27:17 -04:00
Jinwoo Hong bb51bc9ae6 Fix Linux dock window class (#5293) 2026-06-12 19:13:19 -04:00
Jinwoo Hong 55db0ab12e Fix Windows multiline terminal paste (#5291) 2026-06-12 19:12:08 -04:00
Yang,Zhou 74e2c952f1 feat: add Devin CLI as supported TUI agent (#5282)
* feat: add Devin CLI as supported TUI agent

Register Devin across shared agent config, telemetry, desktop/mobile
catalogs, localization, and README. Uses stdin-after-start prompt
delivery with --permission-mode bypass default args.

* test: assert Devin default --permission-mode bypass in startup plans
2026-06-12 16:10:09 -07:00
Jinwoo HongandOrca 6837cca9f3 Fix Tasks PR detail drawer and GitHub attachment videos (#5288)
Co-authored-by: Orca <help@stably.ai>
2026-06-12 16:02:09 -07:00
github-actions[bot] 46dbedff86 release: v1.4.66-rc.0 [rc-slot:2026-06-12-15] v1.4.66-rc.0 2026-06-12 22:36:19 +00:00
d538549bb5 Fix markdown preview links routing to system browser instead of Orca (#5265)
* Fix markdown preview links opening in system browser instead of Orca

In the markdown preview, a plain (or Cmd/Ctrl) click on an http/https link
called window.api.shell.openUrl() directly, which always routes to
shell.openExternal (the OS default browser). It bypassed openHttpLink, so a
plain click could never open in the Orca built-in browser, regressing the
behavior from #987. The Cmd/Ctrl+Shift escape hatch was already correct.

Route both http click paths through openHttpLink via a new
resolveMarkdownPreviewHttpOpenOptions helper that centralizes the
cross-platform modifier decision (Cmd on Mac, Ctrl on Linux/Windows):
- plain / Cmd-click -> { worktreeId } -> Orca browser (per openLinksInApp),
  falling back to the system browser when the setting is off, no worktree is
  known, or a remote runtime is active.
- Cmd/Ctrl+Shift-click -> { forceSystemBrowser: true } -> system browser.

The remote/SSH case is handled inside openHttpLink (http stays on the client
system browser; file:// blocking is unchanged).

Adds a happy-dom interaction test that renders the real component and fires
real modifier clicks, plus full modifier-matrix coverage for the helper.

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

* review: share markdown preview link modifier logic

Co-authored-by: Orca <help@stably.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-12 15:20:51 -07:00
Brennan BensonandOrca 5f0a4fc5f3 Add left sidebar appearance setting (#5280)
Co-authored-by: Orca <help@stably.ai>
2026-06-12 15:00:28 -07:00
b8a899edb1 fix: browser url preview with arrow navigation [#5113] (#5221)
* fix: browser url preview with arrow navigation

* Fix browser autocomplete preview cancel

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

---------

Co-authored-by: Jinwoo-H <jinwoo0825@gmail.com>
Co-authored-by: Orca <help@stably.ai>
2026-06-12 14:44:25 -07:00
Carlos Baraza 1205457d53 feat(mobile): paste clipboard images into terminals (#5264) 2026-06-12 14:37:43 -07:00
Brennan BensonandOrca abb2477efb Fix tab agent identity detection (#5283)
Co-authored-by: Orca <help@stably.ai>
2026-06-12 14:15:27 -07:00
Jinwoo Hong 5f3b61aa65 Fix WSL agent setup to use the distro login shell (#5285) 2026-06-12 17:01:34 -04:00
Jinwoo HongandOrca ebeb12fedc fix: distinguish remote project paths by SSH connection (#5279)
Co-authored-by: Orca <help@stably.ai>
2026-06-12 13:40:51 -07:00
github-actions[bot] 011ea0db34 release: v1.4.65-rc.3 v1.4.65-rc.3 2026-06-12 20:30:18 +00:00
Brennan BensonandOrca 74c961b09f Add Linear write commands for agents (#5165)
Co-authored-by: Orca <help@stably.ai>
2026-06-12 13:29:13 -07:00
github-actions[bot] a2aff47aca release: v1.4.65-rc.2 v1.4.65-rc.2 2026-06-12 19:18:38 +00:00
Jinjing b81f06203d Defer project header pointer capture until drag threshold is crossed (#5278)
This allows simple clicks on the repository header to still reach the
inner collapse handler on pointerup. Additionally, body cursor and
user-select styles are only applied when actual dragging begins,
rather than when the session is armed.
2026-06-12 12:17:50 -07:00
Jinwoo Hong dc8fdf65a3 Update Android mobile release links to 0.0.13
Point Android download links at the published mobile-v0.0.13 release.
2026-06-12 12:02:58 -07:00
Jinjing 18fdcf0b05 fix: clarify Korean terminal link routing label (#5277) 2026-06-12 12:02:15 -07:00
Jinjing d2a3f12baa fix: address review findings (#5275) 2026-06-12 11:43:39 -07:00
github-actions[bot] 528a9292aa release: v1.4.65-rc.1 mobile-v0.0.13 v1.4.65-rc.1 2026-06-12 18:22:56 +00:00
Jinjing 5ca63c85d7 fix: address review findings (#5273) 2026-06-12 11:20:43 -07:00
Jinjing dccea75b0e Fix active tab scrolling and editor keyboard layout on mobile (#5271)
* Improve mobile session tab scrolling and editor keyboard layout

- Auto-scroll the active session tab into view within the horizontal
  tab strip, using a new layout-aware utility with minimal scrolling.
- Use visual viewport measurements in the editor WebView to accurately
  report keyboard insets and lift floating controls above the keyboard,
  as native events can under-report covered areas.

* Fix active tab scrolling and normalize editor keyboard inset

- Ensure the active session tab is scrolled into view immediately when
  its layout finishes to prevent it from remaining hidden off-screen.
- Round, clamp, and validate WebView visualViewport bottom measurements
  to avoid rendering inconsistencies from fractional or invalid insets.
- Trigger an immediate keyboard inset report on script initialization.

* Update tabStripOffsetRef when scrolling mobile tab strip

Ensure the cached offset is updated to match the next scroll position. Without this update, subsequent scroll calculations would use stale offset values.
2026-06-12 11:09:08 -07:00
Jinjing f027a1cb7b Move settings out of help dropdown into dedicated sidebar button (#5272)
- Pulls the Settings option out of the Help dropdown menu and renders it as a standalone button directly in the sidebar.
- Integrates the `useShortcutKeys` hook and `ShortcutKeyCombo` component to display the settings keyboard shortcut in the button's tooltip.
- Updates associated tests to verify the new button's placement, ARIA attributes, and tooltip content.
2026-06-12 10:56:49 -07:00
0021d95796 fix(serve): persist active serve session tab so PTY output doesn't snap focus to the last tab (#5131)
* fix(serve): persist active mobile-session tab so PTY output doesn't snap focus

In `orca serve` (headless host + remote/web client), running a command in a
terminal snapped the active tab back to the last-created tab. The renderer
reconcile forces the client's active tab to the host's reported active
(activeTabId / activeTabType / per-tab isActive), but `activateMobileSessionTab`
only called `focusTerminal` — a no-op for serve tabs no renderer has adopted —
and never persisted the chosen tab into the host's in-memory snapshot. So every
`onPtyData` -> `touchMobileSessionSnapshotsForPty` republish re-emitted the stale
"active = last tab" and the client snapped back on each command.

Persist the activation into the headless snapshot (activeTabId, activeTabType,
exclusive per-tab isActive, rebuilt tabGroups) after the focus dispatch, gated on
`!getAvailableAuthoritativeWindow() && isHeadlessMobileSessionPublication(...)` —
the same guard the hydrate path uses, so renderer-owned snapshots (including
`:headless-merge:`) stay authoritative. No-op when the tab is already active;
adds nothing to the `onPtyData` hot path.

Adds 3 regression tests covering: chosen tab survives a PTY republish, no version
bump on redundant activation, and no server-side persist when a renderer is
authoritative.

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

* fix(serve): exclude :headless-merge: snapshots from headless active-tab persist

After a renderer detaches there is no authoritative window, so the
!getAvailableAuthoritativeWindow() guard alone let merged (:headless-merge:)
snapshots through this path. A merged snapshot still carries renderer-owned
tabs/groups, so a server-side active-tab rewrite could collapse that mixed
group state. Exclude merged epochs from the persist gate; only pure
`headless:` / `headless-hydrated:` publications are persisted server-side.

Adds a regression test: renderer-detach + `:headless-merge:` snapshot ->
the headless persist is suppressed (no snapshot mutation / event).

Addresses the CodeRabbit review on #5131.

* review: clarify headless active-tab persistence guard

Co-authored-by: Orca <help@stably.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-12 10:47:55 -07:00
Brennan BensonandOrca d93de0935f Add effectiveness telemetry for in-app GitHub stars (#5245)
Co-authored-by: Orca <help@stably.ai>
2026-06-12 10:14:49 -07:00
Neil f31c40cb18 Add Grok sessions to AI Vault (#5258) 2026-06-12 01:38:56 -07:00
Jinwoo-HandOrca e5301ba6d8 Fix multihost workspace composer project identity
Co-authored-by: Orca <help@stably.ai>
2026-06-12 01:03:55 -07:00
github-actions[bot] 290ffc7494 release: v1.4.65-rc.0 v1.4.65-rc.0 2026-06-12 07:40:36 +00:00