Commit Graph
1560 Commits
Author SHA1 Message Date
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
buf0-bot[bot]andorca-bug-scan-bot 884cc6d622 fix: address pr-bug-scan findings from #1409 (#1422)
Fixed pty-connection passphrase wait gate: added 'disconnected' as terminal status (only after seeing a non-disconnected state) so cancel resolves; added waitTeardowns registry so dispose() actively u

Co-authored-by: orca-bug-scan-bot <orca-bug-scan-bot@stably.ai>
2026-05-06 17:20:28 -07:00
Neilandorca-bug-scan-bot 5dd48c7315 fix: address pr-bug-scan findings from #1396 (#1517)
Fix tab profile use-default fallback to default profile and destroy
all sibling webviews on workspace profile switch.

Reapplied on fresh origin/main; supersedes #1460.

Co-authored-by: orca-bug-scan-bot <orca-bug-scan-bot@stably.ai>
2026-05-06 17:19:26 -07:00
buf0-bot[bot]andnwparker 24b5fe2662 fix: filter DEFAULT_APP_FONT_FAMILY from terminal font picker (#1461)
Rebased buf0-bot #1461 onto current main — the original branch was
71 commits stale and would have reverted #1485 (Cmd/Ctrl+F search) and
#1429 (instant theme transitions).

Co-authored-by: nwparker <nwparker@users.noreply.github.com>
2026-05-06 16:53:04 -07:00
github-actions[bot] 6b3b28a199 release: v1.3.37-rc.3 v1.3.37-rc.3 2026-05-06 23:26:00 +00:00
Brennan BensonandOrca e7fef4e14d fix(source-control): preserve UTF-8 paths in status and branch diff (#1515)
Co-authored-by: Orca <help@stably.ai>
2026-05-06 16:22:24 -07:00
Neilandnwparker a75e706a6c fix: flip parentFieldRetried inside probe IIFE before resolveProbe() (#1514)
Closes the race where siblings awaiting parentFieldProbeInFlight wake
between resolveProbe() and the deferred parentFieldRetriedByOwner.add()
in the outer block, see parentFieldProbeInFlight=null +
parentFieldRetriedByOwner without scopeKey, and issue duplicate
with-parent probes.

Originally raised in #1456, but that PR branched off pre-#1465 main and
its diff against current main reverted #1465's owner-keyed parent-field
caches back to global flags. This re-applies the fix on current main.

Refs #1456

Co-authored-by: nwparker <nwparker@stably.ai>
2026-05-06 15:38:17 -07:00
Brennan BensonandOrca 21c3c9f16f refactor(shortcuts): remove Cmd-hold number-badge hint UI (#1412)
Co-authored-by: Orca <help@stably.ai>
2026-05-06 15:27:57 -07:00
github-actions[bot] fbbe1de40a release: v1.3.37-rc.2 [rc-slot:2026-05-06-15] v1.3.37-rc.2 2026-05-06 22:21:09 +00:00
9f8bf81c38 feat(source-control): commit, push, pull, and sync actions in panel (#1211)
Co-authored-by: Orca <help@stably.ai>
Co-authored-by: Alexander Saavedra <mralexsaavedra@gmail.com>
Co-authored-by: Neil <4138956+nwparker@users.noreply.github.com>
Co-authored-by: Brennan Benson <79079362+brennanb2025@users.noreply.github.com>
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: brennanb2025 <brennankbenson@gmail.com>
2026-05-06 15:03:52 -07:00
Jinjing 5c7e5f2f1d fix: default workspaces grouping to projects (#1513) 2026-05-06 14:51:37 -07:00
NeilandHermes Agent b933333500 fix(cli): exclude tab profile list/create/delete from --page flag (pr-bug-scan #1397) (#1512)
Adds 'tab profile list', 'tab profile create', 'tab profile delete' to the
supportsBrowserPageFlag exclusion list. These commands operate on profile
identifiers, not browser pages, so accepting --page silently was misleading.

Supersedes #1458 (which was branched off stale main pre-#1396 and would
have reverted 'tab current' out of the exclusion list).

Co-authored-by: Hermes Agent <hermes@orca>
2026-05-06 14:38:58 -07:00
Brennan BensonandOrca c0801b9aef chore(dev): auto-expose a CDP port from pn dev (#1511)
Co-authored-by: Orca <help@stably.ai>
2026-05-06 14:14:51 -07:00
Jinwoo HongandOrca 7c8c132fb1 fix(pty): use a single persistent ipcMain listener for serializeBuffer responses (#1510)
Co-authored-by: Orca <help@stably.ai>
2026-05-06 13:37:45 -07:00
Jinwoo HongandOrca f4a238b937 fix(terminal): preserve scrollback when captureBuffers runs during a transient empty-render window (#1509)
Co-authored-by: Orca <help@stably.ai>
2026-05-06 13:24:38 -07:00
Brennan BensonandOrca 88f04eb6b3 fix(dashboard): unstick bold codex inline-agent rows after retention (#1494)
Co-authored-by: Orca <help@stably.ai>
2026-05-06 13:10:25 -07:00
Jinwoo HongandOrca 28caefd82c Handle stale SSH repo worktree refreshes (#1508)
Co-authored-by: Orca <help@stably.ai>
2026-05-06 13:01:09 -07:00
Jinwoo HongandOrca 9c24425504 fix(mobile): handle notification permission changes (#1506)
Co-authored-by: Orca <help@stably.ai>
2026-05-06 11:57:42 -07:00
Jinwoo HongandOrca bba744a8cb fix(mobile): use neutral camera permission copy (#1504)
Co-authored-by: Orca <help@stably.ai>
2026-05-06 11:45:37 -07:00
github-actions[bot] b5d2b288b6 release: v1.3.37-rc.1 [rc-slot:2026-05-06-03] v1.3.37-rc.1 2026-05-06 10:45:45 +00:00
Jinwoo HongandOrca 07d10c8e8d fix(mobile): WS heartbeat to reap half-open mobile sockets (#1500)
Co-authored-by: Orca <help@stably.ai>
2026-05-06 02:05:38 -07:00
Jinwoo HongandOrca 97c8969246 Mobile: drop unused NSMicrophoneUsageDescription + bump iOS build to 9 (#1495)
Co-authored-by: Orca <help@stably.ai>
2026-05-06 00:16:55 -07:00
buf0-bot[bot]andJinjing d40a5ab6da fix(cli): make ProfileCreate.scope strict (pr-bug-scan #1397) (#1497)
Replace ProfileCreate.scope coerce-to-isolated transform with strict
z.enum(['isolated', 'imported']) so unknown scopes surface validation
errors instead of being silently rewritten.

Supersedes #1455 (which was branched off stale main and would have
reverted #1396).

Co-authored-by: Jinjing <jinjing@stably.ai>
2026-05-06 00:14:10 -07:00
Jinwoo HongandOrca b95c338c58 chore(mobile): bump iOS buildNumber to 8 to ship updated app icon (#1492)
Picks up the icon update from #1490. Apple requires monotonically
increasing build numbers — 7 was already uploaded to TestFlight.

Co-authored-by: Orca <help@stably.ai>
2026-05-05 23:22:16 -07:00
NeilandOrca 3664507f85 mobile: update iOS app icon (#1490)
Co-authored-by: Orca <help@stably.ai>
2026-05-05 22:32:04 -07:00
Brennan BensonandOrca 0df075f2d2 chore(telemetry): silence dev-mode console mirror in track() (#1489)
Co-authored-by: Orca <help@stably.ai>
2026-05-05 21:50:58 -07:00
Jinwoo HongandOrca 97b177d24c Mobile: declare mass-market encryption exemption + bump iOS build to 7 (#1488)
Co-authored-by: Orca <help@stably.ai>
2026-05-05 21:25:22 -07:00
github-actions[bot] 48ae81d1cd release: v1.3.37-rc.0 v1.3.37-rc.0 2026-05-06 03:51:59 +00:00
Jinwoo HongandOrca 82b078efa9 Mobile: App Store v0.0.4 prep + connection-stability fixes (#1486)
Co-authored-by: Orca <help@stably.ai>
2026-05-05 20:46:56 -07:00
github-actions[bot] 6e4e668cb3 release: v1.3.36 v1.3.36 2026-05-06 03:20:18 +00:00
Brennan BensonandOrca be2b30f1ad feat(settings): focus search on Cmd/Ctrl+F and fix empty section headers (#1485)
Co-authored-by: Orca <help@stably.ai>
2026-05-05 20:06:42 -07:00
github-actions[bot] 2f99f93142 release: v1.3.36-rc.0 v1.3.36-rc.0 2026-05-06 02:57:53 +00:00
Jinwoo HongandOrca 30b6aaf638 fix(terminal): close SIGKILL race for #217 + preserve scrollback on worktree sleep (#1454)
Co-authored-by: Orca <help@stably.ai>
2026-05-05 19:26:44 -07:00
Jinwoo HongandOrca 63e36d05fd chore(mobile): App Store prep — privacy manifest, debug-log cleanup, and protocol-version compat block (#1440)
Co-authored-by: Orca <help@stably.ai>
2026-05-05 19:23:56 -07:00
NeilandOrca e91377f0b2 fix(updater): add diagnostic logging for prerelease feed resolution (#1483)
When a user on an RC build doesn't get offered a newer stable release,
we currently have zero on-machine visibility into which step failed:
the atom-feed resolver, electron-updater's manifest fetch, or some
race in between. The static analysis path looks correct, but a real
user is hitting the bug — so add the missing logs before adding any
speculative behavior change.

- Wire autoUpdater.logger to console so electron-updater's per-step
  progress (channel file URL, fetched version, dedup decisions) lands
  in main-process stdout (Console.app on macOS, --enable-logging
  elsewhere). Previously these were silently dropped.
- Log the resolved tag and pinned URL from pinPrereleaseFeed in one
  line, so we can tell at a glance whether the atom-feed resolver
  picked the expected newer release or fell back.

No behavior change. Tests + typecheck pass.

Co-authored-by: Orca <help@stably.ai>
2026-05-05 19:14:12 -07:00
Jinwoo HongandOrca a35b6f1495 chore(mobile): bump to v0.0.4 (build 5) (#1482)
Co-authored-by: Orca <help@stably.ai>
2026-05-05 19:03:34 -07:00
Jinwoo HongandOrca 087c00b02e Mobile: stabilise connection + terminal-fit fixes + share one RpcClient per host (#1481)
Co-authored-by: Orca <help@stably.ai>
2026-05-05 18:58:13 -07:00