Commit Graph
2946 Commits
Author SHA1 Message Date
buf0-bot[bot]andorca-bot 390f9f52fc fix: pr-bug-scan findings from #1524 (#1572)
Don't seed empty-success worktree roots in worktrees:list[All] catch (prevents auth-cache poisoning); restored focus-gated fetchWorktrees polling for the active repo so non-active worktrees pick up terminal-driven branch switches; encode detached HEAD as undefined instead of '' so renderer's nullish-coalescing preserves prior branch.

Rebased onto current main to apply only the intended diff.

Co-authored-by: orca-bot <bot@stably.ai>
2026-05-07 22:59:33 -07:00
buf0-bot[bot]andbuf0-bot 9cf605796a fix: pr-bug-scan findings from #1532 (#1574)
Updated reconnect-backoff comments in rpc-client.ts and connection-health.ts to reflect the actual ~6m total (not ~2m). Made valueFromMs() snap non-preset ms to the closest finite preset so the picker's selected radio agrees with the row sublabel.

Rebased onto current main to resolve conflicts; only the 3 Fixer-summary files.

Co-authored-by: buf0-bot <buf0-bot@users.noreply.github.com>
2026-05-07 22:59:26 -07:00
Neilandhermes fc0a3f241f fix(mobile): silence no-control-regex on bracketed-paste sanitizer (#1580)
The regex /\x1b\[20[01]~/g intentionally matches control characters —
that's the entire point of the sanitizer (stripping embedded \x1b[200~ /
\x1b[201~ markers from clipboard text). Suppress the lint warning with
the same convention used elsewhere in mobile/ (see scripts/repro-worktree-startup-stream.ts).

Comment-only change, zero runtime impact. Follows up #1576.

Co-authored-by: hermes <hermes@stably.ai>
2026-05-07 22:54:54 -07:00
buf0-bot[bot]andorca-bug-scan-bot 52cc6d5f97 fix: address pr-bug-scan findings from #1553 (#1576)
Strip embedded \x1b[200~/\x1b[201~ sequences from clipboard text before bracketed-paste wrap; route accessory-key repeat through a ref so held-key repeats use the current handleAccessoryKey.

Co-authored-by: orca-bug-scan-bot <orca-bug-scan-bot@stably.ai>
2026-05-07 22:48:27 -07:00
buf0-bot[bot]andorca-bug-scan-bot 5e8f796200 fix: pr-bug-scan findings from #1452 (#1560)
Co-authored-by: orca-bug-scan-bot <orca-bug-scan-bot@stably.ai>
2026-05-07 22:18:17 -07:00
buf0-bot[bot]andorca-bot 493f08bfa5 fix: pr-bug-scan findings from #1472 (#1564)
Fixed bundle-sheet keyed-canvas discard, narrowed magenta key threshold to avoid keying purples/pinks, hardened bundle copyFile against TOCTOU via O_NOFOLLOW, and skipped frame detection when the manifest already provides a valid sprite layout.

Rebased onto current main to resolve conflicts; reviewed and merged round-1 reviewer feedback (no committed node_modules).

Co-authored-by: orca-bot <bot@stably.ai>
2026-05-07 22:07:58 -07:00
buf0-bot[bot]andorca-bug-scan-bot 8d9b629b26 fix: pr-bug-scan findings from #1468 (#1559)
Co-authored-by: orca-bug-scan-bot <orca-bug-scan-bot@stably.ai>
2026-05-07 21:58:55 -07:00
buf0-bot[bot]andorca-bug-scan-bot 9bc8166ad8 fix: pr-bug-scan findings from #1465 (#1558)
Co-authored-by: orca-bug-scan-bot <orca-bug-scan-bot@stably.ai>
2026-05-07 21:58:13 -07:00
JinjingandOrca a41a663448 fix(new-workspace): keep Cmd/Ctrl+Enter submit working after source selection (#1557)
Selecting a PR/issue/Linear row replaces the focused input with a source
pill, which causes Chromium to retarget the next keydown to document.body.
Allow body/documentElement as submit targets so the modal shortcut keeps
working post-selection. Also tighten the modifier check to be platform-
exclusive (Cmd-only on Mac, Ctrl-only elsewhere).

Co-authored-by: Orca <help@stably.ai>
2026-05-07 20:25:50 -07:00
Jinwoo HongandOrca 868b4c48f1 fix(terminal): write PTY output live and de-overlap reattach restores (#1527)
Co-authored-by: Orca <help@stably.ai>
2026-05-07 20:14:42 -07:00
github-actions[bot] 06c63b26cf release: v1.3.41 v1.3.41 2026-05-08 03:04:52 +00:00
JinjingandOrca 1a66cc99a0 ui(orca-yaml): differentiate first-time vs re-prompt trust dialogs (#1556)
The orca.yaml trust dialog now adapts copy and layout based on whether
this is a first-time approval or a re-prompt after the script changed.
Re-prompts lead with '<repo>'s setup script changed — run the new
version?' so users understand why they're being asked again.

Restyles the 'always trust' checkbox as a card and threads a
previouslyApproved flag from ensureHooksConfirmed into the dialog.

Co-authored-by: Orca <help@stably.ai>
2026-05-07 19:35:13 -07:00
github-actions[bot] c1997631d1 release: v1.3.41-rc.0 v1.3.41-rc.0 2026-05-08 02:26:34 +00:00
Jinwoo HongandOrca 66df0e461a chore(mobile): bump version to 0.0.6 build 1 (#1555)
Co-authored-by: Orca <help@stably.ai>
mobile-v0.0.6
2026-05-07 18:38:59 -07:00
Brennan BensonandOrca 57072bed51 fix(codex): register hook trust hashes so Codex 0.129 stops gating Orca's hooks (#1547)
Co-authored-by: Orca <help@stably.ai>
2026-05-07 18:35:23 -07:00
Jinwoo HongandOrca cc14a0ade3 feat(mobile): terminal text selection, copy, and paste (#1553)
Co-authored-by: Orca <help@stably.ai>
2026-05-07 18:24:05 -07:00
Jinwoo HongandOrca 49b250a0f3 Settings: rephrase phone-fit-hold copy to drop third-party brand name (#1554)
Co-authored-by: Orca <help@stably.ai>
2026-05-07 18:19:42 -07:00
Brennan BensonandOrca 5a2a32b614 feat(agent-dashboard): default-on, remove experimentalAgentDashboard toggle (#1538)
Co-authored-by: Orca <help@stably.ai>
2026-05-07 17:16:51 -07:00
Brennan BensonandOrca 5bb147b897 Remove pty-output developer-permission detector (#1545)
Co-authored-by: Orca <help@stably.ai>
2026-05-07 17:12:35 -07:00
Jinwoo HongandOrca f16030b8eb fix(runtime): pin dev WebSocket port to 6769 for deterministic pairing (#1552)
Co-authored-by: Orca <help@stably.ai>
2026-05-07 17:10:43 -07:00
Jinwoo HongandOrca 22b63a0191 Mobile: indefinite phone-fit hold + configurable auto-restore (#1532)
Co-authored-by: Orca <help@stably.ai>
2026-05-07 16:47:31 -07:00
JinjingandOrca 3591d89464 feat(gh-project): drag to resize project view columns (#1551)
Per-scope persisted column widths via fr-weight redistribution between
adjacent column pairs, so the table fits its container without growing.
Also relocates "Start workspace from issue" button into GHEditSection and
expands comment composer with a labeled send button.

Co-authored-by: Orca <help@stably.ai>
2026-05-07 16:32:12 -07:00
zerone0x 998815c2dd fix: allow omitted optional rpc schema fields with zod 4.4 (#1541) 2026-05-07 16:13:20 -07:00
github-actions[bot] 343624d765 release: v1.3.40 v1.3.40 2026-05-07 23:08:10 +00:00
Neil e65edd7a74 fix(sidebar): reserve worktree scrollbar gutter
Always reserve the workspace sidebar scrollbar gutter and keep the worktree cards separated from the scrollbar lane.
2026-05-07 16:02:33 -07:00
github-actions[bot] 3bbc22fa4c release: v1.3.40-rc.0 [rc-slot:2026-05-07-15] v1.3.40-rc.0 2026-05-07 22:27:01 +00:00
Brennan BensonandOrca c375f403ef fix(agent-hooks): silence exit-127 spam from stale managed hook entries (#1536)
Co-authored-by: Orca <help@stably.ai>
2026-05-07 13:05:30 -07:00
github-actions[bot] ace5c56714 release: v1.3.39 v1.3.39 2026-05-07 19:51:12 +00:00
Jinwoo HongandOrca 568d3175cf Pin zod to ~4.3.6 (revert 4.4.x bump from #1526) (#1539)
Co-authored-by: Orca <help@stably.ai>
2026-05-07 12:47:41 -07:00
github-actions[bot] 46daff2ce7 release: v1.3.38-rc.3 [rc-slot:2026-05-07-03] v1.3.38-rc.3 2026-05-07 10:48:06 +00:00
7fb5363296 feat(cli): tab switch --focus surfaces the browser pane (#1498)
Co-authored-by: Orca <help@stably.ai>
Co-authored-by: Maciej Kobuszewski <maciej.kobuszewski@pergam.in>
Co-authored-by: Neil <4138956+nwparker@users.noreply.github.com>
Co-authored-by: Jinwoo-H <jinwoo0825@gmail.com>
2026-05-07 01:48:39 -07:00
45d05c3699 Add Kagi search support with encrypted private session links (#1434)
Co-authored-by: Orca <help@stably.ai>
Co-authored-by: Jinwoo-H <jinwoo0825@gmail.com>
2026-05-07 00:40:38 -07:00
Jinwoo HongandOrca 1210383e97 chore: remove obsolete mobile-fit-debug skill (#1531)
Co-authored-by: Orca <help@stably.ai>
2026-05-06 23:58:19 -07:00
github-actions[bot] d88de71a60 release: v1.3.38-rc.2 v1.3.38-rc.2 2026-05-07 06:57:49 +00:00
NeilandOrca b7a583d5ef fix(claude): skip redundant credential rewrites on every Claude spawn (closes #1507) (#1529)
Co-authored-by: Orca <help@stably.ai>
2026-05-06 23:56:36 -07:00
NeilandOrca ebc38b06e0 Linear: paste only URL as draft on workspace create (#1530)
Co-authored-by: Orca <help@stably.ai>
2026-05-06 23:48:11 -07:00
Neil 7b83b2dcdc fix: avoid repeated macOS privacy prompts (#1524)
* fix: avoid repeated macos privacy prompts

* fix: reduce background worktree permission probes

* chore: pin oxlint for ci

* fix: preserve optional rpc params with zod 4.4

* fix: preserve optional inline rpc params with zod 4.4
2026-05-06 23:30:03 -07:00
Neil 43a258951f fix(feedback): enforce anonymous submissions (#1528) 2026-05-06 23:23:58 -07:00
NeilandOrca f441ee8f3d chore(deps): bump deps to clear Dependabot alerts (#1526)
Run pnpm update in root + mobile to pull patched versions of vite, hono,
@hono/node-server, dompurify, uuid, picomatch, lodash, brace-expansion,
path-to-regexp, postcss, @xmldom/xmldom, and other transitive packages
flagged by Dependabot.

Co-authored-by: Orca <help@stably.ai>
2026-05-06 22:39:54 -07:00
dependabot[bot] b72304b3b3 chore(deps-dev): bump vite from 7.3.1 to 7.3.2 (#1525)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-06 22:28:39 -07:00
github-actions[bot] 775912f067 release: v1.3.38-rc.0 v1.3.38-rc.0 2026-05-07 05:03:46 +00:00
Jinwoo HongandOrca e83d92eede Mobile: server-authoritative phone-fit state machine + race fixes + UX cleanup (#1518)
Co-authored-by: Orca <help@stably.ai>
mobile-v0.0.5
2026-05-06 21:54:23 -07:00
Neil 6630cf6295 fix(release): handle orphaned release lookup (#1523) 2026-05-06 21:40:17 -07:00
NeilandOrca 5bdeb018d5 feat(feedback): anonymous opt-in for PR tag + contact (#1521)
* feat(feedback): let anonymous users opt in to PR tag + contact

When 'Submit anonymously' is checked the feedback dialog now smoothly
expands to reveal two optional fields:

- GitHub username \u2014 we'll @-mention them on the fix PR
- Email or x.com handle \u2014 we'll reach out when it's fixed

The animation uses a grid-rows 0fr\u21921fr transition so it expands
naturally without measuring DOM. New fields are forwarded through the
IPC + main-process proxy as 'anonymousGithubLogin' and 'anonymousContact'
so the backend can tell self-typed handles apart from verified gh
identity. Backend changes (slack message + route) ship in
orca-marketing-website.

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

* feat(feedback): split anon contact into email + x.com, tighten copy

Address review:
- move 'all optional' wording up to the top header line
- drop the inline 'we'll tag you on the PR' helper (placeholder says it)
- split the single contact input into two separate inputs (email +
  x.com handle), each with its own placeholder

IPC field rename: anonymousContact \u2192 anonymousEmail + anonymousX. Backend
PR is updated to match before either side ships.

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

---------

Co-authored-by: Orca <help@stably.ai>
2026-05-06 20:08:12 -07:00
Neil 96092977e3 fix(github/project-view): escape NUL byte so diffs render as text (#1519) 2026-05-06 19:24:15 -07:00
NeilandOrca db12df2ae5 feat(mobile): show detailed pairing log + cap connecting timeout (#1520)
When pairing fails (e.g. broken Tailscale route, firewall blocking the
WS, expired token, etc.) the mobile app previously got stuck on
'Connecting…' forever with no signal about *where* it stalled.

Adds a structured connection-log stream from the rpc client and renders
it under the 'Connecting…' spinner on both pair-scan and pair-confirm.
Each phase emits a timestamped, color-coded entry: Opening WebSocket,
WebSocket open, Sent e2ee_hello, Received e2ee_ready, Authenticated,
WebSocket closed / Reconnect scheduled / Connect timeout / Handshake
timeout, etc. The log auto-scrolls and stays visible after a failure so
the user can see the last successful step.

Also fixes the silent infinite spinner: pairing now has a 25s overall
timeout — rpc-client retries forever by design (right behaviour for
live sessions), but for the *initial* pair we want a hard ceiling that
surfaces an actionable error with the log visible instead of spinning.

- Adds ConnectionLogEntry / ConnectionLogSink to transport/types.ts
- connect() now accepts { onStateChange, onLog } (legacy fn form kept)
- New ConnectionLog component (mono, level-coloured, +Xs elapsed)
- Pair flows track logs in a ref and render them in connecting/error
- 25s pairing-overall timeout that closes the client and surfaces a
  'see log below for where it stalled' error

Co-authored-by: Orca <help@stably.ai>
2026-05-06 19:20:53 -07:00
github-actions[bot] 0948f4f205 release: v1.3.37-rc.4 v1.3.37-rc.4 2026-05-07 01:43:17 +00:00
github-actions[bot] f8b19bb33d release: v1.3.37 v1.3.37 2026-05-07 00:27:35 +00:00
NeilandOrca 8d0b7b032a feat(pi): wire pi panes into the unified agent-hooks pipeline (#1501)
Co-authored-by: Orca <help@stably.ai>
2026-05-06 17:26:50 -07:00
buf0-bot[bot]andorca-bug-scan-bot 3e3e30d38a fix: address pr-bug-scan findings from #1410 (#1420)
Extended removeRepo in repos.ts to drop lastVisitedAtByWorktreeId entries belonging to the removed repo, preventing monotonic growth of timestamps for deleted repos.

Co-authored-by: orca-bug-scan-bot <orca-bug-scan-bot@stably.ai>
2026-05-06 17:20:31 -07:00