Skip to content

Support adapter channel directory enumeration - #43545

Closed
Guoen0 wants to merge 1 commit into
NousResearch:mainfrom
Guoen0:xiaoduiyou-channel-directory
Closed

Guoen0 wants to merge 1 commit into
NousResearch:mainfrom
Guoen0:xiaoduiyou-channel-directory

Conversation

@Guoen0

@Guoen0 Guoen0 commented Jun 10, 2026

Copy link
Copy Markdown
Contributor

Summary

  • let gateway channel directory use adapter-provided list_channels() before falling back to platform-specific/session discovery
  • normalize adapter-provided channel entries and dedupe invalid/duplicate ids
  • add coverage for adapter-driven channel enumeration

Why

Plugin platforms such as Xiaoduiyou can enumerate current delivery targets directly. Without this hook, send_message(action=list) only sees stale session-history entries and cannot reliably target renamed/current channels.

Test

  • python -m pytest -q tests/gateway/test_channel_directory.py

@Guoen0

Guoen0 commented Jun 10, 2026

Copy link
Copy Markdown
Contributor Author

Closing: this change is not being pursued upstream from this workflow.

@Guoen0 Guoen0 closed this Jun 10, 2026
@Guoen0
Guoen0 deleted the xiaoduiyou-channel-directory branch June 10, 2026 13:36
@alt-glitch alt-glitch added type/feature New feature or request comp/gateway Gateway runner, session dispatch, delivery P3 Low — cosmetic, nice to have labels Jun 10, 2026
teknium1 added a commit that referenced this pull request Aug 2, 2026
…s in hermes send --list

Builds on the adapter list_channels() hook (cherry-picked from #43545 by
@Guoen0):

- plugins/platforms/simplex: implement list_channels() — enumerates
  contacts (/contacts) and groups (/groups) over the live daemon
  WebSocket into the channel directory. Returns None when the WS is
  down so the directory falls back to session discovery instead of
  wiping known targets.
- hermes send --list: merge configured-but-undiscovered platforms into
  the listing. Previously a platform configured only via env (e.g. a
  fresh SimpleX setup used for outbound sends) was silently omitted,
  leaving users guessing at platform names.
- format_directory_for_display(): accept an explicit platforms view and
  render empty platforms with a targeting hint instead of hiding them.
- docs: simplex hermes-send section.

Reported by Fedpostoffice on Discord (simplex missing from
hermes send --list; guessed platform names simplex-chat/simplex-relay).
@teknium1

teknium1 commented Aug 2, 2026

Copy link
Copy Markdown
Collaborator

Salvaged in #77110 — your list_channels() adapter enumeration hook is now on main (cherry-picked with your authorship preserved), with a SimpleX implementation and a hermes send --list fix built on top. Thanks @Guoen0!

randlee pushed a commit to randlee/hermes-agent that referenced this pull request Aug 11, 2026
…s in hermes send --list

Builds on the adapter list_channels() hook (cherry-picked from NousResearch#43545 by
@Guoen0):

- plugins/platforms/simplex: implement list_channels() — enumerates
  contacts (/contacts) and groups (/groups) over the live daemon
  WebSocket into the channel directory. Returns None when the WS is
  down so the directory falls back to session discovery instead of
  wiping known targets.
- hermes send --list: merge configured-but-undiscovered platforms into
  the listing. Previously a platform configured only via env (e.g. a
  fresh SimpleX setup used for outbound sends) was silently omitted,
  leaving users guessing at platform names.
- format_directory_for_display(): accept an explicit platforms view and
  render empty platforms with a targeting hint instead of hiding them.
- docs: simplex hermes-send section.

Reported by Fedpostoffice on Discord (simplex missing from
hermes send --list; guessed platform names simplex-chat/simplex-relay).
33hodl pushed a commit to 33hodl/hermes-agent that referenced this pull request Aug 12, 2026
…s in hermes send --list

Builds on the adapter list_channels() hook (cherry-picked from NousResearch#43545 by
@Guoen0):

- plugins/platforms/simplex: implement list_channels() — enumerates
  contacts (/contacts) and groups (/groups) over the live daemon
  WebSocket into the channel directory. Returns None when the WS is
  down so the directory falls back to session discovery instead of
  wiping known targets.
- hermes send --list: merge configured-but-undiscovered platforms into
  the listing. Previously a platform configured only via env (e.g. a
  fresh SimpleX setup used for outbound sends) was silently omitted,
  leaving users guessing at platform names.
- format_directory_for_display(): accept an explicit platforms view and
  render empty platforms with a targeting hint instead of hiding them.
- docs: simplex hermes-send section.

Reported by Fedpostoffice on Discord (simplex missing from
hermes send --list; guessed platform names simplex-chat/simplex-relay).
prmartinow pushed a commit to prmartinow/hermes-agent that referenced this pull request Aug 26, 2026
…s in hermes send --list

Builds on the adapter list_channels() hook (cherry-picked from NousResearch#43545 by
@Guoen0):

- plugins/platforms/simplex: implement list_channels() — enumerates
  contacts (/contacts) and groups (/groups) over the live daemon
  WebSocket into the channel directory. Returns None when the WS is
  down so the directory falls back to session discovery instead of
  wiping known targets.
- hermes send --list: merge configured-but-undiscovered platforms into
  the listing. Previously a platform configured only via env (e.g. a
  fresh SimpleX setup used for outbound sends) was silently omitted,
  leaving users guessing at platform names.
- format_directory_for_display(): accept an explicit platforms view and
  render empty platforms with a targeting hint instead of hiding them.
- docs: simplex hermes-send section.

Reported by Fedpostoffice on Discord (simplex missing from
hermes send --list; guessed platform names simplex-chat/simplex-relay).
melon-xf added a commit to melon-xf/hermes-agent that referenced this pull request Sep 3, 2026
…s in hermes send --list

Builds on the adapter list_channels() hook (cherry-picked from NousResearch#43545 by
@Guoen0):

- plugins/platforms/simplex: implement list_channels() — enumerates
  contacts (/contacts) and groups (/groups) over the live daemon
  WebSocket into the channel directory. Returns None when the WS is
  down so the directory falls back to session discovery instead of
  wiping known targets.
- hermes send --list: merge configured-but-undiscovered platforms into
  the listing. Previously a platform configured only via env (e.g. a
  fresh SimpleX setup used for outbound sends) was silently omitted,
  leaving users guessing at platform names.
- format_directory_for_display(): accept an explicit platforms view and
  render empty platforms with a targeting hint instead of hiding them.
- docs: simplex hermes-send section.

Reported by Fedpostoffice on Discord (simplex missing from
hermes send --list; guessed platform names simplex-chat/simplex-relay).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

comp/gateway Gateway runner, session dispatch, delivery P3 Low — cosmetic, nice to have type/feature New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants