dcf2de0052f2c78a3bad84c067bf454206d396a3
Root cause of Tanko not responding to DMs after initial connection:
Zulip event queues expire after ~10min of dont_block polling. When the
queue expired, _api_call() returned None for all 400-level errors, which
_fetch_events() treated as 'no events' and returned []. The poll loop
never knew the queue died, so it never reconnected.
Fix:
1. _api_call() now returns (Optional[Dict], status_code) tuple
2. _fetch_events() explicitly checks for 400 status and raises
RuntimeError('BAD_EVENT_QUEUE_ID') for the poll loop to catch
3. All callers updated to unpack the tuple
Now when a queue expires, the poll loop catches the error and
calls _reconnect() to register a fresh queue.
Description
Multi-platform Zulip agent communication plugins (Hermes, openclaw, Agent Zero)
1.3 MiB
Languages
Python
50.6%
JavaScript
34.6%
TypeScript
11.1%
Shell
3.7%