hermes-agent/gateway/platforms
kshitij c9411b72df fix: store strong ref to detached fatal handler task to prevent GC
asyncio.ensure_future(result) creates a task with only a weak ref in
the event loop's task table. After the carrier raises CancelledError,
the local 'task' variable goes out of scope and the loop can GC the
handler before it finishes — the exact 'handler killed mid-flight'
class we are fixing, just via GC instead of cancellation.

Add _detached_fatal_tasks set on BasePlatformAdapter (matching the
gateway-level pattern in _handle_adapter_fatal_error). Uses getattr
fallback for test stubs built via object.__new__().
2026-08-09 22:34:28 +05:30
..
qqbot fix(qqbot): resolve credentials under the active profile secret scope 2026-08-02 10:01:16 -07:00
ADDING_A_PLATFORM.md
…
__init__.py
…
_http_client_limits.py
…
api_server.py fix(api-server): resolve reasoning for the request's model, not model.default 2026-08-08 11:13:27 -07:00
base.py fix: store strong ref to detached fatal handler task to prevent GC 2026-08-09 22:34:28 +05:30
bluebubbles.py fix(secrets): scoped BLUEBUBBLES_PASSWORD + API_SERVER_KEY init read; add parametrized regression tests 2026-08-02 10:00:44 -07:00
helpers.py refactor(discord): keep link formatting adapter-local 2026-08-02 21:48:06 -07:00
media_cache.py refactor(gateway): shared media-cache mime dispatch for adapter downloads (per-adapter overrides preserve historical mappings) 2026-07-29 10:14:59 -07:00
msgraph_webhook.py fix(gateway): dual-stack webhook bind for wecom/msgraph/whatsapp_cloud/teams/telegram siblings 2026-07-28 22:42:41 -07:00
signal.py refactor(gateway): shared media-cache mime dispatch for adapter downloads (per-adapter overrides preserve historical mappings) 2026-07-29 10:14:59 -07:00
signal_format.py
…
signal_rate_limit.py refactor: single shared Retry-After parser 2026-07-29 10:13:50 -07:00
webhook.py chore: remove unused imports and dead locals (ruff F401/F841 sweep) 2026-07-29 11:53:39 -07:00
webhook_filters.py refactor: single build_subprocess_env() factory for all child-process spawns (profile + secret-scrub single owner) 2026-07-29 10:14:11 -07:00
weixin.py fix(weixin): Slack-pattern secret scoping for WEIXIN_* credential reads 2026-08-02 09:59:52 -07:00
whatsapp_cloud.py fix(whatsapp): route WHATSAPP_* env reads through secret scope for multiplex profiles 2026-08-02 00:11:50 -07:00
whatsapp_common.py fix(whatsapp): default-profile UnscopedSecretError fallback + full bridge env set 2026-08-02 00:11:50 -07:00
yuanbao.py fix(yuanbao): preserve archived history on recall redaction 2026-08-07 13:56:18 +05:30
yuanbao_media.py
…
yuanbao_proto.py
…
yuanbao_sticker.py
…