mirror of
https://github.com/Chevron7Locked/kima-hub.git
synced 2026-06-19 07:37:17 +00:00
12ebc8c9a5
The first #197 fix only hardened the pub/sub subscriber; a 3-model review panel found it incomplete. This closes the rest: - publish() now runs on a dedicated soft-options connection (enableOfflineQueue, infinite retries) instead of the strict shared client -- that strict publish was still throwing the same "Stream isn't writeable" error under load. - subscriber lifecycle: terminal "end" drops the cache, a failed psubscribe disconnects the half-open socket instead of leaking it; transient drops self-heal via auto-reconnect. - both subscribe and publish are time-bounded so an unreachable Redis fails the request instead of hanging indefinitely. - analyzer failures ({success:false, embedding:null}, no error field) are now rejected cleanly instead of passing null into the pgvector cast (500). - the analyzer publishes a failure response on internal exceptions so the caller fails fast instead of waiting out the full 15s timeout. Reviewed by Opus/Sonnet/Haiku panels twice (original confirmed INCOMPLETE, rewrite SHIP-WITH-CHANGES); surviving findings applied, two rejected with reason (no publisher churn on transient error; keep setMaxListeners(0) to not re-trigger the warning flood). The reporter's 200k-track failure may also involve Redis memory pressure or Python-analyzer saturation, which this makes tolerable but does not itself resolve -- pending their redis INFO.