feat: add 2 new failure modes — rate limiting and streaming fallback

- Rate limiting during reconnection (429): honor retry-after headers
- Placeholder edit fails silently: fallback to sending as new message
- Both fixes deployed to pi Zulip extension
This commit is contained in:
root
2026-06-30 22:56:09 +00:00
parent 45641e7ae7
commit 0c976ddbf7
+12
View File
@@ -57,6 +57,18 @@ description: >
- **Fix**: Kill old process before starting, or use docker restart to clear state
- **Applies to**: kagentz Agent Zero deployment
### 9. Zulip API Rate Limiting During Reconnection
- **Symptom**: Extension gets 429 errors and can't reconnect — responses vanish
- **Root cause**: Rapid PM2 restarts cause multiple queue registrations, hitting Zulip's per-IP rate limit
- **Fix**: Read `retry-after` header and wait before retrying; increase backoff between retries
- **Applies to**: pi extension (fixed), Hermes adapter (has retry logic but should check retry-after)
### 10. Placeholder Edit Fails Silently (Streaming Vanishes)
- **Symptom**: User sees "Thinking..." placeholder but never gets the actual response
- **Root cause**: `editMessage` API call fails (e.g., message too old, rate limited) but no fallback
- **Fix**: If edit fails, send the response as a new message instead
- **Applies to**: pi extension (fixed), Hermes adapter (verify edit fallback exists)
## Deployment Checklist
When deploying a new Zulip adapter, verify: