Commit Graph
645 Commits
Author SHA1 Message Date
Trevin Chow 8406299a0e Improve linked work item naming (#4674) 2026-06-04 23:25:30 -07:00
Brennan BensonandOrca e62e515116 Refine Git AI Author settings (#4679)
Co-authored-by: Orca <help@stably.ai>
2026-06-04 22:28:23 -07:00
Brennan BensonandOrca 843c345768 Declutter setup guide visuals (#4614)
Co-authored-by: Orca <help@stably.ai>
2026-06-04 22:23:28 -07:00
Jinwoo HongandOrca 1cd6df9137 Improve Open In apps settings (#4668)
Co-authored-by: Orca <help@stably.ai>
2026-06-04 17:02:00 -07:00
Brennan Benson 90378d4304 Add hide controls for sidebar shortcuts (#4648) 2026-06-04 14:14:28 -07:00
13f062d093 feat: hide markdown front matter by default with per-file toggle (#4468) (#4636)
* feat: hide markdown front matter by default with per-file toggle (#4468)

Front matter in the markdown preview was always visible above the
rendered body, which clutters reading for files where the metadata
is incidental. Default the card to hidden and let users opt in per
file via a small switch in the section header.

* Add a per-file markdownFrontmatterVisible flag in EditorSlice,
  mirroring the editorViewMode pattern (absent entry = hidden;
  storing only explicit true values keeps the record minimal).
* Clean the entry up on closeFile, preview-tab replacement, and
  worktree removal; reset on runtime switch.
* Render the existing front-matter card unchanged when the toggle
  is on, hide only the <pre> body when it is off, and keep the
  section header + SettingsSwitch visible so the affordance stays
  discoverable.
* Add 4 regression cases in editor.test.ts mirroring the
  editorViewMode tests.

* fix: persist markdown front matter visibility

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

---------

Co-authored-by: Jinwoo-H <jinwoo0825@gmail.com>
Co-authored-by: Orca <help@stably.ai>
2026-06-04 16:02:06 -04:00
Neil b4188b4861 Persist terminal scrollback outside session JSON 2026-06-04 01:31:38 -07:00
Brennan BensonandOrca 7b6e8e0ced Remove final code onboarding step (#4524)
Co-authored-by: Orca <help@stably.ai>
2026-06-03 23:57:53 -07:00
Neil 6b87b9a32c Add app icon switcher to appearance settings (#4600) 2026-06-03 17:14:50 -07:00
Brennan BensonandOrca 5142a24536 Simplify project add handoff (#4530)
Co-authored-by: Orca <help@stably.ai>
2026-06-03 16:50:35 -07:00
Neil 6e77c02fc6 fix: update Electron and revert UTF-8 write mitigations (#4598) 2026-06-03 16:45:01 -07:00
Andrii Valenia 2ba6f00db4 Add tab and workspace rename keyboard shortcuts (macOS) (#3280)
Adds configurable macOS shortcuts for renaming the active terminal tab and active workspace, with review follow-up fixes for conflict detection, sidebar reveal, lineage child rename surfaces, and floating workspace focus scoping.
2026-06-03 19:29:20 -04:00
Neil f62bf927cd Fix Electron stats JSON crash (#4595)
Avoid Electron 42.3.x's broken bulk UTF-8 conversion when persisting stats JSON. The crash loop reproduced when sparse non-ASCII strings in orca-stats.json were rewritten after restored terminal activity triggered a debounced stats save.

Add regression coverage for the sparse non-ASCII payload and surrogate-pair boundary handling.
2026-06-03 15:38:36 -07:00
Neilandthiagomsoares 996b69dce0 Harden large app state UTF-8 writes (#4587)
* fix: write stats file in chunks to avoid Electron UTF-8 abort

orca-stats.json gains an event on every agent start/stop. After about a
month of use mine had grown to ~3.6k events / ~608 KB, and the app started
hard-crashing a few seconds after every launch (SIGTRAP, no catchable JS
stack):

    Assertion failed: (length + 1) <= (capacity())
    node::MaybeStackBuffer<char>::SetLengthAndZeroTerminate <- node::Utf8Value

The crash is in StatsCollector.writeToDiskSync(), which saves the whole
file in one writeFileSync(JSON.stringify(data)). Electron 42.3.2's bundled
Node aborts when encoding a string that large to UTF-8 in a single write;
stock Node 24 handles the same file fine and the data is well-formed, so
it's an Electron/Node encoding limit, not bad data. The save runs on a
debounce after agent_start, which restored agents fire on launch -- so it
crashed right after opening.

Write the JSON in 64 KB slices through one fd instead (never splitting a
surrogate pair), and lower MAX_EVENTS 10k -> 1k so the file can't grow back
this large. Lifetime aggregates are unaffected.

Verified by reproducing the abort standalone with the real 608 KB file
under ELECTRON_RUN_AS_NODE, confirming the chunked writer round-trips it
byte-for-byte with no crash, and running a patched build that loads the
file without crashing. The underlying encode abort is an Electron/Node bug
to report upstream.

* fix: harden stats JSON writes

* fix: chunk app state UTF-8 writes

* fix: stabilize status and terminal polling

---------

Co-authored-by: thiagomsoares <5190162+thiagomsoares@users.noreply.github.com>
2026-06-03 14:58:28 -07:00
Neil 7bf33ea224 Fix new workspace shortcut terminal focus (#4565) 2026-06-03 12:25:54 -07:00
Jinjing 2d42e77309 Revert "Preserve explicit slept workspace state (#4536)"
This reverts commit 0d2abc5cb7.
2026-06-03 09:48:03 -07:00
Neil dd53a46b95 Revert "Improve new worktree startup timing" (#4564) 2026-06-03 02:22:17 -07:00
Neil 3079e4690a Improve new worktree startup timing 2026-06-03 01:42:14 -07:00
Jinwoo HongandOrca 205494b7ba Fix file search match parsing (#4542)
Co-authored-by: Orca <help@stably.ai>
2026-06-02 22:11:37 -07:00
Jinjing 0d2abc5cb7 Preserve explicit slept workspace state (#4536)
* Track explicitly slept worktrees in session state

- Persist user sleep intent separately from inactive terminal/browser state
- Use slept markers for sidebar, jump palette, kanban, and activation deferral
- Preserve slept markers across local, web, and remote workspace sessions

* Preserve slept worktree state across remote sync

- Merge remote sleep/default-terminal markers by target workspace so remote
  hydration does not discard local markers
- Let Sleep run for selected worktrees even when they only have preserved
  wake hints, while avoiding reconnects for explicitly slept legacy sessions

* Allow session snapshots without slept worktree ids
2026-06-02 21:21:51 -07:00
Trevin ChowandNeil abfe9bd329 Default repo avatars to the GitHub upstream owner and flag forks (#4522)
* Default repo avatars to the GitHub upstream owner and flag forks

Make the GitHub owner avatar the default repo icon and surface it as the
primary choice in the icon picker (the "Image" tab becomes "Avatar",
moves first, and opens by default). For forks, resolve the upstream/
parent owner so the avatar reflects the source repo instead of the
personal fork, and show a fork indicator (GitFork glyph + "Fork of
owner/repo" tooltip) next to the repo in the sidebar and settings.

Fork detection prefers the offline `upstream` remote, falling back to a
`gh repo view --json isFork,parent` lookup; the resolved upstream is
stored on the repo. Existing repos self-correct via a one-time startup
backfill (local repos) and a lazy backfill when their icon settings open
(SSH repos); new repos resolve at add-time. Reset now restores the
default (re-detecting the upstream) instead of clearing to the Folder
icon.

* Harden repo upstream avatar handling

---------

Co-authored-by: Neil <4138956+nwparker@users.noreply.github.com>
2026-06-02 20:55:35 -07:00
Jinwoo HongandOrca c0b573abda Persist editor drafts for hot exit (#4499)
Co-authored-by: Orca <help@stably.ai>
2026-06-02 18:49:13 -07:00
Jinwoo HongandOrca 4f18c7e79d Allow Linear context issue lists to load more (#4512)
* Allow Linear context issue lists to load more

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

* Simplify Linear load more footer copy

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

* Page Linear issue reads past backend cap

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

* Align Linear load more footer with GitHub pager

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

* Use pager for Linear issue lists

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

* Avoid phantom Linear issue pages

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

* Fix local Linear issue pagination cap

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

* Fix Linear pagination review issues

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

---------

Co-authored-by: Orca <help@stably.ai>
2026-06-02 21:17:20 -04:00
Jinwoo HongandOrca 530bfe6c39 Speed up cached usage analytics loads (#4528)
Co-authored-by: Orca <help@stably.ai>
2026-06-02 18:10:31 -07:00
Jinwoo HongandOrca 8959535f1b Auto-dismiss agent notifications on acknowledgement (#4518)
Co-authored-by: Orca <help@stably.ai>
2026-06-02 18:01:23 -07:00
Neil d879cfde37 Add HTTP/1.1 compatibility mode (#4509) 2026-06-02 16:54:11 -07:00
Neil 1ab0c2454b Include Linear issue keys in workspace names (#4510)
* Include Linear issue keys in workspace names

* Harden Linear workspace name seeds
2026-06-02 15:30:36 -07:00
Brennan BensonandOrca 0a736b1dc6 Add pending rename badge to workspace cards (#4454)
Co-authored-by: Orca <help@stably.ai>
2026-06-02 10:50:18 -07:00
Jinjing d21e73301e Refresh cleanup base before forced branch deletion (#4462) 2026-06-02 01:08:11 -07:00
Neil 9bd86ca264 onboarding UX (#4463) 2026-06-02 00:51:47 -07:00
Jinwoo HongandOrca 71314c9326 Fix Mistral Vibe CLI detection (#4455)
Co-authored-by: Orca <help@stably.ai>
2026-06-02 02:49:40 -04:00
Jinjing cd2a72ae07 Fix macOS Option bracket keybindings (#4451)
- Match physical punctuation keys when Option produces composed quote
  characters, preserving Cmd+Option bracket tab switching on macOS
- Add coverage for previous/next all-type tab switching shortcuts
2026-06-01 23:38:01 -07:00
Jinwoo HongandOrca 135c69d3e8 Add Linear issue load more (#4437)
Co-authored-by: Orca <help@stably.ai>
2026-06-01 23:35:47 -07:00
Brennan BensonandOrca 38f12e8df4 Track parallel work education telemetry (#4449)
Co-authored-by: Orca <help@stably.ai>
2026-06-01 23:29:28 -07:00
Brennan BensonandOrca d4a4a2aee4 Remove covered onboarding steps (#4445)
Co-authored-by: Orca <help@stably.ai>
2026-06-01 23:00:26 -07:00
Brennan BensonandOrca 5b1f297078 Add contextual feature tours (#2734)
Co-authored-by: Orca <help@stably.ai>
2026-06-01 21:20:15 -07:00
Neil d0904c90fb Add Jira task provider support (#2238) 2026-06-01 19:04:04 -07:00
Jinwoo HongandOrca 5ab1fe09b9 Fix mobile Tailnet pairing (#4415)
Co-authored-by: Orca <help@stably.ai>
2026-06-01 17:30:10 -07:00
Jinwoo Hong 3017efe00b Fix WSL account and skill setup issues (#4412) 2026-06-01 20:01:03 -04:00
Brennan BensonandOrca 9b5bfbafb7 Refine hidden imported worktrees row (#4390)
Co-authored-by: Orca <help@stably.ai>
2026-06-01 05:13:09 -07:00
Jinjing 4a85b0d90e Show worktree child agents inline (#4371)
* Show worktree-attributed child agents inline

- Keep orchestration worker rows visible when hook status arrives before the
  renderer has a tab for the pane.
- Show child agent lineage expanded by default with clearer parent/child styling.
- Tighten worktree list indentation so grouped and nested rows align correctly.

* Sync agent lineage from runtime graph

- Return main-owned orchestration metadata during window graph sync so live,
  retained, and title-derived agent rows stay grouped under the right parent.
- Match lineage by terminal handle when pane keys are unavailable after
  teardown, and ignore stale completed dispatches.
- Adjust sidebar indentation and compact agent row chrome/readability.

* Preserve agent lineage across status replay and worktree cleanup

- Enrich agent status snapshots with runtime terminal and orchestration metadata
- Share lineage tree building between dashboard and sidebar, including coordinator fallback
- Avoid applying stale runtime dispatch metadata to current hook statuses
- Use worktree attribution for PR refresh and live status removal before tabs mount
2026-06-01 02:13:00 -07:00
Jinjing bd7f643576 Fix stale agent spinners from retained pane status (#4367)
* Fix stale agent spinners from retained pane status

- Track authoritative agent pane ids, including retained and legacy rows
- Let done rows override stale runtime titles so worktree cards stop showing
  working after agents finish

* fix: address review findings
2026-06-01 00:28:08 -07:00
Neil be447e79db Fix Cursor CLI completion spinner status (#4331) 2026-05-31 21:47:49 -07:00
Neil 5d98e31012 Revert workspace board width control (#4334) 2026-05-31 21:34:19 -07:00
Brennan BensonandOrca 16e0ec3e11 Prefer shallow repos in nested repo discovery (#3534)
Co-authored-by: Orca <help@stably.ai>
2026-05-31 21:31:54 -07:00
Neil 61f5df39f3 Speed up workspace create base fetch (#4339) 2026-05-31 17:47:15 -07:00
Jinjing c5ba94ce96 fix: address review findings (#4327) 2026-05-31 16:17:30 -07:00
Jinjing 1304d6b630 fix: address review findings (#4325) 2026-05-31 16:03:55 -07:00
Neil e2b9179fe6 fix: preserve comma git history refs (#4299) 2026-05-31 11:35:39 -07:00
Neil 58f10fa2da fix: require exact pairing deep link route (#4282) 2026-05-31 10:55:36 -07:00