coldpass

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

aot-compilationcompilergarbage-collectionjavascripttypescriptwasm-gc

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.

Repair history and test corrections
Verified test fix · fix-95a71c94d6e755f1aa17

tart guests now get at least 8 GB (sandbox); prior block was guest out of memory

The repo was not at fault. Coldpass changed its own test, so there is no repo patch.

Before: loopdive/js2 · Oct 17, 2026 · Recorded operation failed

After the test fix: loopdive/js2 · Oct 18, 2026 · Haiku 5.5 · Not tested.

Run details

Haiku 5.5

Native agent · Not tested

Checked operation /usr/bin/js2wasm examples/wasi/hello-fs.ts --target wasi -o <host-path>

Agent-reported scope: Compile a TypeScript file to WasmGC with the README CLI: js2wasm examples/wasi/hello-fs.ts --target wasi -o <dir> (writes hello-fs.wasm, .wat, .d.ts, .imports.js). Earlier, a scratch add() function compiled with --target standalone and instantiated in Node returned add(2,3)=5.

Run details
run
loopdive--js2-claude-haiku-5-5-1792306158863645152
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.016796
Recorded source
https://github.com/loopdive/js2
Tool transport
mcp-assigned-vm
Test version
readme-c26ffe1cce5b90e6f204842e94573d85d9b767775aa350121a892728022647fe
revision
73c3a0685d768f8f897ee77a10ee1e05bf931865
Current diagnosis: unknown · resolved

tart guests now get at least 8 GB (sandbox); prior block was guest out of memory

Repair record fix-95a71c94d6e755f1aa17 · current status JSON. Original run outcomes remain unchanged.

Failed run: loopdive/js2 · Oct 17, 2026 · Recorded operation failed.

Test-repair rerun: loopdive/js2 · Oct 18, 2026 · Not tested.

Double-checks failed run: loopdive/js2 · Oct 17, 2026.

Fix: fix-95a71c94d6e755f1aa17.

What the agent did

Compile a TypeScript file to WasmGC with the README CLI: js2wasm examples/wasi/hello-fs.ts --target wasi -o <dir> (writes hello-fs.wasm, .wat, .d.ts, .imports.js). Earlier, a scratch add() function compiled with --target standalone and instantiated in Node returned add(2,3)=5.

