Commit Graph
8614 Commits
Author SHA1 Message Date
Jinjing b6c0cb4f62 Migrate terminal scrollback setting from bytes to rows (#6593)
* Migrate terminal scrollback setting from bytes to rows

Transition terminal scrollback configuration from a byte-based (MB)
limit to a row-based count to align with standard terminal emulator
behavior.

- Introduce a shared scrollback policy to handle normalization and
  safe migration of legacy byte presets to row equivalents.
- Update persistence logic to automatically convert and clean up legacy
  settings on startup and write-back.
- Refactor the advanced settings interface and localization strings
  to let users configure scrollback in terms of rows (up to 50k).
- Live-apply row limit changes directly to mounted xterm instances
  without recreating panes or restarting PTY sessions.

* Migrate terminal scrollback setting from bytes to rows

Transition terminal scrollback configuration from a byte-based (MB)
limit to a row-based count to align with standard terminal emulator
behavior.

- Introduce a shared scrollback policy to handle normalization and
  safe migration of legacy byte presets to row equivalents.
- Update persistence logic to automatically convert and clean up legacy
  settings on startup and write-back.
- Refactor the advanced settings interface and localization strings
  to let users configure scrollback in terms of rows (up to 50k).
- Live-apply row limit changes directly to mounted xterm instances
  without recreating panes or restarting PTY sessions.

* defer updating terminal scrollback rows until blur or Enter

Avoid committing terminal scrollback row setting changes on every
keystroke, which can trigger rapid updates with incomplete or
invalid numbers. Instead, manage a local draft state and commit to
settings only when the input is blurred or the user presses Enter.
2026-06-28 16:13:16 -07:00
Brennan BensonandOrca 5d29b55187 Replace automation pause/resume button with an on/off toggle (#6642)
* Replace automation pause/resume button with an on/off toggle

The External automations list showed two play-glyph icon buttons side by
side when a job was paused: a run button and a pause/resume button. Replace
the pause/resume button with an on/off Switch beside the Active/Paused badge,
leaving the action cluster with just Run, Edit, and Delete.

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

* Document why the in-flight spinner matches both action keys

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

* Move automation toggle to the trailing edge of the row

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

* Align automation toggle to the right of the title line

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

* Pin automation toggle to the row's right edge

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

---------

Co-authored-by: Orca <help@stably.ai>
2026-06-28 16:10:36 -07:00
Neil 654dafb4f1 fix: use plain orca CLI shim for Claude Agent Teams on SSH remotes (#6586) 2026-06-28 16:03:16 -07:00
NeilandOrca da48fa71dd Refuse cross-worktree global fallback for browser text insertion (#5093) (#6563)
Co-authored-by: Orca <help@stably.ai>
2026-06-28 15:58:15 -07:00
b916248294 Polish desktop native chat view (#6641)
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-authored-by: Orca <help@stably.ai>
Co-authored-by: gsxdsm <gsxdsm@users.noreply.github.com>
2026-06-28 15:43:07 -07:00
github-actions[bot] bcbcf4126b release: v1.4.105-rc.0 [rc-slot:2026-06-28-15] v1.4.105-rc.0 2026-06-28 22:26:44 +00:00
Brennan BensonandOrca b847a9df89 Run setup scripts for scheduled automation worktrees (#6236)
Co-authored-by: Orca <help@stably.ai>
2026-06-28 15:25:35 -07:00
Brennan BensonandOrca 710d567e82 Suppress Codex auto-approval notifications (#6230)
Co-authored-by: Orca <help@stably.ai>
2026-06-28 15:25:06 -07:00
Brennan BensonandOrca ef6e643031 Update mobile 0.0.17 release links (#6654)
Co-authored-by: Orca <help@stably.ai>
2026-06-28 15:23:00 -07:00
Jinwoo HongandOrca db2ce7a10d Fix remote-host automation ownership (#6636)
Co-authored-by: Orca <help@stably.ai>
2026-06-28 15:20:56 -07:00
Rod BoevandJinwoo Hong 5e3d8a12bf fix(terminal): support Windows shell selection for SSH hosts (#6466)
* fix(terminal): support Windows shell selection for SSH hosts

* fix(runtime): register SSH Windows capability preflight RPC

* fix(terminal): honor remote Git Bash and split preflight IPC seams

* fix(terminal): keep SSH Windows shell state tied to the selected host

* fix(terminal): preserve Windows SSH shell selection

---------

Co-authored-by: Jinwoo Hong <73622457+Jinwoo-H@users.noreply.github.com>
2026-06-28 15:08:13 -07:00
Jinjing 60baa449d4 Fix sidebar shortcut combo spacing (#6651) 2026-06-28 14:50:52 -07:00
Jinjing 1b8e7c5bb5 Improve sidebar search button styling and shortcut rendering (#6601)
* Redesign the search button in the sidebar to look like a standard input field with a border, background, and absolute icon positioning.
* Replace the basic `<kbd>` label with `ShortcutKeyCombo` elements driven by `useShortcutKeyComboDetails`.
* Show the shortcut combinations when the search container is focused as well as hovered.
2026-06-28 14:46:28 -07:00
JinjingandOrca 11a0a36087 fix(terminal): poll across frames in post-spawn PTY reconcile (#6649)
Follow-up to #6644. The merged fix used a single post-spawn
requestAnimationFrame, which did not fully close the first-mount column
race: the pane's real layout can keep changing for several frames (split
equalize, sidebar/title reflow), so a one-shot re-fit could still measure a
stale width and leave the PTY pinned. The golden 'during initial mount' e2e
test failed ~1 in 9 runs with the single-frame version.

Poll for up to 12 frames, forwarding the settled size to the PTY only when
it differs from what the PTY was last told (mirroring the existing
ResizeObserver stability loop). Each resize is gated on an actual change, so
a TUI sees at most a couple of SIGWINCH during startup, not a loop.

Verified: golden test passes 6/6 with repeat-each + retries; full spec
15/15. Without this change the single-frame version is intermittently flaky.

Co-authored-by: Orca <help@stably.ai>
2026-06-28 14:44:01 -07:00
github-actions[bot] d3e6449373 release: v1.4.104-rc.6 v1.4.104-rc.6 2026-06-28 20:58:59 +00:00
Jinjing 8430a10a10 fix(terminal): reconcile PTY size after spawn to fix first-mount column desync 2026-06-28 13:56:44 -07:00
Brennan BensonandOrca a278a30b1c Let agents wait for setup when requested (#6298)
Co-authored-by: Orca <help@stably.ai>
2026-06-28 13:50:00 -07:00
github-actions[bot] ca6c3c207a release: v1.4.104-rc.5 v1.4.104-rc.5 2026-06-28 20:11:27 +00:00
Brennan BensonandOrca 8ed890374a Refresh project worktrees created outside Orca (#6241)
Co-authored-by: Orca <help@stably.ai>
2026-06-28 13:09:05 -07:00
github-actions[bot] b38e88a5cc release: v1.4.104-rc.4 v1.4.104-rc.4 2026-06-28 19:49:57 +00:00
Brennan BensonandNeil 5cb02a9420 Keep Orca visible when Windows startup stalls (#6462)
Co-authored-by: Neil <neil@stably.ai>
2026-06-28 12:31:57 -07:00
Brennan BensonandOrca 7019693e6f Keep PR checks aligned with branch switches (#6458)
Co-authored-by: Orca <help@stably.ai>
2026-06-28 12:00:09 -07:00
Brennan BensonandNeil d6f3f514d6 Fix agent session row drag restore (#6463)
Co-authored-by: Neil <neil@stably.ai>
2026-06-28 11:58:02 -07:00
Brennan BensonandOrca e58a5e9e17 Simplify Appearance settings (#6459)
Co-authored-by: Orca <help@stably.ai>
2026-06-28 11:50:29 -07:00
Brennan BensonandOrca 6015ad07a0 Show working tree in file explorer for repos using a separate Git directory (#6482)
Co-authored-by: Orca <help@stably.ai>
2026-06-28 11:46:59 -07:00
Brennan BensonandOrca 5c3ba7be91 Improve inactive workspace cleanup UX (#3600)
Co-authored-by: Orca <help@stably.ai>
2026-06-28 11:38:23 -07:00
Brennan BensonandOrca a71b865867 Show PR status for branch worktrees at a merged PR head (#6607)
Co-authored-by: Orca <help@stably.ai>
2026-06-28 11:22:07 -07:00
github-actions[bot] 6b1a4497db Update README downloads badge 2026-06-28 12:46:30 +00:00
github-actions[bot] 0f46d395fe release: v1.4.104-rc.3 [rc-slot:2026-06-28-03] v1.4.104-rc.3 2026-06-28 10:49:22 +00:00
211138e643 Stop PermissionRequest/blocked/waiting hook states from firing agent-task-complete (#6540)
* Stop PermissionRequest/blocked/waiting hook states from firing agent-task-complete

'waiting' (e.g. a Claude PermissionRequest) and 'blocked' (e.g. a Copilot
elicitation dialog) occur mid-turn while the agent is still alive, yet
isCompletionHookState treated them as completion and dispatched a false
agent-task-complete. Restrict completion to a genuine 'done' and add an
isAttentionHookState early return that also cancels a pending done-quiet
timer when an attention pause arrives first. The 'needs you' notification
for these states is raised separately (smart-attention), so it is unaffected.

Fixes #5698

* Preserve attention notifications for waiting hooks

---------

Co-authored-by: brennanb2025 <brennanb2025@users.noreply.github.com>
Co-authored-by: Neil <neil@stably.ai>
2026-06-28 01:50:08 -07:00
Jinjing c50391df84 Support dictation and image attachments in mobile live input mode (#6603)
* Support dictation and image attachments in live terminal input mode

- Unify image attachment and voice dictation actions across both live
  and buffered terminal input views using a shared action bar.
- Route completed dictations directly to the active PTY (matching
  live keystroke semantics) when live mode is active, or append
  them to the input field in buffered mode.
- Add live terminal status headers to indicate mic activity and
  image upload progress.
- Include unit tests for the dictation routing logic.

* rm unused file
mobile-android-v0.0.17
2026-06-28 01:20:00 -07:00
Brennan BensonandNeil 112b6e51ca fix: preserve pasted Windows terminal paths (#6604)
Co-authored-by: Neil <neil@stably.ai>
2026-06-28 01:12:08 -07:00
JinjingandOrca de1ed81d15 fix: address review findings (#6602)
Co-authored-by: Orca <help@stably.ai>
2026-06-28 01:08:40 -07:00
Brennan Bensonandbrennanb2025 9a7b2e1e2e Validate WSL UNC worktrees inside the distro (#6536)
Opening a workspace whose worktree lives on a \wsl.localhost\<distro>
UNC path failed with 'Working directory ... does not exist' even though it
exists. validateWorkingDirectory relied on Win32 fs.statSync, which is
unreliable against the WSL 9P share and can report ENOENT for directories
that exist on the Linux side.

Make working-directory validation WSL-aware: when the cwd is a WSL UNC path,
ask the distro itself via 'wsl.exe -d <distro> -- test -d <linuxPath>' and only
fall back to the fs check when wsl.exe is inconclusive. Native Windows path
validation is unchanged.

Fixes #6331

Co-authored-by: brennanb2025 <brennanb2025@users.noreply.github.com>
2026-06-28 01:06:20 -07:00
Brennan Bensonandbrennanb2025 f768e6b503 Run the packaged orca CLI even when an Orca GUI instance holds the single-instance lock (#6542)
On Windows the bundled orca.cmd runs Orca.exe with the unpacked CLI
entrypoint and ELECTRON_RUN_AS_NODE=1. When that env var is dropped, Orca
boots as a GUI, loses the single-instance lock to an already-running
window, and exits silently with no stdout.

Add a packaged-CLI-entry redirect that detects a Windows launch whose argv
carries the known in-package CLI entrypoint and re-runs it in Electron node
mode before the single-instance lock gate can bounce it, then exits with the
CLI's status. Mirrors the existing maybeRedirectAppImageCliLaunch pattern.

Fixes #5774

Co-authored-by: brennanb2025 <brennanb2025@users.noreply.github.com>
2026-06-28 00:58:57 -07:00
Jinjing 8a39450b18 refs/heads/handle-mobile-pull-request-issues (#6598)
* feat(mobile): add commit failure recovery panel with AI fix action

- Surfaces a "Commit failed" panel with a one-tap AI fix button when a
  git commit fails in the source control view or PR creation flow
- Detects commit failures specifically during the committing progress
  step and captures staged entries and commit message for context
- Extracts commit failure summary and prompt logic into
  `src/shared/source-control-commit-failure.ts` and PR checks prompt
  into `src/shared/pr-checks-fix-prompt.ts` so both desktop and mobile
  share the same implementations
- Adds auto-find of an available Metro port starting from 8081 and
  extracts expo CLI bootstrap into `mobile-expo-cli.mjs` shared by
  `start-emulator` and a new `start-expo.mjs` wrapper

* Share source-control AI prompts and simplify mobile PR actions

- Extract conflict, check-fixing, and commit-failure prompt builders
  to shared modules for reuse by both desktop and mobile.
- Configure Metro in the mobile package to watch and bundle modules
  from the repository-root shared directory.
- Remove the desktop-style merge method picker from the mobile PR
  actions panel, opting to use repository defaults automatically.
- Refactor mobile hosted review creation and git preparation logic
  into dedicated helper files.
2026-06-28 00:58:17 -07:00
Brennan Bensonandbrennanb2025 e47b3364d9 Preserve terminal scrollback when restoring a hidden alternate-screen pane (#6532)
* Preserve terminal scrollback when restoring a hidden alternate-screen pane

On Windows, an alternate-screen TUI pane (Claude Code) could lose scroll-up
after being hidden (tab/worktree switch or app backgrounded) and shown again.

Root cause: on hidden->visible restore, applyMainBufferSnapshot
unconditionally wrote a destructive clear (\x1b[2J\x1b[3J\x1b[H) before
replaying the snapshot, wiping xterm's scrollback. The attach/reattach path
already guards this same clear behind !isAlternateScreen (pty-transport.ts);
the snapshot path did not.

Thread an alternateScreen flag from the backend headless serialization
through the pty:getMainBufferSnapshot IPC + preload types into
applyMainBufferSnapshot, and skip the destructive clear when restoring an
alternate-screen buffer. Add a regression test asserting the clear is NOT
emitted for an alt-screen restore (and the existing normal-buffer test still
asserts it IS).

Fixes #5723

* test: account for alternateScreen flag in empty headless snapshot assertions

The alt-screen scrollback fix threads an alternateScreen flag through the
headless snapshot return type. Two sibling empty-buffer tests used exact
toEqual() assertions that did not include the new (legitimately false) key.
Update them to reflect the correct snapshot shape.

---------

Co-authored-by: brennanb2025 <brennanb2025@users.noreply.github.com>
2026-06-28 00:57:56 -07:00
JinjingandOrca 1e187f56a8 Improve failed CI check details panel (#6599)
Extract Annotations and Jobs sections into dedicated components, add
clickable annotation locations that open files at a line, and bucket job
steps with collapsible passing/skipped summaries.

Co-authored-by: Orca <help@stably.ai>
2026-06-28 00:55:33 -07:00
Brennan Bensonandbrennanb2025 b75eed7e02 Fix phantom/overwritten characters when typing into Claude Code on Windows (#6544)
Claude Code echoes prompt keystrokes by redrawing the input line in
place (CR + CHA + reprint + erase-line) WITHOUT DEC 2026 synchronized
output, split across ConPTY chunks. On native Windows ConPTY the xterm
buffer ends up correct, but its DOM renderer paints these rapid rewrites
one frame late, leaving a phantom first char or an overwritten cell
("zzzx" rendered as "zzx") until a window resize forces a repaint.

The existing foreground render-settle forces a single synchronous
refresh for in-place rewrites, but that races the late DOM paint. Only
the DEC 2026 cursor-restore and viewport-scroll cases scheduled a
follow-up next-frame repaint. Extend that follow-up to the native
Windows in-place rewrite pattern so the column desync self-corrects
without the user jiggling the window. Scoped to native Windows ConPTY
foreground in-place rewrites, so plain shells, SSH/remote panes, and
non-Windows renderers are unaffected.

Fixes #5656
Fixes #5653

Co-authored-by: brennanb2025 <brennanb2025@users.noreply.github.com>
2026-06-28 00:49:39 -07:00
Brennan Bensonandbrennanb2025 0af0102957 Resolve PowerShell to a real executable so terminals spawn (Windows error code 5) (#6537)
* Resolve PowerShell to a real executable so terminals spawn (Windows error code 5)

On Windows, launching a PowerShell terminal could fail with:
  Failed to spawn shell "pwsh.exe": Cannot create process, error code: 5

error code 5 = ERROR_ACCESS_DENIED from CreateProcessW inside node-pty's
ConPTY. Orca handed ConPTY a bare family name ("pwsh.exe" /
"powershell.exe"). When pwsh resolved to the Microsoft Store App Execution
Alias stub under WindowsApps (or was blocked by AV/AppLocker/SAC),
CreateProcessW rejected it with access-denied. isPwshAvailable probes via
execFileSync (which DOES follow the alias), so detection and launch disagreed.

Fix: resolve the PowerShell executable to a real absolute path before
spawning, skipping the WindowsApps alias stub, and add a Windows fallback
chain: pwsh (resolved abs) -> Windows PowerShell (System32 abs) -> cmd.exe.
SSH/remote and WSL/Git Bash/cmd paths are unaffected.

Fixes #5161

* test(pty): assert resolved absolute PowerShell path in win32 spawn tests

The PowerShell-resolution fix (#5161) now hands ConPTY a real absolute
executable instead of a bare 'powershell.exe'/'pwsh.exe' family name. The
pre-existing win32 spawn assertions in pty.test.ts (not in the worker's
per-file affected set) still expected the bare names and went red on the
full CI verify suite. Mock the fs seam and pin the install roots the
resolver probes so the resolved path is deterministic on Linux CI and
Windows alike, and assert the resolved System32 / Program Files paths.

* fix(pty): derive Windows shell name with win32 basename for determinism

getForegroundProcess() falls back to the spawned shell's basename when
Windows node-pty reports only the terminal name. The basename was taken
with the host-native path.basename, so on a non-Windows host (Linux CI)
the Windows absolute path 'C:\...\powershell.exe' was not split and the
whole path was stored as the shell name — making getForegroundProcess
return the absolute path instead of 'powershell.exe'. This produced a
host-dependent result for the same forced win32 platform.

Parse the spawned shell basename for the target platform (win32 basename
on Windows, POSIX otherwise), matching the daemon path
(pty-subprocess.ts already uses pathWin32.basename). The win32 spawn
foreground test is now deterministic on Linux CI and Windows alike.

---------

Co-authored-by: brennanb2025 <brennanb2025@users.noreply.github.com>
2026-06-28 00:33:00 -07:00
Brennan Bensonandbrennanb2025 74d564a67e fix(windows): trim macOS safe-area inset so app icon fills the canvas (#6548)
The Windows ICO was rasterized straight from the untrimmed 1024px macOS
render, inheriting Icon Composer's transparent safe-area inset (glyph only
~83% of the canvas). Windows scales the largest ICO frame down for the
taskbar/"Open with" list without compensating, so the icon looked visibly
small next to native apps.

Add config/scripts/trim-windows-icon-source.mjs (pngjs-based): trims the
transparent inset, re-squares with a small 2% margin, and emits a filled
multi-size ICO (~96% fill). Regenerate resources/build/icon.ico from it and
update generate.sh to delegate to the script so the committed binary stays
in sync regardless of whether ImageMagick is installed.

Fixes #5357

Co-authored-by: brennanb2025 <brennanb2025@users.noreply.github.com>
2026-06-28 00:30:24 -07:00
3d22d69d03 feat(terminal): add "Copy Context" to the terminal context menu (#6267)
* feat(terminal): add "Copy Context" to the terminal context menu

Copying an agent session's captured context required opening the Fork
Agent Session dialog and clicking its "Copy context" button — two steps
for something you often just want on its own (e.g. to paste elsewhere).

Add a "Copy Context" item to the terminal right-click menu, right under
"Fork Agent Session…". It reuses the existing capture + clipboard path
(prepareAgentSessionForkFromPane → copyAgentSessionForkContext), so the
copied text is identical to the dialog's, just one click away and without
opening the dialog.

Fixes #5020

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

* fix(terminal): copy plain context, not the fork prompt

Copy Context now copies the bounded, cleaned transcript on its own with a
neutral 'Context copied' toast, instead of reusing the fork prompt (with its
'this is a fork… acknowledge and wait' framing) and the fork-copy toast. That
framing is noise when pasting into another tool, which is the issue's use case.

Extracts buildBoundedSessionTranscript() from the fork-prompt builder and adds
copyAgentSessionContextFromPane(); the fork dialog's own copy button is
unchanged.

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

---------

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-authored-by: Jinjing <6427696+AmethystLiang@users.noreply.github.com>
Co-authored-by: Orca <help@stably.ai>
2026-06-28 00:13:36 -07:00
Brennan BensonandOrca a9ef6f9168 Recover frozen terminal panes after a backgrounded agent exits (#6514)
Co-authored-by: Orca <help@stably.ai>
2026-06-28 00:09:07 -07:00
github-actions[bot] e51b2dfe3d release: v1.4.104-rc.2 v1.4.104-rc.2 2026-06-28 06:23:08 +00:00
Neil 5712cf9f48 Fix right-click paste in the Monaco editor (#6549)
Monaco's context-menu Paste reads navigator.clipboard.readText(), which is blocked in Orca's sandboxed renderer, so right-click Paste did nothing while Cmd/Ctrl+V and right-click Copy worked.

Register a higher-priority implementation on Monaco's PasteAction that reads the clipboard through Orca's trusted IPC bridge (window.api.ui.readClipboardText) and dispatches Monaco's native paste. Falls through for read-only/unfocused/non-editor targets so Cmd/Ctrl+V is untouched, and routes oversized pastes through the existing chunked inserter to preserve the too-large guard for both paste paths.

Verified with unit tests (incl. read-only fall-through, empty/too-large/focus-lost/oversized) and end-to-end in the Electron app.
2026-06-27 23:11:45 -07:00
Jinjing b45cb545c5 fix: shorten mobile toolbar labels (#6553) 2026-06-27 22:59:55 -07:00
Jinjing bffe436aeb fix: address review findings (#6551) 2026-06-27 22:51:33 -07:00
Brennan Benson 640f67d970 Fix Ctrl+C and other Mod-letter shortcuts on non-Latin keyboard layouts (#6534)
Fixes #6274.

Non-Latin layouts (Cyrillic, Greek, ABNT2, …) report a non-Latin logical `event.key` for physical letter keys (physical `KeyC` → `с`) while `event.code` stays `KeyC`. The shortcut matcher only fell back to the physical code when `event.key` was empty/Dead/Unidentified, so Mod+letter/digit chords never matched on those layouts — Ctrl+C copy in Monaco Source mode appeared to do nothing and the chord could not even be rebound in Settings.

Adds a tightly-gated non-Latin physical-code fallback (non-macOS, real Ctrl/Meta modifier held, excludes AltGr/Ctrl+Alt composition, only when no logical Latin token exists). Verified: full keybindings suite (55 tests) + targeted Cyrillic/Greek/AltGr/wrong-key cases pass; web + node typecheck clean.
2026-06-27 22:26:09 -07:00
Brennan Benson bed50606f2 Launch and detect Qwen Code via its qwen executable (#6530) 2026-06-27 22:02:52 -07:00
NeilandOrca 47f66f53f5 chore(deps): bump vite/esbuild/dompurify to clear Dependabot alerts (#6538)
Resolve security advisories without pnpm overrides:

Root:
- vite 7.3.5 -> 7.3.6 (widened esbuild range to ^0.27 || ^0.28)
- esbuild 0.27.7 -> 0.28.1 (GHSA dev-server advisory)
- dompurify 3.4.10 -> 3.4.11 (direct devDep)

Mobile:
- tsx ^4.21.0 -> ^4.22.4 (only hard esbuild consumer; pulls esbuild 0.28.1)
- vitest ^4.1.5 -> ^4.1.9, add explicit vite ^8.0.16 (-> 8.1.0)

Verified: typecheck:web, build:web, and full vitest suite (21246 passed)
all green.

Deferred (override-only, no plain-update path exists):
- dompurify 3.2.7 x18 — monaco-editor@0.55.1 hard-pins it exactly
- js-yaml@3 — @istanbuljs/load-nyc-config; uuid@7 — xcode@3.0.1;
  postcss@8.4 — @expo/metro-config (Expo SDK 55 lock)

Co-authored-by: Orca <help@stably.ai>
2026-06-27 22:01:16 -07:00