Skip to content

Fix Buzz live fan-out across multiple channels - #1015

Merged
olegbrok merged 1 commit into
mainfrom
codex/task-541-buzz-inc2-multih-hotfix
Aug 7, 2026
Merged

Fix Buzz live fan-out across multiple channels#1015
olegbrok merged 1 commit into
mainfrom
codex/task-541-buzz-inc2-multih-hotfix

Conversation

@olegbrok

@olegbrok olegbrok commented Aug 7, 2026

Copy link
Copy Markdown
Collaborator

What changed

  • Open one long-lived Buzz REQ per authorized channel, each with a unique subscription ID, kinds: [9, 20002], one #h value, and no wire since.
  • Keep the shared subscription floor enforced client-side before cache, authorization, or durable delivery.
  • Accept events from every per-channel subscription and wait for EOSE from every main subscription before marking the poller or persisted health connected.
  • Rebuild the complete per-channel subscription map on every reconnect.
  • Extend the relay regression rig to suppress live fan-out for either known-bad shape: a filter carrying since or a filter carrying multiple #h values.

Root cause and impact

The production relay returns stored events and EOSE for multi-channel filters but does not live-fanout new events to them. Release 26.08.011 removed the independent wire-since trigger, but its single main subscription still carried both configured channels in one #h array. Splitting the live stream by channel removes both relay triggers while preserving the client-side replay floor and exactly-once durable delivery.

The active heartbeat probe intentionally remains one aggregate, bounded REQ with multi-#h, since, and limit: 1: tonight's controlled matrix proved that stored-query/EOSE path works, and the probe does not rely on live fan-out.

Validation

  • uv run --frozen pytest -q tests/test_buzz_inbound_poller.py — 7 passed
  • uv run --frozen pytest -q tests/test_buzz_*.py — 62 passed
  • uv run --frozen pytest -q tests/test_agent_registry.py — 117 passed
  • uv run --frozen ruff check . — passed
  • git diff --check — passed

The repository-wide local run reached 829 passed / 2 skipped before being stopped in an unrelated environment-bound API test: the live daemon already owned port 8890, so the shared-MCP fixture failed to bind and the manual-dream test escaped its mocked runner into tmux. GitHub CI remains the clean full-suite gate for this exact head.

@olegbrok
olegbrok marked this pull request as ready for review August 7, 2026 04:23
@olegbrok
olegbrok merged commit be5e887 into main Aug 7, 2026
11 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant