Skip to content

fix(buzz): adopt channels joined during runtime - #76200

Closed
dplush wants to merge 7 commits into
NousResearch:mainfrom
dplush:fix/buzz-live-channel-adoption-75107
Closed

fix(buzz): adopt channels joined during runtime#76200
dplush wants to merge 7 commits into
NousResearch:mainfrom
dplush:fix/buzz-live-channel-adoption-75107

Conversation

@dplush

@dplush dplush commented Aug 1, 2026

Copy link
Copy Markdown

Fixes #75107.

When BUZZ_CHANNELS is unset, a membership event now discovers newly joined named community channels, seeds their high-water mark, and subscribes to them without requiring a gateway restart. Explicit channel lists remain authoritative; DM-shaped fallback conversations continue through the existing DM path.

Verification:

  • Red regression test committed first (69d53af).
  • scripts/run_tests.sh tests/gateway/test_buzz_adapter.py tests/gateway/test_buzz_websocket.py — 30 passed.
  • uv run --extra dev --frozen ruff check plugins/platforms/buzz/adapter.py tests/gateway/test_buzz_websocket.py — passed.
  • git diff --check origin/main — clean.
  • reviewer-claude-review diff origin/main --narrow — no blockers.

@alt-glitch alt-glitch added type/bug Something isn't working comp/plugins Plugin system and bundled plugins P3 Low — cosmetic, nice to have duplicate This issue or pull request already exists labels Aug 1, 2026
@alt-glitch

Copy link
Copy Markdown
Collaborator

This was generated by AI during triage.

Duplicate of #74823: both open PRs implement runtime adoption/subscription of newly joined Buzz channels for #75107. #76156 remains related because it adds distinct addressing and reconciliation scope.

@teknium1

teknium1 commented Aug 1, 2026

Copy link
Copy Markdown
Contributor

Thanks for the focused regression coverage. Current main reproduces the reported premise: plugins/platforms/buzz/adapter.py:801-813 handles membership events by rediscovering only DMs, while plugins/platforms/buzz/adapter.py:949-963 deliberately excludes named community channels from that fallback.

Problems

  • The added _discover_joined_channels() queries unfiltered channels list. The automatic-mode contract is “all joined channels” (website/docs/user-guide/messaging/buzz.md:51), but this PR does not prove that this CLI query is member-scoped. The linked duplicate fix(buzz): discover newly joined channels dynamically #74823 instead uses channels list --member and adds an unjoined-channel exclusion test. This draft's new tests fixture only the newly joined channel.

Suggested changes

  • Use the member-scoped listing (or establish the unfiltered CLI contract) and add a regression that a listed-but-unjoined channel is not adopted.
  • Compare with fix(buzz): discover newly joined channels dynamically #74823 for salvage; it covers the related member-filtered startup and membership-race behavior.

Automated hermes-sweeper review.

@teknium1 teknium1 added sweeper:risk-message-delivery Sweeper risk: may drop, duplicate, misroute, or suppress messages sweeper:risk-compatibility Sweeper risk: may break existing users, config, migrations, defaults, or upgrades sweeper:blast-moderate Sweeper blast radius: moderate — a subsystem or single platform labels Aug 1, 2026
@dplush dplush closed this Aug 1, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

comp/plugins Plugin system and bundled plugins duplicate This issue or pull request already exists P3 Low — cosmetic, nice to have sweeper:blast-moderate Sweeper blast radius: moderate — a subsystem or single platform sweeper:risk-compatibility Sweeper risk: may break existing users, config, migrations, defaults, or upgrades sweeper:risk-message-delivery Sweeper risk: may drop, duplicate, misroute, or suppress messages type/bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

fix(buzz): channels joined while the gateway is running are never subscribed — live adoption only exists for DM-shaped conversations

3 participants