Commit Graph
209 Commits
Author SHA1 Message Date
NeilandOrca 9f94ccdb8f perf(emulator): prune serve-sim dedupe keys on worktree forget (#6708)
Co-authored-by: Orca <help@stably.ai>
2026-06-28 23:41:14 -07:00
NeilandOrca c96d8e3b5a perf(emulator): return MJPEG frames as views instead of per-frame copies (#6707)
Co-authored-by: Orca <help@stably.ai>
2026-06-28 23:40:55 -07:00
mehmet turac 19eeacfad3 fix: pin CLI build output to CommonJS (#6656) 2026-06-28 22:58:27 -07:00
NeilandOrca ad87bb0123 perf(editor): skip markdown TOC parse while the panel is closed (#6695)
The rich markdown editor rebuilt the entire Table-of-Contents outline on
every content change by running a full-document remark parse
(buildMarkdownTableOfContents), then discarded the result whenever the TOC
panel was closed — which is the default state. The parse is driven by the
300ms-debounced serialize path, so it fired ~3x/sec during sustained typing,
with cost scaling linearly with document size.

Gate the memo on showTableOfContents so the parse only runs when the panel is
actually open. Including showTableOfContents in the deps rebuilds the outline
the moment the panel opens, so there is no stale TOC.

Benchmark (config/scripts/markdown-toc-parse-benchmark.mjs), per content
change while typing:
  175 KiB doc / 200 headings -> ~65 ms median  (13.2 s cumulative over a
                                                 ~1 min typing burst)
  351 KiB doc / 400 headings -> ~138 ms median (27.8 s cumulative)
With the fix this drops to ~0 ms while the panel is closed.

Adds a unit test proving the parse is skipped (and a stable empty-array
reference returned) while closed, and still runs when open.

Co-authored-by: Orca <help@stably.ai>
2026-06-28 21:19:10 -07:00
NeilandOrca 5db5b23257 perf(renderer): drop per-tick matchMedia alloc + purge hibernation epoch map (#6696)
Co-authored-by: Orca <help@stably.ai>
2026-06-28 21:16:02 -07:00
Jinjing 2edfad0fc6 Clarify full handoff routing guidance (#6687) 2026-06-28 19:51:14 -07:00
Neil 0976f9427c fix(linux): disable GPU sandbox to stop terminal input freeze on Wayland (#5319) 2026-06-28 19:43:18 -07:00
Brennan BensonandOrca e58a5e9e17 Simplify Appearance settings (#6459)
Co-authored-by: Orca <help@stably.ai>
2026-06-28 11:50:29 -07:00
Brennan Bensonandbrennanb2025 74d564a67e fix(windows): trim macOS safe-area inset so app icon fills the canvas (#6548)
The Windows ICO was rasterized straight from the untrimmed 1024px macOS
render, inheriting Icon Composer's transparent safe-area inset (glyph only
~83% of the canvas). Windows scales the largest ICO frame down for the
taskbar/"Open with" list without compensating, so the icon looked visibly
small next to native apps.

Add config/scripts/trim-windows-icon-source.mjs (pngjs-based): trims the
transparent inset, re-squares with a small 2% margin, and emits a filled
multi-size ICO (~96% fill). Regenerate resources/build/icon.ico from it and
update generate.sh to delegate to the script so the committed binary stays
in sync regardless of whether ImageMagick is installed.

Fixes #5357

Co-authored-by: brennanb2025 <brennanb2025@users.noreply.github.com>
2026-06-28 00:30:24 -07:00
Neil 5363fcd668 Update xterm beta packages (#6486) 2026-06-27 02:37:23 -07: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 4ac1e960d4 Harden Orca CLI skill security guidance (#6131)
Co-authored-by: Orca <help@stably.ai>
2026-06-24 13:55:53 -07:00
Jinwoo HongandOrca d34c7fd589 fix: restore Linux chrome-sandbox postinstall (#6133)
* fix: restore linux chrome sandbox postinstall

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

* fix: check unprivileged user namespaces for sandbox

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

* fix: always repair linux chrome sandbox permissions

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

---------

Co-authored-by: Orca <help@stably.ai>
2026-06-22 21:55:08 -07:00
1f164daf71 Reduce git trace and branch compare polling churn (#6002)
* fix: bound git trace volume

* fix: reduce branch compare polling churn

* test: add benchmark artifact comparison tooling

* fix: address benchmark and polling review comments

* fix: keep branch compare fresh and harden benchmark reports

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

* Tighten benchmark annotations and polling cleanup

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

* Handle missing git status heads in Source Control tests

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

---------

Co-authored-by: Wolfgang Schoenberger <221313372+wolfiesch@users.noreply.github.com>
Co-authored-by: brennanb2025 <brennankbenson@gmail.com>
Co-authored-by: Orca <help@stably.ai>
Co-authored-by: Jinwoo-H <jinwoo0825@gmail.com>
2026-06-22 19:13:32 -07:00
Neil d992062cf9 fix: publish linux release matrix artifacts (#6111) 2026-06-22 18:28:01 -07:00
Jinwoo Hong a0d9505ba5 Fix SSH terminal replay artifacts
Fix SSH reconnect replay ownership and add a Docker-backed regression harness for terminal replay artifacts.
2026-06-22 16:42:20 -07:00
Brennan Benson 20a51978e5 Polish setup guide integration layout (#5856) 2026-06-22 15:15:03 -07:00
Neil 531bcc9a0e build: publish linux arm64 release artifacts (#4755) 2026-06-22 01:07:16 -07:00
Maplumeandbrennanb2025 2e03b14cc3 fix(i18n): correct Chinese MT errors and translate Settings panel strings (#5915)
Co-authored-by: brennanb2025 <brennankbenson@gmail.com>
2026-06-21 21:23:36 -07:00
Brennan BensonandOrca a856c7d6b6 Rename Orca Linear agent skill (#5855)
Co-authored-by: Orca <help@stably.ai>
2026-06-21 16:16:37 -07:00
Jinjing a856dee5d9 Exclude Windows from release evidence and update mock agent fields (#5949)
- Remove Windows from the release evidence platform matrix check because Windows release evidence is temporarily paused due to CI runner PTY readiness.
- Add scenarioTitle as taskTitle and a display name to mock agent objects to satisfy updated runtime row shapes in mobile lag scripts.
2026-06-20 17:50:56 -07:00
hiro 26a5263cb5 fix(i18n): correct Japanese "primary" worktree badge label (#5923) 2026-06-20 09:47:10 -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
Jinjing 44e4d8d4f5 Fix Windows ConPTY probe failures by removing startup control bytes (#5893)
* Fix Windows ConPTY probe failures by removing startup control bytes

Avoid prepending terminal probes with interrupt (`\x03`) or line-kill
(`\x15`) control characters on fresh shell launches. In Windows ConPTY,
echoing a startup Ctrl+C can print a literal "^C" and corrupt the subsequent
PowerShell commands.

- Extract probe command sequence generation to a dedicated helper
- Include E2E unit tests in the Vitest test suite config

* Rename terminal probe E2E test to match unit test pattern

Update the Vitest configuration glob pattern to target only E2E tests
ending in `.unit.test.ts`, and rename the terminal probe input sequence
test to match. This ensures only unit-like E2E tests are picked up
by Vitest.
2026-06-20 02:03: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
Jinwoo Hong 972078f2c4 Fix paste ownership, input bounds, and IPC validation
Supersedes #5745, #5746, and #5747.
2026-06-19 17:14:55 -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
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 c9460ed636 Put the orca CLI on PATH at install time for headless hosts (#5842)
Co-authored-by: Orca <help@stably.ai>
2026-06-19 15:46:29 -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
Jinwoo HongandOrca 6d6af7af1a Support browser panes on headless remote Orca servers (#5412)
Co-authored-by: Orca <help@stably.ai>
2026-06-18 22:50:11 -07:00
slashdevcorpse f80704cc60 [perf] Speed up CLI launch through Orca
Speed up Windows CLI launch by delivering short startup commands through shell args, falling back to stdin for oversized commands, and moving Codex historical session bridging into an incremental background task. Includes review fixes for Windows symlink and WSL test reliability.
2026-06-18 22:21:48 -07:00
Goo 4c5c2f4df3 fix(i18n): correct Korean mistranslations and particle spacing (#5761) 2026-06-18 21:26:12 -07:00
Brennan BensonandOrca 674639205c Show and Filter Automation-Created Workspaces (#5697)
Co-authored-by: Orca <help@stably.ai>
2026-06-18 13:05:57 -07:00
Jinwoo HongandOrca 3bd7b36012 Narrow computer-use e2e trigger (#5685)
Co-authored-by: Orca <help@stably.ai>
2026-06-17 23:27:26 -07:00
08ba730d8e feat(devin): managed hooks, sleeping resume, AI Vault (#5380)
* Revert "fix(terminal): add proportional scroll fallback for sidebar resize" (#937)

* fix(sidebar): smoothly animate off-screen worktree reveal on click (#1302)

Clicking a worktree card whose row lies outside the sidebar viewport
caused an instant jump when scrolling it into view. Switching
`scrollToIndex` to `behavior: 'smooth'` turns that minimum-distance
scroll into an animated slide while keeping `align: 'auto'` so visible
cards still no-op (no re-centering).

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

* Avoid local scrollback serialization on shutdown (#1821)

* Fix PR refresh coordinator test arguments (#2545)

* release: v1.4.31

* release: v1.4.31

* release: v1.4.31

* release: v1.4.31

* release: v1.4.31

* release: v1.4.31

* release: v1.4.31

* release: v1.4.36-rc.6

* release: v1.4.36-rc.6

* release: v1.4.36-rc.6

* ci: gate release-cut to the canonical repo so it skips forks (#4815)

The cut job checks out main, bumps package.json's version, and
fast-forwards main. On a fork with Actions enabled, the scheduled RC
cut runs against the fork's main and diverges it on the version line
every slot, so that contributor's PRs back to upstream conflict on
package.json even when their change never touches it.

Gate the job to github.repository == 'stablyai/orca' so it (and the
jobs that depend on it) no-op on forks. Canonical scheduled and manual
cuts are unaffected.

* feat(hooks): install Devin managed status hooks

* feat(devin): address hook review, resume, and UI polish

- Parse Devin config.json as JSONC; warn on read_config_from overlap
- Windows hook command uses forward slashes; APPDATA fallback
- Add devin to sleeping-agent resume and UI registries (plan 003/004)
- Add hook-service and hook-config-json tests

Closes follow-up for plans 002–004 on feat/add-devin-agent.

* feat(devin): scan ATIF transcripts for AI Vault

Register devin in AI_VAULT_AGENTS, discover ~/.local/share/devin/cli/transcripts
(or DEVIN_HOME), parse ATIF JSON sessions, and build devin --resume commands.

* docs(devin): clarify stdin-after-start vs bracketed paste

* fix(devin): use JSONC for remote install, add partial+APPDATA tests

- installRemote: replace readHooksJsonRemote (JSON.parse) with
  readTextFileRemote + parseJsonc for JSONC compatibility on SSH
- Add partial status test (some hooks missing → state:'partial')
- Add Windows APPDATA config path test with fallback

* fix(devin): address CodeRabbit review — sessionId fallback, parseJsonc errors, comment, i18n

* Fix Devin integration edge cases

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

* Package Devin JSONC parser dependency

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

---------

Co-authored-by: Neil <4138956+nwparker@users.noreply.github.com>
Co-authored-by: Brennan Benson <79079362+brennanb2025@users.noreply.github.com>
Co-authored-by: Orca <help@stably.ai>
Co-authored-by: Jinjing <6427696+AmethystLiang@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Trevin Chow <trevin@trevinchow.com>
Co-authored-by: Jinwoo-H <jinwoo0825@gmail.com>
2026-06-17 20:49:29 -07:00
Jinjing bd546b47d2 Redesign mobile driver overlay layout and clarify action copy (#5647)
Clarify the mobile-driving experience by updating outdated terminology and
making actions more precise. Generic "Mobile" references are replaced with
"Phone", and action buttons now explicitly distinguish between "this"
terminal and "all" terminals. Also introduces a modern card layout featuring
a smartphone icon badge and a live status indicator, complete with updated
locales, tests, and a standalone HTML preview.
2026-06-17 19:21:42 -07:00
0ec3882cb8 Add project Windows runtime selection (#5519)
* Add project Windows runtime selection

* Fix project Windows runtime selection

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

* fix: preserve WSL shell variables

---------

Co-authored-by: Jinwoo-H <jinwoo0825@gmail.com>
Co-authored-by: Orca <help@stably.ai>
Co-authored-by: Neil <neil@stably.ai>
2026-06-17 16:08:14 -07:00
Mantaroh YoshinagaandJinjing 5ff6bc9778 Fix unnatural Japanese (ja) localization wording (#5589)
* Fix unnatural Japanese localization wording

- "Open in" submenu: bare で開く → アプリで開く
- "Assigned to me" filter: 私に割り当てられました → 私に割り当てられた Issue
- Use Latin "Issue" instead of katakana イシュー throughout (JP engineering convention)
- Terminal/theme cursor settings: render the screen cursor as カーソル, not the
  Cursor product. The brand-protection revert (Cursor→カーソル→Cursor) now exempts
  these keys/values so カーソル survives while the Cursor product stays Latin.
- GraphQL: グラフQL → GraphQL
- Assignee picker aria-label: {{value0}} に割り当てられました → {{value0}} に割り当て済み

Fixes are made in the locale repair policy (overrides / phrase fixes) and applied via
repair:ja-catalog so they persist across future catalog regeneration.

* Extract screen-cursor exemption into a focused module

Move the Cursor screen-vs-product discrimination (SCREEN_CURSOR_ENVALUES /
SCREEN_CURSOR_KEYS / isScreenCursorContext) out of locale-translation-policy.mjs
into locale-screen-cursor-exemptions.mjs to keep the policy file under the
max-lines limit. No behavior change.

* Fix PR/issue state badge wording in Japanese

"State: Closed" was 状態: 閉店 (a shop closing) — change to 状態: クローズ to match
how the Closed state is rendered elsewhere. Also align "State: Merged" (状態: 結合済み)
with the standard マージ済み used for git merges.

---------

Co-authored-by: Jinjing <6427696+AmethystLiang@users.noreply.github.com>
2026-06-17 15:14:35 -07:00
Brennan BensonandOrca 00df8288dc Simplify support diagnostics settings (#5554)
Co-authored-by: Orca <help@stably.ai>
2026-06-16 23:11:27 -07:00
ENC_EuphonyandJinjing 15ed059947 Optimize, correct, and fill in gaps in some Chinese translations (#5504)
* Optimize, correct, and fill in gaps in some Chinese translations

* Add zh translation glossary repairs

---------

Co-authored-by: Jinjing <6427696+AmethystLiang@users.noreply.github.com>
2026-06-16 10:41:50 -07:00
Trevin ChowandJinjing 7361bff698 feat: rename worktree folder to match branch on first work (#4743)
* feat: rename worktree folder to match branch on first work

When the first agent message auto-renames a freshly created creature branch to a
short, work-derived name, also align the on-disk worktree folder and the sidebar
display name with it. Re-key every worktree-scoped slice of state — renderer
store maps plus the persisted main-process state — through the resulting id
change so the live worktree survives the rename instead of being treated as a
deletion (its tabs, terminals, browser panes, and git status all follow).

The rename is best-effort and local-only: a skip or failure (remote runtime,
Windows lock, destination taken) leaves the folder as-is and never undoes the
branch/display rename that already landed.

Squashed from the original PR #4743 commits, rebased onto upstream/main to drop
accumulated merge commits and i18n formatting churn so the branch carries only
the feature diff:
- Rename worktree folder to match branch on first work
- migrate renamed worktree session ids
- keep the live worktree alive through a folder rename
- address PR review feedback

* Address PR review feedback (#4743)

- orca-runtime: emit in-process worktreesChanged client event on folder rename, mirroring notifyBranchRenamed so onClientEvent listeners aren't left stale
- worktrees: re-key rightSidebarExplorerViewByWorktree and activeWorkspaceKey through a worktree-identity rename (both were worktree-scoped but missed by buildWorktreeRenameState)
- branch-name-from-work: treat prefix-only model output as an empty slug so the caller skips the rename instead of producing a doubled prefix
- worktree-folder-rename-target: document why posix.dirname is safe (Windows filtered out earlier)
- tests for each of the above

* Extract branch rename test helpers to a separate harness file

Move git responders, mock builders, and test event fixtures out of
first-work-branch-rename.test.ts into a new test harness file. This
reduces file length and removes the max-lines ESLint disable directive,
complying with project style guidelines.

* Wrap entire OnboardingFlow in TooltipProvider

Enable the use of tooltips anywhere within the onboarding flow, rather
than restricting them to the step indicators.

---------

Co-authored-by: Jinjing <6427696+AmethystLiang@users.noreply.github.com>
2026-06-15 19:58:55 -07:00
Jinwoo HongandOrca 5bf24368c0 Reduce Orca idle CPU (#5402)
* Reduce Orca idle CPU

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

* Restore low-cost working spinner

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

---------

Co-authored-by: Orca <help@stably.ai>
2026-06-15 12:56:22 -07:00
Jinjing c29e6e4a8c Support Bitbucket, Azure DevOps, and Gitea PRs in worktree flows (#5382)
Extend worktree creation, remote-conflict detection, and the Checks panel UI to support linked PRs from Bitbucket, Azure DevOps, and Gitea alongside GitHub and GitLab.

* Extract shared metadata lookup helpers to map provider-specific review identifiers.
* Update remote-conflict validation to check hosted reviews on target providers during worktree creation.
* Propagate provider-specific PR states through the RPC layers and into the Checks and Source Control UI panels.
2026-06-14 23:23:31 -07:00
Jinwoo Hong bb51bc9ae6 Fix Linux dock window class (#5293) 2026-06-12 19:13:19 -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
Mantaroh Yoshinaga b4c304edc8 fix(i18n): correct mistranslated Japanese (ja) UI strings (#5191) 2026-06-11 11:40:17 -07:00
Jinjing d4bee7db5c Preserve core workflow terms in English and apply CJK spacing (#5141)
* Preserve core workflow and product terms in English across locales

Update translation policy to prevent localization of key terms such as
"Agent", "Commit", "Markdown", and "Terminal". This ensures consistent
jargon and product branding.

Introduce CJK-Latin term spacing to keep these Latin terms legible
when combined with CJK text, while adjusting Korean particle spacing.
Also add overrides to prevent network proxy settings from being
mistranslated as "Agent".

* Preserve repo terminology in English and localize source control labels

Treat "repo" and "repos" (and their capitalized forms) as brand terms
that should remain in English/Latin across CJK and Spanish locales.
Update translation files and policies to replace translated words like
"repositorio" or "リポジトリ" with "repo"/"repos", and fix an issue where
latin brand terms could be incorrectly matched as substrings in larger
words during cleanup.

Additionally, externalize and localize the "Staged Changes", "Changes",
and "Untracked Files" section labels in the source control sidebar.
2026-06-10 19:24:16 -07:00
Brennan BensonandOrca 47927d019e Add feature interaction usage bucket telemetry (#5119)
Co-authored-by: Orca <help@stably.ai>
2026-06-10 13:38:51 -07:00
Jinwoo HongandOrca 44d1e2760f Improve localization catalog sync workflow (#5110)
Co-authored-by: Orca <help@stably.ai>
2026-06-10 11:13:01 -07:00