feat(workflow): let workflows add reactions to messages - #6640
Conversation
213f3ed to
ce22471
Compare
|
Rebased onto the latest No review comments on this PR. CI will verify the build and test gate. |
ce22471 to
9cbda84
Compare
🔐 Codex Security Review
|
|
Rebased onto the latest Still-needed assessment: No upstream commits in the 62-commit window address the same issue. This PR remains needed. Review requests: |
9cbda84 to
d682576
Compare
|
Rebased onto current Still needed: Checked all 38 new upstream commits for overlap with this PR's topic. None of the upstream changes address the issue this PR fixes. The PR remains relevant. Verification:
|
d682576 to
daf2a5a
Compare
Rebase and review — 2026-09-03Base commit: Accuracy review: Workflows still cannot add reactions to messages. |
daf2a5a to
9690700
Compare
Rebase and review update — Sep 3, 2026Rebased onto latest main ( Accuracy review: Main defines Mergeable status: Confirmed MERGEABLE on GitHub after force-push. |
Co-authored-by: Brad Groux <bradgroux@hotmail.com> Signed-off-by: Brad Groux <bradgroux@hotmail.com> Signed-off-by: Brad Groux <3053586+BradGroux@users.noreply.github.com>
9690700 to
ebb1381
Compare
Rebase pass — Sep 5, 2025Rebased onto current upstream main ( Rebase resultRebased cleanly onto current main. No conflicts. Still-needed assessmentChecked all 62 new main commits for overlap with this PR's topic. None obsoleted:
Verification
|
Fixes #2395.
What changes
Workflow
add_reactionactions now publish a signed kind-7 reaction against the triggering message through the existing relay event path.The reaction includes:
etag;ktag;ptag required by NIP-25 clients and Buzz's author-targeted push subscription;The sink resolves the effective target author through the same attribution helper used by ingest, so reactions to agent-authored messages target the actual author rather than a relay signer. Duplicate execution remains idempotent. The relay-backed regression now subscribes to the reaction by its actual kind-7 and
e-tag shape, while the follow-up message retains its channel-scoped filter.Safety and scope
add_reactionbecause they have no triggering message ID.Verification
cargo fmt --all -- --checkcargo clippy -p buzz-workflow -p buzz-relay -p buzz-test-client --all-targets --all-features -- -D warningscargo test -p buzz-workflow -p buzz-relay -p buzz-test-client --no-fail-fast: workflow and test-client suites passed; the unprovisioned relay run reached only the existing database-dependent failures.cargo test -p buzz-relay workflow_sink::integration_tests::workflow_add_reaction_persists_attributed_kind_7_and_dedupes -- --ignored --nocapture: passed against PostgreSQL and Redis.just test: all nine unit/package/database stages passed. The workspace integration stage reproduced the unrelatedbuzz-agenttiming failuresteer_folds_into_active_turn_without_cancelling; that test passes in isolation, and this branch does not modifybuzz-agent.This refresh is not production deployment evidence.