cd <host-path> && ls -la && cat README.md 2>/dev/null | head -200
cd <host-path> && git log -1 --format=%H 2>/dev/null; echo "CDP_URL=$CDP_URL <env-var>=$<env-var>"; ls -la <host-path> 2>/dev/null; ls -la .coldpass 2>/dev/null; node -v; npm -v; python3 --version
cd <host-path> && grep -n '^#' README.md; sed -n '200,260p' README.md
cd <host-path> && cat .mcp.json; sed -n 380,396p README.md; (sudo -n true && echo SUDO_OK); (curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash - >/tmp/ns.log 2>&1 && sudo apt-get install -y nodejs >>/tmp/ns.log 2>&1); node -v; npm -v
cd <host-path> && export NODE_USE_ENV_PROXY=1 && grep -n '"packageManager"\|"engines"' -A2 package.json | head; npm i -g pnpm@10 >/tmp/pnpm-g.log 2>&1; pnpm -v; timeout 900 pnpm install --frozen-lockfile > /tmp/pnpm-install.log 2>&1; echo EXIT=$?; tail -30 /tmp/pnpm-install.log
cd <host-path> && export NODE_USE_ENV_PROXY=1 && cat /tmp/pnpm-g.log | tail -5; sudo npm i -g [email protected] >/tmp/pnpm-g.log 2>&1; echo G=$?; which pnpm; pnpm -v; timeout 900 pnpm install --frozen-lockfile > /tmp/pnpm-install.log 2>&1; echo EXIT=$?; tail -30 /tmp/pnpm-install.log
cd <host-path> && export NODE_USE_ENV_PROXY=1 && grep -n '"bin"' -A3 package.json; mkdir -p /tmp/js2out && printf 'export function add(a: number, b: number): number {\n  return a + b;\n}\n' > /tmp/js2in.ts && timeout 600 npx js2wasm /tmp/js2in.ts -o /tmp/js2out; echo EXIT=$?; ls -la /tmp/js2out
cd <host-path> && grep -n '"build' package.json; ls dist 2>/dev/null | head -3
cd <host-path> && export NODE_USE_ENV_PROXY=1 && timeout 900 pnpm run build > /tmp/build.log 2>&1; echo EXIT=$?; tail -15 /tmp/build.log; ls dist 2>/dev/null | head -5
cd <host-path> && free -m; nproc; grep -n 'vite\|building\|transform\|✓' /tmp/build.log | head -10; grep -c '' /tmp/build.log
cd <host-path> && export NODE_USE_ENV_PROXY=1 && export NODE_OPTIONS=--max-old-space-size=6144 && timeout 1500 pnpm run build > /tmp/build.log 2>&1; echo EXIT=$?; tail -8 /tmp/build.log; ls dist 2>/dev/null | head -5
cd <host-path> && export NODE_USE_ENV_PROXY=1 && rm -rf /tmp/js2out && mkdir -p /tmp/js2out && cp /tmp/js2in.ts /tmp/js2out/input.ts && cd /tmp/js2out && timeout 600 node <host-path> input.ts --target standalone -o /tmp/js2out; echo EXIT=$?; ls -la /tmp/js2out; cd /tmp/js2out && node -e 'const fs=require("fs");WebAssembly.instantiate(fs.readFileSync("input.wasm"),{}).then(r=>console.log("add(2,3)=",r.instance.exports.add(2,3)))' 2>&1 | tail -3
cd <host-path> && which node && mkdir -p .coldpass/probe-src && printf 'export function add(a: number, b: number): number {\n  return a + b;\n}\n' > .coldpass/probe-src/input.ts && rm -rf .coldpass/probe-out && mkdir -p .coldpass/probe-out && cat > .coldpass/probe.json <<'EOF'
{"kind":"cli","argv":["/usr/bin/node","<host-path>"}
EOF
cat .coldpass/probe.json; <env-var>=<host-path> python3 -I <host-path> --validate; echo EXIT=$?
cd <host-path> && ls -la node_modules/.bin/ | grep -i js2; ls -la node_modules/.bin/js2wasm 2>&1; head -3 dist/cli.js; grep -n 'check\|argv' <host-path> | grep -i 'agent\|partial\|argv' | head -20
sed -n 40,70p <host-path>
cd <host-path> && export NODE_USE_ENV_PROXY=1 && P=$(npm prefix -g) && echo PREFIX=$P && sudo env PATH=$PATH npm i -g --ignore-scripts <host-path> > /tmp/npm-g-js2.log 2>&1; echo G=$?; tail -3 /tmp/npm-g-js2.log; ls -la $P/bin/js2wasm 2>&1; which js2wasm
cd <host-path> && rm -rf <host-path> && mkdir -p <host-path> && /usr/bin/js2wasm input.ts --target standalone -o <host-path>; echo EXIT=$?; ls <host-path>
cd <host-path> && node -e 'const fs=require("fs");WebAssembly.instantiate(fs.readFileSync("input.wasm"),{}).then(r=>console.log("add(2,3)=",r.instance.exports.add(2,3))).catch(e=>console.log("ERR",e.message))'; xxd input.wasm | head -3; cd /tmp/js2out && xxd input.wasm | head -2
cd <host-path> && rm -rf .coldpass/probe-out && mkdir -p .coldpass/probe-out && cat > .coldpass/probe.json <<'EOF'
{"kind":"cli","argv":["/usr/bin/js2wasm","input.ts","--target","standalone","-o","<host-path>"}
EOF
<env-var>=<host-path> python3 -I <host-path> --validate; echo EXIT=$?
grep -n 'SCRIPT_SUFFIX =\|INTERPRETER =' <host-path>; cd <host-path> && ls examples | head -20; find examples -maxdepth 2 -name '*.ts' | head -5
cd <host-path> && head -20 examples/wasi/hello-fs.ts; rm -rf .coldpass/probe-out && mkdir -p .coldpass/probe-out && /usr/bin/js2wasm examples/wasi/hello-fs.ts --target standalone -o <host-path>; echo EXIT=$?; ls -la .coldpass/probe-out
cd <host-path> && rm -rf .coldpass/probe-out && mkdir -p .coldpass/probe-out && /usr/bin/js2wasm examples/wasi/hello-fs.ts --target wasi -o <host-path>; echo EXIT=$?; ls -la .coldpass/probe-out
cd <host-path> && rm -rf .coldpass/probe-out .coldpass/probe-src && mkdir -p .coldpass/probe-out && cat > .coldpass/probe.json <<'EOF'
{"kind":"cli","argv":["/usr/bin/js2wasm","examples/wasi/hello-fs.ts","--target","wasi","-o","<host-path>"}
EOF
<env-var>=<host-path> python3 -I <host-path> --validate; echo EXIT=$?
cd <host-path> && cat > .coldpass/report.json <<'EOF'
{"outcome":"working","operation":"Compile a TypeScript file to WasmGC with the README CLI: js2wasm examples/wasi/hello-fs.ts --target wasi -o <dir> (writes hello-fs.wasm, .wat, .d.ts, .imports.js). Earlier, a scratch add() function compiled with --target standalone and instantiated in Node returned add(2,3)=5.","operation_scope":"Compile step only, verified by output files. The emitted .wasm was not executed under wasmtime (not installed; README recommends wasmtime 46+ with -W gc=y,function-references=y,tail-call=y,exceptions=y). No MCP server: .mcp.json only configures a Claude symphony channel script, which is not a product operation, so start/tools/list was not applicable. Browser not needed.","steps":["Read README.md (Quick start, Compile modes, Testing headings)","Installed Node 22 via NodeSource apt setup (guest had no node/npm)","npm i -g [email protected] (matches packageManager field)","NODE_USE_ENV_PROXY=1 pnpm install --frozen-lockfile (README 'pnpm install')","NODE_OPTIONS=--max-old-space-size=6144 pnpm run build (package.json build script; README build step)","Compiled scratch add() with node dist/cli.js --target standalone -o <dir>; instantiated in Node: add(2,3)=5","sudo npm i -g --ignore-scripts <host-path> to expose the README 'js2wasm' bin as /usr/bin/js2wasm","/usr/bin/js2wasm examples/wasi/hello-fs.ts --target wasi -o .coldpass/probe-out (succeeded, 374-byte wasm)","<env-var>=<host-path> python3 -I <host-path> --validate -> valid"],"deviations":["Node/npm not present in guest: installed Node 22 via NodeSource setup script and apt nodejs (README prerequisite, Node >=20).","pnpm not present: installed [email protected] globally via npm (repo packageManager pin).","'pnpm run build' (README's build step) was OOM-killed at default heap (exit 134, V8 heap out of memory). Re-ran with NODE_OPTIONS=--max-old-space-size=6144 (guest has 8 GB RAM); build then succeeded.","README 'npx js2wasm input.ts' failed with 'js2wasm: not found': the package bin is not linked into node_modules/.bin in the repo checkout. Ran 'sudo npm i -g --ignore-scripts <host-path>' to link /usr/bin/js2wasm, and used that bin. Product source unchanged.","Probe argv invoking 'node dist/cli.js' and a .ts input under .coldpass were rejected by the checker as agent-written, so the probe uses the global js2wasm bin with a repo example input.","wasm-opt/binaryen not installed; compile warns and skips optimization (non-fatal). wasmtime not installed, so the output was not run under wasmtime."],"stuck_step":null,"main_blocker":null,"suggested_fix":null}
EOF
python3 -I -c 'import json;json.load(open("<host-path>"));print("report ok")'; <env-var>=<host-path> python3 -I <host-path> --validate
Earlier attempts (1)

Haiku 5.5

Native agent · Recorded operation failed

Operation / attempted scope No working operation verified.

Run details
run
loopdive--js2-claude-haiku-5-5-1792291237523395056
date
Oct 17, 2026
time to working
not recorded
product hosting / execution
Not recorded
recorded operation scope
not separately recorded
model
claude-haiku-5-5
agent / version
claude-code / 2.1.300 (Claude Code)
platform
linux
reported cost
$0.009389
Recorded source
https://github.com/loopdive/js2
Tool transport
mcp-assigned-vm
Test version
readme-6bd225b7dceaabc00d2c31e87e787795491e8d7d19bfab58de846adc71c82afb
revision
73c3a0685d768f8f897ee77a10ee1e05bf931865
Current diagnosis: unknown · resolved

tart guests now get at least 8 GB (sandbox); prior block was guest out of memory

Repair record fix-95a71c94d6e755f1aa17 · current status JSON. Original run outcomes remain unchanged.

Failed run: loopdive/js2 · Oct 17, 2026 · Recorded operation failed.

Test-repair rerun: loopdive/js2 · Oct 18, 2026 · Not tested.

Fix: fix-95a71c94d6e755f1aa17.

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> && echo alive4; uptime'

The guest ran out of memory or vanished and stopped answering during the product check.

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