mirror of
https://github.com/stablyai/orca.git
synced 2026-09-28 08:02:43 +00:00
* fix(skill): fix 6 dogfood bugs in orca-per-workspace-env templates Fixes found while standing up a local Docker SSH per-workspace env (§7h) end to end: 1. GIT_ASKPASS helper broke under set -u — the printf interpolated $1/$GH_TOKEN at write-time, aborting the clone with "$1: unbound variable". Escape both so they land literally and resolve at git-runtime (also keeps the token out of the file); rm the helper after. (§5, §7f base-snapshot + create, §10) 2. Agent-auth verify missed stderr — 'codex login status' prints "Logged in" to stderr, so the stdout-only grep wrongly reported not-logged-in. Fold 2>&1. (§4, §7b, §7f Phase 3, §7h, §10) 3. --device-auth is mandatory on headless VMs — plain OAuth login binds an unreachable loopback callback port and hangs. (§4, §7b, §7h, §10) 4. Interactive Phase-3 login can't be driven by a non-interactive orchestrator (no TTY for docker exec -it / ssh -t) — user runs it themselves, or via the harness bang-prefix. (§1, §4) 5. Local Docker host-key churn — ephemeral containers regenerating host keys churn known_hosts on localhost as ports rotate; bake host keys into the base image at build time. (§7h + validation notes, §10) 6. Orchestrator must ask the user to report back when the interactive login finishes before resuming non-interactive phases. (§1, §4, §7b, §7h) Co-authored-by: Orca <help@stably.ai> * fix(skill): tighten login gate, de-dup gotchas in orca-per-workspace-env - Verify login via exit code first; when grepping, match the agent's exact success line, never `grep -qi 'logged in'` (also matches "not logged in") - Keep the generic template agent-agnostic; hardcode codex strings only in the codex-based Vercel worked example (now case-insensitive) - Collapse repeated device-auth / stderr-fold / GIT_ASKPASS rationale to §4/§5 cross-refs; add a load-bearing-escaping test note - Add a connection-mode orientation block up front; fix front-matter grammar Co-authored-by: Orca <help@stably.ai> * docs(skill): replace 'orchestrator' jargon with plain no-TTY wording The term meant 'the agent running these steps runs commands non-interactively, so it has no TTY.' Say that directly instead, and drop the redundant 'orchestrating agent'/'non-interactive orchestrator' doubling at the Phase-3 checkpoint. Co-authored-by: Orca <help@stably.ai> --------- Co-authored-by: Orca <help@stably.ai>