Files
EvoScientist-Multi/tests/b04_stop_evidence.md
T
m4 d4b53bfb08
Docker / build (push) Has been cancelled
Test / pytest (ubuntu-latest, 3.12) (push) Has been cancelled
Test / pytest (windows-latest, 3.11) (push) Has been cancelled
Test / pytest (windows-latest, 3.12) (push) Has been cancelled
Lint / ruff (push) Has been cancelled
Test / pytest (ubuntu-latest, 3.11) (push) Has been cancelled
Build / build (push) Has been cancelled
test: cover stop contract, execution adapters, checkpointer race and runtime identity
2026-09-13 15:12:17 +08:00

2.1 KiB

B04 stop proof evidence

Final run: /tmp/b04-stop-green4.log, 3 passed in 0.44s. Each new parameter node used 4/5 attempts (ledger alongside this file). Old writer race and continuation scenarios were not executed.

  • cancel: real StateGraph plus native LangChain SubagentTransformer and controlled FakeListChatModel stream; node finally settled, one terminal, physical writer rows zero.
  • close_error: instance-local graph iterator aclose fails once, then blocks; repeated wait_stopped returns unknown, stop task remains alive, writer row remains one; release allows retry, terminal once, writer rows zero.
  • slow_commit: real aiosqlite worker operation blocks, its waiting future is cancelled, operation still executes an INSERT; unknown retains writer; after release, stop commit barrier makes INSERT visible from a separate SQLite connection and physical writer rows become zero.
  • Default no-registry abort compatibility: /tmp/b04-stop-default-regression.log, 1 passed, 48 deselected in 0.13s.

No event-stream replacement, global dependency monkeypatch, external network, business service, PostgreSQL, installation, git commit, or full suite used.

Support is pinned to LangGraph 1.2.6, checkpoint-sqlite 3.0.3, aiosqlite 0.22.1. Adapter retains the graph iterator before dependency abort can discard it, intercepts cancellation exception args for Pregel exit_task, and waits for pulls, exits, graph close, mux close and local producers. Database barrier runs after event generator closure (including exceptional state repair).

Limits: these three runs observed zero detached exit_task handles; ordinary Pregel exit completed inside the cancelled pull. The exit_task capture branch is source-grounded, not directly fault-triggered by these fixtures. A failed or cancelled internal exit has no reliable supported recovery interface and conservatively retains ownership. Unsupported dependency versions do likewise. No arbitrary detached writers, external update_state/raw SQL writers, external namespace entry, different registry, file replacement, or saver-level CAS claims.