Commit Graph
3535 Commits
Author SHA1 Message Date
NeilandOrca a4e300142c Deliver subscribe overflow recovery as resized snapshot
Co-authored-by: Orca <help@stably.ai>
2026-06-09 17:06:58 -07:00
NeilandOrca 8cc550e198 Re-register slept terminal sessions on wake
Co-authored-by: Orca <help@stably.ai>
2026-06-09 17:06:58 -07:00
NeilandOrca 0318394628 Reset hidden synchronized output state on visibility and PTY changes
Co-authored-by: Orca <help@stably.ai>
2026-06-09 17:06:58 -07:00
Neil 4d15d9c9d6 Recover terminal subscribe overflow from snapshots 2026-06-09 17:06:57 -07:00
Neil 53c99c0314 Test daemon terminal query authority 2026-06-09 17:06:57 -07:00
Neil 908f167365 Test runtime multiplex pressure over WebSocket 2026-06-09 17:06:56 -07:00
Neil 5b27a23ae8 Test remote terminal ACK pressure 2026-06-09 17:06:56 -07:00
Neil 71fa199b15 Enable rich hidden terminal model restore by default 2026-06-09 17:06:56 -07:00
Neil 6709d71153 Test rich hidden model restore under pressure 2026-06-09 17:06:56 -07:00
Neil c050e7532f Prototype rich hidden terminal model restore 2026-06-09 17:06:55 -07:00
Neil 6f5c03f4c6 Gate rich hidden snapshot restore 2026-06-09 17:06:55 -07:00
Neil a0c22b8dc5 Gate rich headless terminal snapshot replay 2026-06-09 17:06:55 -07:00
Neil f7c4377e95 Drain remote multiplex output after shared ACKs 2026-06-09 17:06:55 -07:00
Neil 57991d13ab Restore slept terminal output on wake 2026-06-09 17:06:55 -07:00
Neil 344a6084af Keep hidden synchronized terminal frames live 2026-06-09 17:06:55 -07:00
Neil d01e9d4806 Skip hidden Latin terminal renderer writes 2026-06-09 17:06:55 -07:00
Neil ca5fb1436c Cap remote ACK pending terminal output 2026-06-09 17:06:54 -07:00
Neil 274133150e Skip safe hidden TUI renderer writes 2026-06-09 17:06:54 -07:00
Neil 0831f9eb60 Add remote terminal multiplex output ACKs 2026-06-09 17:06:14 -07:00
Neil 5b8b8d4e99 Skip hidden title terminal renderer writes 2026-06-09 17:06:14 -07:00
Neil 3a91992852 Prioritize active terminal renderer drains 2026-06-09 17:06:14 -07:00
Neil 404a51ff9f Skip plain hidden terminal renderer writes 2026-06-09 17:06:04 -07:00
Neil 788e2f6a13 Lower terminal renderer backlog cap 2026-06-09 17:05:10 -07:00
NeilandOrca cc12385ccd Replace pasted work-item URLs with title-derived workspace names (#5059)
Co-authored-by: Orca <help@stably.ai>
2026-06-09 16:58:07 -07:00
Brennan Benson 0f8ec54c28 Fix worktree card border-radius for multi-selected state (#5058) 2026-06-09 16:51:11 -07:00
NeilandOrca 25e0877b23 Re-enable WebGL for remote-runtime terminals (#5048)
PR #4946 forced terminalGpuAcceleration to 'off' whenever a remote
runtime environment is active, as a conservative workaround alongside
the real fixes (CSS anchor-name encoding and rebuilding the WebGL
renderer after replay bytes parse). That left every remote-runtime
terminal on the slower DOM renderer even though the post-replay
rebuildPaneWebgl already covers the snapshot-after-attach race.

Remove the forced-off resolver so remote-runtime panes honor the user
GPU setting again. The snapshot path (onSnapshot -> processData with
replayingBufferedData -> onReplayData -> rebuildPaneWebgl after parse)
keeps the glyph atlas in sync, and attachWebgl re-checks all guards
(gpuRenderingEnabled, deferred attachment, context loss) on rebuild.

Co-authored-by: Orca <help@stably.ai>
2026-06-09 19:47:25 -04:00
Brennan BensonandOrca f634f81b0e Fix shortcut chip floating right in Cmd-J palette tip on Windows/Linux (#4921)
Co-authored-by: Orca <help@stably.ai>
2026-06-09 16:44:34 -07:00
Jinjing dd70368caa fix: address review findings (#5055) 2026-06-09 16:15:05 -07:00
Jinjing 3f39912a9a Preserve floating workspace state after restart (#5047)
* Preserve floating workspace state during restart purge

* rm doc
2026-06-09 16:03:20 -07:00
Brennan BensonandOrca 442c16a357 Add Project modal: roving keyboard selection (#5052)
* Make Add Project highlight a roving keyboard selection

The Add Project modal previously rendered Browse folder as a permanently
filled "primary" card with a static ⏎ chip. Turn that white fill + ⏎ chip
into a roving selection indicator driven by keyboard focus: Browse starts
selected (it is autofocused on open), and Tab or ↑/↓ move the highlight —
and the ⏎ chip — to whichever action is focused, so Enter's target is always
the highlighted row.

Also flatten the unselected Browse card's surface to bg-background so it
matches the secondary rows instead of showing the outline variant's lighter
tinted/shadowed surface.

ShortcutKeyCombo gains an optional keyCapClassName so the ⏎ chip can tint
itself for the filled surface.

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

* Drop focus ring on selected Browse card so it stays borderless

The primary Browse card uses the Button component, whose base styles always
draw a focus-visible border + ring. Because Browse is autofocused-and-selected
on open, that ring rendered as a border on only the top card, unlike the
filled secondary rows. Suppress the ring on the selected state (the fill + ⏎
chip already indicate focus, since focus drives selection) and add a
transparent border to hold the box size steady across the outline↔default swap.

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

* Fix add project action selection accessibility

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

* Refine add project action outlines

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

---------

Co-authored-by: Orca <help@stably.ai>
2026-06-09 16:03:01 -07:00
Jinwoo HongandOrca de743891fe Allow Claude account changes with live sessions (#5054)
Co-authored-by: Orca <help@stably.ai>
2026-06-09 16:02:52 -07:00
NeilandOrca d7f44f48e4 Restore slim terminal scrollbar (xterm width: 7) (#5051)
Co-authored-by: Orca <help@stably.ai>
2026-06-09 16:02:35 -07:00
Jinwoo Hong d09a7fa28b Add Simplified Chinese, Korean, and Japanese UI localization (#5046) 2026-06-09 15:59:17 -07:00
Jinwoo HongandOrca 7d666fafab Fix terminal read for blank TUI tails (#5050)
Co-authored-by: Orca <help@stably.ai>
2026-06-09 15:53:39 -07:00
Jinwoo HongandOrca 9c199a5b85 Fix status bar usage separator entity (#5053)
Co-authored-by: Orca <help@stably.ai>
2026-06-09 15:47:15 -07:00
Jinwoo HongandOrca 280db4a1a6 Resume agents after PTY cold restore (#5045)
Co-authored-by: Orca <help@stably.ai>
2026-06-09 14:30:49 -07:00
Jinwoo HongandOrca 7ed829ee67 Recover corrupted terminal WebGL atlases (#5042)
Co-authored-by: Orca <help@stably.ai>
2026-06-09 13:52:58 -07:00
Brennan BensonandOrca 1e7e494e9a Add "Use Orca's browser" onboarding milestone (#4855)
Co-authored-by: Orca <help@stably.ai>
2026-06-09 13:50:46 -07:00
Jinjing f321ad50fe fix: address review findings (#5044) 2026-06-09 13:44:20 -07:00
Jinwoo HongandOrca a04e85c2d2 fix(browser): hide zoom percent after feedback (#5043)
Co-authored-by: Orca <help@stably.ai>
2026-06-09 13:43:56 -07:00
Jinjing 0ca2cb49ab Use scrollable hover cards for source control variable previews (#5029)
Replace the variable chip Tooltips with HoverCards to allow scrolling
through long prompt previews (such as the base prompt template).

* Pass action-specific base prompt previews (commit, PR, branch name)
  into the text generation dialogs to populate the variable chips.
* Style the hover cards to support vertical scrolling with a sleek
  scrollbar and update theme colors to match design guidelines.
* Add unit tests for the variable chips and dialog form behavior.
2026-06-09 13:38:16 -07:00
Jinwoo Hong c043939bf8 Fix project action menu click handling (#5041) 2026-06-09 12:55:17 -07:00
Brennan BensonandOrca 909128526c Refine stale-local-main toast: de-squish layout and clearer copy (#4930)
Co-authored-by: Orca <help@stably.ai>
2026-06-09 12:50:14 -07:00
Jinjing b7a4ece2a6 fix: address review findings (#5040) 2026-06-09 12:18:18 -07:00
5c31930e0e perf: speed up desktop startup (#4618)
Co-authored-by: Orca <help@stably.ai>
Co-authored-by: Jinwoo-H <jinwoo0825@gmail.com>
2026-06-09 12:15:04 -07:00
Jinwoo HongandOrca 28fe76f696 Fix desktop terminal restore after mobile fit (#5039)
Co-authored-by: Orca <help@stably.ai>
2026-06-09 12:11:48 -07:00
Jinjing ffe96c8f06 fix: remove amp archive flag (#5036) 2026-06-09 11:55:09 -07:00
Jinwoo HongandOrca 9369708f6b Add English localization infrastructure (#4995)
Co-authored-by: Orca <help@stably.ai>
2026-06-09 10:43:04 -07:00
Jinjing 39a7e057f0 Fix titlebar gap when sidebar is open but no worktree is active (#5030)
When on full-page views (like Tasks or Landing) with an open sidebar
but no active worktree, mirror the split-column titlebar layout.
This positions the left titlebar controls directly above the sidebar,
avoiding a layout gap and ensuring consistent visual alignment.
2026-06-09 10:06:52 -07:00
4d6c291eff fix(windows): stop main-thread PowerShell ACL storm on env-store reads (#5011)
* fix(windows): stop main-thread PowerShell storm on env-store reads

Two changes fix the v1.4.52+ Windows performance regression (#4901 regression
against #4840) where 49 powershell.exe processes were spawned in 27 seconds
during load, saturating the Electron main thread and causing black terminals
and runtimeEnvironments:call timeouts.

Root cause: `readEnvironmentStore` calls `hardenExistingSecureFile` on every
read. The env-store parent directory's mtime churns constantly (every secure
write updates it), so the mtime-keyed idempotency cache never matched →
`bestEffortRestrictWindowsPath` (powershell, ~1-1.5s synchronous) fired on
every call. After #4901, the remote-runtime tab-sync loop reads the store
~2×/s, turning sporadic mtime misses into a continuous main-thread storm.

Fix 1 – path-cached directory hardening: add `hardenedDirectoryPathsThisProcess
(Set<string>)` that caches directory hardening by PATH for the process lifetime.
A directory's required ACL does not change when its mtime changes; only file
hardening retains the metadata-keyed cache so post-rename inode changes are
detected correctly.

Fix 2 – async ACL application: replace `execFileSync(powershell.exe, ...)` with
`execFile` (fire-and-forget). PowerShell cold-start is ~1-1.5s; the function is
already named `bestEffortRestrictWindowsPath` so async/optimistic caching is
correct. `applySecurePathRestriction` returns `true` optimistically on win32 so
the cache entry is written before the background process completes.

Tests: new regression tests verify the directory is hardened exactly once even
when its mtime changes between calls, that unchanged files are not re-hardened,
and that ACL application goes through async execFile (not execFileSync).

* fix(windows): apply credential-file ACL synchronously on write path

Follow-up rigor on the env-store PowerShell ACL storm fix (#5006). The
read-path storm fix (path-cached async directory hardening + async file
re-harden) is retained, but switching ALL ACL application to async opened a
narrow Windows-only security window: because writeFileSync({mode}) is a no-op
on Windows, writeSecureFile returned with the credential file still carrying
the parent directory's inherited (broader) ACL for the ~1-1.5s PowerShell
cold-start, affecting the e2ee keypair, device registry, and runtime env auth
store.

Fix: apply the credential FILE's ACL synchronously (execFileSync) on the
infrequent write path, before the atomic rename publishes it, and cache the
path as hardened only on confirmed success so a failed apply retries. Keep the
DIRECTORY hardening async + path-cached for the process lifetime (that is what
killed the #4901/#5006 main-thread storm). The read path's existing-file
re-harden stays async + metadata-cached (fires at most once per file, no storm).

Also:
- Document the dir-path cache process-lifetime known limitation (deleted+
  recreated dir not re-hardened until restart).
- Remove the redundant double dir-cache write in writeSecureFile.
- Add docs/windows-secure-file-acl-hardening.md describing the sync-file/
  async-dir model and a manual Windows e2e test plan (the cross-platform
  Playwright harness runs on Linux and cannot reach the PowerShell path).

Tests (src/shared/secure-file.test.ts, 13 passing): credential file hardened
synchronously while dir stays async (no async file-ACL window); failed sync
file-ACL apply is not cached and retries; dir hardened exactly once across many
writes despite mtime churn; no PowerShell spawned on non-win32.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* fix: keep POSIX secure directory hardening metadata-aware

---------

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-authored-by: Neil <4138956+nwparker@users.noreply.github.com>
2026-06-09 01:47:29 -07:00