Commit Graph

35 Commits

Author SHA1 Message Date
Brennan Benson e8837275fe
Default workspace list to repo grouping (#2657)
Co-authored-by: Orca <help@stably.ai>
2026-05-22 20:14:45 -07:00
Jinwoo Hong cb8596af6e
Add mobile custom shortcut combos (#2387)
Co-authored-by: Orca <help@stably.ai>
2026-05-21 22:39:25 -07:00
Jinwoo Hong b1973657ea
Add mobile Tasks parity (#2452)
Co-authored-by: Orca <help@stably.ai>
2026-05-21 20:26:07 -07:00
Jason Weingardt 9355493bc3
feat(mobile): add Shift+Tab accessory key (#2322)
* feat(mobile): add Shift+Tab accessory key

* review: cover mobile terminal accessory keys

- move built-in terminal accessory keys into a testable module

- add Shift+Tab reverse-tab regression coverage

- pin built-in repeatability policy

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

---------

Co-authored-by: Jinwoo-H <jinwoo0825@gmail.com>
Co-authored-by: Orca <help@stably.ai>
2026-05-19 15:10:04 -04:00
Jinwoo Hong 1deb769f37
Prepare mobile 0.0.8
Bump mobile app version to 0.0.8 and slightly shorten the mobile browser URL toolbar.
2026-05-18 01:58:15 -04:00
Jinwoo Hong 4b7c9b7213
Improve remote client runtime parity (#1975)
Co-authored-by: Orca <help@stably.ai>
2026-05-17 22:24:38 -07:00
Jinwoo Hong 2f7da8109e
Open mobile source control diffs in editor tabs (#2202)
Co-authored-by: Orca <help@stably.ai>
2026-05-17 20:24:46 -07:00
Jinwoo Hong afe90a616f
Add mobile source control actions (#2193)
Co-authored-by: Orca <help@stably.ai>
2026-05-17 19:35:55 -07:00
Neil e7f3bb6034
Add Grok agent support 2026-05-15 13:52:39 -07:00
Jinwoo Hong 9217cf625d
Fix mobile TUI scroll gestures (#1940)
Co-authored-by: Orca <help@stably.ai>
2026-05-15 13:17:35 -07:00
Jinwoo Hong a22717bb35
Refactor runtime app architecture (#1878)
Co-authored-by: Orca <help@stably.ai>
2026-05-14 23:13:37 -07:00
Jinwoo Hong 9562d9776f
Fix mobile notification tap routing (#1871)
Co-authored-by: Orca <help@stably.ai>
2026-05-14 15:22:08 -07:00
Jinwoo Hong 151040f05f
Add desktop-backed mobile voice dictation (#1869)
Co-authored-by: Orca <help@stably.ai>
2026-05-14 14:36:44 -07:00
Jinwoo Hong 7944293815
Improve mobile terminal streaming performance (#1700)
* Improve mobile terminal streaming performance

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

* Add mobile clear terminal action

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

* Fix terminal connection test mock

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

* WIP: mobile markdown tabs before rebase

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

* Add mobile markdown editing

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

* Harden mobile tab and markdown sync

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

* Fix mobile terminal reconnect loading race

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

* Polish mobile terminal keyboard behavior

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

* Simplify mobile markdown editor chrome

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

* Move mobile markdown actions to top

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

* Use app modals for markdown discard

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

* Dismiss keyboard before markdown confirmations

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

* Add mobile file explorer

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

* Fix mobile file explorer type narrowing

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

* Fix mobile files navigation param

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

* Show mobile files connection wait state

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

* Preview text files on mobile

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

* Simplify mobile file previews

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

* Clarify unavailable mobile file types

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

* Fix mobile subscription and preview review issues

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

* Keep fallback terminals visible on mobile

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

* Keep mobile terminal tap active

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

* Preserve mobile terminal fallback order

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

* Fix mobile session tab authority

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

* Run mobile tests in mobile CI lane

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

* Bump mobile app version to 0.0.7

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

* Allow main window IPC wiring size

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

---------

Co-authored-by: Orca <help@stably.ai>
2026-05-12 14:38:12 -07:00
buf0-bot[bot] 57d095bf6f
fix: pr-bug-scan findings from #1475 (#1562)
host-store: write AsyncStorage metadata before SecureStore token to avoid orphaned keychain tokens on crash. mobile IPC: coalesce repeated getPairingQR calls onto a single pending device token via new DeviceRegistry.getOrCreatePendingDevice.

Findings addressed:
- [high] mobile/src/transport/host-store.ts — saveHost orders Keychain write before AsyncStorage — orphaned tokens on crash
- [low] src/main/ipc/mobile.ts:84-95 — getPairingQR creates a device token on every call, leaking pre-paired entries

Rebased onto current main to resolve conflicts; preserved tokenCache.set added on main.

Co-authored-by: orca-bot <bot@stably.ai>
2026-05-07 23:11:03 -07:00
buf0-bot[bot] 75ae6d9f6a
fix: pr-bug-scan findings from #1518 (#1575)
Added seq + ref guards after awaits in post-scrollback re-subscribe path; awaitReady's prior in-flight promise now resolves before re-arming so old waiters don't pin 3s timers.

Findings addressed:
- mobile/app/h/[hostId]/session/[worktreeId].tsx:280 — Post-scrollback re-subscribe path lacks a seq guard after awaits
- mobile/src/terminal/TerminalWebView.tsx:770 — awaitReady promise replaced without resolving the prior one

Rebased onto current main; conflict in worktreeId.tsx resolved by preserving main's existing 'why: scrollback null viewport' comment alongside the new seq-recheck comment.

Co-authored-by: orca-bot <bot@stably.ai>
2026-05-07 23:00:12 -07:00
buf0-bot[bot] 9cf605796a
fix: pr-bug-scan findings from #1532 (#1574)
Updated reconnect-backoff comments in rpc-client.ts and connection-health.ts to reflect the actual ~6m total (not ~2m). Made valueFromMs() snap non-preset ms to the closest finite preset so the picker's selected radio agrees with the row sublabel.

Rebased onto current main to resolve conflicts; only the 3 Fixer-summary files.

Co-authored-by: buf0-bot <buf0-bot@users.noreply.github.com>
2026-05-07 22:59:26 -07:00
buf0-bot[bot] 5e8f796200
fix: pr-bug-scan findings from #1452 (#1560)
Co-authored-by: orca-bug-scan-bot <orca-bug-scan-bot@stably.ai>
2026-05-07 22:18:17 -07:00
Jinwoo Hong cc14a0ade3
feat(mobile): terminal text selection, copy, and paste (#1553)
Co-authored-by: Orca <help@stably.ai>
2026-05-07 18:24:05 -07:00
Jinwoo Hong 22b63a0191
Mobile: indefinite phone-fit hold + configurable auto-restore (#1532)
Co-authored-by: Orca <help@stably.ai>
2026-05-07 16:47:31 -07:00
Jinwoo Hong e83d92eede
Mobile: server-authoritative phone-fit state machine + race fixes + UX cleanup (#1518)
Co-authored-by: Orca <help@stably.ai>
2026-05-06 21:54:23 -07:00
Neil db12df2ae5
feat(mobile): show detailed pairing log + cap connecting timeout (#1520)
When pairing fails (e.g. broken Tailscale route, firewall blocking the
WS, expired token, etc.) the mobile app previously got stuck on
'Connecting…' forever with no signal about *where* it stalled.

Adds a structured connection-log stream from the rpc client and renders
it under the 'Connecting…' spinner on both pair-scan and pair-confirm.
Each phase emits a timestamped, color-coded entry: Opening WebSocket,
WebSocket open, Sent e2ee_hello, Received e2ee_ready, Authenticated,
WebSocket closed / Reconnect scheduled / Connect timeout / Handshake
timeout, etc. The log auto-scrolls and stays visible after a failure so
the user can see the last successful step.

Also fixes the silent infinite spinner: pairing now has a 25s overall
timeout — rpc-client retries forever by design (right behaviour for
live sessions), but for the *initial* pair we want a hard ceiling that
surfaces an actionable error with the log visible instead of spinning.

- Adds ConnectionLogEntry / ConnectionLogSink to transport/types.ts
- connect() now accepts { onStateChange, onLog } (legacy fn form kept)
- New ConnectionLog component (mono, level-coloured, +Xs elapsed)
- Pair flows track logs in a ref and render them in connecting/error
- 25s pairing-overall timeout that closes the client and surfaces a
  'see log below for where it stalled' error

Co-authored-by: Orca <help@stably.ai>
2026-05-06 19:20:53 -07:00
Jinwoo Hong 9c24425504
fix(mobile): handle notification permission changes (#1506)
Co-authored-by: Orca <help@stably.ai>
2026-05-06 11:57:42 -07:00
Jinwoo Hong 07d10c8e8d
fix(mobile): WS heartbeat to reap half-open mobile sockets (#1500)
Co-authored-by: Orca <help@stably.ai>
2026-05-06 02:05:38 -07:00
Jinwoo Hong 82b078efa9
Mobile: App Store v0.0.4 prep + connection-stability fixes (#1486)
Co-authored-by: Orca <help@stably.ai>
2026-05-05 20:46:56 -07:00
Jinwoo Hong 63e36d05fd
chore(mobile): App Store prep — privacy manifest, debug-log cleanup, and protocol-version compat block (#1440)
Co-authored-by: Orca <help@stably.ai>
2026-05-05 19:23:56 -07:00
Jinwoo Hong 087c00b02e
Mobile: stabilise connection + terminal-fit fixes + share one RpcClient per host (#1481)
Co-authored-by: Orca <help@stably.ai>
2026-05-05 18:58:13 -07:00
Jinwoo Hong 7f2f39b804
feat(mobile): pairing paste flow + Keychain-backed device tokens + deep link (#1475)
Co-authored-by: Orca <help@stably.ai>
2026-05-05 17:14:08 -07:00
Jinwoo Hong 4140d6a4c0
Revert "feat(mobile): pairing paste flow + Keychain-backed device tokens (#1452)" (#1474)
This reverts commit 55d3a42079.
2026-05-05 16:29:00 -07:00
Jinwoo Hong 1b25138e06
fix(mobile): remove dead-row gap above keyboard accessory bar (#1457)
Co-authored-by: Orca <help@stably.ai>
2026-05-05 16:24:44 -07:00
Jinwoo Hong 55d3a42079
feat(mobile): pairing paste flow + Keychain-backed device tokens (#1452)
Co-authored-by: Orca <help@stably.ai>
2026-05-05 16:09:26 -07:00
Jinwoo Hong f938ff185f
feat(mobile): account switcher and rate-limit usage on mobile (#1467)
Co-authored-by: Orca <help@stably.ai>
2026-05-05 16:09:16 -07:00
Jinwoo Hong cdd21423eb
fix(mobile): unstick worktree spinner once agent exits, match desktop StatusIndicator (#1449)
Co-authored-by: Orca <help@stably.ai>
2026-05-05 12:43:47 -07:00
Jinwoo Hong d1b26e2eb7
Mobile improvements: scrollback hydration, keyboard layout, and worktree-creation polish (#1423)
Co-authored-by: Orca <help@stably.ai>
2026-05-04 23:24:22 -07:00
Jinwoo Hong fc578f5ea9
feat(mobile): Expo companion app [beta] (#1245)
Co-authored-by: Orca <help@stably.ai>
2026-05-04 13:08:27 -07:00