Follow-up to #80700: 1. _await_disconnect_step was missing the try/except CancelledError around asyncio.wait() that _await_adapter_cleanup_with_timeout already has. When the outer fatal-handler timeout cancels disconnect() mid-step, asyncio.wait does NOT cancel its inner task — the task was orphaned with no observer. Add the same cancel+detach+re-raise pattern. 2. _queue_retryable_fatal_platform omitted credential_claim/listener_claim keys that all 3 startup-path queue sites include. These are consumed by the multiplex reservation logic to prevent secondary profiles from taking the endpoint while a primary is queued. Pre-existing latent bug — now fixed since the extraction makes it trivial. |
||
|---|---|---|
| .. | ||
| browser | ||
| context_engine | ||
| cron_providers | ||
| dashboard_auth | ||
| disk-cleanup | ||
| google_meet | ||
| hermes-achievements | ||
| image_gen | ||
| kanban | ||
| memory | ||
| model-providers | ||
| observability | ||
| platforms | ||
| security-guidance | ||
| spotify | ||
| teams_pipeline | ||
| video_gen | ||
| web | ||
| __init__.py | ||
| plugin_utils.py | ||