Commit Graph
79 Commits
Author SHA1 Message Date
Brennan BensonandOrca 94f3d34a94 Fix terminal Set Title input disappearing (#2306)
Co-authored-by: Orca <help@stably.ai>
2026-05-19 10:29:45 -07:00
Brennan BensonandOrca cf614b5f4f Fix agent completion notification dedupe (#2304)
Co-authored-by: Orca <help@stably.ai>
2026-05-19 00:28:55 -07:00
Brennan BensonandOrca cdd40f117e Fix E2E completed onboarding profile for restarts (#2299)
Co-authored-by: Orca <help@stably.ai>
2026-05-18 20:42:59 -07:00
Brennan BensonandOrca daa72ca33e Fix E2E onboarding setup (#2292)
Co-authored-by: Orca <help@stably.ai>
2026-05-18 19:09:21 -07:00
Brennan BensonandOrca ffc7d77dbe Keep Mac awake while agents run (#2227)
Co-authored-by: Orca <help@stably.ai>
2026-05-18 14:09:21 -07:00
Jinwoo Hong b25ea6b5bd Fix Windows right sidebar titlebar overlap (#2266) 2026-05-18 16:09:31 -04:00
Brennan BensonandOrca 108a764c09 Fix slept child workspace status (#2219)
Co-authored-by: Orca <help@stably.ai>
2026-05-18 11:01:42 -07:00
Neil db8af09f86 Fix flaky e2e rename and onboarding skip (#2235) 2026-05-18 01:05:24 -07:00
Neil 82372fbbdb fix: stabilize e2e assertions (#2217) 2026-05-17 21:51:50 -07:00
Brennan BensonandOrca c78b8bde55 Improve child workspace card UI (#2213)
Co-authored-by: Orca <help@stably.ai>
2026-05-17 21:24:03 -07:00
Brennan BensonandOrca 956a6a2b03 fix: require project setup in onboarding (#2177)
Co-authored-by: Orca <help@stably.ai>
2026-05-17 21:15:50 -07:00
Brennan BensonandOrca 0b07a8d6e6 Fix terminal Set Title during agent title updates (#2184)
Co-authored-by: Orca <help@stably.ai>
2026-05-17 21:00:47 -07:00
Neil d89fdd0ab8 Fix shifted Russian input in kitty terminal mode
Fixes shifted non-ASCII keyboard input when kitty keyboard reporting is active, including keyup release handling.
2026-05-17 20:52:28 -07:00
Brennan BensonandOrca 5642277aaf Update agent awake setting copy (#2183)
Co-authored-by: Orca <help@stably.ai>
2026-05-17 16:55:44 -07:00
Neil 10b63bd1a0 Fix onboarding E2E drift (#2170) 2026-05-17 15:13:12 -07:00
Jinwoo Hong 102ca09a38 Fix Windows dev terminal PATH and shell icons (#2152) 2026-05-17 15:43:53 -04:00
Brennan BensonandOrca a9fbcbc0f6 Add feature tour Help menu hint (#2150)
Co-authored-by: Orca <help@stably.ai>
2026-05-17 10:58:50 -07:00
Neil 0c794f790a Fix collapsed sidebar titlebar control overlap (#2087)
* fix: separate collapsed sidebar titlebar controls

* fix: stabilize collapsed titlebar e2e
2026-05-16 11:50:26 -07:00
Jinwoo HongandOrca 13e11d1450 Remove mobile lock terminal scrim (#2074)
Co-authored-by: Orca <help@stably.ai>
2026-05-16 02:21:24 -07:00
Jinwoo HongandOrca 86192ef53d Fix inactive terminal bar cursor rendering (#2058)
* Fix inactive terminal bar cursor rendering

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

* Test inactive cursor over prompt glyph

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

* Test inactive prompt cursor rendering

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

---------

Co-authored-by: Orca <help@stably.ai>
2026-05-16 03:05:50 -04:00
Neil 6eae8fa540 ci: shard electron e2e workflow (#2070) 2026-05-15 23:52:37 -07:00
Jinjing 9a15841a21 fix: enable remote agent hooks by default (#2066) 2026-05-15 22:06:00 -07:00
Brennan BensonandOrca 013f740023 Show agent rows for nested workspace children (#2008)
Co-authored-by: Orca <help@stably.ai>
2026-05-15 18:43:13 -07:00
Brennan Benson 4614b8629d Fix pane key acknowledgement migration (#1998) 2026-05-15 17:31:21 -07:00
Brennan BensonandOrca bf85d51bc1 Add workspace lineage grouping (#1885)
Co-authored-by: Orca <help@stably.ai>
2026-05-15 17:21:00 -07:00
Jinwoo HongandOrca bce3ef1776 Add OpenCode usage analytics (#1986)
Co-authored-by: Orca <help@stably.ai>
2026-05-15 16:33:15 -07:00
Jinjing b93849a577 Add inline diff note edit E2E coverage (#1951)
* Add inline diff note edit coverage

* test: add diff note edit coverage
2026-05-15 13:41:30 -07:00
Brennan BensonandOrca e5c394b09b Add pull request creation flow (#1960)
Co-authored-by: Orca <help@stably.ai>
2026-05-15 13:36:06 -07:00
Jinwoo HongandOrca 79838275a4 Improve Claude and Codex usage tracking (#1968)
Co-authored-by: Orca <help@stably.ai>
2026-05-15 13:16:55 -07:00
Brennan BensonandOrca 60fdd11114 Migrate agent pane identity to stable leaf ids (#1909)
Co-authored-by: Orca <help@stably.ai>
2026-05-15 12:10:06 -07:00
e42c78107c Mobile: replace presence-lock banner with loud overlay + collapsible chip (#1899)
Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
Co-authored-by: Orca <help@stably.ai>
Co-authored-by: Jinwoo-H <jinwoo0825@gmail.com>
2026-05-15 11:47:13 -07:00
Brennan BensonandOrca e7833d8d17 Fix Droid native title completion notifications (#1944)
Co-authored-by: Orca <help@stably.ai>
2026-05-15 11:34:01 -07:00
Brennan BensonandOrca fd813e7639 Keep computer awake while agents run (#1937)
Co-authored-by: Orca <help@stably.ai>
2026-05-15 11:19:19 -07:00
b030257c3b feat(source-control): AI commit message generation (#1487)
Co-authored-by: Orca <help@stably.ai>
Co-authored-by: brennanb2025 <brennankbenson@gmail.com>
2026-05-15 02:18:46 -07:00
Brennan BensonandOrca 2cadcbc4e1 Support agent status hooks over SSH (#1865)
Co-authored-by: Orca <help@stably.ai>
2026-05-14 16:06:23 -07:00
Brennan BensonandOrca 2e5ac1c8eb Add onboarding feature setup checklist (#1853)
Co-authored-by: Orca <help@stably.ai>
2026-05-14 15:21:30 -07:00
Brennan BensonandOrca be72e64a47 Improve source control discard flow (#1870)
Co-authored-by: Orca <help@stably.ai>
2026-05-14 15:20:53 -07:00
Brennan BensonandOrca fdf7d9e97a feat(onboarding): add feature wall tour (#1772)
Co-authored-by: Orca <help@stably.ai>
2026-05-14 15:20:49 -07:00
Brennan BensonandOrca 28a5acb931 feat(sidebar): redesign Smart worktree sort around hook-reported agent state (#1701)
Co-authored-by: Orca <help@stably.ai>
2026-05-14 12:20:57 -07:00
Brennan BensonandOrca 727226fed9 fix(agent-hooks): write managed hook script to shared ~/.orca path (#1546)
Co-authored-by: Orca <help@stably.ai>
2026-05-14 11:57:48 -07:00
Brennan BensonandOrca ba0a5b47ed feat(ssh): agent-status over SSH (#1702)
Co-authored-by: Orca <help@stably.ai>
2026-05-13 22:09:32 -07:00
Jinwoo HongandOrca 9964d98107 Fix e2e worker teardown cleanup (#1785)
Co-authored-by: Orca <help@stably.ai>
2026-05-13 19:39:05 -07:00
Jinjing 14953089a2 fix: restore dead terminal setup e2e hook (#1787) 2026-05-13 18:48:14 -07:00
Brennan BensonandOrca 29e8eae70e perf(session): prune local terminal scrollback from persisted sessions (#1753)
Co-authored-by: Orca <help@stably.ai>
2026-05-13 16:34:44 -07:00
Brennan BensonandOrca 180b5c29a7 test(e2e): make terminal-attention BEL emission PATH-independent (#1771)
Co-authored-by: Orca <help@stably.ai>
2026-05-13 16:32:33 -07:00
Jinwoo Hong abcd2d5836 fix: harden Windows computer use runtime (#1757) 2026-05-13 12:37:47 -07:00
Jinwoo HongandOrca 954fb9f316 Add multi-select worktree actions (#1732)
Co-authored-by: Orca <help@stably.ai>
2026-05-13 00:18:17 -07:00
Brennan BensonandOrca daaea6acaa Fix terminal output lag from background panes (#1699)
* Fix terminal output lag from background panes

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

* Fix scheduler edge cases: replay ordering, foreground gate, dispose race

- Drain queued background bytes before replay/snapshot writes so the
  scheduler's deferred drain cannot land older bytes on top of the replay.
- Gate foreground on isVisibleRef only — visible-but-inactive split panes
  should not be throttled; only hidden panes (background tabs) should be.
- Catch writes to disposed terminals in the drain loop so a late PTY ping
  after pane.terminal.dispose() drops the dead entry instead of crashing
  the scheduler for other panes still draining.
- Update App.tsx comment to drop stale agentStatusEpoch reference; epoch
  no longer ticks on every PTY event after the agent-status slice change.
- Guard e2e Math.max(...drainWrites) against empty array to avoid a
  vacuous pass.

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

* Fix flaky e2e: put background marker after burst payload

The terminal-output-scheduler e2e test asserts that a background marker
appears in the terminal buffer after switching to that tab. getTerminalContent
returns only the last 4000 chars of the serialized buffer; with the marker
prefixed before a 50000-char x-burst, the marker is always evicted and the
final assertion always fails.

Move the marker to the END of the burst so it survives tail truncation. The
burst itself remains the same length, so the chunked-drain invariants the
test exercises are unchanged.

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

* Add terminal scheduler regression coverage

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

---------

Co-authored-by: Orca <help@stably.ai>
2026-05-11 17:00:44 -07:00
Jinwoo HongandOrca 0f54103dda Add native computer-use automation (#1683)
Co-authored-by: Orca <help@stably.ai>
2026-05-11 14:20:08 -07:00
Brennan BensonandOrca 1f43346c5f fix(resource-usage): hydrate pty-registry at boot; render · remote only for SSH repos (#1667)
* WIP: Changes before auto-review fixes

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

* fix: address auto-review-fix-multi-agent findings

- Replace local ORCA_WORKTREE_ID_SEPARATOR with shared WORKTREE_ID_SEPARATOR
- Make hydrateLocalPtyRegistryAtBoot idempotent (one-shot per process,
  but stays retry-eligible until daemon provider is available)
- Strengthen daemon-pty-adapter strict-parser test to actually exercise
  the new short-circuit (test would have passed under the old loose
  parser too without the change)
- Add eslint-disable max-lines directive to oversized merge test file

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

* chore: archive auto-review context to .context/

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

* fix: address auto-review-fix findings

Drop the destructive reconcileOnStartup call from boot-time PTY registry
hydration: a transient listRepoWorktrees failure (returns [] and only
warns) would otherwise let the reconcile pass kill live local sessions.
The boot path is now read-only against the daemon — listSessions() only.

Also: tighten parsePtySessionId to reject degenerate `::` halves; replace
stale pty.ts:1005 references and a misleading local-unknown comment in
the hydrate module; narrow Store dependency to Pick<Store, 'getRepos'>;
log adapter listSessions failures instead of silently swallowing them;
re-anchor design-doc references on stable symbols and align §1b/§1c/§1d
with the implementation.

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

* docs(resource-usage): update remote badge spec

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

* test(resource-usage): cover boot hydration failure modes + warm-reattach e2e

Adds the regression coverage flagged in PR #1667's test plan that wasn't
already locked down.

vitest (`hydrate-local-pty-registry.test.ts`):
  - daemon offline at first call → no-op, hasHydrated stays false so a
    later macOS dock re-activation can retry.
  - listSessions rejection caught and logged, does not throw.
  - pid-write ordering: a pre-existing registry entry with pid=12345 is
    not clobbered by a stale `pid: null` from listSessions (§1d).
  - SSH-gate: a session whose repo has a non-null connectionId stays out
    of the registry, mirroring the spawn-time gate in pty.ts.
  - Happy-path: a local session is registered with the daemon's pid.

Playwright e2e (`resource-usage-warm-reattach.spec.ts`):
  Full quit→relaunch cycle against the same userDataDir; asserts that
  on the second launch the snapshot includes the warm-reattached PTY
  with a real pid before any pane mount, and that the seeded repo
  resolves as local (no connectionId). Mirrors the existing
  terminal-restart-persistence pattern.

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

* fix(test): satisfy Pick<Store, 'getRepos'> in hydrator vitest

CI typecheck failed because FakeStore's getRepos returned objects missing
Repo's required fields (path, displayName, badgeColor, addedAt). Fill with
placeholder values; the hydrator only reads id + connectionId, but the
type signature still has to line up.

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

* chore(resource-usage): drop bug-doc files; strip dead doc refs from comments

Remove docs/resource-usage-remote-mislabel.md (new in this PR) and revert
docs/resource-usage-merge-spec.md to the PR-base state. Strip the
matching `docs/...md §N` pointers from code/test comments, keeping the
surrounding "why" explanations intact so readers still get the
warm-reattach mislabel context.

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

---------

Co-authored-by: Orca <help@stably.ai>
2026-05-10 17:17:52 -07:00