openclaw/extensions/buzz
Peter Steinberger 7a6a7945ce
fix(channels): single-source bundled channel schemas from generated metadata (#131564)
* fix(channels): single-source bundled channel schemas from generated metadata

Hand-maintained channelConfigs schema copies in a2a, buzz, clickclack,
raft, and slack silently overrode the zod-derived generated bundled
channel metadata in config validation: stale buzz/raft copies rejected
the valid configWrites key, and the slack/clickclack additionalProperties
stubs disabled validation for those channels entirely. Delete the copies
so the CI-checked generated metadata is the single channel-schema source,
stub feishu's retired rich plugin-entry schema like every sibling, and
guard the pattern with a contract test.

The retired rich plugin-entry schemas let config UIs park channel
settings under plugins.entries.<id>.config unread; the reef doctor
migration from #131292 generalizes into the plugin SDK
(defineStrayPluginEntryConfigMigration) and feishu adopts it alongside
reef.

* fix(tests): fold channel schema-source guard into existing shard root

A new test root pushed the plugins-platform tsgo shard past its 720-root
cap; the guard lives in bundled-package-channel-metadata.test.ts instead.

* test(channels): update catalog and parity tests to single-source schemas

The official catalog regenerates without the deleted manifest schema
copies; the a2a and buzz parity tests drop their cold-manifest/catalog
surfaces (the runtime zod projection is what the generator publishes).

* test(plugins): lagging slack hydration carries no catalog schema copy

The full-suite manifest-registry test still pinned the catalog's retired
slack schema fallback; hydration now yields label/description and channel
validation falls back to the generated bundled metadata.
2026-08-28 00:29:44 -07:00
..
src fix(channels): single-source bundled channel schemas from generated metadata (#131564) 2026-08-28 00:29:44 -07:00
api.ts
channel-plugin-api.ts
directory-contract-api.ts feat: expose Buzz sender and room directory 2026-07-31 13:40:32 +01:00
index.ts
openclaw.plugin.json fix(channels): single-source bundled channel schemas from generated metadata (#131564) 2026-08-28 00:29:44 -07:00
package.json chore(deps): refresh seven-day-cooled providers and native tooling (#130653) 2026-08-27 00:57:31 -07:00
qa-runner-api.ts fix(qa): isolate runner discovery facades (#117203) 2026-08-01 13:40:11 +08:00
README.md docs: explain Buzz archived room handling 2026-07-31 13:40:34 +01:00
runtime-api.ts fix(qa): isolate runner discovery facades (#117203) 2026-08-01 13:40:11 +08:00
secret-contract-api.ts
setup-entry.ts
setup-plugin-api.ts
tsconfig.json refactor(plugins): inherit shared package boundary settings (#117474) 2026-08-01 09:11:09 -07:00

@openclaw/buzz

Official Buzz channel plugin for OpenClaw. It connects an OpenClaw agent to approved Buzz rooms for text conversations and threaded replies.

Requirements

You need:

  • A Buzz relay URL
  • A Buzz owner or admin
  • A room where the bot can receive the Bot role

Use wss:// outside local development.

Set up

openclaw channels add --channel buzz

OpenClaw installs the plugin if needed, asks for the relay URL, and generates a dedicated bot identity.

Give the displayed public key only to a Buzz owner or admin:

buzz channels add-member \
  --channel <ROOM_UUID> \
  --pubkey <BOT_PUBLIC_KEY> \
  --role bot

Closed relays may also require the bot to be added as a relay member. Setup waits for approval, discovers accessible rooms, and saves the selected rooms and default target.

Restart the Gateway if it was already running.

Verify

openclaw channels status --probe

Inspect the current bot, approved rooms, and room members:

openclaw directory self --channel buzz
openclaw directory peers list --channel buzz
openclaw directory groups list --channel buzz
openclaw directory groups members --channel buzz --group-id buzz:<ROOM_UUID>

Buzz profile and room names are used as display labels, while public keys and room UUIDs remain the stable identities. Archived rooms are omitted; an archive or restore event rebuilds only the Buzz connection's room subscriptions and does not stop the Gateway.

Send a test message:

openclaw message send \
  --channel buzz \
  --target <ROOM_UUID> \
  --message "Hello from OpenClaw"

Security and scope

  • Never give OpenClaw a human owner's private key.
  • The generated bot private key is stored in OpenClaw configuration; only its public key is displayed.
  • Treat Buzz messages as untrusted agent input.
  • Currently supported: text conversations, threads, typing, and directory lookup in group rooms.
  • Not yet supported: DMs, media, reactions, or creating rooms from OpenClaw.

Full documentation: https://docs.openclaw.ai/channels/buzz

Package: @openclaw/buzz · Plugin ID: buzz