coldpass

craft-native/craft

GitHub ↗ · How this check works

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

csshtmljavascripttauritypescriptelectron

Not tested

Only older checks are saved; no current product test.

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

Needs keys or browser
None seen

Safety: no observations were recorded for the selected revision. Functional results do not establish a safety result.

Recorded repair observations

Retained repair evidence. This record does not qualify for a controlled cold comparison. Its declarations are historical evidence, not a current proof badge.

Historical record (JSON) · Declared comparison (JSON) · Retained patch

  • incomplete or contradictory comparison declaration
Repair history and test corrections
Earlier diagnoses and Coldpass test changes
Current diagnosis: unknown · resolved

Same fault as craft README build-path finding (pantry/pinned Zig/first-party checkouts); handled by launch-proof/craft and fix-g3-craft-readme2. Resolved .

Recorded action: Inspect actual repair evidence; diagnose test/prerequisite fault or provide a complete existing-file patch.

Repair record fix-35c4eb1acdd6ea37d561 · current status JSON. Original run outcomes remain unchanged.

Failed run: craft-native/craft · Oct 17, 2026 · Recorded operation failed.

Repair development: craft-native/craft · Oct 17, 2026 · Repair work (development) · not an initial-trial result.

Current diagnosis: unknown · resolved

superseded by fix-g3-craft-readme2 (prove run hung on the check.py --probe bug, fixed in 116ff643)

Recorded action: Inspect actual repair evidence; diagnose test/prerequisite fault or provide a complete existing-file patch.

Repair record fix-g3-craft-readme · current status JSON. Original run outcomes remain unchanged.

Failed run: craft-native/craft · Oct 17, 2026 · Recorded operation failed.

Repair development: craft-native/craft · Oct 18, 2026 · Repair work (development) · not an initial-trial result.

Current diagnosis: unknown · resolved

Repair did not establish a complete repo patch with a checked useful operation.

Recorded action: Inspect actual repair evidence; diagnose test/prerequisite fault or provide a complete existing-file patch.

Repair record fix-g3-craft-readme2 · current status JSON. Original run outcomes remain unchanged.

Failed run: craft-native/craft · Oct 17, 2026 · Recorded operation failed.

Repair development: craft-native/craft · Oct 18, 2026 · Repair work (development) · not an initial-trial result.

Fix verification: craft-native/craft · Oct 18, 2026 · Recorded operation failed.

Current diagnosis: unknown · fix verification did not pass

craft-native rerun 2 of 2 on 9ac86248e662

Repair record fix-g3-craft-readme4 · current status JSON. Original run outcomes remain unchanged.

Failed run: craft-native/craft · Oct 17, 2026 · Recorded operation failed.

Repair development: craft-native/craft · Oct 18, 2026 · Repair work (development) · not an initial-trial result.

Test-repair rerun: craft-native/craft · Oct 18, 2026 · Not tested.

Fix verification: craft-native/craft · Oct 18, 2026 · Checked operation passed.

Run details

Haiku 5.5

Native agent · Not tested

Checked operation <host-path> --html '<h1>Craft smoke test</h1>' --title SmokeTest --quit-on-close

Agent-reported scope: Build craft from source (packages/zig, ReleaseSafe) and launch a native window rendering HTML via the craft CLI (`craft --html ... --title SmokeTest`); probe waits for 'Loading HTML content in native window' and the process is stopped by the checker.

Run details
run
craft-native--craft-claude-haiku-5-5-1792329049703970906
date
Oct 18, 2026
time to working
not recorded
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.027010
Recorded source
https://github.com/craft-native/craft
Tool transport
mcp-assigned-vm
Test version
readme-cf5e77b54d6a53931763b79581cfc89ff1b268f1b2e3230c1dcda1269a82e43f
revision
b71d2e84a539e728a3ee9be6fe86a7f846f49802
Current diagnosis: unknown · fix verification did not pass

craft-native rerun 2 of 2 on 9ac86248e662

Repair record fix-g3-craft-readme4 · current status JSON. Original run outcomes remain unchanged.

Failed run: craft-native/craft · Oct 17, 2026 · Recorded operation failed.

Repair development: craft-native/craft · Oct 18, 2026 · Repair work (development) · not an initial-trial result.

Test-repair rerun: craft-native/craft · Oct 18, 2026 · Not tested.

Fix verification: craft-native/craft · Oct 18, 2026 · Checked operation passed.

Double-checks failed run: craft-native/craft · Oct 17, 2026.

Fix: fix-g3-craft-readme3.

What the agent did

Build craft from source (packages/zig, ReleaseSafe) and launch a native window rendering HTML via the craft CLI (`craft --html ... --title SmokeTest`); probe waits for 'Loading HTML content in native window' and the process is stopped by the checker.

