feat(workflow): let workflows add reactions to messages - #2494
Conversation
11039d7 to
cad2b53
Compare
|
I rebased this branch onto current The feature is still relevant, but the old branch omitted the target author's NIP-25 Head The affected package suites, strict Clippy, and Rust formatting were refreshed. The non-database tests passed. Nine unrelated relay media/admin tests could not obtain this host's local PostgreSQL pool, and a serial rerun hit the same boundary. The new ignored PostgreSQL regression compiled, but I am not presenting the unavailable database run as passing evidence. |
cad2b53 to
7f905a5
Compare
|
Rebased this branch onto current Head moved from Verification:
GitHub checks are rerunning on the new head. |
7f905a5 to
1a4f5bd
Compare
|
Rebased onto current The rebase audit found one test defect rather than a production-path defect. The relay emits the kind-7 reaction with its target Published head: Verification passed for formatting, strict Clippy across the three affected packages, and the PostgreSQL/Redis-backed kind-7 persistence and deduplication regression. The repository |
1a4f5bd to
8cd7bc6
Compare
|
Rebased onto The PR remains valid. Current The rebase was clean. The existing correction remains necessary: the workflow reaction carries the target event's Exact-head verification on
The PostgreSQL/Redis-backed kind-7 persistence and deduplication regression compiled but could not be rerun on this host because no Docker daemon, PostgreSQL service, or Redis service is available. I am not presenting that unavailable integration gate as new passing evidence; the current branch remains limited to the verified code and unit/package results above. |
8cd7bc6 to
44478d4
Compare
Review and rebase summaryReviewed the PR for accuracy against current What this PR doesAdds an Accuracy review
Rebase resultHead moved from CIDCO passes. Semgrep OSS and zizmor were pending at the time of this comment. |
44478d4 to
2026f35
Compare
Rebase and accuracy review (2026-08-07)Rebased onto current Branch state: Accuracy reviewThe PR adds
Recommendation: before merging, resolve this regression by keeping main's The e2e test ( No |
Co-authored-by: Brad Groux <bradgroux@hotmail.com> Signed-off-by: Brad Groux <bradgroux@hotmail.com>
2026f35 to
4abb60d
Compare
|
This is the third recurring review + rebase pass for the open BradGroux PRs on What this PR doesAdds an
|
Correction: no security regressionThis is a correction to the "Security regression" section of the previous review comments. After tracing the actual code on the current branch and main, #2494 does NOT revert #4607's security fix. #4607's fix is in The No action needed. The earlier "security regression" flag was a false alarm caused by not diffing the actual |
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.