mirror of
https://gh-proxy.org/https://github.com/klinsmaya/multica.git
synced 2026-11-09 09:56:47 +08:00
wecom/outbound.go subscribed to EventChatDone and EventInboxNew only, while DingTalk, Lark, Slack and Telegram all handle EventTaskFailed. A run that failed in WeCom therefore said nothing, and logged nothing either, because no handler ran. task:failed now goes out on the same route a reply takes — task delivery row, origin gate, installation status, socket or relay — carrying the platform's own redacted failure text behind a warning mark, the way DingTalk delivers it. Nothing is sent while an auto-retry is pending: the retry attempt reports its own outcome. task:cancelled is subscribed for the log line only; a cancellation ends the run without an answer and WeCom has nothing to take back, which is Lark's choice too. Tests: the failure reaches the bound chat; a retry-pending attempt, a failure with no text, and a web-UI run's failure all stay silent; the wiring through a real bus, with a cancellation publishing nothing; and the same failed run through the real query layer against Postgres. With the two subscriptions removed the bus-wired tests fail; with the content helper reverted to chatDoneContent the processEvent test fails.