Keep HTTP bridge missing-created watchdog armed after prelude - #1580
Keep HTTP bridge missing-created watchdog armed after prelude#1580Komzpa wants to merge 2 commits into
Conversation
211e6af to
0fc6fce
Compare
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
|
The gap is real: with
Note overlap with #1543/#1555 (bounded-retry approaches to the same lost-created stall, both superseded by merged #1394) and #1563, which fixes the durable-anchor flavor of #1534 — reconcile anchoring semantics with whichever lands first. |
Summary
Fix the HTTP bridge missing-
response.createdwatchdog so upstream prelude events do not disarm it before a response id exists.Before this change,
_http_bridge_eventless_precreated_deadline()returned no deadline as soon asresponse_event_countwas nonzero. That treated any upstream event as progress even when the bridge still had noresponse.created, noresponse_id, and no visible downstream output. A client could then see only the initial SSE heartbeat while the bridge stayed occupied until a later idle or stream cleanup path.This keeps the watchdog armed until real progress is observed:
response.created/latency, visible downstream output, terminal cleanup, or the existing explicit disqualifiers.Validation
uv run pytest tests/unit/test_proxy_http_bridge.py -k 'eventless_precreated_deadline or eventless_timeout_force_retires or missing_response_created or reader_wakes_and_retires_lone_eventless_owner_without_keepalives or response_create_gate_timeout_does_not_retire_active_response_progress'uv run pytest tests/unit/test_proxy_http_bridge.pyuv run ruff check app/modules/proxy/_service/http_bridge/helpers.py tests/unit/test_proxy_http_bridge.pygit diff --check