block / block/buzz

Workflows cannot be scoped to all channels — reaction-capture needs one copy per channel

Open
#2,981 0 comments 0 reactions 0 assignees View on GitHub
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.