Workflows cannot be scoped to all channels — reaction-capture needs one copy per channel
- Dominant language
- Rust
- Stars
- 32.7k
- Forks
- 4.3k
- Avg merge
- 1d 13h
- Merged PRs (30d)
- 253
Description
## Summary
A workflow is bound to exactly one channel and only sees events in that channel. There is no way to create a workflow that watches every channel in a community, and no way to fake one short of duplicating the workflow per channel and hand-syncing the copies.
## Where this is enforced
Event dispatch looks up workflows by channel id and nothing else — `crates/buzz-relay/src/handlers/event.rs` passes the community and event into `workflow_engine.on_event`, and matching is scoped by the workflow's `channel_id`. Desktop's workflow form (`desktop/src/features/workflows/ui/workflowDefinition.ts`) offers a single channel selector with no "all channels" option.
## Why it matters
The natural shape for reaction-driven capture is workspace-wide: *react with ♻️ anywhere, the item lands in the triage channel.* That is one rule. Today it is N rules, one per channel, that drift the moment any of them is edited — and each new channel silently isn't covered until someone remembers to add it.
With six project channels this is already unmanageable by hand.
## Requested
An "all channels" / community-scoped workflow binding: `channel: "*"` in the YAML and an **All channels** option in the Desktop selector, with the workflow matching any event in the community the owner can see. Pairs directly with block/buzz#2979 — workspace-wide capture also needs the destination channel to differ from the trigger channel.
Contributor guide
Assessment
This issue has not been assessed yet.