Skip to content

runtime: fold venue adapters into the restart and poison sweeps#445

Open
mfw78 wants to merge 1 commit into
feat/m2-preset-launch-surfacefrom
feat/m2-adapters-in-sweeps
Open

runtime: fold venue adapters into the restart and poison sweeps#445
mfw78 wants to merge 1 commit into
feat/m2-preset-launch-surfacefrom
feat/m2-adapters-in-sweeps

Conversation

@mfw78

@mfw78 mfw78 commented Jul 17, 2026

Copy link
Copy Markdown
Contributor

What

Fold venue adapters (providers) into the supervisor's restart and poison-recovery sweeps, alongside modules. A trap in a routed adapter call marks a shared Liveness dead; the sweep restarts the provider through the module backoff policy and quarantines a crash-looper through the poison policy. A dead venue now resolves to Unavailable, distinct from UnknownVenue, and adapter_alive_count tracks live routability. Adds the flaky-venue fixture, whose submit traps on a poison chain-head sentinel and recovers once the head moves on, to drive the trap-to-recovery and poison paths end to end.

Why

Adapters currently boot once and install but sit outside the sweeps, so a trapped adapter stays dead until the process restarts, and the router can only project the trap to an internal error. Folding adapters into the sweeps recovers them automatically and lets a strategy tell an unknown venue apart from a temporarily dead one.

Closes #378

Testing

  • dead_venue_is_unavailable_not_unknown, a_dead_incumbent_is_replaced_on_reinstall in host/venue_registry.rs.
  • e2e_trapped_adapter_is_swept_and_restarts, e2e_crash_looping_adapter_is_poisoned in supervisor/tests.rs, over the new flaky-venue wasm fixture.
  • cargo fmt --all --check, cargo check --workspace --all-features, cargo clippy --workspace --all-targets --all-features -- -D warnings, cargo nextest run --workspace --all-features, cargo test --doc.

AI Assistance

Implemented with Claude Code under review.

A trap in a routed adapter call marks a shared Liveness dead; the
dispatch-time sweeps restart the provider after the module backoff
policy and quarantine a crash-looper per the poison policy. A dead
venue resolves to unavailable, distinct from unknown-venue, and
adapter_alive_count reports live routability. The flaky-venue fixture
drives the trap-to-recovery and poison paths end to end.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant