Commit Graph
341 Commits
Author SHA1 Message Date
Neil 062f1ffe6b Merge branch 'nwparker/term-speed-2-query-authority-alignment' into nwparker/term-speed-2-skip-grammar-removal
# Conflicts:
#	src/renderer/src/components/terminal-pane/hidden-renderer-skip-eligibility.test.ts
#	src/renderer/src/components/terminal-pane/hidden-renderer-skip-eligibility.ts
#	src/renderer/src/components/terminal-pane/pty-connection.test.ts
#	src/renderer/src/components/terminal-pane/pty-connection.ts
2026-06-16 16:12:30 -07:00
Neil a8116f52b3 Merge branch 'nwparker/term-speed-2-view-attribute-bridge' into nwparker/term-speed-2-query-authority-alignment 2026-06-16 16:03:39 -07:00
Neil 5eacd4093a Merge branch 'nwparker/term-speed-2-hidden-delivery-gate' into nwparker/term-speed-2-model-query-responder
# Conflicts:
#	src/main/daemon/headless-emulator.ts
#	src/renderer/src/components/terminal-pane/pty-connection.ts
2026-06-16 15:52:57 -07:00
Neil c496189643 Merge branch 'nwparker/term-speed-2-side-effect-cleanup' into nwparker/term-speed-2-hidden-delivery-gate
# Conflicts:
#	src/preload/api-types.ts
#	src/preload/index.ts
#	src/renderer/src/components/terminal-pane/pty-connection.ts
2026-06-16 15:44:21 -07:00
Neil 2224afd218 Merge branch 'nwparker/term-speed-2-side-effect-facts-complete' into nwparker/term-speed-2-side-effect-cleanup
# Conflicts:
#	src/main/runtime/orca-runtime.ts
2026-06-16 15:39:24 -07:00
Neil 5cb69a9b34 Merge branch 'nwparker/term-speed-2-main-title-tracker' into nwparker/term-speed-2-side-effect-channel
# Conflicts:
#	src/main/index.ts
#	src/main/ipc/settings.test.ts
#	src/main/runtime/orca-runtime.ts
2026-06-16 15:34:27 -07:00
Neil bc8d6692f2 Merge branch 'nwparker/term-speed-2-hidden-view-parking' into nwparker/term-speed-2-main-title-tracker
# Conflicts:
#	src/main/runtime/orca-runtime.ts
2026-06-16 15:29:04 -07:00
Neil 479a60fa55 Merge branch 'nwparker/term-speed-2-perf-report-comparison' into nwparker/term-speed-2-hidden-view-parking
# Conflicts:
#	src/preload/e2e-config.ts
#	src/renderer/src/components/Terminal.tsx
#	src/renderer/src/store/slices/terminals.ts
#	tests/e2e/helpers/orca-app.ts
2026-06-16 15:25:39 -07:00
Neil 403d0c7fbd Merge branch 'nwparker/term-speed-2-perf-html-report' into nwparker/term-speed-2-model-view-contract 2026-06-16 15:19:23 -07:00
OrcaWinandNeil 7e1c4ee929 Follow up Windows terminal onboarding polish (#5530)
Co-authored-by: Neil <neil@stably.ai>
2026-06-16 14:59:35 -07:00
OrcaWinandNeil 68abadba81 Add Windows terminal onboarding step (#5488)
Co-authored-by: Neil <neil@stably.ai>
2026-06-16 14:07:26 -07:00
Jinjing b516108bde Use generated README downloads badge 2026-06-16 11:09:40 -07:00
Jinjing 8b783274f2 Restore README downloads badge 2026-06-15 20:55:49 -07:00
Jinjing 87d905b8c3 Fix README downloads badge 2026-06-15 20:51:15 -07:00
Jinwoo Hong dc8fdf65a3 Update Android mobile release links to 0.0.13
Point Android download links at the published mobile-v0.0.13 release.
2026-06-12 12:02:58 -07:00
Jinwoo HongandOrca 0310b032bb Redesign README for clarity and conversion (#5244)
Co-authored-by: Orca <help@stably.ai>
2026-06-11 22:48:41 -07:00
NeilandOrca 0ba2412788 Delete the hidden renderer skip grammar
Co-authored-by: Orca <help@stably.ai>
2026-06-11 00:08:27 -07:00
NeilandOrca 0bcda38d63 Align query authority contract and spawn-time ownership
Co-authored-by: Orca <help@stably.ai>
2026-06-10 23:32:14 -07:00
NeilandOrca c864530ca7 Answer hidden terminal queries from the model
Co-authored-by: Orca <help@stably.ai>
2026-06-10 20:41:23 -07:00
NeilandOrca 62b6d012ca Gate PTY delivery to hidden terminal views
Co-authored-by: Orca <help@stably.ai>
2026-06-10 17:10:09 -07:00
Brennan BensonandOrca 64acad300d Add Floating Workspace contextual tour (#5062)
* Add floating workspace contextual tour

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

* Clarify floating workspace tour intro copy

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

* Differentiate floating workspace tour steps instead of repeating examples

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

* Lead floating workspace tour with the user benefit

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

* Pitch floating workspace tour around cross-repo agents

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

* Refine floating workspace tour step 1 copy

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

* Anchor floating workspace tour step 2 on the minimize control

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

* Restore floating workspace tour step 2

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

* Anchor floating workspace tour steps on New Terminal and New Markdown Note

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

* Retitle floating workspace tour step 2 as scratchpad

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

* Add why-comments for tour selector fallback and placement flipping

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

---------

Co-authored-by: Orca <help@stably.ai>
2026-06-10 14:12:07 -07:00
Brennan BensonandOrca 2fa2cc8cb1 Fix git repo telemetry for repo adds (#5121)
Co-authored-by: Orca <help@stably.ai>
2026-06-10 13:24:49 -07:00
NeilandOrca 659f8736f9 Finish terminal side-effect authority migration
Co-authored-by: Orca <help@stably.ai>
2026-06-10 13:06:24 -07:00
NeilandOrca 9ee937b096 Move terminal side-effect authority to a main facts channel
Co-authored-by: Orca <help@stably.ai>
2026-06-10 02:20:44 -07:00
NeilandOrca 21f6605a4e Document terminal side-effect authority design
Co-authored-by: Orca <help@stably.ai>
2026-06-09 21:54:53 -07:00
NeilandOrca 72a03564ee Park hidden terminal views behind a byte watcher
Co-authored-by: Orca <help@stably.ai>
2026-06-09 21:21:54 -07:00
Neil dba74ae1ab Document terminal model view contract 2026-06-09 17:06:57 -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
Jinjing 2fd4f4e13e Update README feature showcase hero 2026-06-09 00:13:44 -07:00
Jinjing 03c2532ae7 Update README demo gif 2026-06-08 23:08:34 -07:00
Jinjing 3d1b6391d2 Update UI style guide
Push local docs/STYLEGUIDE.md content to main.
2026-06-08 20:25:32 -07:00
Jinwoo HongandOrca 04205acd76 Graduate compact worktree card setting (#4924)
Co-authored-by: Orca <help@stably.ai>
2026-06-08 17:37:11 -07:00
Jinjing 263c4f9bd2 fix: address review findings (#4865) 2026-06-07 22:17:52 -07:00
Jinwoo HongandOrca bed394ca11 Send OpenCode source-control prompts over stdin (#4859)
Co-authored-by: Orca <help@stably.ai>
2026-06-07 21:00:20 -07:00
Jinwoo HongandOrca 3ef63c972a Persist agent session metadata for workspace resume (#4706)
Co-authored-by: Orca <help@stably.ai>
2026-06-07 19:41:25 -07:00
Jinwoo Hong 87ca65d395 Update mobile download links to 0.0.12
Point Android download links and related fixtures at the published mobile-v0.0.12 release.
2026-06-04 16:11:51 -04:00
Jinwoo HongandOrca c4df8628b8 Add Droid orchestration routing (#4624)
Co-authored-by: Orca <help@stably.ai>
2026-06-04 10:00:11 -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
Jinwoo HongandOrca 089fbd6951 Improve README mobile companion showcase (#4609)
Co-authored-by: Orca <help@stably.ai>
2026-06-03 18:45:57 -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
Brennan BensonandOrca 1e956a0b24 Show install status for AI capabilities (#4483)
Co-authored-by: Orca <help@stably.ai>
2026-06-02 15:42:30 -07:00
Jinjing 990b4cf28d fix: improve floating surface visibility (#4466) 2026-06-02 01:37:35 -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
Jinwoo HongandOrca 8c6dae3345 Update mobile 0.0.11 release links (#4440)
Co-authored-by: Orca <help@stably.ai>
2026-06-01 21:42:38 -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 1bd6b0e926 Handle ANSI redraw controls in terminal previews (#4418) 2026-06-01 16:21:11 -07:00
Neil 9769b85ae7 Skip visit writes for active worktree reselect (#4417) 2026-06-01 16:06:21 -07:00
Neil 36384f17f4 Avoid no-op worktree activation fanout (#4416) 2026-06-01 15:56:01 -07:00