Commit Graph
69 Commits
Author SHA1 Message Date
Neil 361240a757 perf: defer hidden picker option rows
Moves PickerModal row rendering into a child component so hidden BottomDrawer pickers avoid mapping option rows on parent renders.
2026-05-31 02:41:55 -07:00
Neil fcd267a309 perf: clean mobile live input focus timer (#4050) 2026-05-31 02:36:49 -07:00
Neil 549ab29489 perf: clean mobile task copy feedback timers (#4047) 2026-05-31 02:27:58 -07:00
Neil 35e1c221a9 perf: reject mobile rpc waiters after retry cap (#4041) 2026-05-31 02:12:53 -07:00
aa5d911c36 fix: address pr-bug-scan validated finding from #3583 (#3856)
Removed duplicate 'openclaude' entry at index 3 of MOBILE_TUI_AGENT_AUTO_PICK_ORDER so mobile pickers no longer render two OpenClaude rows or emit duplicate-key warnings.

Co-authored-by: orca-bug-scan-bot <orca-bug-scan-bot@stably.ai>
Co-authored-by: Neil <4138956+nwparker@users.noreply.github.com>
2026-05-31 01:49:27 -07:00
Neil be2dfe4bac fix: drop mobile notification stream on cleanup (#2887) 2026-05-30 20:17:45 -07:00
NeilandJinwoo-H 68ad291d3d Resolve bottom drawer mount before commit (#3226)
Co-authored-by: Jinwoo-H <jinwoo0825@gmail.com>
2026-05-30 19:26:00 -07:00
Neil 3dbc38f4f3 Resolve mobile browser address sync before commit (#3228) 2026-05-30 19:25:34 -07:00
2c55de5589 Move mobile dictation ref mirrors out of effect (#3234)
* Move mobile dictation refs out of effect

* Guard mobile dictation option refs

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

---------

Co-authored-by: Jinwoo-H <jinwoo0825@gmail.com>
Co-authored-by: Orca <help@stably.ai>
2026-05-30 19:19:17 -07:00
Neil 7366c3d32e Resolve mobile new-worktree agent before commit (#3238) 2026-05-30 19:19:00 -07:00
f2fa3ee904 Resolve mobile pair-confirm route state before commit (#3240)
* Resolve pair confirm route state before commit

* Preserve pair confirm back handling

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

---------

Co-authored-by: Jinwoo-H <jinwoo0825@gmail.com>
Co-authored-by: Orca <help@stably.ai>
2026-05-30 19:18:32 -07:00
Neil c082f21d2e Resolve host new-worktree route action before commit (#3242) 2026-05-30 19:15:42 -07:00
Neil 8d8dc9ae05 Resolve mobile task agent selection before commit (#3261) 2026-05-30 18:58:55 -07:00
7f770ae559 Add mobile review note actions (#3518)
* Add mobile review note actions

* fix: align mobile diff note gutter lines

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

---------

Co-authored-by: Jinwoo-H <jinwoo0825@gmail.com>
Co-authored-by: Orca <help@stably.ai>
2026-05-30 13:43:33 -07:00
Neil 7b1ff0d055 Move mobile connection log scroll into content handler (#3402) 2026-05-30 14:48:50 -04:00
Neil fb462e1f77 Add mobile committed branch changes (#3498) 2026-05-30 14:33:30 -04:00
Neil 554388b28d fix: cancel mobile browser long press from root ref 2026-05-30 14:32:56 -04:00
Neil c99eb29bb0 chore: remove unused code 2026-05-30 11:05:58 -07:00
Neil fc1ad4906a fix: handle large mobile host name lists (#3721) 2026-05-30 07:43:24 -07:00
Neil c9f0fa92be fix: include OpenClaude in mobile agent catalog (#3722) 2026-05-30 07:39:55 -07:00
Jinwoo HongandOrca fc10bc4cc0 Fix mobile terminal tap mouse reports
Co-authored-by: Orca <help@stably.ai>
2026-05-29 22:44:57 -04:00
f2f6493316 Move mobile browser ref mirrors out of effects (#3230)
* Move mobile browser refs out of effects

* Use layout effect for mobile browser ref mirrors

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

---------

Co-authored-by: Jinwoo-H <jinwoo0825@gmail.com>
Co-authored-by: Orca <help@stably.ai>
2026-05-29 22:27:24 -04:00
016ee18fe7 Add mobile new-tab agent presets (#3334)
* feat: add mobile new-tab agent presets

* fix: harden mobile agent preset launch

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

* fix: keep mobile worktree id parsing local

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

---------

Co-authored-by: Jinwoo-H <jinwoo0825@gmail.com>
Co-authored-by: Orca <help@stably.ai>
2026-05-29 22:13:27 -04:00
Neil 8ace23b6c8 Fix mobile terminal selection autoscroll (#3343) 2026-05-29 21:53:17 -04:00
Jason Weingardt 191183882a feat: add iPad responsive layout support (#2433) 2026-05-29 20:10:47 -04:00
Jinwoo HongandOrca 30a09f3bd9 Add mobile terminal shortcut bar customization (#3012)
Co-authored-by: Orca <help@stably.ai>
2026-05-29 16:39:52 -07:00
Neil fbac80e253 Remove mobile modal reset effects (#3223) 2026-05-29 09:14:18 -07:00
bf51593706 fix(worktree): make generated workspace names unique across repos (#2857)
Auto-generated workspace names walked the marine-creature list in order
and deduped only within the active repo (the default when workspaces are
nested), so the first auto-named worktree in every repo landed on
"Nautilus". That guaranteed identical branch names across repos, which
appear flat and indistinguishable in the sidebar.

The in-order walk also produced "Nautilus-2", "Nautilus-3", ... within a
single repo: the suggester ignores branches left behind by deleted
worktrees, so it kept re-proposing "Nautilus", and the create-time retry
loop suffixed it to dodge the lingering branch. Random selection now
yields a fresh creature each time instead of marching the same name.

- Dedup against worktrees in every repo, not just the active one
- Pick randomly from the unused pool instead of the first list entry
- Lowercase the result to match branch-name convention (fix/seahorse)
- Expand the corpus 260 -> 552 (more marine species plus public-domain
  mythological sea creatures) so random picks rarely repeat

getSuggestedCreatureName drops the now-unused repoId/nestWorkspaces
params; the RNG is injectable for deterministic tests.

Co-authored-by: Jinwoo-H <jinwoo0825@gmail.com>
Co-authored-by: Orca <help@stably.ai>
2026-05-28 20:41:10 -04:00
Jinjing bda658a364 Add agent enablement controls (#2972)
* Add agent enablement controls

Implements the Enable/Disable Agents Dashboard behavior described in docs/enable-disable-agents-dashboard.md, including persisted agent enablement state, filtered launch surfaces, and settings UI affordances.

* Clarify agent availability controls

* Respect disabled agents across workspace and AI defaults

- Filter disabled TUI agents from mobile and quick workspace selection
- Avoid implicitly choosing disabled agents for commit/PR AI settings
- Broadcast settings changes to open windows for disabled-agent updates

* rm design doc

* fix: complete agent enablement propagation
2026-05-28 17:29:49 -07:00
Jinwoo HongandOrca 6df52607fc Add live terminal input mode on mobile (#2982)
Co-authored-by: Orca <help@stably.ai>
2026-05-28 13:41:37 -07:00
Jinwoo HongandOrca 3f8fad9e9e Improve mobile terminal startup and scrolling (#2828)
Co-authored-by: Orca <help@stably.ai>
2026-05-27 00:59:14 -04:00
Neil 9b2c05fa77 Fix keyboard layout shortcut dispatch
Fix shortcut dispatch so app commands follow the produced logical key for the active keyboard layout, while preserving intentional physical-code fallbacks for terminal byte paths and unavailable logical keys.\n\nCloses #2858
2026-05-26 18:28:55 -07:00
Jinwoo HongandOrca 6f18d362cc Improve mobile markdown editing (#2826)
Co-authored-by: Orca <help@stably.ai>
2026-05-26 00:07:53 -07:00
Neil ab80339158 Fix shell-launched OMP status hooks (#2821)
* Fix shell-launched OMP status hooks

* Update oh-my-pi branding

* Add OMP to mobile agent metadata
2026-05-25 22:20:15 -07:00
Brennan BensonandOrca e8837275fe Default workspace list to repo grouping (#2657)
Co-authored-by: Orca <help@stably.ai>
2026-05-22 20:14:45 -07:00
Jinwoo HongandOrca cb8596af6e Add mobile custom shortcut combos (#2387)
Co-authored-by: Orca <help@stably.ai>
2026-05-21 22:39:25 -07:00
Jinwoo HongandOrca b1973657ea Add mobile Tasks parity (#2452)
Co-authored-by: Orca <help@stably.ai>
2026-05-21 20:26:07 -07:00
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 HongandOrca 4b7c9b7213 Improve remote client runtime parity (#1975)
Co-authored-by: Orca <help@stably.ai>
2026-05-17 22:24:38 -07:00
Jinwoo HongandOrca 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 HongandOrca 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 HongandOrca 9217cf625d Fix mobile TUI scroll gestures (#1940)
Co-authored-by: Orca <help@stably.ai>
2026-05-15 13:17:35 -07:00
Jinwoo HongandOrca a22717bb35 Refactor runtime app architecture (#1878)
Co-authored-by: Orca <help@stably.ai>
2026-05-14 23:13:37 -07:00
Jinwoo HongandOrca 9562d9776f Fix mobile notification tap routing (#1871)
Co-authored-by: Orca <help@stably.ai>
2026-05-14 15:22:08 -07:00
Jinwoo HongandOrca 151040f05f Add desktop-backed mobile voice dictation (#1869)
Co-authored-by: Orca <help@stably.ai>
2026-05-14 14:36:44 -07:00
Jinwoo HongandOrca 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]andorca-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]andorca-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