stablyai/orca

GitHub ↗ · How this check works

Per-setup public labels: Linux / Haiku: Partly checked (reason not established) · Linux / Luna: Not tested (blocked: setup step)

Static status badge · SVG · read-only JSON. Embed with ![Coldpass status](https://coldpass.dev/badge/stablyai--orca.svg).

agent-harness

Partly checked

Some behavior was checked; the full README workflow was not fully checked.

Answers apply to each recorded setup, revision and operation. Earlier observations remain in Run details.

Tested on Linux Partly checked: reason not established; full README use was not fully checked.
PlatformHaikuLuna
Linuxpartly checkedblocked: setup step

Linux / Haiku 5.5: partly checked · Oct 23, 2026 · 2847bbe9e81e · claude-code / 2.1.300 (Claude Code)
Recorded operation: <guest-path> dev

Linux / Luna: blocked: setup step · Oct 23, 2026 · 2847bbe9e81e · codex / codex-cli 0.163.0
Recorded operation: pnpm dev

Does what it says
couldn’t confirm (blocked)
  • Orca is an AI orchestrator for parallel agents in worktrees.: The documented desktop app launch started compilation but did not produce the app process or CDP endpoint during the observed attempt; no UI result was available.

    Source: Run Codex, ClaudeCode, OpenCode or Pi side-by-side — each in its own worktree, tracked in one place.

    Observed: The documented desktop app launch started compilation but did not produce the app process or CDP endpoint during the observed attempt; no UI result was available.

MCP
No
Local or hosted
local
Local: runs on your machine
Maintained
Maintained
actively maintained: last commit 0 days ago; 8670 commits and 8732 merged PRs in 90 days; 4420 open issues, 4377 open PRs; latest release 2026-10-21

Last commit Oct 23, 2026

Issue
not established
Evidence
partly checked
Agent interfaces
CLI
CLI

Observed interfaces were exercised by the checker. Documentation alone does not confirm compatibility.

Tested with
Codex / Luna
  • Linux: Codex / Luna · agent codex-cli 0.163.0 · blocked: setup step · Oct 23, 2026 on 2847bbe9e81e

Each entry describes its recorded operation and source revision. Other agent clients were not tested.

Safety
Something to look at: reads of private files by <guest-path>

Review signals across current setups: connection review, outside write, sensitive read. 532 listed items (named-host connections, static matches, dependency advisories) are below and do not change this verdict. 96 static matches retained as context.

Repository processes attempted these non-loopback connections; proxies can hide the final hostname. 25 distinct locations. 2 findings. 20 attributed processes.

Source contains encoded execution; review its purpose. src/main/wsl-bash-command.ts

Gitleaks found a possible hardcoded secret; value withheld. 70 distinct locations. 238 findings.

OSV reports a known vulnerability in this dependency version. 3 distinct locations. 7 findings.

Repository processes attempted these writes outside documented output/cache paths. 3 distinct locations. 2 findings. 9 attributed processes.

A repository process attempted to read this sensitive path. 3 distinct locations. 3 findings. 11 attributed processes.

Full event, path and process lists for each observed setup:

Run details

Haiku 5.5

Native agent · Partly checked (reason not established)

Operation / attempted scope <guest-path> dev

Agent-reported scope: Start the Orca desktop dev app with the documented `pnpm dev` (CONTRIBUTING.md Local Setup) and verify the Vite renderer URL; verify the documented `pnpm install` step.

Run details
run
stablyai--orca-claude-haiku-5-5-1792786917586728724
date
Oct 23, 2026
time to working
not established
product hosting / execution
Local command in the guest
recorded operation scope
product operation
model
claude-haiku-5-5
agent / version
claude-code / 2.1.300 (Claude Code)
platform
linux
reported cost
$0.074930
Recorded source
https://github.com/stablyai/orca
Backend
hyperv
Tool transport
mcp-assigned-vm
Requested source pin (not an observed revision)
{"commit": "2847bbe9e81ea8d94f0e42560aa981b3fccd4614", "url": "https://github.com/stablyai/orca"}
Test version
readme-bdc1b9b3c0d2673aef87e076d14084a8123ddcf09d520c1ee2e364a37c3f4bb9
revision
2847bbe9e81ea8d94f0e42560aa981b3fccd4614
Whose fault: unknown · pending

lint oxlint panic and typecheck SIGKILL on this 4 GB / 2 CPU VM; Docker absent for Linux build

Recorded blocker / warning

Step: pnpm lint and pnpm typecheck (examples) fail; orphaned Vite/Electron processes from checker stop_server

lint oxlint panic and typecheck SIGKILL on this 4 GB / 2 CPU VM; Docker absent for Linux build

Safety: Review signals: 1 connection review, 1 encoded execution, 258 hardcoded secret, 7 known vulnerability, 1 outside write, 3 sensitive read. 48 static matches retained as context.

Review signals: 1 connection review, 1 encoded execution, 258 hardcoded secret, 7 known vulnerability, 1 outside write, 3 sensitive read. 48 static matches retained as context.

Repository processes attempted these non-loopback connections; proxies can hide the final hostname. 22 distinct locations. 13 attributed processes.

Source contains encoded execution; review its purpose. src/main/wsl-bash-command.ts

Gitleaks found a possible hardcoded secret; value withheld. 70 distinct locations. 238 findings.

OSV reports a known vulnerability in this dependency version. 3 distinct locations. 7 findings.

Repository processes attempted these writes outside documented output/cache paths. 3 distinct locations. 8 attributed processes.

A repository process attempted to read this sensitive path. 3 distinct locations. 3 findings. 11 attributed processes.

2 download and execute matches retained as context; full list in the evidence.

2 encoded blob matches retained as context; full list in the evidence.

2 encoded execution matches retained as context; full list in the evidence.

41 hardcoded secret matches retained as context; full list in the evidence.

OSV scanned supported lockfiles; unpinned dependencies and unsupported formats are outside this check.

A short run cannot establish that code is safe.

Connections show IP addresses; proxies can hide the final hostname.

Tracing covers dispatched commands and their children, not the whole OS; guest root can interfere with tracing.

Full safety evidence →

Answers recorded for this run
  • The documented pnpm install step prepares the workspace: Real input produced the expected result: Lockfile is up to date

    Source: pnpm install

    Input: pnpm install --frozen-lockfile

    Expected: pnpm reports the lockfile is up to date

    Command: <guest-path> install --frozen-lockfile

    Observed: Lockfile is up to date, resolution step is skipped Done in 674ms using pnpm v12.14.0

Examples

  • Documented pnpm install step: command completed successfully

    Source: .github/CONTRIBUTING.md

    Input: pnpm install --frozen-lockfile

    Expected: Lockfile is up to date

    Command: <guest-path> install --frozen-lockfile

    Observed: Scope: all 4 workspace projects Agent skills awaiting approval: agent-browser. Run "pnpm approve" to review them. ✓ Lockfile passes supply-chain policies (verified 24m ago) Lockfile is up to date, resolution step is skipped Done in 582ms using pnpm v12.14.0

  • Documented lint check before opening a PR: command output contains a crash diagnostic

    Source: .github/CONTRIBUTING.md

    Input: pnpm lint

    Expected: lint passes

    Command: <guest-path> lint

    Observed: dled-skill-guides && pnpm run verify:skill-bundle-manifest && pnpm run verify:localization-catalogs && pnpm run verify:localization-extraction && pnpm run verify:localization-coverage && pnpm run check:process-host-imports && pnpm run check:main-sync-spawn-ratchet && pnpm run check:compat-boundary-imports thread 'tokio-rt-worker' (15904) panicked at crates/oxc_allocator/src/pool/fixed_size.rs:112:67: called `Result::unwrap()` on an `Err` value: () note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace Aborted (core dumped) [ELIFECYCLE] Command failed with exit code 134.

  • Documented typecheck before opening a PR: command exited with code 1

    Source: .github/CONTRIBUTING.md

    Input: pnpm typecheck

    Expected: typecheck passes

    Command: <guest-path> typecheck

    Observed: $ pnpm run build:packages && node config/scripts/run-typecheck-projects-in-parallel.mjs $ pnpm --filter @orca/process-host build $ tsx --conditions=orca-source scripts/build-dist.mjs tsrs config/tsconfig.node.json exited with signal SIGKILL [ELIFECYCLE] Command failed with exit code 1.

  • Documented offline test suite (pnpm test): Not run in this session: the full Bun/Vitest suite was not completed; lint and typecheck already fail on this VM (4 GB RAM, 2 CPUs), so the suite was deferred to limit runtime.

    Source: .github/CONTRIBUTING.md

    Input: pnpm test

    Expected: Vitest suites pass

    Observed: Not run in this session: the full Bun/Vitest suite was not completed; lint and typecheck already fail on this VM (4 GB RAM, 2 CPUs), so the suite was deferred to limit runtime.

Cycles

  • Orca runs scheduled automations: Needs an existing automation with a target project and an installed agent CLI; no automation was created in this session, so no cycle was triggered.

    Source: docs/site/content/docs/cli/automations.mdx

    Input: orca automations run <automationId> --json

    Expected: one automation run is triggered by hand

    Observed: Needs an existing automation with a target project and an installed agent CLI; no automation was created in this session, so no cycle was triggered.

Local or hosted: local

Suggested next step (unverified): Run lint and typecheck on a machine with more RAM (typecheck), and report the oxlint panic upstream; install Docker for the Linux build; make the checker stop the whole process tree for stays_running dev servers.

What the agent did

Start the Orca desktop dev app with the documented `pnpm dev` (CONTRIBUTING.md Local Setup) and verify the Vite renderer URL; verify the documented `pnpm install` step.

cd <guest-path> && pwd && ls -la && id -u && cat /etc/os-release | head -3 && python3 --version && git --version; node --version; npm --version; uv --version 2>/dev/null; echo done
cd <guest-path> && ls -la; test -f README.md && wc -l README.md && head -150 README.md
cd <guest-path> && sed -n 150,276p README.md
cd <guest-path> && ls -la .coldpass; ls <guest-path> 2>&1; ls /inputs 2>&1; git status 2>&1 | head -3
cd <guest-path> && cat .github/CONTRIBUTING.md 2>/dev/null | head -200; echo ----; node -e 1 2>/dev/null; python3 -c "import json;d=json.load(open('package.json'));print(d.get('engines'),d.get('packageManager'));print(json.dumps(d['scripts'],indent=1)[:3000])"
cd <guest-path> && git init -q 2>&1; git remote add origin https://github.com/stablyai/orca 2>&1; timeout 300 git fetch --depth 1 origin 2847bbe9e81ea8d94f0e42560aa981b3fccd4614 2>&1 | tail -5; git reset --mixed FETCH_HEAD 2>&1 | tail -3; git log --oneline -1 2>&1; git status --short | head -20; cat config/.bun-version 2>/dev/null; echo; ls .coldpass
sudo -n true && echo SUDO_OK; which docker && docker info >/dev/null 2>&1 && echo DOCKER_OK || echo DOCKER_NO; which curl wget xvfb-run; env | grep -i proxy | sed 's/=.*@/=***@/' ; curl -sS -m 15 -o /dev/null -w "%{http_code}\n" https://nodejs.org/dist/index.json; curl -sS -m 15 -o /dev/null -w "%{http_code}\n" https://registry.npmjs.org/pnpm
set -e; cd /tmp && V=$(curl -sS https://nodejs.org/dist/index.json | python3 -c "import json,sys;print([x['version'] for x in json.load(sys.stdin) if x['version'].startswith('v24.')][0])"); echo "Node $V"; mkdir -p $HOME/.local && curl -sSfL -o node.tar.xz https://nodejs.org/dist/$V/node-$V-linux-x64.tar.xz && rm -rf $HOME/.local/node24 && mkdir -p $HOME/.local/node24 && tar -xJf node.tar.xz -C $HOME/.local/node24 --strip-components=1 && rm node.tar.xz && export PATH=$HOME/.local/node24/bin:$PATH && node --version && npm --version && npm install -g <email> 2>&1 | tail -3 && pnpm --version
export PATH=$HOME/.local/node24/bin:$PATH; export BUN_INSTALL=$HOME/.local/bun; curl -fsSL https://bun.sh/install | bash -s "bun-v1.4.4" 2>&1 | tail -3; $BUN_INSTALL/bin/bun --version
sudo -n apt-get install -y unzip >/tmp/apt.log 2>&1 || (sudo -n apt-get update >/tmp/apt-up.log 2>&1 && sudo -n apt-get install -y unzip >>/tmp/apt.log 2>&1); echo rc=$?; tail -2 /tmp/apt.log; export PATH=$HOME/.local/node24/bin:$PATH; export BUN_INSTALL=$HOME/.local/bun; curl -fsSL https://bun.sh/install | bash -s "bun-v1.4.4" 2>&1 | tail -3; $BUN_INSTALL/bin/bun --version
cd <guest-path> && export PATH=$HOME/.local/node24/bin:$HOME/.local/bun/bin:$PATH NODE_USE_ENV_PROXY=1 CI=1; nohup pnpm install --frozen-lockfile > /tmp/pnpm-install.log 2>&1 &
echo started
cd <guest-path> && python3 -c "
import json;d=json.load(open('package.json'))
print(d.get('bin'))
for k,v in d['scripts'].items():
    if any(w in k for w in ['dev','start','build','test','cli','mcp','orca']): print(k,'=>',v[:200])
"; ls src; ls src/cli 2>/dev/null | head; ls docs | head -30; grep -ril "mcp" docs --include=*.md -l | head
sleep 120; tail -5 /tmp/pnpm-install.log; echo; cd <guest-path> && find docs -path '*cli*' -name '*.md*' | head; ls docs/site 2>/dev/null | head
grep -n -i "error\|gyp\|ERR" /tmp/pnpm-install.log | head -40; echo; cat /tmp/pnpm-install.log | head -30
sudo -n apt-get install -y build-essential python3 >/tmp/apt2.log 2>&1; echo rc=$?; tail -2 /tmp/apt2.log; which make g++ gcc
cd <guest-path> && export PATH=$HOME/.local/node24/bin:$HOME/.local/bun/bin:$PATH NODE_USE_ENV_PROXY=1 CI=1; timeout 3000 pnpm install --frozen-lockfile > /tmp/pnpm-install2.log 2>&1; echo rc=$?; tail -15 /tmp/pnpm-install2.log
cd <guest-path> && sed -n 1,120p docs/site/content/docs/cli/overview.mdx
cd <guest-path> && export PATH=$HOME/.local/node24/bin:$HOME/.local/bun/bin:$PATH NODE_USE_ENV_PROXY=1; timeout 1500 pnpm build:cli > /tmp/build-cli.log 2>&1; echo rc=$?; tail -12 /tmp/build-cli.log; ls -la out/cli 2>/dev/null | head
sudo -n apt-get install -y xvfb xauth libgtk-3-0t64 libnss3 libatk1.0-0t64 libatk-bridge2.0-0t64 libgbm1 libasound2t64 libxss1 libxtst6 libcups2t64 libdrm2 libxkbcommon0 libxcomposite1 libxdamage1 libxrandr2 libpango-1.0-0 libcairo2 libgdk-pixbuf-2.0-0 libxshmfence1 libsecret-1-0 libnotify4 >/tmp/apt3.log 2>&1; echo rc=$?; tail -3 /tmp/apt3.log; which xvfb-run Xvfb
cd <guest-path> && export PATH=$HOME/.local/node24/bin:$HOME/.local/bun/bin:$PATH; timeout 60 xvfb-run -a node_modules/electron/dist/electron --version 2>&1 | tail -5; echo rc=$?; grep -n "node-pty\|rebuild" /tmp/pnpm-install2.log | tail -5
cd <guest-path> && SB=$(readlink -f node_modules/electron/dist/chrome-sandbox); echo $SB; sudo -n chown root:root "$SB" && sudo -n chmod 4755 "$SB" && ls -l "$SB"; export PATH=$HOME/.local/node24/bin:$PATH; timeout 60 xvfb-run -a node_modules/electron/dist/electron --version 2>&1 | tail -3; echo; find node_modules/.pnpm -path '*node-pty*' -name 'pty.node' 2>/dev/null | head -3; node -e "require('$(find node_modules/.pnpm -maxdepth 1 -name 'node-pty@*' | head -1)/node_modules/node-pty')" 2>&1 | tail -2; echo ptyrc=$?
cd <guest-path> && export PATH=$HOME/.local/node24/bin:$PATH; D=$(readlink -f node_modules/node-pty); echo $D; cd $D && node -e "require('.')" 2>&1 | head -5; ls $D/build 2>/dev/null | head; ls $D/prebuilds 2>/dev/null; cd <guest-path> && grep -n "node-pty" -i /tmp/pnpm-install2.log | head; sed -n 1,40p config/scripts/rebuild-native-deps.mjs | head -60
cd <guest-path> && export PATH=$HOME/.local/node24/bin:$HOME/.local/bun/bin:$PATH NODE_USE_ENV_PROXY=1; timeout 1200 pnpm rebuild:electron > /tmp/rebuild-electron.log 2>&1; echo rc=$?; tail -8 /tmp/rebuild-electron.log
cd <guest-path> && export PATH=$HOME/.local/node24/bin:$HOME/.local/bun/bin:$PATH NODE_USE_ENV_PROXY=1 ORCA_DEV_MAIN_SOURCEMAPS=0; nohup xvfb-run -a pnpm dev > /tmp/orca-dev.log 2>&1 &
sleep 150; tail -30 /tmp/orca-dev.log | cut -c1-300
cd <guest-path> && export PATH=$HOME/.local/node24/bin:$PATH; timeout 60 node out/cli/index.js status --json 2>&1 | head -30; echo rc=$?; echo ---; sed -n 1,40p config/scripts/orca-dev.mjs | head -50
cd <guest-path> && export PATH=$HOME/.local/node24/bin:$PATH; timeout 60 node config/scripts/orca-dev.mjs status --json 2>&1 | head -40; echo; timeout 60 node config/scripts/orca-dev.mjs repo list --json 2>&1 | head -30; echo; timeout 60 node config/scripts/orca-dev.mjs --help 2>&1 | head -60
cd <guest-path> && export PATH=$HOME/.local/node24/bin:$PATH; timeout 60 node config/scripts/orca-dev.mjs --help 2>&1 | sed -n 60,140p; echo ---; timeout 60 node config/scripts/orca-dev.mjs repo add --help 2>&1 | head -30
set -e; mkdir -p <guest-path> && cd <guest-path> && git init -q -b main && git -c <email> -c user.name=t commit -q --allow-empty -m init && cd <guest-path> && export PATH=$HOME/.local/node24/bin:$PATH; timeout 120 node config/scripts/orca-dev.mjs repo add --path <guest-path> --json 2>&1 | head -40; echo ---; timeout 60 node config/scripts/orca-dev.mjs repo list --json 2>&1 | head -40
cd <guest-path> && wc -l check.py && grep -n "stays_running\|def \|expected_file\|Popen\|timeout" check.py | head -120
cd <guest-path> && sed -n 202,225p check.py; sed -n 612,652p check.py; sed -n 674,746p check.py
cd <guest-path> && pkill -f "run-electron-vite-dev" ; pkill -f "electron-vite" ; pkill -f "config/scripts/orca-dev" ; sleep 5; pkill -f "node_modules/electron/dist/electron"; pkill -f "vite"; sleep 3; pgrep -fa "electron|vite|pnpm dev" | grep -v pgrep | head -5; echo cleaned; export PATH=$HOME/.local/node24/bin:$PATH; timeout 60 node config/scripts/orca-dev.mjs repo list --json 2>&1 | head -12; echo rc=$?
cd <guest-path> && echo ok; git status --short | head; ls $HOME/.local/node24/bin | head -3; (ss -ltnp 2>/dev/null | grep 5173) ; echo done
cd <guest-path> && export PATH=$HOME/.local/node24/bin:$PATH && timeout 60 node config/scripts/orca-dev.mjs status --json; echo rc=$?; grep -n "run-cli\|stays_running\|def cli_details" <guest-path> | head -20
sed -n 640,740p <guest-path>
cd <guest-path> && grep -n "orca open\|orca serve\|orca start\|dev\b" docs/site/content/docs/cli/overview.mdx | head; export PATH=$HOME/.local/node24/bin:$PATH; timeout 20 node out/cli/index.js --help 2>&1 | head -40
cd <guest-path> && export PATH=$HOME/.local/node24/bin:$PATH && echo "DISPLAY=$DISPLAY" && timeout 200 xvfb-run -a node config/scripts/orca-dev.mjs open --json > /tmp/open.out 2>/tmp/open.err; echo rc=$?; head -c 1500 /tmp/open.out; echo ---; tail -c 600 /tmp/open.err
cd <guest-path> && grep -n "probe_kind\|cycles\|examples.json\|'checks'\|fault_owner\|cycle" check.py | head -60; grep -n "Agents drive Orca\|any CLI agent" <guest-path> | cat -A | cut -c1-200
cd <guest-path> && sed -n 955,1010p check.py; sed -n 1150,1185p check.py
cd <guest-path> && grep -n "orca automations\|schedule\|cron" docs/site/content/docs/cli/automations.mdx | head -20; grep -n "\"automations\"\|automations " out/cli/index.js 2>/dev/null | head -3; export PATH=$HOME/.local/node24/bin:$PATH; timeout 30 node config/scripts/orca-dev.mjs automations --help 2>&1 | head -20
cd <guest-path> && NODE=<guest-path>; ls -l $NODE && $NODE -v && timeout 60 $NODE config/scripts/orca-dev.mjs repo list --json | grep -n "demo-repo\|displayName" ; grep -n "Agents drive Orca too" README.md | head -2
cd <guest-path> && NODE=<guest-path>; timeout 60 $NODE config/scripts/orca-dev.mjs repo list --json; echo rc=$?
cd <guest-path> && mkdir -p .coldpass && NODE=<guest-path> && cat > .coldpass/probe.json <<EOF
{"kind":"cli","argv":["$NODE","config/scripts/orca-dev.mjs","open","--json"],"cwd":"<guest-path>","expected_text":"\"reachable\": true"}
EOF
cat > .coldpass/claims.json <<EOF
[{"kind":"claim","claim":"Agents can drive Orca from the orca CLI","source":"README.md","quote":"Agents drive Orca too — script every workflow with \`orca worktree create\`, \`snapshot\`, \`click\`, and \`fill\`.","source_quote":"Agents drive Orca too — script every workflow with \`orca worktree create\`, \`snapshot\`, \`click\`, and \`fill\`.","input":"node config/scripts/orca-dev.mjs open --json","expected":"the orca CLI launches Orca and reports the runtime reachable","probe_kind":"cli","argv":["$NODE","config/scripts/orca-dev.mjs","open","--json"],"cwd":"<guest-path>","expected_text":"\"reachable\": true"}]
EOF
python3 -c "import json;print(json.load(open('.coldpass/probe.json')));print(json.load(open('.coldpass/claims.json'))[0]['claim'])"; sed -n 1,40p <guest-path> | grep -n "source_file\|quote" ; grep -n "'source'\|\"source\"\|source_file" <guest-path> | head
cd <guest-path> && NODE=<guest-path> && python3 - <<'EOF'
import json
node="<guest-path>"
q="Agents drive Orca too — script every workflow with `orca worktree create`, `snapshot`, `click`, and `fill`."
claims=[{"kind":"claim","claim":"Agents can drive Orca through the orca CLI","source":q,"source_file":"README.md","input":"node config/scripts/orca-dev.mjs open --json","expected":"the orca CLI launches Orca and reports the runtime reachable","probe_kind":"cli","argv":[node,"config/scripts/orca-dev.mjs","open","--json"],"cwd":"<guest-path>","expected_text":"\"reachable\": true"}]
json.dump(claims,open('.coldpass/claims.json','w'),indent=2,ensure_ascii=False)
EOF
<env-var>=<guest-path> timeout 900 python3 -I <guest-path> --validate --replay 2>&1 | tail -60
ps -eo pid,etimes,args | grep -i "electron\|Xvfb\|orca" | grep -v grep | cut -c1-180 | head -20; ls -la <guest-path> 2>/dev/null | head; find <guest-path> -maxdepth 6 \( -name "SingletonLock" -o -name "*.lock" \) 2>/dev/null | head
cd <guest-path> && NODE=<guest-path>; timeout 200 xvfb-run -a $NODE config/scripts/orca-dev.mjs open --json > /tmp/open2.out 2>/tmp/open2.err; echo rc=$?; grep -n "reachable\|code\|desktopWindow" /tmp/open2.out | head; tail -c 800 /tmp/open2.err
cd <guest-path> && ls; find . -name "*.log" -newer /tmp/open.out 2>/dev/null | head; for f in $(find . -name "*.log" 2>/dev/null | head -3); do echo "== $f"; tail -n 15 "$f" | cut -c1-260; done
cd <guest-path> && ls -la; tail -n 30 daemon.log 2>/dev/null | cut -c1-300 | tail -20; grep -il "error\|fail" * 2>/dev/null | head
cd <guest-path> && NODE=<guest-path>; rm -rf <guest-path> <guest-path> && timeout 240 xvfb-run -a $NODE config/scripts/orca-dev.mjs open --json > /tmp/open3.out 2>/tmp/open3.err; echo rc=$?; grep -n "reachable\|\"code\"\|desktopWindowStatus" /tmp/open3.out | head -5
tail -n 6 <guest-path> | cut -c1-240; echo ---; tail -n 12 <guest-path> | cut -c1-240
cd <guest-path> && ls out 2>/dev/null; ls out/main 2>/dev/null | head -3; grep -n "electron\|spawn\|out/" config/scripts/orca-dev.mjs | head -20; sed -n 1,30p config/scripts/orca-dev.mjs | cut -c1-160
grep -n "Local:\|ready in\|VITE\|localhost:5173\|Electron\|window" /tmp/orca-dev.log | head -12 | cut -c1-200
cd <guest-path> && grep -n "pnpm dev" .github/CONTRIBUTING.md | cut -c1-200; ls -l <guest-path> | grep pnpm; <guest-path> --version 2>&1 | tail -1
cd <guest-path> && sed -n 18,28p .github/CONTRIBUTING.md | cat -A | cut -c1-180
cd <guest-path> && python3 - <<'EOF'
import json
pnpm="<guest-path>"
probe={"kind":"cli","argv":[pnpm,"dev"],"cwd":"<guest-path>","stays_running":True,"expected_text":"http://localhost:5173/"}
json.dump(probe,open('.coldpass/probe.json','w'),indent=2)
claims=[{"kind":"claim","claim":"The documented dev command starts the Orca desktop app","source":"pnpm dev","source_file":".github/CONTRIBUTING.md","input":"pnpm dev","expected":"Vite serves the renderer at http://localhost:5173/ and the app starts","probe_kind":"cli","argv":[pnpm,"dev"],"cwd":"<guest-path>","stays_running":True,"expected_text":"http://localhost:5173/"}]
json.dump(claims,open('.coldpass/claims.json','w'),indent=2,ensure_ascii=False)
EOF
<env-var>=<guest-path> timeout 900 python3 -I <guest-path> --validate --replay > /tmp/check1.json 2>&1; python3 -c "
import json;d=json.load(open('/tmp/check1.json'));print(d.get('valid'));[print('-',p[:400]) for p in d.get('problems',[])]" 2>/dev/null || tail -c 2000 /tmp/check1.json
env -i PATH=/usr/local/bin:/usr/bin:/bin sh -c 'command -v node; command -v pnpm; echo none-check'; sudo -n ln -sf <guest-path> /usr/local/bin/node && sudo -n ln -sf <guest-path> /usr/local/bin/npm && env -i PATH=/usr/local/bin:/usr/bin:/bin sh -c 'node -v; command -v pnpm || echo no-pnpm-on-clean-path'
cd <guest-path> && <env-var>=<guest-path> timeout 900 python3 -I <guest-path> --validate --replay > /tmp/check2.json 2>&1; python3 -c "
import json;d=json.load(open('/tmp/check2.json'));print(d.get('valid'));[print('-',p[:500]) for p in d.get('problems',[])]" 2>/dev/null || tail -c 1500 /tmp/check2.json
sudo -n ln -sf <guest-path> /usr/local/bin/pnpm && env -i PATH=/usr/local/bin:/usr/bin:/bin pnpm --version && cd <guest-path> && <env-var>=<guest-path> timeout 900 python3 -I <guest-path> --validate --replay > /tmp/check3.json 2>&1; python3 -c "
import json;d=json.load(open('/tmp/check3.json'));print(d.get('valid'));[print('-',p[:500]) for p in d.get('problems',[])]" 2>/dev/null || tail -c 1500 /tmp/check3.json
ps -eo pid,ppid,etimes,args | grep -E "vite|electron|run-electron|pnpm|Xvfb|xvfb" | grep -v grep | cut -c1-150 | head; (ss -ltnp | grep 5173) || echo port-free; grep -n "Probe did not finish" <guest-path> | head -3
kill -INT 11134 11162 11295 2>/dev/null; sleep 6; for p in 11134 11295 11131 11303; do kill -0 $p 2>/dev/null && kill -9 $p; done; sleep 2; (ss -ltnp | grep 5173) || echo port-free; ps -eo pid,args | grep -E "electron|vite|Xvfb" | grep -v grep | cut -c1-120 | head -3; echo cleaned
cd <guest-path> && P=<guest-path>; start=$(date +%s); (timeout 150 xvfb-run -a $P dev > /tmp/devtime.log 2>&1 &); for i in $(seq 1 140); do if grep -q "localhost:5173" /tmp/devtime.log 2>/dev/null; then echo "ready after $(( $(date +%s)-start ))s"; break; fi; sleep 1; done; grep -c "" /tmp/devtime.log; grep -n "localhost:5173" /tmp/devtime.log | head -2
for p in $(pgrep -f "run-electron-vite-dev|electron-vite|pnpm dev" 2>/dev/null); do kill -9 $p 2>/dev/null; done; sleep 2; (ss -ltnp | grep -E "5173|5174") || echo port-free; cd <guest-path> && <env-var>=<guest-path> timeout 900 python3 -I <guest-path> --validate --replay > /tmp/check4.json 2>&1; python3 -c "
import json;d=json.load(open('/tmp/check4.json'));print(d.get('valid'));[print('-',p[:400]) for p in d.get('problems',[])]" 2>/dev/null || tail -c 1200 /tmp/check4.json; (ss -ltnp | grep -E "5173|5174") || echo port-free-after
(ss -ltnp | grep -E "5173|5174") || echo port-free; cd <guest-path> && <env-var>=<guest-path> timeout 900 python3 -I <guest-path> --validate --replay > /tmp/check4.json 2>&1; python3 -c "
import json;d=json.load(open('/tmp/check4.json'));print(d.get('valid'));[print('-',p[:400]) for p in d.get('problems',[])]" 2>/dev/null || tail -c 1200 /tmp/check4.json; (ss -ltnp | grep -E "5173|5174") || echo port-free-after
grep -n "def stop_server\|def run_until_text" <guest-path>; sed -n "$(grep -n 'def stop_server' <guest-path> | cut -d: -f1),+14p" <guest-path>; sed -n "$(grep -n 'def run_until_text' <guest-path> | cut -d: -f1),+22p" <guest-path>
cd <guest-path> && P=<guest-path>; start=$(date +%s); timeout 300 $P install --frozen-lockfile > /tmp/inst.log 2>&1; echo rc=$? t=$(( $(date +%s)-start ))s; tail -n 6 /tmp/inst.log | cut -c1-160
cd <guest-path> && P=<guest-path>; ss -ltnp | grep 5173 | grep -o "pid=[0-9]*" | cut -d= -f2 | sort -u | while read pid; do kill -TERM $pid; done; sleep 3; ss -ltnp | grep 5173 | grep -o "pid=[0-9]*" | cut -d= -f2 | sort -u | while read pid; do kill -9 $pid; done; sleep 1; (ss -ltnp | grep -E "5173|5174") || echo port-free; python3 - <<'EOF'
import json
pnpm="<guest-path>"
probe={"kind":"cli","argv":[pnpm,"dev"],"cwd":"<guest-path>","stays_running":True,"expected_text":"http://localhost:5173/"}
json.dump(probe,open('.coldpass/probe.json','w'),indent=2)
claims=[{"kind":"claim","claim":"The documented pnpm install step prepares the workspace","source":"pnpm install","source_file":".github/CONTRIBUTING.md","input":"pnpm install --frozen-lockfile","expected":"pnpm reports the lockfile is up to date","probe_kind":"cli","argv":[pnpm,"install","--frozen-lockfile"],"cwd":"<guest-path>","expected_text":"Lockfile is up to date"}]
json.dump(claims,open('.coldpass/claims.json','w'),indent=2,ensure_ascii=False)
EOF
<env-var>=<guest-path> timeout 900 python3 -I <guest-path> --validate --replay > /tmp/check5.json 2>&1; python3 -c "
import json;d=json.load(open('/tmp/check5.json'));print(d.get('valid'));[print('-',p[:400]) for p in d.get('problems',[])]" 2>/dev/null || tail -c 1200 /tmp/check5.json
cd <guest-path> && sed -n "$(grep -n 'def example_result' check.py | cut -d: -f1),+22p" check.py | cut -c1-260; ss -ltnp | grep -E "5173|5174" || echo no-orphan
cd <guest-path> && P=<guest-path>; for c in lint typecheck; do s=$(date +%s); timeout 900 $P $c > /tmp/ex_$c.log 2>&1; echo "$c rc=$? t=$(( $(date +%s)-s ))s"; tail -n 3 /tmp/ex_$c.log | cut -c1-200; done
head -n 15 /tmp/ex_lint.log | cut -c1-220; echo ---; head -n 12 /tmp/ex_typecheck.log | cut -c1-220; free -m | head -2; nproc
cd <guest-path> && python3 - <<'EOF'
import json
P="<guest-path>"
ex=[
 {"claim":"Documented pnpm install step","source":".github/CONTRIBUTING.md","input":"pnpm install --frozen-lockfile","expected":"Lockfile is up to date","argv":[P,"install","--frozen-lockfile"],"cwd":"<guest-path>"},
 {"claim":"Documented lint check before opening a PR","source":".github/CONTRIBUTING.md","input":"pnpm lint","expected":"lint passes","argv":[P,"lint"],"cwd":"<guest-path>"},
 {"claim":"Documented typecheck before opening a PR","source":".github/CONTRIBUTING.md","input":"pnpm typecheck","expected":"typecheck passes","argv":[P,"typecheck"],"cwd":"<guest-path>"},
 {"claim":"Documented offline test suite (pnpm test)","source":".github/CONTRIBUTING.md","input":"pnpm test","expected":"Vitest suites pass","deferred":True,"reason":"Not run in this session: the full Bun/Vitest suite was not completed; lint and typecheck already fail on this VM (4 GB RAM, 2 CPUs), so the suite was deferred to limit runtime."},
]
json.dump(ex,open('.coldpass/examples.json','w'),indent=2,ensure_ascii=False)
cy={"detected":True,"checks":[{"claim":"Orca runs scheduled automations","source":"docs/site/content/docs/cli/automations.mdx","quote":"orca automations run <automationId> --json","input":"orca automations run <automationId> --json","expected":"one automation run is triggered by hand","schedule":"presets such as hourly/daily or cron/RRULE","method":"manual trigger via orca automations run","reason":"Needs an existing automation with a target project and an installed agent CLI; no automation was created in this session, so no cycle was triggered."}]}
json.dump(cy,open('.coldpass/cycles.json','w'),indent=2)
EOF
<env-var>=<guest-path> timeout 900 python3 -I <guest-path> --validate --replay > /tmp/check6.json 2>&1; python3 -c "
import json;d=json.load(open('/tmp/check6.json'));print(d.get('valid'));[print('-',p[:400]) for p in d.get('problems',[])]" 2>/dev/null || tail -c 1500 /tmp/check6.json
cd <guest-path> && grep -n "fault_owner\|'partial'\|'working'" check.py | head -12 | cut -c1-240; grep -n "report.json" check.py | head -5 | cut -c1-200
cd <guest-path> && python3 - <<'EOF'
import json
report={
 "outcome":"partial",
 "fault_owner":"unknown",
 "operation":"Start the Orca desktop dev app with the documented `pnpm dev` (CONTRIBUTING.md Local Setup) and verify the Vite renderer URL; verify the documented `pnpm install` step.",
 "operation_scope":"partial: the probe and claim replay prove the dev app starts and serves http://localhost:5173/, and that pnpm install reports the lockfile up to date. Examples lint and typecheck fail on this VM; pnpm test was deferred; cycle check blocked; the orca CLI repo add/list operations were observed earlier but are not replayable in this checker because the app only stays up while pnpm dev runs.",
 "steps":[
  "Installed Node v24.22.1 user-local at <guest-path> (nodejs.org dist tarball) and pnpm 12.14.0 via npm.",
  "Installed Bun 1.4.4 via the official bun.sh installer after apt-get installed unzip.",
  "Installed build-essential and python3 via apt for node-pty/cpu-features native builds; pnpm install --frozen-lockfile then succeeded.",
  "Fixed Electron Linux prerequisites: chrome-sandbox setuid root (chown root:root, chmod 4755) and GTK/ATK/NSS/Xvfb libraries via apt.",
  "Ran pnpm build:cli (out/cli/index.js built; optional /usr/local/bin/orca-dev symlink skipped, permission denied).",
  "Ran pnpm dev under Xvfb; Vite printed Local: http://localhost:5173/ and Electron loaded.",
  "Used config/scripts/orca-dev.mjs to register a throwaway repo and list it through the CLI while the app was running.",
  "Checker replay of `orca open --json` and of `pnpm dev` exposed that the Electron app and its Xvfb session exit with the command, and that the checker's stop_server leaves Vite on 5173 orphaned; the probe is pnpm dev and the claim is pnpm install.",
  "Symlinked node, npm and pnpm into /usr/local/bin so the checker's clean PATH can run pnpm dev.",
  "Ran pnpm lint and pnpm typecheck; both failed (see examples.json)."
 ],
 "deviations":[
  "Used sudo apt-get for unzip, build-essential, python3, xvfb, xauth, and Electron GTK/ATK/NSS/ALSA libraries; these are system prerequisites not installed by the README.",
  "Set chrome-sandbox to setuid root in the pnpm store (required for Electron on Linux).",
  "Created /usr/local/bin symlinks for node, npm and pnpm so the checker's clean PATH resolves them.",
  "pnpm build and build:native (Linux) require a Docker daemon per CONTRIBUTING.md; Docker is not installed, so the Linux packaging build was not run.",
  "orca-dev optional /usr/local/bin symlink was skipped (permission denied); the wrapper was invoked by path.",
  "pnpm lint failed with an oxlint allocator panic on this VM; pnpm typecheck was SIGKILLed (4 GB RAM, 2 CPUs).",
  "pnpm test (Bun/Vitest) was deferred and not run.",
  "Cycle check: the product has scheduled automations; the manual trigger was not exercised because no automation was created.",
  "Probe/claim for the Orca CLI open command was dropped: the app exits with xvfb-run and the checker's 120 s claim window and orphaned Vite process made it unreliable."
 ],
 "stuck_step":"pnpm lint and pnpm typecheck (examples) fail; orphaned Vite/Electron processes from checker stop_server",
 "main_blocker":"lint oxlint panic and typecheck SIGKILL on this 4 GB / 2 CPU VM; Docker absent for Linux build",
 "plain_failure":"`pnpm lint` aborts with an oxc allocator panic; `pnpm typecheck` is killed by SIGKILL during tsrs; `pnpm build` needs Docker.",
 "suggested_fix":"Run lint and typecheck on a machine with more RAM (typecheck), and report the oxlint panic upstream; install Docker for the Linux build; make the checker stop the whole process tree for stays_running dev servers."
}
json.dump(report,open('.coldpass/report.json','w'),indent=2,ensure_ascii=False)
print("written")
EOF
<env-var>=<guest-path> timeout 900 python3 -I <guest-path> --validate --replay > /tmp/check7.json 2>&1; python3 -c "
import json;d=json.load(open('/tmp/check7.json'));print('valid=',d.get('valid'));[print('-',p[:300]) for p in d.get('problems',[])]" 2>/dev/null || tail -c 800 /tmp/check7.json; ss -ltnp | grep -E "5173|5174" || echo no-listeners
ps -eo pid,args | grep -E "Xvfb|electron|vite|pnpm dev|xvfb-run" | grep -v grep | cut -c1-120 | head -5; echo check-done; cd <guest-path> && git status --short | head
kill -TERM 11753 12504 2>/dev/null; sleep 2; ps -eo pid,args | grep -E "Xvfb" | grep -v grep | cut -c1-80 | head -3; echo ok
Earlier attempts (1)

Luna

Native agent · Not tested (blocked: setup step)

Operation / attempted scope pnpm dev

Run details
run
stablyai--orca-gpt-6-luna-1792788872369838558
date
Oct 23, 2026
time to working
not established
product hosting / execution
Local command in the guest
recorded operation scope
product operation
model
gpt-6-luna
agent / version
codex / codex-cli 0.163.0
platform
linux
reported cost
not reported (not assumed free)
Recorded source
https://github.com/stablyai/orca
Backend
hyperv
Tool transport
mcp-assigned-vm
Requested source pin (not an observed revision)
{"commit": "2847bbe9e81ea8d94f0e42560aa981b3fccd4614", "url": "https://github.com/stablyai/orca"}
Test version
readme-f72312298d35d84837d4fc5f6f22b138d54d456600b5ed431e36e8f5db931dbf
revision
2847bbe9e81ea8d94f0e42560aa981b3fccd4614
Whose fault: prerequisite · diagnosed

After dependencies and Electron runtime packages were installed, pnpm dev stalled during electron-vite build; it emitted no desktop process, and the advertised CDP endpoint refused connections.

Recorded blocker / warning

Step: Launch/render the desktop app and check a useful UI action through CDP.

After dependencies and Electron runtime packages were installed, pnpm dev stalled during electron-vite build; it emitted no desktop process, and the advertised CDP endpoint refused connections.

Safety: Review signals: 1 connection review, 1 encoded execution, 258 hardcoded secret, 7 known vulnerability, 1 outside write. 48 static matches retained as context.

Review signals: 1 connection review, 1 encoded execution, 258 hardcoded secret, 7 known vulnerability, 1 outside write. 48 static matches retained as context.

Repository processes attempted these non-loopback connections; proxies can hide the final hostname. 13 distinct locations. 7 attributed processes.

Source contains encoded execution; review its purpose. src/main/wsl-bash-command.ts

Gitleaks found a possible hardcoded secret; value withheld. 70 distinct locations. 238 findings.

OSV reports a known vulnerability in this dependency version. 3 distinct locations. 7 findings.

Repository processes attempted these writes outside documented output/cache paths. /usr/bin/python3 1 attributed processes.

PID 10302: /usr/bin/node · <guest-path>

2 download and execute matches retained as context; full list in the evidence.

2 encoded blob matches retained as context; full list in the evidence.

2 encoded execution matches retained as context; full list in the evidence.

41 hardcoded secret matches retained as context; full list in the evidence.

OSV scanned supported lockfiles; unpinned dependencies and unsupported formats are outside this check.

A short run cannot establish that code is safe.

Connections show IP addresses; proxies can hide the final hostname.

Tracing covers dispatched commands and their children, not the whole OS; guest root can interfere with tracing.

Full safety evidence →

Answers recorded for this run
  • Orca is an AI orchestrator for parallel agents in worktrees.: The documented desktop app launch started compilation but did not produce the app process or CDP endpoint during the observed attempt; no UI result was available.

    Source: Run Codex, ClaudeCode, OpenCode or Pi side-by-side — each in its own worktree, tracked in one place.

    Observed: The documented desktop app launch started compilation but did not produce the app process or CDP endpoint during the observed attempt; no UI result was available.

Local or hosted: local

Suggested next step (unverified): Investigate why electron-vite development compilation does not progress beyond transforming 8629 modules in this guest, then rerun pnpm dev and verify the app through the configured CDP endpoint.

What the agent did

pnpm dev

pwd; id -u; rg --files -g 'README*' -g 'AGENTS.md' -g 'pyproject.toml' -g 'package.json' -g 'requirements*.txt' -g 'Dockerfile' -g 'Makefile' -g '.github/workflows/**' -g 'setup.py' -g 'uv.lock' | head -100; ls -la
cat AGENTS.md; cat README.md; cat package.json; python3 --version; node --version; npm --version; command -v pnpm || true; ls -la .coldpass
cat .github/CONTRIBUTING.md; find <guest-path> -maxdepth 3 -type f -print 2>/dev/null | head; which sudo; sudo -n true; uname -a; command -v apt-get; command -v curl; git status --short; git rev-parse HEAD; sed -n '1,140p' .github/workflows/ci.yml 2>/dev/null
pwd
git init; git remote add origin https://github.com/stablyai/orca; git fetch --depth 1 origin 2847bbe9e81ea8d94f0e42560aa981b3fccd4614; git reset --mixed FETCH_HEAD; git rev-parse HEAD; cat config/.bun-version; env | sort | grep -Ei 'proxy|cdp|browser|coldpass'
set -e; curl -fsSL https://deb.nodesource.com/setup_24.x | sudo -E bash -; sudo -n apt-get install -y nodejs; corepack enable; corepack prepare <email> --activate; curl -fsSL https://bun.sh/install | bash;
sudo -n corepack enable; corepack prepare <email> --activate; curl -fsSL https://bun.sh/install | bash; node --version; pnpm --version; <guest-path> --version; cat config/.bun-version
sudo -n apt-get install -y unzip; curl -fsSL https://bun.sh/install | bash; <guest-path> --version
false
export PATH=<guest-path>; export NODE_USE_ENV_PROXY=1; export CI=1; pnpm install
sudo -n apt-get install -y build-essential python3 make g++ pkg-config libsecret-1-dev libx11-dev; export PATH=<guest-path>; export NODE_USE_ENV_PROXY=1; export CI=1; pnpm install
sudo -n apt-get install -y libgtk-3-0t64 libnss3 libxss1 libasound2t64 libxtst6 libx11-xcb1 libxkbfile1 libnotify4 libgbm1 libdrm2 libxshmfence1 libxrandr2 libxdamage1 libxcomposite1 libxfixes3 libxrender1 libxext6 libglib2.0-0t64 libatk1.0-0t64 libcups2t64 libdbus-1-3 libpango-1.0-0 libatk-bridge2.0-0t64 libatspi2.0-0t64 libxkbcommon0 libxkbcommon-x11-0 xvfb; export PATH=<guest-path>; export NODE_USE_ENV_PROXY=1; export ORCA_BACKGROUND_LAUNCH=1; export ORCA_DEV_MAIN_SOURCEMAPS=0; pnpm dev > <guest-path> 2>&1 & echo $! > <guest-path>; sleep 50; cat <guest-path>; ps -p $(cat <guest-path>) -o pid,stat,cmd; find /tmp -maxdepth 3 -iname '*cdp*' -o -iname '*browser*' | head -40
cat <guest-path>; ps aux | grep -E 'electron|orca|vite' | grep -v grep; curl -sS http://127.0.0.1:9371/json/list || true; find <guest-path> -maxdepth 3 -type f | grep -Ei 'cdp|browser' | head -50; mkdir -p .coldpass
tail -80 <guest-path>; ps -ef | grep -E 'electron|electron-vite|vite.*dev' | grep -v grep; curl -sS --max-time 3 http://127.0.0.1:9371/json/list; ls -l <guest-path>
ps -ef | grep -E 'electron|electron-vite|vite.*dev' | grep -v grep; tail -25 <guest-path>; ls -l out/main out/preload out/renderer 2>/dev/null; find out -maxdepth 2 -type f | head
find <guest-path> -maxdepth 2 -type f -printf '%p %s\n' | head -30; pgrep -af electron; pgrep -af 'pnpm dev|run-electron-vite-dev'
sed -n '1,240p' config/scripts/run-electron-vite-dev.mjs; sed -n '1,160p' electron.vite.config.ts
kill -TERM 11631 11933 12082 12090 2>/dev/null || true; pgrep -af 'electron-vite|pnpm dev' | grep -v coldpass || true; mkdir -p .coldpass; python3 - <<'PY'
import json
root='<guest-path>'
json.dump({"kind":"cli","argv":["pnpm","dev"],"cwd":root,"env":{"PATH":"<guest-path>","NODE_USE_ENV_PROXY":"1","ORCA_BACKGROUND_LAUNCH":"1","ORCA_DEV_MAIN_SOURCEMAPS":"0"},"checks":[{"check":"install","argv":["pnpm","install"],"cwd":root,"expected_text":"Done in 33.2s using pnpm v12.14.0"},{"check":"start","argv":["pnpm","dev"],"cwd":root,"expected_text":"Remote debugging on http://127.0.0.1:9371"},{"check":"credentials_error","argv":["pnpm","dev"],"cwd":root,"expected_text":"command exceeded the attempt ceiling"}]},open(root+'/.coldpass/probe.json','w'),indent=2)
json.dump([{"kind":"claim","claim":"Orca is an AI orchestrator for parallel agents in worktrees.","source":"Run Codex, ClaudeCode, OpenCode or Pi side-by-side — each in its own worktree, tracked in one place.","testable":False,"reason":"The documented desktop app launch started compilation but did not produce the app process or CDP endpoint during the observed attempt; no UI result was available."}],open(root+'/.coldpass/claims.json','w'),indent=2)
json.dump([],open(root+'/.coldpass/examples.json','w'),indent=2)
json.dump({"detected":False,"reason":"Inspected README and documented desktop entry points; no product scheduling or recurring cycle described. Orca is launched as an interactive desktop application.","checks":[]},open(root+'/.coldpass/cycles.json','w'),indent=2)
PY
mkdir -p .coldpass
<env-var>=<guest-path> python3 -I <guest-path> --validate --replay; ls -l <guest-path> /inputs/coldpass-preflight.py 2>/dev/null
python3 - <<'PY'
import json
p='.coldpass/probe.json'; d=json.load(open(p)); d['kind']='cli'; d.pop('checks',None); d['stays_running']=True; d['expected_text']='Remote debugging on http://127.0.0.1:9371'; json.dump(d,open(p,'w'),indent=2)
PY
<env-var>=<guest-path> python3 -I <guest-path> --validate --replay
python3 - <<'PY'
import json
p='.coldpass/report.json'
r={"outcome":"blocked","fault_owner":"prerequisite","operation":"pnpm dev","operation_scope":"Documented Orca desktop development launch on Linux, with Node 24, pnpm 12.14.0, Bun 1.4.4, and Linux desktop runtime libraries installed.","steps":["Initialized Git metadata and fetched/reset to 2847bbe9e81ea8d94f0e42560aa981b3fccd4614.","Installed Node 24.22.1, pnpm 12.14.0, Bun 1.4.4, Python 3.12.3, native build tools, and Electron runtime libraries.","Ran pnpm install successfully.","Ran documented pnpm dev with ORCA_BACKGROUND_LAUNCH=1; compilation completed, but no Electron process or CDP endpoint became available."],"deviations":["Initial pnpm install failed because native node-pty compilation could not find make; installing build-essential and development headers resolved it.","Bun installer initially reported missing unzip; installed unzip and Bun successfully.","Documented app launch output included Remote debugging on http://127.0.0.1:9371, but polling found no listener and electron-vite remained compiling; no real UI operation could be checked."],"stuck_step":"Launch/render the desktop app and check a useful UI action through CDP.","main_blocker":"After dependencies and Electron runtime packages were installed, pnpm dev stalled during electron-vite build; it emitted no desktop process, and the advertised CDP endpoint refused connections.","plain_failure":"The app dependencies installed, but the development launch did not finish starting Orca, so its desktop behavior could not be exercised.","suggested_fix":"Investigate why electron-vite development compilation does not progress beyond transforming 8629 modules in this guest, then rerun pnpm dev and verify the app through the configured CDP endpoint."}
json.dump(r,open(p,'w'),indent=2)
PY
<env-var>=<guest-path> python3 -I <guest-path> --validate --replay