expand Tlon adapter support#26300
Conversation
…latest # Conflicts: # toolsets.py
|
I split the Tlon work into a draft stack in the fork so the large integration branch can stay draft while each review surface is isolated:
Validation on the top branch: scripts/run_tests.sh tests/gateway/test_tlon_adapter.py tests/tools/test_tlon_tool.py tests/tools/test_send_message_tool.py tests/gateway/test_restart_drain.py tests/gateway/test_restart_notification.py tests/gateway/test_session.py tests/test_toolsets.pyResult: 313 passed. I am keeping #26300 as the draft integration branch rather than marking it ready. |
|
Follow-up fix pushed to the integration branch and split stack: channel thread replies now parse the OpenClaw/Tlon %channels r-reply.set.reply-essay event shape. That was the missing path for thread reply mentions that appeared in Tlon activity but did not route into handle_message. Validation:
|
|
Hey @wca4a — tested this PR with a moon hosted on a Native Planet box via Startram and hit a connection failure worth flagging before this merges. Apparently Startram's reverse proxy sends duplicate Server headers in HTTP responses, which is technically malformed per RFC 9110. This was silently tolerated until aiohttp 3.13.4, which introduced strict singleton header enforcement in the C extension parser. The result is the gateway fails immediately on connect: The fix: aiohttp 3.13.5 (released 2026-03-31, PR #12302) reverted response parsing back to lax mode — duplicate headers on responses are ignored again, while request parsing stays strict. Pinning aiohttp>=3.13.5 in pyproject.toml is all that's needed. Given how many of us use NP machines, it would probably affect a meaningful chunk of users. Happy to provide any additional detail if helpful. |
…latest # Conflicts: # pyproject.toml # tools/lazy_deps.py
Summary
This PR expands the Hermes Tlon integration to match the OpenClaw/Tlon skill behavior tested locally.
channels /v2,chat /v3,groups /groups/ui, andgroups /v1/foreigns%channelsgroup mentions are not dropped when Eyre omits a usable subscription idchannels/v4andchannels/v5Why
The previous Tlon adapter could send basic messages, but it did not fully mirror OpenClaw group/channel behavior. In practice that meant it could miss group mentions, did not reliably understand current group membership, could mishandle delayed blobs, could not populate galleries correctly, and forced approval flows through text commands instead of Tlon reactions.
Validation
Ran:
Result:
Also copied the patched adapter into the local live Hermes runtime, ran
py_compile, restarted the gateway, and confirmed Tlon reconnected cleanly.