Commit Graph
5099 Commits
Author SHA1 Message Date
Jinwoo-HandOrca a56dded6ff test(ssh): prove full-size POSIX system transfer
Co-authored-by: Orca <help@stably.ai>
2026-07-16 14:33:23 -04:00
Jinwoo-HandOrca ec51e36b77 feat(ssh): compose POSIX relay tree transfer
Co-authored-by: Orca <help@stably.ai>
2026-07-16 13:56:25 -04:00
Jinwoo-HandOrca f1d6d92690 feat(ssh): adapt system SSH relay file channels
Co-authored-by: Orca <help@stably.ai>
2026-07-16 13:12:26 -04:00
Jinwoo-HandOrca fac052b771 feat(ssh): add POSIX relay file destination
Co-authored-by: Orca <help@stably.ai>
2026-07-16 12:42:49 -04:00
Jinwoo-HandOrca 4945645e81 test: sync hosted Windows launcher budget
Co-authored-by: Orca <help@stably.ai>
2026-07-16 12:23:07 -04:00
Jinwoo-HandOrca 32f78d720f feat: compose bounded SSH relay SFTP transfer
Co-authored-by: Orca <help@stably.ai>
2026-07-16 11:52:28 -04:00
Jinwoo-HandOrca fbec34cf12 feat: add bounded SSH relay SFTP sessions
Co-authored-by: Orca <help@stably.ai>
2026-07-16 11:14:50 -04:00
Jinwoo-HandOrca 28e7a6e5f9 fix: require absolute SFTP staging roots
Co-authored-by: Orca <help@stably.ai>
2026-07-16 10:42:23 -04:00
Jinwoo-HandOrca 1388e8071f feat: orchestrate bounded SSH relay SFTP trees
Co-authored-by: Orca <help@stably.ai>
2026-07-16 10:38:09 -04:00
Jinwoo-HandOrca 72d482201e feat: add bounded SSH relay SFTP file destination
Co-authored-by: Orca <help@stably.ai>
2026-07-16 10:06:52 -04:00
Jinwoo-HandOrca df39c287d6 test: scope SSH relay mode oracle to POSIX
Co-authored-by: Orca <help@stably.ai>
2026-07-16 09:30:05 -04:00
Jinwoo-HandOrca 59997b1383 feat: bound SSH relay runtime source streaming
Co-authored-by: Orca <help@stably.ai>
2026-07-16 09:23:03 -04:00
Jinwoo-HandOrca 724ed62955 fix: classify SSH relay source collisions
Co-authored-by: Orca <help@stably.ai>
2026-07-16 08:35:15 -04:00
Jinwoo-HandOrca 74104b6235 feat: authenticate SSH relay transfer sources
Co-authored-by: Orca <help@stably.ai>
2026-07-16 08:28:29 -04:00
Jinwoo-HandOrca 2f38700b98 feat: define SSH relay runtime source tree
Co-authored-by: Orca <help@stably.ai>
2026-07-16 07:51:53 -04:00
Jinwoo-HandOrca a7fd19de5f feat: compose SSH relay host evidence
Co-authored-by: Orca <help@stably.ai>
2026-07-16 07:07:51 -04:00
Jinwoo-HandOrca c489ee9f71 test: accept bounded PowerShell startup progress
Co-authored-by: Orca <help@stably.ai>
2026-07-16 06:36:15 -04:00
Jinwoo-HandOrca 30bf908f24 feat: detect Windows relay compatibility
Co-authored-by: Orca <help@stably.ai>
2026-07-16 06:29:46 -04:00
Jinwoo-HandOrca 1182bcdc5e test: keep relay cache suites client-offline
Co-authored-by: Orca <help@stably.ai>
2026-07-16 05:53:16 -04:00
Jinwoo-HandOrca 156ea35c0e feat: detect remote Linux libstdc++ ABI
Co-authored-by: Orca <help@stably.ai>
2026-07-16 05:35:48 -04:00
Jinwoo-HandOrca c8d4acb2cc feat: detect remote macOS translation
Co-authored-by: Orca <help@stably.ai>
2026-07-16 05:07:43 -04:00
Jinwoo-HandOrca bcda043895 feat: detect remote macOS version
Co-authored-by: Orca <help@stably.ai>
2026-07-16 04:41:43 -04:00
Jinwoo-HandOrca d1eb0eb63e feat: detect remote Linux kernel
Co-authored-by: Orca <help@stably.ai>
2026-07-16 04:12:20 -04:00
Jinwoo-HandOrca d8b17a354b feat: detect remote Linux libc
Co-authored-by: Orca <help@stably.ai>
2026-07-16 03:33:55 -04:00
Jinwoo-HandOrca c170ff92c1 feat: acquire verified relay artifacts
Co-authored-by: Orca <help@stably.ai>
2026-07-16 02:58:45 -04:00
Jinwoo-HandOrca bd240049ff fix: settle Windows relay cache locks
Co-authored-by: Orca <help@stably.ai>
2026-07-16 02:25:46 -04:00
Jinwoo-HandOrca 3018977c11 feat: populate verified relay cache
Co-authored-by: Orca <help@stably.ai>
2026-07-16 02:07:59 -04:00
Jinwoo-HandOrca 22031fa686 feat: resolve verified relay cache entries
Co-authored-by: Orca <help@stably.ai>
2026-07-16 01:32:29 -04:00
Jinwoo-HandOrca aefcaa9a93 feat: define relay artifact cache root
Co-authored-by: Orca <help@stably.ai>
2026-07-16 01:00:43 -04:00
Jinwoo-HandOrca 749f775f15 feat: compose official relay manifest trust
Co-authored-by: Orca <help@stably.ai>
2026-07-16 00:39:52 -04:00
Jinwoo-HandOrca 4c09902c04 feat: add compiled relay manifest trust boundary
Co-authored-by: Orca <help@stably.ai>
2026-07-16 00:00:26 -04:00
Jinwoo-HandOrca 11f367e661 feat: validate relay manifest accepted keys
Co-authored-by: Orca <help@stably.ai>
2026-07-15 22:44:36 -04:00
Jinwoo-HandOrca ffc7947a4a feat: load signed packaged relay manifest
Co-authored-by: Orca <help@stably.ai>
2026-07-15 22:20:20 -04:00
Jinwoo-HandOrca b79bcbd04e feat: add disconnected relay cache eviction
Co-authored-by: Orca <help@stably.ai>
2026-07-15 21:40:51 -04:00
Jinwoo-H 3c1ead8fb1 feat: add immutable relay artifact cache entries 2026-07-15 20:46:44 -04:00
Jinwoo-HandOrca 44ef150da3 fix: release relay cache locks on Windows
Co-authored-by: Orca <help@stably.ai>
2026-07-15 19:44:01 -04:00
Jinwoo-HandOrca 869603a3e8 feat: add disconnected relay cache lock
Co-authored-by: Orca <help@stably.ai>
2026-07-15 19:29:49 -04:00
Jinwoo-HandOrca 2d5785ef6f fix(ssh): bound relay artifact extraction memory
Co-authored-by: Orca <help@stably.ai>
2026-07-15 18:23:22 -04:00
Jinwoo-HandOrca 7580600e37 feat(ssh): add verified relay artifact extraction
Co-authored-by: Orca <help@stably.ai>
2026-07-15 17:51:26 -04:00
Jinwoo-HandOrca c9f6da55e4 build(ssh): use portable relay archives
Co-authored-by: Orca <help@stably.ai>
2026-07-15 16:30:48 -04:00
Jinwoo-HandOrca ef9681d325 feat(ssh): add verified relay artifact downloader
Co-authored-by: Orca <help@stably.ai>
2026-07-15 15:40:00 -04:00
Jinwoo-HandOrca 7b8c7669ac feat(ssh): bind relay selection to verified manifest
Co-authored-by: Orca <help@stably.ai>
2026-07-15 15:02:26 -04:00
Jinwoo-HandOrca cfea521c7c build(ssh): produce verified runtime manifest tuples
Co-authored-by: Orca <help@stably.ai>
2026-07-15 05:44:14 -04:00
Jinwoo-HandOrca 707a9da23e build(ssh): align Windows runtime manifest identity
Co-authored-by: Orca <help@stably.ai>
2026-07-15 02:00:46 -04:00
Jinwoo-HandOrca e3f76d3ba7 build(ssh): correct native runtime metadata contracts
Co-authored-by: Orca <help@stably.ai>
2026-07-14 17:21:26 -04:00
Jinwoo-HandOrca b9d80a4cbc feat(ssh): define relay runtime artifact contracts
Co-authored-by: Orca <help@stably.ai>
2026-07-14 07:43:28 -04:00
Jinwoo-HandOrca c4259d94fc fix(ssh): resolve complete remote node toolchains
Co-authored-by: Orca <help@stably.ai>
2026-07-14 06:28:26 -04:00
Brennan Benson 9d51732523 perf(terminal): defer cold worktree activation tab mounts until first reveal (#8597)
* perf(terminal): defer cold worktree activation tab mounts until first reveal

Activating a worktree mounted a TerminalPane for every saved terminal tab
in one render pass. Each mount replays scrollback through xterm, attaches
a WebGL renderer, and issues a sync-IPC snapshot read, so a worktree with
many agent-session tabs froze the renderer for tens of seconds (field
trace: 200+ replay-guard stall releases inside one activation window,
plus restore-marker feedback loops re-fetching snapshots at ~4/sec).

Cold activations now mount only the tabs the user can see (active tab,
each split group's active tab, activity-portal tabs, pending spawns) plus
tabs that are already live or that parked byte watchers cannot cover.
Every other tab defers like a cold-parked tab from birth: no view until
first reveal, with the parked byte watchers owning bell/title/completion
side effects meanwhile. The restriction reuses the targeted background
mount mechanism and lifts once every tab has been revealed.

Deferral only engages when more than four tabs would mount cold, and only
while hidden-view parking is enabled, so small worktrees and the parking
kill switch keep today's behavior.

* test(terminal): prove cold-activation deferral end-to-end; unblock it past hydration's blanket spawn flag

The new e2e (child worktree, 8 tabs, renderer reload against live daemon
sessions) caught the deferral never engaging: session hydration marks
every persisted tab pendingActivationSpawn, and treating that flag as
must-mount-now put all tabs in the immediate set. Only explicit queued
startups (pendingStartupByTabId) mount eagerly; a deferred tab's reveal
consumes the hydration flag exactly like an activation mount would.
Sleep/wake respawn flows go through targeted background mounts and are
unaffected (terminal-sleep-wake-restore passes).

The spec asserts the visible tab mounts, deferred tabs stay unmounted
with parked byte-watcher coverage, and a revealed tab mounts on demand.

* fix(terminal): harden deferred activation lifecycle

* docs(reliability): correct SSH startup assertion evidence
2026-07-14 02:58:34 -07:00
Brennan Benson 31f643ca42 Add version-matched skill guides to the CLI (#8624)
* Add version-matched bundled skill guides

* Clarify skill freshness rollout PRs

* Add canonical skills show alias

* fix(skills): address guide review feedback

* fix(skills): make guide commands cross-platform

* fix(skills): apply the ORCA convention to the emulator guides

Review follow-up: the emulator guides still instructed literal
`orca emulator ...` in sh fences with no Linux disambiguation, so on
unmanaged Linux they could launch the GNOME screen reader — the exact
failure the executable-selection preamble prevents. Both emulator
guides now carry the preamble and ORCA placeholder across fences,
tables, and prose, and the cross-platform safety test covers all four
converted guides. Also replaces computer-use's "unless a block names a
shell" carve-out, which contradicted its own POSIX example, with the
unconditional placeholder rule.
2026-07-14 02:17:55 -07:00
Rod BoevandOrcaWin 59460f7576 fix(terminal): derive zsh wrapper ZDOTDIR from %x so non-ASCII WSL logins load .zshrc (#8003) (#8209)
The shell-ready zsh wrapper restored ZDOTDIR from the env-imported
`${ZDOTDIR}`. On Windows+WSL the wrappers are generated with a Windows
path baked in but sourced via /mnt/c, and for non-ASCII Windows
usernames (e.g. a Korean login) zsh corrupts environment values whose
UTF-8 bytes fall in its 0x84-0x9D token range while processing startup
files. The corrupted `${ZDOTDIR}` failed the self-check, so the wrapper
fell back to the unusable baked Windows literal and the user's ~/.zshrc
never loaded — a bare `HOSTNAME%` prompt with no theme/aliases/PATH.

Derive the wrapper dir from `${${(%):-%x}:h}` instead — %x is zsh's
internal script name for the file being sourced and is not subject to
the env-import corruption. `${ZDOTDIR}` is kept only as a fallback when
%x expansion yields nothing; the existing final restore still validates
with -f before trusting the value. On native macOS/Linux the derived
value equals the old one, so behavior there is unchanged.

Covers local PTYs, the daemon, and the Windows→WSL launch path, which
all share getZshEnvTemplate. Adds a live-zsh regression test that sources
the wrappers from a non-ASCII (token-range) runtime path.

Supersedes the ORCA_ORIG_ZDOTDIR path-normalization approach with a wrapper self-location fix that also covers the non-ASCII (token-range) corruption trigger.

Co-authored-by: OrcaWin <alpha-eng@stably.ai>
2026-07-14 01:55:04 -07:00