cd <host-path> && ls -la && cat README* 2>/dev/null | head -300
echo CDP=$CDP_URL $<env-var>; ls -la <host-path> 2>/dev/null; which node npm python3 pip3 go cargo 2>&1; uname -a; cat /etc/os-release | head -2
cd <host-path> && grep -n '^#' README.md; echo ---; sed -n '/^## Get Started/,$p' README.md | grep -v '^$' | head -150
cd <host-path> && grep -in 'mcp' README.md | head; sed -n 625,650p README.md; grep -n '"build:core"\|"dev"\|"build"' package.json; cat craft; ls bin packages | head -50
export DEBIAN_FRONTEND=noninteractive; sudo apt-get update -qq >/tmp/apt.log 2>&1; sudo apt-get install -y -qq libgtk-3-dev libwebkit2gtk-4.1-dev git unzip curl xvfb >>/tmp/apt.log 2>&1; echo apt=$?; tail -3 /tmp/apt.log; which bun || (curl -fsSL https://bun.sh/install | bash >/tmp/bun.log 2>&1; echo bun=$?; tail -3 /tmp/bun.log)
export PATH=$HOME/.bun/bin:$PATH; export NODE_USE_ENV_PROXY=1; cd <host-path> && bun --version && timeout 900 bun install >/tmp/bunins.log 2>&1; echo bun_install=$?; tail -15 /tmp/bunins.log
export PATH=$HOME/.bun/bin:$PATH; export NODE_USE_ENV_PROXY=1; cd <host-path> && which pantry || (timeout 600 bun add -g pantry >/tmp/pantry-g.log 2>&1; echo g=$?; tail -3 /tmp/pantry-g.log); export PATH=$HOME/.bun/bin:$PATH; timeout 900 pantry install >/tmp/pantry.log 2>&1; echo pantry_install=$?; tail -15 /tmp/pantry.log
grep -i 'err\|expat' /tmp/pantry-g.log | head -20
export DEBIAN_FRONTEND=noninteractive; sudo apt-get install -y -qq build-essential libexpat1-dev >>/tmp/apt.log 2>&1; echo apt=$?; export PATH=$HOME/.bun/bin:$PATH; export NODE_USE_ENV_PROXY=1; cd <host-path> && timeout 600 bun add -g pantry >/tmp/pantry-g.log 2>&1; echo g=$?; tail -3 /tmp/pantry-g.log; cd <host-path> && timeout 900 pantry install >/tmp/pantry.log 2>&1; echo pantry_install=$?; tail -8 /tmp/pantry.log
export PATH=$HOME/.bun/bin:$PATH; export NODE_USE_ENV_PROXY=1; cd <host-path> && ls ~/.bun/bin; timeout 900 ~/.bun/bin/pantry install >/tmp/pantry.log 2>&1; echo pantry_install=$?; tail -8 /tmp/pantry.log
export PATH=$HOME/.bun/bin:$PATH; export NODE_USE_ENV_PROXY=1; cd <host-path> && P=$(ls ~/.bun/install/global/node_modules/pantry/bin/* 2>/dev/null | head -1); echo P=$P; cat ~/.bun/install/global/node_modules/pantry/package.json | grep -A2 '"bin"'; timeout 900 bun ~/.bun/install/global/node_modules/pantry/bin/*.js install >/tmp/pantry.log 2>&1; echo pantry_install=$?; tail -8 /tmp/pantry.log
ls ~/.bun/install/global/node_modules/pantry/ ; grep -A3 '"bin"' ~/.bun/install/global/node_modules/pantry/package.json; cat <host-path>
cd <host-path> && grep -rn -i 'pantry' --include=*.md . | grep -i 'install\|curl\|sh' | grep -v CHANGELOG | head -15; grep -n 'zig' scripts/zig.ts | head -20; ls scripts
cd <host-path> && grep -rn -i 'pantry' .github/workflows/*.yml | head -10; grep -rn -i 'pantry' deps.yaml | head
for u in https://pantry.dev/install https://pantry.sh/install.sh https://get.pantry.dev https://raw.githubusercontent.com/pantry-pm/pantry/main/install.sh; do echo "== $u"; curl -fsSL -m 30 -o /tmp/pinst.sh $u && wc -c /tmp/pinst.sh && head -5 /tmp/pinst.sh; done 2>&1 | head -40
cd <host-path> && grep -rn -i 'pantry' docs/*.md docs/**/*.md 2>/dev/null | grep -i 'curl\|install' | head -8; grep -rn 'pantry.sh\|pantry.dev' --include=*.md --include=*.yml . 2>/dev/null | grep -v node_modules | head -8
cd <host-path> && sed -n 1,40p docs/GETTING_STARTED.md; grep -n -i 'zig' docs/install.md | head -20
export PATH=$HOME/.bun/bin:$PATH; export NODE_USE_ENV_PROXY=1; cd /tmp && for p in pantry-cli @pantry/cli pantry-pm ts-pantry; do echo "== $p"; timeout 60 npm view $p name version bin 2>&1 | head -6; done
export PATH=$HOME/.bun/bin:$PATH; cd /tmp && for p in pantry-cli @pantry/cli ts-pantry; do echo "== $p"; timeout 60 bun pm view $p name version bin 2>&1 | head -6; done; ls ~/.bun/install/global/node_modules/ | head -30
grep -n -i 'install\|curl\|cli' ~/.bun/install/global/node_modules/pantry/README.md | head -20; cd <host-path>; grep -n -i 'pantry' -A3 docs/install.md | sed -n 1,30p
curl -fsSL -m 30 https://pantry.sh/ | grep -o -i 'curl[^<"]*\|https://[^"< ]*install[^"< ]*\|bun add[^<"]*\|npm i[^<"]*' | sort -u | head -20; echo; curl -sS -m 20 -o /dev/null -w '%{http_code}\n' https://pantry.sh/install.sh
curl -fsSL -m 30 https://pantry.sh/ -o /tmp/home.html; grep -o -i '[a-z./:]*install[a-z./:]*' /tmp/home.html | sort -u | head; grep -o 'pantry[^" ]*' /tmp/home.html | sort -u | head -20; wc -c /tmp/home.html
mkdir -p /tmp/zigdl && cd /tmp/zigdl && for u in https://ziglang.org/builds/zig-x86_64-linux-0.17.0-dev.1963+e00c6c439.tar.xz https://ziglang.org/builds/zig-linux-x86_64-0.17.0-dev.1963+e00c6c439.tar.xz; do curl -fsSL -m 300 -O "$u" && echo OK $u && break; echo FAIL $u; done; ls -la
cd /tmp && (python3 -m pip --version || sudo apt-get install -y -qq python3-pip python3-venv >/dev/null 2>&1); timeout 120 python3 -m pip index versions ziglang 2>&1 | head -3; timeout 60 curl -sS -m 30 -o /dev/null -w '%{http_code}\n' https://ziglang.org/download/index.json; apt-cache policy zig 2>/dev/null | head -3
sudo apt-get install -y -qq python3-venv >/dev/null 2>&1; python3 -m venv <host-path> && <host-path> install -q ziglang==0.17.0 2>&1 | tail -3; <host-path> -m ziglang version
cd <host-path> && sed -n 1,50p scripts/zig.ts | grep -n 'CRAFT_ZIG\|override\|env' ; printf '#!/bin/sh\nexec <host-path> -m ziglang "$@"\n' > <host-path> && chmod +x <host-path> && <host-path> version
export PATH=$HOME/.bun/bin:$PATH NODE_USE_ENV_PROXY=1 CRAFT_ZIG=<host-path> CRAFT_ALLOW_UNPINNED_ZIG=1; cd <host-path> && timeout 1500 bun run build:core >/tmp/build.log 2>&1; echo build=$?; tail -30 /tmp/build.log; ls -la packages/zig/zig-out/bin 2>&1
cd <host-path> && grep -rn 'Libraries' --include=*.zig --include=*.zon --include=*.ts . ../../build.zig ../../deps.yaml 2>/dev/null | grep -v zig-cache | head; ls ..; ls <host-path> 2>&1
cd <host-path> && grep -rn 'zig-js' --include=*.zig --include=*.zon --include=*.ts --include=*.yaml --include=*.toml --include=*.json . 2>/dev/null | grep -v node_modules | grep -v zig-cache | head
cd <host-path> && grep -n 'Libraries\|zig_js\|zig-js' build.zig | head -20; grep -rn 'zig-js\|zigjs' ../../craft.toml ../../deps.yaml ../../pantry.jsonc build.zig.zon 2>/dev/null | head
cd <host-path> && sed -n 44,62p build.zig; cat build.zig.zon | sed -n 1,20p
export CRAFT_ZIG=<host-path> CRAFT_ALLOW_UNPINNED_ZIG=1; cd <host-path> && timeout 1500 <host-path> build -Doptimize=ReleaseSafe -Djs-runtime=false >/tmp/build2.log 2>&1; echo rc=$?; tail -8 /tmp/build2.log; ls zig-out/bin 2>&1
cd <host-path> && ./packages/zig/zig-out/bin/craft --help 2>&1 | head -60; echo rc=$?
cd <host-path> && (pgrep Xvfb || (Xvfb :99 -screen 0 1280x1024x24 >/tmp/xvfb.log 2>&1 &)); sleep 2; export DISPLAY=:99; timeout 20 ./packages/zig/zig-out/bin/craft --html "<h1>Hello Craft</h1>" --title SmokeTest --quit-on-close 2>&1 | head -40; echo rc=${PIPESTATUS[0]}
cd <host-path> && ls -la .coldpass 2>&1; grep -n 'stays_running\|expected_text\|def validate\|--validate\|absolute\|cwd' <host-path> | head -60
sed -n 55,80p <host-path>; sed -n 330,345p <host-path>; sed -n 370,380p <host-path>; sed -n 440,560p <host-path>
cd <host-path> && mkdir -p .coldpass && cat > .coldpass/probe.json <<'EOF'
{"kind":"cli","argv":["<host-path>","--html","<h1>Craft smoke test</h1>","--title","SmokeTest","--quit-on-close"],"cwd":"<host-path>","stays_running":true,"expected_text":"Loading HTML content in native window"}
EOF
<env-var>=<host-path> python3 -I <host-path> --validate; echo rc=$?
pkill -f 'Xvfb :99' ; sleep 1; cd <host-path> && env -i PATH=/usr/bin:/bin HOME=<host-path> <env-var>=<host-path> timeout 200 python3 -I <host-path> --probe; echo rc=$?; pgrep -fa 'craft|Xvfb' | grep -v pgrep
cd <host-path> && cat .coldpass/observed.json 2>&1; echo; cd <host-path> && <env-var>=<host-path> timeout 200 python3 -I <host-path> --probe 2>&1 | tail -5; echo rc=$?; grep -n 'PRODUCT_SECONDS =\|^WORKSPACE\|^def main\|exit(255\|_exit' <host-path> | head
cd <host-path> && env -i PATH=/usr/bin:/bin HOME=<host-path> <env-var>=<host-path> timeout 200 python3 -I <host-path> --probe; echo rc=$?; ls -la .coldpass; cat .coldpass/observed.json | head -c 600
cd <host-path> && rm -f .coldpass/observed.json && cat > .coldpass/report.json <<'EOF'
{"outcome":"working","operation":"Build craft from source (packages/zig, ReleaseSafe) and launch a native window rendering HTML via the craft CLI (`craft --html ... --title SmokeTest`); probe waits for 'Loading HTML content in native window' and the process is stopped by the checker.","operation_scope":"Launch-and-render check only (window opens, page loads, process stopped by checker). Not exercised: README's `craft http://localhost:3000` URL flow (needs a server), TypeScript SDK, mobile, or interactive behavior. Runs under xvfb-run (no DISPLAY in checker env). Pantry-managed Zig toolchain was not available; built with unpinned Zig 0.17.0 release.","steps":["apt-get install -y libgtk-3-dev libwebkit2gtk-4.1-dev git unzip curl xvfb build-essential libexpat1-dev (README: Platform-Specific Dependencies)","curl -fsSL https://bun.sh/install | bash (bun 1.4.3)","bun install (repo root)","bun add -g pantry (npm package [email protected]; this is an unrelated HTTP cache library, not the Pantry CLI)","pip install ziglang==0.17.0 into <host-path>; wrapper <host-path> CRAFT_ALLOW_UNPINNED_ZIG=1 bun run build:core -> failed (see deviations)","cd packages/zig && zig build -Doptimize=ReleaseSafe -Djs-runtime=false -> success, produced packages/zig/zig-out/bin/craft","craft --help (verified flags)","craft --html '<h1>Craft smoke test</h1>' --title SmokeTest --quit-on-close under Xvfb -> window launched, printed expected text","<env-var>=<host-path> python3 -I <host-path> --validate -> valid; --probe -> PASS working"],"deviations":["`pantry install` (README 'Build from Source' / docs/GETTING_STARTED.md): no pantry CLI available. pantry.sh/install.sh returns an HTML page, pantry.dev/install 404s, npm/bun package 'pantry' is a library with no bin. Substituted zig from PyPI ziglang==0.17.0 (release, not the pinned dev build 0.17.0-dev.1963_e00c6c439; ziglang.org dev tarball 404). Used CRAFT_ZIG and CRAFT_ALLOW_UNPINNED_ZIG=1.","`bun run build:core` failed: 'failed to open ../../../../Libraries/zig-js: FileNotFound' (packages/zig/build.zig.zon declares zig_js as a sibling path dependency outside the repo, not present in the guest). Built with `zig build -Doptimize=ReleaseSafe -Djs-runtime=false` instead, which disables Craft's JS runtime (zig-js) option. Build output: packages/zig/zig-out/bin/craft.","`bun add -g pantry` initially failed building node-expat (missing make/libexpat); fixed by installing build-essential and libexpat1-dev.","README CLI example `craft http://localhost:3000` not used because it needs a server on localhost:3000; probe uses the product's --html flag (from `craft --help`) instead.","Set DISPLAY via Xvfb (:99) for manual testing; stopped it afterward. Checker uses xvfb-run automatically."],"stuck_step":null,"main_blocker":null,"suggested_fix":null}
EOF
python3 -c "import json;json.load(open('.coldpass/report.json'));print('report ok')"; <env-var>=<host-path> python3 -I <host-path> --validate; pgrep -fa 'zig-out/bin/craft|Xvfb' | grep -v pgrep; echo leftover_check_done
Earlier attempts (1)

Haiku 5.5

Native agent · Recorded operation failed

Operation / attempted scope Blocked on toolchain: the pinned Zig 0.17.0-dev.1963+e00c6c439 (pantry.lock / deps.yaml) is not downloadable from ziglang.org (404, pruned) or the pkgx mirror. Available alternates (0.15.2 release, 0.18.0-dev.253 master) fail to compile build.zig. bun install succeeded; pantry install did not complete. No MCP server exists in this repo, so the MCP start/list_tools path does not apply.

Agent-reported scope: Build native craft binary per README 'Build from Source' (bun run build:core) and run ./packages/zig/zig-out/bin/craft http://localhost:3000. Not reached.

Run details
run
craft-native--craft-claude-haiku-5-5-1792243434707824285
date
Oct 17, 2026
time to working
not recorded
product hosting / execution
Not recorded
recorded operation scope
Blocked on toolchain: the pinned Zig 0.17.0-dev.1963+e00c6c439 (pantry.lock / deps.yaml) is not downloadable from ziglang.org (404, pruned) or the pkgx mirror. Available alternates (0.15.2 release, 0.18.0-dev.253 master) fail to compile build.zig. bun install succeeded; pantry install did not complete. No MCP server exists in this repo, so the MCP start/list_tools path does not apply.
model
claude-haiku-5-5
agent / version
claude-code / 2.1.300 (Claude Code)
platform
linux
reported cost
$0.013070
Recorded source
https://github.com/craft-native/craft
Tool transport
mcp-assigned-vm
Test version
readme-0ba1bd83ee992e5266da14bd927c1b522fe2316cb76209abff7d5896636bdaef
revision
b71d2e84a539e728a3ee9be6fe86a7f846f49802
Current diagnosis: unknown · fix verification did not pass

craft-native rerun 2 of 2 on 9ac86248e662

Repair record fix-g3-craft-readme4 · current status JSON. Original run outcomes remain unchanged.

Failed run: craft-native/craft · Oct 17, 2026 · Recorded operation failed.

Repair development: craft-native/craft · Oct 18, 2026 · Repair work (development) · not an initial-trial result.

Test-repair rerun: craft-native/craft · Oct 18, 2026 · Not tested.

Fix verification: craft-native/craft · Oct 18, 2026 · Checked operation passed.

Fix: fix-35c4eb1acdd6ea37d561.

Recorded blocker / warning

Step: bun run build:core (README 'Build from Source'), via scripts/zig.ts requiring pinned Zig 0.17.0-dev.1963_e00c6c439

Pinned Zig 0.17.0-dev.1963+e00c6c439 is unavailable from ziglang.org (HTTP 404; deps.yaml notes dev builds are pruned) and pkgx mirror lists no such build. Fallback toolchains are incompatible with build.zig.

Suggested next step (agent-reported): Restore a copy of Zig 0.17.0-dev.1963+e00c6c439 from an internal mirror or the pantry registry (pantry install with registry access) and set CRAFT_ZIG to it, or bump deps.yaml/pantry.lock and build.zig to a Zig version that is still published and rebuild. Then run: bun run build:core && ./packages/zig/zig-out/bin/craft http://localhost:3000.

What the agent did

Build native craft binary per README 'Build from Source' (bun run build:core) and run ./packages/zig/zig-out/bin/craft http://localhost:3000. Not reached.

apt-get install -y unzip
curl -fsSL https://bun.sh/install | bash (bun 1.4.3)
bun install (252 packages installed)
apt-get install -y build-essential nodejs
bunx --bun pantry install (failed: node-expat gyp build; then 'could not determine executable to run for package pantry')
Fetched zig 0.15.2 from dist.pkgx.dev and zig 0.18.0-dev.253 from ziglang.org as overrides (CRAFT_ALLOW_UNPINNED_ZIG=1); both failed to compile build.zig
bun run build:core (failed, exit 2 and 1; no craft binary produced)
Fix double-checks (3)

Haiku 5.5

Native agent · Checked operation passed

Checked operation /workspace/packages/zig/zig-out/bin/craft --html '<h1>coldpass-ok</h1>' --title smoke

Agent-reported scope: Build craft from source (bun run build:core), then launch the native app window with README-documented CLI `craft` (--html content, --title) under Xvfb; app loads WebKit and stays running.

Run details
run
craft-native--craft-claude-haiku-5-5-1792337238934736872
date
Oct 18, 2026
time to working
2771.7s
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.014104
Recorded source
https://github.com/craft-native/craft
Tool transport
mcp-assigned-vm
Test version
readme-479176e2fbe60d1d4313b6d06bcbd473916b2119455c61d1ddb6a7d3f32f552f
revision
032d6271fa0703b79e900e46655d2e0d39cd4724
Current diagnosis: unknown · fix verification did not pass

craft-native rerun 2 of 2 on 9ac86248e662

Repair record fix-g3-craft-readme4 · current status JSON. Original run outcomes remain unchanged.

Failed run: craft-native/craft · Oct 17, 2026 · Recorded operation failed.

Repair development: craft-native/craft · Oct 18, 2026 · Repair work (development) · not an initial-trial result.

Test-repair rerun: craft-native/craft · Oct 18, 2026 · Not tested.

Fix verification: craft-native/craft · Oct 18, 2026 · Checked operation passed.

Double-checks failed run: craft-native/craft · Oct 17, 2026.

Fix: fix-g3-craft-readme4.

Agent-reported additional finding (agent-reported): Provide an X display for GUI runs; document that the pantry npm package name conflicts with the pantry-pm CLI (use the pantry-pm installer or its release binary).

What the agent did

Build craft from source (bun run build:core), then launch the native app window with README-documented CLI `craft` (--html content, --title) under Xvfb; app loads WebKit and stays running.

apt-get install -y libgtk-3-dev libwebkit2gtk-4.1-dev git curl unzip xz-utils build-essential pkg-config
curl -fsSL https://bun.sh/install | bash (bun 1.4.3 used)
bun install (in /workspace)
Zig 0.17.0 downloaded from ziglang.org and extracted to /tmp/zigdl (README fallback path)
Fetched zig-js, zig-regex, zig-gc sibling checkouts at pins from .github/actions/first-party-zig-deps/pins.env into /Libraries (per README 'Build from Source' command)
CRAFT_ZIG=/tmp/zigdl/zig-x86_64-linux-0.17.0/zig CRAFT_ALLOW_UNPINNED_ZIG=1 bun run build:core (succeeded)
./packages/zig/zig-out/bin/craft --version -> craft version 0.0.234
apt-get install -y xvfb xauth; Xvfb :99; DISPLAY=:99 craft --html ... (window loaded, ran until timeout)

Haiku 5.5

Native agent · Not tested

Checked operation xvfb-run -a /workspace/packages/zig/zig-out/bin/craft --headless --html '<h1>Craft smoke</h1>' --title Smoke

Agent-reported scope: Built the Craft core binary (packages/zig/zig-out/bin/craft) from the pinned source and ran it headlessly to load an inline HTML page in a native WebKitGTK window under Xvfb; the window loaded and the process stayed running ("Linux WebView configured" logged). Build-from-source path of the README, not the TypeScript SDK or examples.

Run details
run
craft-native--craft-claude-haiku-5-5-1792326430403548372
date
Oct 18, 2026
time to working
532.3s
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.011753
Recorded source
https://github.com/craft-native/craft
Tool transport
mcp-assigned-vm
Test version
readme-2e3cec6d339942c065dc285af6d3e30ae04e3c60c676d66468ced2c15b6fbccf
revision
448e139ef8ae6b4038ee784cfad2f293d4eb2e4f
Current diagnosis: unknown · fix verification did not pass

craft-native rerun 2 of 2 on 9ac86248e662

Repair record fix-g3-craft-readme4 · current status JSON. Original run outcomes remain unchanged.

Failed run: craft-native/craft · Oct 17, 2026 · Recorded operation failed.

Repair development: craft-native/craft · Oct 18, 2026 · Repair work (development) · not an initial-trial result.

Test-repair rerun: craft-native/craft · Oct 18, 2026 · Not tested.

Fix verification: craft-native/craft · Oct 18, 2026 · Checked operation passed.

Double-checks failed run: craft-native/craft · Oct 17, 2026.

Fix: fix-g3-craft-readme3.

Agent-reported additional finding (agent-reported): For a real desktop run, provide a display (DISPLAY or xvfb-run). To match the README exactly, install pantry and use the pinned zig toolchain instead of the CRAFT_ZIG override.

What the agent did

Built the Craft core binary (packages/zig/zig-out/bin/craft) from the pinned source and ran it headlessly to load an inline HTML page in a native WebKitGTK window under Xvfb; the window loaded and the process stayed running ("Linux WebView configured" logged). Build-from-source path of the README, not the TypeScript SDK or examples.

apt-get install -y libgtk-3-dev libwebkit2gtk-4.1-dev (README: Platform-Specific Dependencies, Linux) plus unzip, xz-utils, git
curl -fsSL https://bun.sh/install | bash (bun was not present)
bun install (252 packages)
Zig 0.17.0 release downloaded from https://ziglang.org/download/0.17.0/zig-x86_64-linux-0.17.0.tar.xz to /opt/zig/rel (README: fallback without pantry CLI)
LIBS="$(cd .. && pwd)/../Libraries" -> /Libraries; git init/fetch/checkout of zig-js, zig-regex, zig-gc at the SHAs in .github/actions/first-party-zig-deps/pins.env
CRAFT_ZIG=/opt/zig/rel/zig CRAFT_ALLOW_UNPINNED_ZIG=1 bun run build:core (exit 0, binary produced)
xvfb-run -a packages/zig/zig-out/bin/craft --headless --html '<h1>Craft smoke</h1>' --title Smoke --log-level debug (rc=124 from timeout, i.e. it kept running; WebView configured)

Haiku 5.5

Native agent · Recorded operation failed

Operation / attempted scope /workspace/packages/zig/zig-out/bin/craft --html '<h1>Craft smoke</h1>' --title smoke

Agent-reported scope: Build Craft native binary from source (README 'Build from Source') and launch a native WebKit window with --html content (README 'CLI Usage' / craft binary)

Run details
run
craft-native--craft-claude-haiku-5-5-1792316866568179698
date
Oct 18, 2026
time to working
not recorded
product hosting / execution
Local command in the guest
recorded operation scope
Verified: bun install, zig-based build:core, binary launches and loads HTML in a WebKit window under Xvfb. Not verified: interactive rendering (no screen capture), pantry-pinned Zig (pantry CLI not usable in guest), craft http://localhost:3000 example (no server started), unit/lint suites (intentionally skipped).
model
claude-haiku-5-5
agent / version
claude-code / 2.1.300 (Claude Code)
platform
linux
reported cost
$0.010201
Recorded source
https://github.com/craft-native/craft
Tool transport
mcp-assigned-vm
Test version
readme-350c08b2418e19becf584d37506672ef1f3c233047a243d4a9ea4a0600b2c08a
revision
708ac26d6e0f502b6dad7b0b0a25c2fc1a4004d8
Current diagnosis: unknown · fix verification did not pass

craft-native rerun 2 of 2 on 9ac86248e662

Repair record fix-g3-craft-readme4 · current status JSON. Original run outcomes remain unchanged.

Failed run: craft-native/craft · Oct 17, 2026 · Recorded operation failed.

Repair development: craft-native/craft · Oct 18, 2026 · Repair work (development) · not an initial-trial result.

Test-repair rerun: craft-native/craft · Oct 18, 2026 · Not tested.

Fix verification: craft-native/craft · Oct 18, 2026 · Checked operation passed.

Double-checks failed run: craft-native/craft · Oct 17, 2026.

Fix: fix-g3-craft-readme2.

Recorded blocker / warning

Step: /workspace/packages/zig/zig-out/bin/craft --html '<h1>Craft smoke</h1>' --title smoke

product did not exit within 300 seconds: {"stdout": "", "stderr": "\n\u26a1 Loading HTML content in native window\n Title: smoke\n Size: 1200x800\n\nlibEGL warning: DRI3 error: Could not get DRI3 device\nlibEGL warning: Ensure your X server supports DRI3 to get accelerated rendering\nlibEGL warning:

Suggested next step (agent-reported): Native window launch cannot be confirmed headlessly from stdout alone; the checker should run with DISPLAY=:99 (Xvfb) available. Consider a headless/--dump option in craft for CI smoke tests.

What the agent did

Build Craft native binary from source (README 'Build from Source') and launch a native WebKit window with --html content (README 'CLI Usage' / craft binary)

curl -fsSL https://bun.sh/install | bash (bun 1.4.3)
apt-get install -y git unzip xz-utils libgtk-3-dev libwebkit2gtk-4.1-dev xvfb xauth
bun install
README 'Build from Source': install first-party checkouts into /Libraries (zig-js, zig-regex, <email> SHAs)
Downloaded Zig 0.17.0 from ziglang.org (README fallback)
CRAFT_ZIG=/opt/zig/zig-x86_64-linux-0.17.0/zig CRAFT_ALLOW_UNPINNED_ZIG=1 bun run build:core -> exit 0
Xvfb :99 &; DISPLAY=:99 ./packages/zig/zig-out/bin/craft --html '<h1>Craft smoke</h1>' --title smoke -> launched, loaded, killed by timeout 8s
Repair work and diagnoses (2)

Haiku 5.5

Native agent · Repair work (development) · not an initial-trial result

Operation / attempted scope limited checks

Run details
run
craft-native--craft-claude-haiku-5-5-1792306236845809288
date
Oct 18, 2026
time to working
not recorded
product hosting / execution
Not recorded
recorded operation scope
limited checks
model
claude-haiku-5-5
agent / version
claude-code / 2.1.300 (Claude Code)
platform
linux
reported cost
$0.046432
Recorded source
https://github.com/craft-native/craft
Tool transport
mcp-assigned-vm
Test version
readme-abaaed6c5ddc0f8631cfa10d4c8c742b7bda7e8962f3be427f935e46fb8e20ec
revision
b71d2e84a539e728a3ee9be6fe86a7f846f49802
Current diagnosis: unknown · fix verification did not pass

craft-native rerun 2 of 2 on 9ac86248e662

Repair record fix-g3-craft-readme4 · current status JSON. Original run outcomes remain unchanged.

Failed run: craft-native/craft · Oct 17, 2026 · Recorded operation failed.

Repair development: craft-native/craft · Oct 18, 2026 · Repair work (development) · not an initial-trial result.

Test-repair rerun: craft-native/craft · Oct 18, 2026 · Not tested.

Fix verification: craft-native/craft · Oct 18, 2026 · Checked operation passed.

Double-checks failed run: HeyPuter/everything · Oct 17, 2026.

Fix: fix-g3-craft-readme.

Recorded blocker / warning

Step: /bin/bash -c 'o=$(mktemp);e=$(mktemp);/bin/bash -lc "$1" </dev/null >"$o" 2>"$e";c=$?;cat "$o";cat "$e" >&2;rm -f "$o" "$e";exit $c' coldpass 'export CDP_URL=http://<internal-ip>:9226; export <env-var>=http://<internal-ip>:9226; export <env-var>=<host-path>; cd <host-path> && cd <host-path> && rm -f .coldpass/report.json && cat > report.json <<'"'"'EOF'"'"' {"outcome":"blocked", "operation":"README '"'"'Build from Source'"'"' (pantry install, then bun run build:core), then a terminating start check of the built craft binary: craft --benchmark --html '"'"'<h1>Craft smoke</h1>'"'"' under Xvfb (DISPLAY=:99), which prints '"'"'ready'"'"' and exits 0. craft --version prints '"'"'craft version 0.0.234'"'"'.", "operation_scope":"Partial. The default build (bun run build:core) fails because the sibling checkout ../../../../Libraries/zig-js (declared as .zig_js path dependency in packages/zig/build.zig.zon) is absent in the VM. A build with -Djs-runtime=false succeeded and was used for the start check. Not verified: the JS runtime, craft --eval, the GUI run command from the README (craft http://localhost:3000), which never exits, and the TypeScript SDK path.", "steps":["Installed bun 1.3.14 (pinned in the repo).", "Installed the pantry binary from the pantry-pm/pantry v0.11.92 GitHub release (the npm package named '"'"'pantry'"'"' is an unrelated library). Verified its checksum against release-manifest.json.", "Ran pantry install in the workspace. It provisioned bun and ziglang.org 0.17.0-dev.1963_e00c6c439 under ./pantry.", "Restored pantry.lock from the pinned-commit tarball after pantry install and pantry env rewrote it. Verified byte-identical afterwards.", "CRAFT_ZIG=<workspace>/pantry/ziglang.org/v0.17.0-dev.1963_e00c6c439/bin/zig bun run build:core failed: error: failed to open '"'"'../../../../Libraries/zig-js'"'"': FileNotFound.", "cd packages/zig && zig build -Doptimize=ReleaseSafe -Djs-runtime=false succeeded and produced packages/zig/zig-out/bin/craft.", "craft --version and craft --benchmark --html '"'"'<h1>Craft smoke</h1>'"'"' (DISPLAY=:99) both succeeded; the benchmark run printed '"'"'ready'"'"' and exited 0.", "Wrote .coldpass/probe.json with install and start checks. check.py --validate returned valid with no problems."], "deviations":["Used the pantry GitHub release binary instead of the npm package named '"'"'pantry'"'"'.", "pantry install printed '"'"'Patch failed for ts-maps'"'"'. It was a warning only; the install continued. Not investigated.", "pantry install and pantry env rewrote pantry.lock. Restored it from the pinned tarball. Source is otherwise unchanged; generated outputs (pantry/, node_modules/, zig-out/, .zig-cache/) are gitignored.", "Default bun run build:core failed on the missing zig-js sibling. Used zig build -Djs-runtime=false, the opt-out already present in build.zig. This is not the README'"'"'s default build.", "The probe uses --benchmark, a craft flag not documented in the README, because the README run command opens a GUI window that never exits and the checker has no timeout.", "The earlier failure in the '"'"'src/contacts'"'"' README (npm run mcp:demo, create_contact on a calendar-only server) does not apply to this repo. No src/contacts, no mcp:demo script, and craft is not an MCP server. Not reproduced."], "stuck_step":"bun run build:core (README '"'"'Build from Source'"'"')", "main_blocker":"The default build needs the first-party sibling checkout ../../../../Libraries/zig-js (packages/zig/build.zig.zon). It is absent in the VM, and github.com/home-lang/zig-js returned 404.", "fault_owner":"prerequisite", "suggested_fix":"Provide the zig-js checkout at the path declared in build.zig.zon, or switch to a published zig-js URL dependency. Alternatively, document the sibling requirement and the -Djs-runtime=false opt-out in the README Build from Source section, or make zig_js lazy so the no-JS build works without it. No source was changed."} EOF python3 -c "import json;print(json.load(open('"'"'report.json'"'"'))['"'"'outcome'"'"'])" && <env-var>=<host-path> python3 -I <host-path> --validate'

README smoke check did not pass

Install / setup / connection checks
[
  {
    "status": "PASS",
    "details": {
      "working": false,
      "argv": [
        "<host-path>",
        "--version"
      ],
      "kind": "cli",
      "returncode": 0,
      "stdout": "craft version 0.0.234\nBuilt with Zig 0.17.0-dev\nPlatform: Linux\n",
      "stderr": "",
      "needs_credentials": false,
      "needs_browser": false,
      "scope": "partial: install"
    },
    "check": "install",
    "optional": false
  },
  {
    "status": "PASS",
    "details": {
      "working": false,
      "argv": [
        "<host-path>",
        "--benchmark",
        "--html",
        "<h1>Craft smoke</h1>"
      ],
      "kind": "cli",
      "returncode": 0,
      "stdout": "ready",
      "stderr": "libEGL warning: DRI3 error: Could not get DRI3 device\nlibEGL warning: Ensure your X server supports DRI3 to get accelerated rendering\n[Permission] Linux WebView configured (camera=false, mic=false, geo=false, notify=true, clip=true)",
      "needs_credentials": false,
      "needs_browser": false,
      "scope": "partial: start"
    },
    "check": "start",
    "optional": false
  }
]

Suggested next step (agent-reported): Inspect the recorded blocker and correct the README prerequisites or harness error.

Haiku 5.5

Native agent · Repair work (development) · not an initial-trial result

Operation / attempted scope packages/zig/zig-out/bin/craft --version

Agent-reported scope: Built craft native binary (bun run build:core) and ran its CLI operations: `craft --version` (probe) and `craft --help`.

Run details
run
craft-native--craft-claude-haiku-5-5-1792244066631957400
date
Oct 17, 2026
time to working
not recorded
product hosting / execution
Local command in the guest
recorded operation scope
Verified on Ubuntu 24.04 x86_64, no display. Build used Zig 0.17.0 (tagged release) via the explicit CRAFT_ALLOW_UNPINNED_ZIG=1 override, because the pinned Zig 0.17.0-dev.1963+e00c6c439 returns HTTP 404 from ziglang.org. The toolchain is therefore a substitute, not the pinned one. Not exercised: the GUI window launch (needs a DISPLAY; none in this VM), unit/lint suites (out of scope), and the shared CDP endpoint (not needed for CLI).
model
claude-haiku-5-5
agent / version
claude-code / 2.1.300 (Claude Code)
platform
linux
reported cost
$0.022521
Recorded source
https://github.com/craft-native/craft
Tool transport
mcp-assigned-vm
Test version
readme-6291477f703b0381fd5026869293fc4f3b774e8a9c26345cc12eb87f19381822
revision
b71d2e84a539e728a3ee9be6fe86a7f846f49802
Current diagnosis: unknown · fix verification did not pass

craft-native rerun 2 of 2 on 9ac86248e662

Repair record fix-g3-craft-readme4 · current status JSON. Original run outcomes remain unchanged.

Failed run: craft-native/craft · Oct 17, 2026 · Recorded operation failed.

Repair development: craft-native/craft · Oct 18, 2026 · Repair work (development) · not an initial-trial result.

Test-repair rerun: craft-native/craft · Oct 18, 2026 · Not tested.

Fix verification: craft-native/craft · Oct 18, 2026 · Checked operation passed.

Double-checks failed run: craft-native/craft · Oct 17, 2026.

Fix: fix-35c4eb1acdd6ea37d561.

Recorded blocker / warning

Step: packages/zig/zig-out/bin/craft --version

help/version/requirements alone does not establish working behavior

Suggested next step (agent-reported): Pinned-toolchain fix (maintainers, optional): bump the Zig pin in deps.yaml, pantry.jsonc, and pantry.lock from 0.17.0-dev.1963_e00c6c439 to a Zig that ziglang.org still serves (e.g. tagged 0.17.0), then prove the bump in CI, since pins.env was set against 1963. Docs fix: the README 'Build from Source' section should list the three sibling checkouts (/Libraries/zig-js, zig-regex, <email> SHAs) and the `pantry` CLI prerequisite, since a plain clone cannot run `bun run build:core`.

What the agent did

Built craft native binary (bun run build:core) and ran its CLI operations: `craft --version` (probe) and `craft --help`.

apt-get install -y unzip xz-utils git
install bun 1.3.14 from github.com/oven-sh/bun/releases/download/bun-v1.3.14/bun-linux-x64.zip (bun.sh/install picked 1.4.3)
bun install (252 packages)
pantry install (README 'Build from Source') -> failed: `pantry` binary not present; `bun node_modules/ts-pantry/dist/bin/cli.js install` requires a package argument, so this step was not completed
fetch sibling Zig deps at pins from .github/actions/first-party-zig-deps/pins.env into /Libraries (zig-js, zig-regex, zig-gc)
download Zig 0.17.0 tagged release from ziglang.org/download/0.17.0 and run with CRAFT_ZIG and CRAFT_ALLOW_UNPINNED_ZIG=1
apt-get install -y libgtk-3-dev libwebkit2gtk-4.1-dev (README 'Platform-Specific Dependencies: Linux')
bun run build:core -> packages/zig/zig-out/bin/craft (rc 0)
packages/zig/zig-out/bin/craft --version (rc 0), --help (rc 0)