mirror of
https://github.com/stablyai/orca.git
synced 2026-10-13 00:02:54 +00:00
Adds a server-authoritative state machine for mobile terminal layout: applyLayout is the sole writer of layouts/fit-override; enqueueLayout serializes per-PTY work behind an async queue with monotonic seq. Mobile clients filter stale events using seq. Race fixes: - TerminalWebView exposes awaitReady() so post-scrollback measure waits for term.open + renderService population before measuring. - handleTerminalWebReady awaits measureViewportOnce before subscribe so the first subscribe carries viewport. - Post-scrollback path resubscribes when scrollback dims don't match the measured viewport (covers the alreadyMeasured race). - terminal.setDisplayMode RPC carries an optional viewport so toggling to auto on a viewport-less subscriber record patches the record before applyMobileDisplayMode runs. - sendEncrypted detects ws desync (state=connected but readyState!=OPEN) and force-reconnects. Schema collapse: drop 'phone' from TerminalSetDisplayMode mode enum (now 'auto' | 'desktop'); narrow mobileDisplayModes to Map<string,'desktop'>; auto = absence. Connection-health scaffolding: lastConnectedAt, classifyConnection, unreachableHint (UI not wired). Co-authored-by: Orca <help@stably.ai>
Orca CLI Docs
Keep this folder focused on the durable references for Orca's public CLI and runtime model.
Keep These Docs
orca-cli-focused-v1-status.md- What is actually implemented and intentionally in scope now.
orca-cli-v1-spec.md- The public CLI contract, selector grammar, JSON envelope, and command semantics.
orca-runtime-layer-design.md- Why the runtime layer exists and which boundaries it owns.
orca-cli-bundled-distribution.md- How the bundled desktop-app distribution and PATH registration model works.
Why The Folder Is Small
Earlier design and implementation work produced several planning and evaluation docs. Those were useful while the feature was taking shape, but they were intentionally removed once the implementation converged so future readers are not forced to choose between multiple overlapping sources of truth.