Commit Graph

340 Commits

Author SHA1 Message Date
github-actions[bot] dd41962c48 Update README downloads badge 2026-06-24 18:55:17 +00:00
github-actions[bot] 7fb20cab03 Update README downloads badge 2026-06-24 07:29:39 +00:00
Jinwoo Hong ce403c09d5
Add GitHub task close reason parity (#6141)
Co-authored-by: Orca <help@stably.ai>
2026-06-23 15:18:46 -07:00
github-actions[bot] 73cc134722 Update README downloads badge 2026-06-23 13:17:51 +00:00
Jinjing eddd78d5ba
Update mobile Android APK links to 0.0.15
Point README and in-app Android download links at the published mobile-android-v0.0.15 APK release.
2026-06-22 17:05:49 -07:00
github-actions[bot] b1fccada6f Update README downloads badge 2026-06-22 08:29:54 +00:00
Jinwoo Hong 530f98d945
Improve Claude usage refresh fallback behavior (#5995)
* Match CodexBar Claude usage fallback behavior

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

* Remove external tracker references from Claude usage changes

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

* Allow CLI fallback when Claude Keychain is unavailable

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

* Stabilize updater prerelease promotion test

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

---------

Co-authored-by: Orca <help@stably.ai>
2026-06-21 13:10:25 -07:00
Jinjing 404e45f022
Improve built-in browser downloads (#5940)
* Improve built-in browser downloads

Implements docs/browser-normal-download-behavior.md with automatic OS Downloads saving, collision-safe destinations, and renderer download controls.

* Clean up browser downloads on tab closure and guest destruction

- Cancel and drop pending download records when webview guests are destroyed or closed to prevent memory leaks and dangling state.
- Purge tracking entries for cancelled downloads lacking an active tab.
- Document filename normalization and reservation assumptions in download builder.
- Translate "Copy Terminal ID" context menu action in Spanish and Chinese locales.
2026-06-20 16:33:20 -07:00
github-actions[bot] 988c0702ce Update README downloads badge 2026-06-20 12:55:27 +00:00
Jinjing 553d47bf4f
Fix Windows workspace deletion runtime resolution (#5888)
* Add test file for workspace delete bug

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

* Fix Windows workspace deletion runtime resolution

Resolve project-created workspace deletion through the selected project runtime so Windows paths are listed strictly without falsely tripping the unregistered worktree guard.

Design doc: docs/delete-workspace-windows-unregistered.md

---------

Co-authored-by: Orca <help@stably.ai>
2026-06-20 03:16:29 -07:00
Siddiqui Qamar b51a995703
docs: update documentation to remove deprecated Gemini CLI references (#5887) 2026-06-20 02:26:32 -07:00
Jinjing b5b018cfd1
Add Cmd-J tab session search (#5775)
* Add Cmd-J tab session search

References docs/cmd-j-tab-session-search.md for the design.

* Support searching and activating all editor-family tab types

- Index and search editor, diff, conflict-review, and check-details tabs when their backing files are open.
- Deduplicate tab activation logic to ensure exact unified tab IDs are targeted correctly.
- Update palette placeholder texts and localized labels to use "tab title" and "agent prompt" instead of "page title" and "emulator".
- Localize missing tab error strings in Spanish, Japanese, Korean, and Chinese locales.
- Ensure cross-platform path compatibility in search tests using path.join.
2026-06-19 00:27:05 -07:00
github-actions[bot] c40a025378 Update README downloads badge 2026-06-18 13:33:43 +00:00
Devin345458 1368ba84b8
feat(shortcuts): double-tap modifier keybindings (#5516)
* docs: design for double-tap modifier keybindings

* feat(keybindings): parse and normalize DoubleTap+<Mod> grammar

* test(keybindings): cover DoubleTap+Ctrl positive case

* feat(keybindings): match DoubleTap bindings against synthetic input

* test(keybindings): cover Ctrl-on-darwin double-tap miss; document input invariant

* feat(keybindings): format DoubleTap bindings as a doubled glyph

* test(keybindings): cover DoubleTap+Ctrl glyph on mac; note title label semantics

* feat(keybindings): add pure ModifierDoubleTapDetector state machine

* test(keybindings): cover missed-keyup double-tap edge; clarify keyUp guard

* feat(keybindings): capture double-tap gestures into DoubleTap+<Mod>

* test(keybindings): cover Ctrl/linux and Cmd/linux double-tap canonicalization

* feat(keybindings): resolve double-tap input in window shortcut policy

* feat(shortcuts): detect double-tap modifiers in main before-input-event

* docs(shortcuts): note dictation guards live in the renderer

* feat(shortcuts): dispatch double-tap modifiers in the renderer window handler

* fix(shortcuts): clear armed double-tap state on dangling modifier keyup

* feat(settings): record double-tap modifier shortcuts in the editor

* i18n(shortcuts): localize ShortcutKeyCombo double-tap tooltip

* Fix double-tap shortcut review gaps

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

---------

Co-authored-by: Devin345458 <devin@appleidimagination.com>
Co-authored-by: Jinwoo-H <jinwoo0825@gmail.com>
Co-authored-by: Orca <help@stably.ai>
2026-06-17 18:25:27 -07:00
github-actions[bot] 6cea158e89 Update README downloads badge 2026-06-17 13:33:06 +00:00
Jinjing 62fbb51eb2
Refine terminal close confirmation (#5541)
* Refine terminal close confirmation

* Translate terminal close dialog strings
2026-06-16 17:42:48 -07:00
Jinjing 8da3f864b3
Update Android APK links to 0.0.14
Point Android APK links at the published mobile-android-v0.0.14 release.
2026-06-16 17:36:43 -07:00
OrcaWin 7e1c4ee929
Follow up Windows terminal onboarding polish (#5530)
Co-authored-by: Neil <neil@stably.ai>
2026-06-16 14:59:35 -07:00
OrcaWin 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 Hong 0310b032bb
Redesign README for clarity and conversion (#5244)
Co-authored-by: Orca <help@stably.ai>
2026-06-11 22:48:41 -07:00
Brennan Benson 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 Benson 2fa2cc8cb1
Fix git repo telemetry for repo adds (#5121)
Co-authored-by: Orca <help@stably.ai>
2026-06-10 13:24:49 -07:00
Lesley Murfin 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 Hong 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 Hong 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 Hong 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 Hong c4df8628b8
Add Droid orchestration routing (#4624)
Co-authored-by: Orca <help@stably.ai>
2026-06-04 10:00:11 -07:00
Brennan Benson 7b6e8e0ced
Remove final code onboarding step (#4524)
Co-authored-by: Orca <help@stably.ai>
2026-06-03 23:57:53 -07:00
Jinwoo Hong 089fbd6951
Improve README mobile companion showcase (#4609)
Co-authored-by: Orca <help@stably.ai>
2026-06-03 18:45:57 -07:00
Brennan Benson 5142a24536
Simplify project add handoff (#4530)
Co-authored-by: Orca <help@stably.ai>
2026-06-03 16:50:35 -07:00
Brennan Benson 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 Hong 135c69d3e8
Add Linear issue load more (#4437)
Co-authored-by: Orca <help@stably.ai>
2026-06-01 23:35:47 -07:00
Brennan Benson 38f12e8df4
Track parallel work education telemetry (#4449)
Co-authored-by: Orca <help@stably.ai>
2026-06-01 23:29:28 -07:00
Brennan Benson d4a4a2aee4
Remove covered onboarding steps (#4445)
Co-authored-by: Orca <help@stably.ai>
2026-06-01 23:00:26 -07:00
Jinwoo Hong 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 Benson 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
Neil d044a2be9e
Wait for browser registration after hidden wake (#4413) 2026-06-01 15:42:30 -07:00