hermes-agent/plugins/platforms
Teknium a7f0abc845 fix(email): dispatch partial batches, seen-after-fetch UIDs, reconnect UID baseline restore
Follow-ups to the salvaged #80032 fatal-error escalation, closing the
gaps its review thread identified plus a sibling of the same class:

1. Partial-batch loss: _check_inbox now dispatches whatever the fetch
   returned BEFORE escalating a failure — the early-return dropped
   already-fetched messages whose UIDs were marked seen.
2. Seen-after-fetch: UIDs enter _seen_uids only after their fetch
   returns a response, so a mid-batch connection failure leaves the
   remaining UIDs eligible for the next poll. Per-message processing
   moved to _parse_fetched_message behind a poison guard: a message
   that fails parsing/auth-verification is marked seen, logged with
   its UID, and skipped once — never an eternal crash loop.
3. Reconnect mail loss: connect(is_reconnect=True) restores the
   account's seen-UID baseline from a class-level snapshot instead of
   re-marking the entire mailbox seen — mail that arrived during an
   outage is now processed after the reconnect the escalation triggers.

7 new regression tests.
2026-08-13 01:24:54 -07:00
..
a2a docs(a2a): website docs page + canonical agent-card.json path in prose 2026-08-02 15:10:15 -07:00
buzz fix(secrets): Slack-pattern scoped credential reads — Feishu, WeCom, Photon, Buzz 2026-08-02 10:00:44 -07:00
dingtalk refactor: fold simplify-code review findings 2026-08-07 13:28:43 +05:30
discord refactor: fold tailored intents guidance into the connect classifier 2026-08-13 00:10:30 -07:00
email fix(email): dispatch partial batches, seen-after-fetch UIDs, reconnect UID baseline restore 2026-08-13 01:24:54 -07:00
feishu refactor: fold simplify-code review findings 2026-08-07 13:28:43 +05:30
google_chat fix(deps): repair Google transitive security floors (#72108) 2026-07-31 23:18:38 -07:00
homeassistant fix(secrets): Slack-pattern scoped credential reads — ntfy, Home Assistant, SMS, DingTalk 2026-08-02 10:00:44 -07:00
irc fix(secrets): Slack-pattern scoped credential reads — IRC, LINE, Teams, Mattermost 2026-08-02 10:00:44 -07:00
line fix(platforms/line): fix broken import of non-existent config functions 2026-08-03 16:54:02 +05:30
matrix refactor(matrix): extract _strip_reply_fallback to deduplicate text+media handlers 2026-08-07 14:34:55 +05:30
mattermost fix(secrets): Slack-pattern scoped credential reads — IRC, LINE, Teams, Mattermost 2026-08-02 10:00:44 -07:00
ntfy fix(secrets): Slack-pattern scoped credential reads — ntfy, Home Assistant, SMS, DingTalk 2026-08-02 10:00:44 -07:00
photon fix(gateway): classify terminal adapter connect failures + escalate long-lived retry loops (OOF-156) 2026-08-12 22:16:12 -07:00
raft fix(security): widen non-ASCII compare_digest crash fix to all sibling sites 2026-07-16 07:22:24 -07:00
simplex refactor(simplex): hoist json.dumps above branch in _standalone_send 2026-08-08 13:56:12 +05:30
slack fix(slack): insert resolved display names literally when humanizing mentions 2026-08-08 05:58:43 -07:00
sms fix(secrets): Slack-pattern scoped credential reads — ntfy, Home Assistant, SMS, DingTalk 2026-08-02 10:00:44 -07:00
teams refactor: derive teams install hint via feature_install_command(venv_pip=True) 2026-08-07 13:28:43 +05:30
telegram fix(gateway): classify terminal adapter connect failures + escalate long-lived retry loops (OOF-156) 2026-08-12 22:16:12 -07:00
wecom refactor: fold simplify-code review findings 2026-08-07 13:28:43 +05:30
whatsapp fix(whatsapp): default-profile UnscopedSecretError fallback + full bridge env set 2026-08-02 00:11:50 -07:00