# Webhook restart proof driver

Real Node server and Vite web client, isolated fresh databases, light theme, 1280 × 800 browser viewport. Project was added through the app CLI; the enabled webhook task was created through scheduledTasks.upsert over the app WebSocket, with no coalescing and prompt `Restart proof delivery {{body.number}}`. The free replay agent handled both recovered turns.

`public-start-manual.py SIDE CHECKOUT` starts server/web (set PROOF_SCRATCH to an empty scratch directory and put prepare-home.py there). Seed a small git repository and add it with `node apps/server/src/bin.ts project add WORKSPACE --title "Webhook restart demo" --base-dir HOME`. Pair the browser, finish onboarding, then create the webhook task in Settings or through the same RPC. Save its webhook path in SIDE-endpoint-private.json as {"path":"..."}; never publish this file.

`public-crash-restart.py SIDE` holds external Git commands through a PATH shim, sends concurrent POSTs with synthetic bodies {"number":1} and {"number":2}, waits for both HTTP 202 responses, immediately SIGKILLs the server PID from its own runtime file after verifying its cwd, removes the Git hold, and restarts the exact same server executable/arguments/environment against the same home. It observes recovery after 15 seconds using read-only SQLite queries. No database rows are inserted or changed by the driver.

`public-restart-again.py SIDE` restarts again without sending more deliveries and records run counts and message.dispatch receipts. The head remains at exactly two runs/two threads; the base remains at zero. The full observations include delivery-derived command IDs.

The captures show the real app. Its delivery badge says “Ran” even for the stranded base deliveries; that label is not treated as evidence that a run exists. The task status, resulting thread list, and server observations distinguish the outcomes.

No relay was configured; relay replay/deduplication was not demonstrated. No source code was changed. AI-assisted; verified with the tests and tools listed above.
