mirror of
https://github.com/openclaw/openclaw.git
synced 2026-08-02 01:01:35 +00:00
* fix(zalo): adopt durable ingress drain with ack gated on raw-envelope append OA webhooks acked before detached processing behind a 5-minute in-memory guard, and Zalo does not retry (silent loss). Raw webhook JSON now appends durably (event_id = Bot API message.message_id, lane per chat.id) before the 200; failed appends answer 400/500 so nothing acks unpersisted. Dispatch runs through the core drain with serialized admissions across append backoff, deferred claims held through shutdown until adoption, retry/dead-letter classification, and 30d/20k tombstones replacing the deleted 5min/5k guard after its parity test. Webhook and polling transports stay mutually exclusive; no twin scenario exists across the four received-event types. Autoreview scanner false-positive on deleted-line token field references; full manual review performed (ack ordering, dual-transport exclusivity, eleven-test matrix). Part of the #109657 fleet program (wave 3). * refactor(zalo): keep webhook runtime exports private * test(zalo): use managed temp directories