Haiku 5.5
Native agent · Checked operation passedChecked operation <guest-path> · local stdio MCP start + initialize + tools/list
Agent-reported scope: Build Wake for Linux with the README's make-linux.sh, index a synthetic agent-session home with wake-cli, and search it through the wake-mcp stdio server (wake_search tool) and wake-cli search.
MCP server returned: wake · version 0.10.1.
MCP tools returned: wake_search, wake_list_sessions, wake_get_session, wake_list_projects, wake_list_memories. Tool listing does not establish authenticated tool-call success.
Run details
- run
- iAmCorey--Wake-claude-haiku-5-5-1792812702611530293
- date
- Oct 24, 2026
- time to working
- 2416.7s
- product hosting / execution
- Local stdio MCP server 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.026457
- Recorded source
- https://github.com/iAmCorey/Wake
- Backend
- hyperv
- Tool transport
- mcp-assigned-vm
- Requested source pin (not an observed revision)
- {"commit": "c8ee9b88b8e1c2281da1f3b6268d36bbfb58fb0b", "url": "https://github.com/iAmCorey/Wake"}
- Test version
- readme-bdc1b9b3c0d2673aef87e076d14084a8123ddcf09d520c1ee2e364a37c3f4bb9
- revision
- c8ee9b88b8e1c2281da1f3b6268d36bbfb58fb0b
Safety: Review signals: 1 connection review, 29 known vulnerability, 1 outside write.
Review signals: 1 connection review, 29 known vulnerability, 1 outside write.
Reviewed as expected for a test run: package managers (cargo) downloaded dependencies over HTTPS; package managers (rustup-init) downloaded dependencies over HTTPS; resolver address lookups that send no data; wrote only to its own open file handles.
Repository processes attempted these non-loopback connections; proxies can hide the final hostname. 8 distinct locations. 2 attributed processes.
OSV reports a known vulnerability in this dependency version. 16 distinct locations. 29 findings.
Repository processes attempted these writes outside documented output/cache paths. /LICENSE-APACHE 1 attributed processes.
PID 4142: <guest-path> · <guest-path>
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.
Answers recorded for this run
- The wake-mcp server exposes a search tool that finds sessions by text: Real input produced the expected result: 068f4ced-a156-4781-ad94-c83ef5097a5f
Source: Search every session and memory file
Input: {"tool": "wake_search", "arguments": {"query": "useEffect("}}
Expected: the matching Claude Code session key is returned
Command: <guest-path> tools/call {"tool": "wake_search", "arguments": {"query": "useEffect("}}
Observed: 068f4ced-a156-4781-ad94-c83ef5097a5f` · Claude Code · \"中文短词比如两个字的怎么办?\"\n <host-path> · updated 2026-10-24 03:40:15 · 5 messages · claude-fable-5\n - seq 1 (assistant, 2026-10-24 03:38:35): …exes every 3-char window, so `二维码` and `**useEffect(**` both match without language-specific tokenizers. Queries under 3 chars fall ba…\n ref: wake://session/claude-code:068f4ced-a156-4781-ad94-c83ef5097a5f#1\n\nRead a session with wake_get_session (pass the key, or a ref to start at that message).\nIndex covers activity up to 2026-10-24 04:01:35 (local time); Wake keeps it fresh whil
- wake-cli answers the same search questions from a terminal: Real input produced the expected result: 068f4ced-a156-4781-ad94-c83ef5097a5f
Source: `wake-cli` gives the same answers in a terminal
Input: search useEffect(
Expected: the matching session key is printed
Command: <guest-path> search 'useEffect('
Observed: 068f4ced-a156-4781-ad94-c83ef5097a5f` · Claude Code · "中文短词比如两个字的怎么办?" <host-path> · updated 2026-10-24 03:40:15 · 5 messages · claude-fable-5 - seq 1 (assistant, 2026-10-24 03:38:35): …exes every 3-char window, so `二维码` and `**useEffect(**` both match without language-specific tokenizers. Queries under 3 chars fall ba… ref: wake://session/claude-code:068f4ced-a156-4781-ad94-c83ef5097a5f#1 Read a session with wake_get_session (pass the key, or a ref to start at that message). Index covers activity up to 2026-10-24 04:01:35 (local time); Wake keeps it fresh while it is
Examples
- Data-layer tests run with cargo: command completed successfully
Source: README.md Development section: data-layer tests only (adapter contracts, FTS, scanner)
Input: cargo test -p wake-core
Expected: all test suites report ok
Command: <guest-path> test -p wake-core
Observed: oundtrip.rs (target/debug/deps/db_roundtrip-ee5de68cb77ec280) Running tests/devin_default_root.rs (target/debug/deps/devin_default_root-cfa0dafceaf63e7f) Running tests/mcp_stdio.rs (target/debug/deps/mcp_stdio-8b462d5b49f14a73) Running tests/remote_sync.rs (target/debug/deps/remote_sync-29d6529df81d61ae) Running tests/remote_sync_paths.rs (target/debug/deps/remote_sync_paths-d5285f22086ea84e) Running tests/scanner_finale.rs (target/debug/deps/scanner_finale-b82fe3d8fc82747b) Running tests/skills.rs (target/debug/deps/skills-b80c8f4ccf7b8229) Doc-tests wake_core
- Refresh the index while Wake is closed: command completed successfully
Source: README.md shell commands: wake-cli refresh
Input: no arguments
Expected: index is refreshed with the synthetic demo sessions
Command: <guest-path> refresh
Observed: Refreshed the index at /tmp/wake-demo-home/.local/share/wake/wake.db: 424 sessions from 16 agents.
Local or hosted: local
What the agent did
Build Wake for Linux with the README's make-linux.sh, index a synthetic agent-session home with wake-cli, and search it through the wake-mcp stdio server (wake_search tool) and wake-cli search.
cd <guest-path> && ls -la && id -u && python3 --version && cat README.md 2>/dev/null | head -200
cd <guest-path> && tail -n +200 README.md; echo ---; ls -la .coldpass; echo ---; git status 2>&1 | head -3; echo ---; which cargo rustc node npm uv 2>&1; cargo --version 2>&1; rustc --version 2>&1; cat /etc/os-release | head -3; ls scripts; cat scripts/test.sh 2>/dev/null | head -60
cd <guest-path> && cat Cargo.toml; grep -rn "rust-version\|edition" crates/*/Cargo.toml | head; sudo -n true && echo SUDO_OK
sudo DEBIAN_FRONTEND=noninteractive apt-get update -qq 2>&1 | tail -3; sudo DEBIAN_FRONTEND=noninteractive apt-get install -y -qq libasound2-dev libfontconfig1-dev libwayland-dev libxkbcommon-dev libxkbcommon-x11-dev libssl-dev libzstd-dev pkg-config cmake clang curl build-essential > /tmp/apt.log 2>&1; echo "apt rc=$?"; tail -5 /tmp/apt.log
export NODE_USE_ENV_PROXY=1; curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain stable > /tmp/rustup.log 2>&1; echo "rc=$?"; tail -3 /tmp/rustup.log; source $HOME/.cargo/env && cargo --version && rustc --version
cd <guest-path> && cat scripts/make-linux.sh
cd <guest-path> && source $HOME/.cargo/env && nohup bash -c 'scripts/make-linux.sh' > /tmp/make-linux.log 2>&1 &
echo started
sleep 600; tail -3 /tmp/make-linux.log; pgrep -f make-linux.sh >/dev/null && echo RUNNING || echo DONE
sleep 900; grep -E "Compiling (wake|wake-core)|Finished|error" /tmp/make-linux.log | tail -5; pgrep -f make-linux.sh >/dev/null && echo RUNNING || echo DONE
sleep 60; pgrep -f make-linux.sh >/dev/null && echo RUNNING || echo DONE; tail -4 /tmp/make-linux.log; cd <guest-path> && ls -la dist 2>&1
cd <guest-path> && pgrep -f make-linux.sh >/dev/null && echo STILL || echo DONE; ls -la target/release/ | grep -E "^-.*(Wake|wake-mcp|wake-cli)$"; head -40 scripts/demo-home.py; grep -n "argv\|argparse\|add_argument\|WAKE_HOME" scripts/demo-home.py | head -30
ps aux | grep -c "[m]ake-linux.sh" ; cd <guest-path> && python3 scripts/demo-home.py /tmp/wake-demo-home 2>&1 | tail -5; echo rc=$?; ls /tmp/wake-demo-home; export HOME=/tmp/wake-demo-home; ./target/release/wake-cli --help 2>&1 | head -30
cd <guest-path> && export HOME=/tmp/wake-demo-home && ./target/release/wake-cli index 2>&1 | tail -5; echo "rc=$?"; ./target/release/wake-cli search "useEffect(" 2>&1 | head -15; echo ---; ./target/release/wake-cli sessions --limit 3 2>&1 | head
cd <guest-path> && export HOME=/tmp/wake-demo-home && ./target/release/wake-mcp call wake_search '{"query":"useEffect("}' 2>&1 | head -12; echo "rc=$?"; echo ---; printf '%s\n' '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"t","version":"0"}}}' '{"jsonrpc":"2.0","method":"notifications/initialized"}' '{"jsonrpc":"2.0","id":2,"method":"tools/list"}' | timeout 10 ./target/release/wake-mcp 2>&1 | head -c 600; echo
ls -la <guest-path> /inputs/ 2>&1; grep -n "source_file\|def \|expected_file\|quote" <guest-path> | head -80
cd <guest-path> && grep -rn "interval\|Interval\|sleep(\|thread::sleep\|from_secs\|tick\|periodic\|--once\|--now\|cron\|schedul" crates --include=*.rs | grep -v "test" | head -40; echo ---; grep -rn "fn main" crates/wake-core/src/bin/*.rs | head
cd <guest-path> && export HOME=/tmp/wake-demo-home && ./target/release/wake-cli refresh 2>&1 | tail -3; echo "refresh rc=$?"; ./target/release/wake-cli show 'claude-code:068f4ced-a156-4781-ad94-c83ef5097a5f' 2>&1 | head -8; echo "show rc=$?"; ./target/release/wake-cli search "useEffect(" --project <host-path> 2>&1 | head -3
cd <guest-path> && nohup bash -c 'export PATH=$HOME/.cargo/bin:$PATH; cargo test -p wake-core' > /tmp/cargo-test.log 2>&1 &
sleep 420; grep -E "test result|error\[|FAILED|panicked" /tmp/cargo-test.log | tail -8; tail -2 /tmp/cargo-test.log
sed -n 1009,1030p <guest-path>; echo; echo "HOME=$HOME"; ls -la $HOME/.cargo/bin/cargo
cd <guest-path> && mkdir -p .coldpass && W=<guest-path> && ID=068f4ced-a156-4781-ad94-c83ef5097a5f && cat > .coldpass/probe.json <<EOF
{"kind":"mcp","argv":["$W/target/release/wake-mcp"],"cwd":"$W","tool":"wake_search","arguments":{"query":"useEffect("},"expected_text":"$ID","env":{"HOME":"/tmp/wake-demo-home"}}
EOF
cat > .coldpass/claims.json <<EOF
[
{"kind":"claim","claim":"The wake-mcp server exposes a search tool that finds sessions by text","source":"Search every session and memory file","input":"query useEffect(","expected":"the matching Claude Code session key is returned","probe_kind":"mcp","argv":["$W/target/release/wake-mcp"],"tool":"wake_search","arguments":{"query":"useEffect("},"expected_text":"$ID","env":{"HOME":"/tmp/wake-demo-home"},"cwd":"$W"},
{"kind":"claim","claim":"wake-cli answers the same search questions from a terminal","source":"\`wake-cli\` gives the same answers in a terminal","input":"search useEffect(","expected":"the matching session key is printed","probe_kind":"cli","argv":["$W/target/release/wake-cli","search","useEffect("],"expected_text":"$ID","env":{"HOME":"/tmp/wake-demo-home"},"cwd":"$W"}
]
EOF
cat > .coldpass/examples.json <<EOF
[
{"kind":"example","claim":"Data-layer tests run with cargo","source":"README.md Development section: data-layer tests only (adapter contracts, FTS, scanner)","input":"cargo test -p wake-core","expected":"all test suites report ok","argv":["<guest-path>","test","-p","wake-core"],"cwd":"$W","env":{},"expected_text":"test result: ok"},
{"kind":"example","claim":"Refresh the index while Wake is closed","source":"README.md shell commands: wake-cli refresh","input":"no arguments","expected":"index is refreshed with the synthetic demo sessions","argv":["$W/target/release/wake-cli","refresh"],"cwd":"$W","env":{"HOME":"/tmp/wake-demo-home"},"expected_text":"Refreshed the index"}
]
EOF
cat > .coldpass/cycles.json <<'EOF'
{"detected":false,"reason":"Inspected README and entry points (wake-cli, wake-mcp, wake GUI). No cron, --once or --now scheduler. The only loop is the GUI file watcher (crates/wake-core/src/watcher.rs, recv_timeout) which runs inside the desktop app; the README's manual one-shot is 'wake-cli refresh' (covered as an example). Desktop GUI could not be run headless here, so no cycle was triggered.","checks":[]}
EOF
for f in probe claims examples cycles; do python3 -I -m json.tool .coldpass/$f.json >/dev/null && echo "$f ok"; done; cat .coldpass/probe.json
cd <guest-path> && <env-var>=<guest-path> python3 -I <guest-path> --validate --replay 2>&1 | tail -60; echo "rc=${PIPESTATUS[0]}"
cd <guest-path> && ls <guest-path> && cat <guest-path> && python3 -I - <<'PY'
import json
p='<guest-path>'
d=json.load(open(p))
d[0]['env']={"HOME":"<guest-path>","RUSTUP_HOME":"<guest-path>","CARGO_HOME":"<guest-path>","PATH":"<guest-path>"}
json.dump(d,open(p,'w'),indent=1,ensure_ascii=False)
print("updated")
PY
<env-var>=<guest-path> python3 -I <guest-path> --validate --replay > /tmp/validate1.json 2>&1; echo "rc=$?"; python3 -I -c "
import json,sys
t=open('/tmp/validate1.json').read()
i=t.find('{')
d=json.loads(t[i:])
print('valid:',d.get('valid')); print('problems:',d.get('problems'))
print('replay:',d.get('replay',{}).get('status'))
for e in d.get('replay',{}).get('details',{}).get('example_checks',[]): print('example',e.get('verdict'),e.get('outcome'),e.get('evidence','')[:150])
"
ps aux | grep -E "[w]ake-mcp|[w]ake-cli|[t]arget/release/Wake" | head; echo "procs-checked"; cd <guest-path> && cat > .coldpass/report.json <<'EOF'
{
"outcome": "working",
"fault_owner": null,
"operation": "Build Wake for Linux with the README's make-linux.sh, index a synthetic agent-session home with wake-cli, and search it through the wake-mcp stdio server (wake_search tool) and wake-cli search.",
"operation_scope": "Ubuntu 24.04 x86_64 VM, non-root user with passwordless sudo. Linux is marked experimental in the README. Data is the synthetic demo home from scripts/demo-home.py at /tmp/wake-demo-home (424 sessions). The desktop GUI was not launched because it needs a display. No real agent data was read.",
"steps": [
"sudo apt-get install -y libasound2-dev libfontconfig1-dev libwayland-dev libxkbcommon-dev libxkbcommon-x11-dev libssl-dev libzstd-dev pkg-config cmake clang (plus curl, build-essential)",
"curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain stable (Rust 1.99.1)",
"scripts/make-linux.sh (release build; produced dist/wake-0.10.1-linux-amd64.tar.gz and dist/wake_0.10.1_amd64.deb)",
"python3 scripts/demo-home.py /tmp/wake-demo-home",
"HOME=/tmp/wake-demo-home wake-cli index",
"HOME=/tmp/wake-demo-home wake-cli search \"useEffect(\"",
"HOME=/tmp/wake-demo-home wake-mcp call wake_search '{\"query\":\"useEffect(\"}' (and an MCP initialize/tools/list over stdio)",
"HOME=/tmp/wake-demo-home wake-cli refresh",
"cargo test -p wake-core (documented data-layer tests: all suites ok)"
],
"deviations": [
"Installed system packages and rustup with the README's install commands. The Ubuntu package list came from the README's Linux section; rustup was the README's Rust toolchain requirement, installed with the rustup.rs installer.",
"The source snapshot is not a git repository, so I did not run git init / git fetch of the pinned commit. make-linux.sh and the tests need no git metadata, so the pin could not be checked against the snapshot.",
"Did not run scripts/test.sh (it is a zsh script). Ran the documented 'cargo test -p wake-core' instead.",
"Did not run the install.sh step of the tar.gz or the .deb; those write to the user's home and system paths. Used the built binaries from target/release directly.",
"Probes and claims use absolute binary paths and set HOME=/tmp/wake-demo-home. The checker's replay environment did not find the rustup default toolchain for the cargo example, so that example sets RUSTUP_HOME and CARGO_HOME explicitly. The first validation run failed on that, and the second passed.",
"Cycle detection: no scheduler, cron, --once or --now trigger was found. The only loop is the GUI file watcher, which runs inside the desktop app and was not started. The manual one-shot 'wake-cli refresh' was run as an example. cycles.json records detected=false with that reason.",
"The GUI app (Wake) was built but not launched, so no GUI behaviour was checked."
],
"stuck_step": null,
"main_blocker": null,
"plain_failure": null,
"suggested_fix": "None needed for the tested path. For a full check, run the GUI on a machine with a display and confirm sessions list and resume, since Linux support is experimental."
}
EOF
python3 -I -m json.tool .coldpass/report.json >/dev/null && echo report-ok; <env-var>=<guest-path> python3 -I <guest-path> --validate --replay 2>&1 | python3 -I -c "import sys,json;t=sys.stdin.read();d=json.loads(t[t.find('{'):]);print('valid:',d['valid'],'problems:',d['problems'],'replay:',d['replay']['status'])"run JSON · checker evidence · agent report + check · transcript excerpt unavailable · error excerpt unavailable