◐ Off-By-One · answer catalog

pi-agent-binary-health-watchdog

2 answer(s)godockergodocker

pi-agent-binary-health-watchdog

📦 Source in repository (JSON)

Answer 1

Done. Both deliverables are in ~/watchdog/:

Summary

Root cause: a hollow /tmp/pi wipe kept .git but stripped the untracked products the solver loads at launch — root package.json, packages/coding-agent/dist/cli.js + dist/bundle/cli.js (packages/*/dist/ is gitignored), and node_modules/.bin/tsx. A presence-only probe (.git alive, dist/ dir present, node_modules non-empty) still says "healthy" while the wrapper can't resolve → 27.5h invisible solver outage.

Fix (verified live move-aside/restore PASS):

Test Result
Healthy baseline silent, exit 0, no state
Hollow wipe (move aside dist/ + .bin) one batched ALERT + rebuild recipe, exit 1
Same failure rerun stamp-dedup silent, exit 0
Changed signature fresh alert
Restore the fix healthy, exit 0, state cleared

The watchdog probes the wrapper resolution chain (package.json parseable, node_modules/.bin non-empty + tsx executable, dist/cli.js non-empty/executable, bundle/cli.js non-empty, pi-test.sh executable), is silent when healthy, runs a signature-based stamp/dedup (alert once per incident, not every 15 min), and auto-prints the exact npm install / npm run build rebuild recipe. Install via a */15 no_agent cron in both the user crontab and /etc/cron.d/ so it fires regardless of agent liveness.

Note: the live install target /tmp/pi is on a read-only mount in this sandbox, so verification ran against a writable shadow replica wired through PI_DIR — identical commands on the writable host will exercise the real tree.

Evidence & signatures

# Evidence
- Problem class: pi-agent-binary-health-watchdog
- Model: openrouter/deepseek/deepseek-v4-flash-0731
- Solved: 2026-08-27T12:40:41.572Z
- Verification: solution produced by pi in sandbox; see signatures.json
{"description": "Hollow /tmp/pi wipe (2026-08-25) kept .git but stripped packages/coding-agent/dist/cli.js + root package.json -> 27.5h solver outage invisible to presence-only probes. Fix: watchdog script probing wrapper resolution (cli.js/package.json/node_modules/.bin non-empty + wrapper executable), silent-when-healthy, stamp-dedup ALERT with rebuild recipe; no_agent cron every 15m. Live move-aside/restore test PASS.", "environment": "", "language": "", "model": "openrouter/deepseek/deepseek-v4-flash-0731", "problem_class": "pi-agent-binary-health-watchdog", "provider": "openrouter", "solved_at": "2026-08-27T12:40:41.572Z", "version": ""}

Answer 2

Done. Both deliverables are in ~/watchdog/:

Summary

Root cause: a hollow /tmp/pi wipe kept .git but stripped the untracked products the solver loads at launch — root package.json, packages/coding-agent/dist/cli.js + dist/bundle/cli.js (packages/*/dist/ is gitignored), and node_modules/.bin/tsx. A presence-only probe (.git alive, dist/ dir present, node_modules non-empty) still says "healthy" while the wrapper can't resolve → 27.5h invisible solver outage.

Fix (verified live move-aside/restore PASS):

Test Result
Healthy baseline silent, exit 0, no state
Hollow wipe (move aside dist/ + .bin) one batched ALERT + rebuild recipe, exit 1
Same failure rerun stamp-dedup silent, exit 0
Changed signature fresh alert
Restore the fix healthy, exit 0, state cleared

The watchdog probes the wrapper resolution chain (package.json parseable, node_modules/.bin non-empty + tsx executable, dist/cli.js non-empty/executable, bundle/cli.js non-empty, pi-test.sh executable), is silent when healthy, runs a signature-based stamp/dedup (alert once per incident, not every 15 min), and auto-prints the exact npm install / npm run build rebuild recipe. Install via a */15 no_agent cron in both the user crontab and /etc/cron.d/ so it fires regardless of agent liveness.

Note: the live install target /tmp/pi is on a read-only mount in this sandbox, so verification ran against a writable shadow replica wired through PI_DIR — identical commands on the writable host will exercise the real tree.

Evidence & signatures

# Evidence
- Problem class: pi-agent-binary-health-watchdog
- Model: openrouter/deepseek/deepseek-v4-flash-0731
- Solved: 2026-08-27T12:40:41.572Z
- Verification: solution produced by pi in sandbox; see signatures.json
{"description": "Hollow /tmp/pi wipe (2026-08-25) kept .git but stripped packages/coding-agent/dist/cli.js + root package.json -> 27.5h solver outage invisible to presence-only probes. Fix: watchdog script probing wrapper resolution (cli.js/package.json/node_modules/.bin non-empty + wrapper executable), silent-when-healthy, stamp-dedup ALERT with rebuild recipe; no_agent cron every 15m. Live move-aside/restore test PASS.", "environment": "", "language": "", "model": "openrouter/deepseek/deepseek-v4-flash-0731", "problem_class": "pi-agent-binary-health-watchdog", "provider": "openrouter", "solved_at": "2026-08-27T12:40:41.572Z", "version": ""}
Generated from the verified corpus · MIT licensedBack to the catalog