Skip to content

fix: isolate room cancellation during bridge rehydration - #833

Open
AlexanderZ-Band wants to merge 3 commits into
mainfrom
fix/fixpython-isolate-stopped-room-nudges-during-bridg-INT-1843
Open

AlexanderZ-Band wants to merge 3 commits into
mainfrom
fix/fixpython-isolate-stopped-room-nudges-during-bridg-INT-1843

Conversation

@AlexanderZ-Band

@AlexanderZ-Band AlexanderZ-Band commented Oct 18, 2026 •

Copy link
Copy Markdown
Collaborator

Why

Cancelling one room's startup nudge can propagate through backlog rehydration and shut down the whole bridge.

What

Collect and report each room's rehydration result independently. Organize the bridge tests by behavior and cover cancellation and failure without abandoning other rooms.

Scope

Independent bridge portion of #791. Closes INT-1843; contributes to INT-1133. Backend cancellation and runtime queue handling remain separate changes.

Runtime controls are #832; backend cancellation is #834 → #835 → #791.

@linear-code

linear-code Bot commented Oct 18, 2026 •

Copy link
Copy Markdown

INT-1133

INT-1843

@AlexanderZ-Band AlexanderZ-Band left a comment

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Full-PR review at ab4f7cd0813a: no verified findings across Style & Hygiene, Design & Reuse, Runtime Safety & Observability, Test Quality, Edge-Case Flow Analysis, or Logical Bugs. Converged in cycle 1. Bridge suite: 93 passed; complete unit suite is running.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟢 Approved

The localized change preserves runner cancellation, adds focused regression coverage, and has no identified blocking issues.

No open issues 🎉

What changed in this PR

Isolates room-level cancellation and failures during bridge startup rehydration, while preserving cancellation of the runner itself.

Changes:

  • Collects and logs rehydration outcomes per room.
  • Adds startup cancellation and failure regression tests.
  • Splits existing bridge tests by behavior and centralizes shared helpers.
File Description
tests/​bridge/​test_rehydration_failure.py Tests failure isolation and logging.
tests/​bridge/​test_rehydration_control.py Tests room and runner cancellation during startup.
tests/​bridge/​test_control_wiring.py Relocates control-hook wiring tests.
tests/​bridge/​test_control_routing.py Relocates control-scope routing tests.
tests/​bridge/​test_control_play_nudge.py Relocates play-triggered backlog tests.
tests/​bridge/​test_control_graceful_degradation.py Relocates defensive control tests.
tests/​bridge/​test_control_dedup.py Relocates control deduplication tests.
tests/​bridge/​test_control_cancels_in_flight_forward.py Relocates forwarding cancellation tests.
tests/​bridge/​test_bridge.py Removes the consolidated suite after splitting it.
tests/​bridge/​test_bridge_control.py Removes the consolidated control suite after splitting it.
tests/​bridge/​test_band_bridge_shutdown.py Relocates shutdown tests.
tests/​bridge/​test_band_bridge_multi_identity_isolation.py Relocates agent-isolation tests.
tests/​bridge/​test_band_bridge_construction.py Relocates bridge construction tests.
tests/​bridge/​test_agent_runner_subscriptions.py Relocates subscription and cleanup tests.
tests/​bridge/​test_agent_runner_rehydration.py Relocates backlog rehydration tests.
tests/​bridge/​test_agent_runner_per_room_serialization.py Relocates room serialization tests.
tests/​bridge/​test_agent_runner_forwarding.py Relocates event-forwarding tests.
tests/​bridge/​test_agent_runner_forwarder_failures.py Relocates forwarder failure tests.
tests/​bridge/​test_agent_runner_concurrency_cap.py Relocates forwarding concurrency-limit tests.
tests/​bridge/​test_agent_runner_backoff.py Relocates reconnect jitter tests.
tests/​bridge/​kit.py Centralizes runner builders, events, and test doubles.
band-bridge/​bridge_core/​bridge.py Collects room outcomes without propagating individual nudge cancellation.

Review effort: Balanced

This branch has not been deployed

No deployments
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.

2 participants