DN Runtime Recovery Test extension v0.2 — 2 November 2026

Evidence: local framework execution and real SDK with mocked HTTP transport.
No model calls, purchases, wallets, paid APIs, hosted provider runs or real TCP failure injection.
Original v0.1 is immutable and remains at /data/runtime-recovery/v0.1/.

This extension executes five fixtures ten times in each of two recorded dependency environments.
Recursion limits 3 and 25 must raise after exactly the configured count.
A custom child event must carry the child namespace, not the parent's empty namespace.
A paused ToolNode must make no effect before approval, one after approval, and emit no tool-error while paused.
The SDK fixture interrupts after event-1. Recovery must GET the Location stream without a body, send Last-Event-ID event-1 and produce values 1 then 2.

The 1.2.16 / SDK 0.4.8 dependency set met 40/50 extension criteria; all ten paused-tool fixtures emitted tool-error despite correctly withholding the effect until approval. The 1.2.19 / SDK 0.4.11 set met 50/50. Both sets reconnected in this simple fixture. This is not evidence that the old SDK fails universally, nor that the newer stack is production-safe. Other dependencies changed, so do not attribute causality to one package.

The unchanged 60-trial core runner was also rerun in each environment. In each, memory-only restart, new-key retries and cached authorization fail their selected criteria; SQLite checkpoints, stable keys and receiver rechecks meet theirs. This preserves the negative controls.
Core JSON retains the original runner's version 0.1; manifest role and file name identify these as new executions, not replacements of published history.

Reproduce in fresh Python 3.12 virtual environments:
python -m venv baseline-env
baseline-env/bin/pip install -r requirements-baseline.txt
baseline-env/bin/python extension_test.py reproduced-baseline.json
baseline-env/bin/python recovery_test.py run --repeats 10 --output reproduced-baseline-core.json
Repeat with a separate current-env and requirements-current.txt.
Run python verify_results.py in this directory to verify the published source hashes and oracles.
UUIDs and timestamps vary. Compare criteria and effect counts, not byte equality after rerunning.
In-memory fixtures do not test production persistence, authorization separation, revoked approval after resume, latency, concurrency or managed platforms. A local list records the paused-tool effect; reconnect uses httpx.MockTransport.

Research data: CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/). Cite Decentralised News, Runtime Recovery Test v0.2, 2 November 2026, exact file URL, and retain these limitations. Code: MIT; see LICENSE.txt.
