feat: experimental signed interaction prompts and responses - #7483
Draft
kaykayyali wants to merge 3 commits into
Draft
feat: experimental signed interaction prompts and responses#7483kaykayyali wants to merge 3 commits into
kaykayyali wants to merge 3 commits into
Conversation
Let people and agents ask for typed decisions with a Nostr prompt schema and attributable signed answers. Gate relay acceptance and workers behind BUZZ_EXPERIMENTAL_INTERACTIONS, and desktop cards behind Experimental Features. Add transactional acceptance, author/role checks, replacement and close rules, bounded expiry, relay state and a durable Redis outbox. Preserve older clients through an ordinary-message projection and exact text reply matching that retains the responder's original signed event. Add the ask/poll/answer/get/wait/close CLI commands and desktop button, form and poll cards. Document the source review, the separate deadline instead of NIP-40 expiration, and remaining workflow/harness/privacy work. Validation: 260 core, 466 CLI and 122 DB unit tests pass; the desktop unit suite and four interaction browser flows pass. Targeted all-targets Clippy, TypeScript, Biome and the file-size/discovery policies pass. Four SQL paths were also smoke-tested with single-connection embedded PostgreSQL. Native PostgreSQL/Redis races remain a merge gate. Full local CI is blocked by the existing voice-library TLS download and unavailable Docker services. Refs: block#3261 Signed-off-by: Codex <codex@openai.com> Co-authored-by: Codex <codex@openai.com> Signed-off-by: Kaysser Kayyali <kaykayyali@gmail.com>
…view Signed-off-by: Codex <codex@openai.com> Co-authored-by: Codex <codex@openai.com> Signed-off-by: Kaysser Kayyali <kaykayyali@gmail.com>
Signed-off-by: Codex <codex@openai.com> Co-authored-by: Codex <codex@openai.com> Signed-off-by: Kaysser Kayyali <kaykayyali@gmail.com>
🔐 Codex Security Review
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Agents currently need to parse prose or reactions to obtain a structured decision.
This draft introduces opt-in, signed interaction prompts and responses with
relay-authored state, so the responder and the resulting decision remain attributable.
40010/40011/40012 and relay-only addressable state kind 39010.
BUZZ_EXPERIMENTAL_INTERACTIONS=falseby default, requiring a persistent
BUZZ_RELAY_PRIVATE_KEYwhen enabled.decisions under a prompt-row lock, and commit source/state/outbox together.
Support replacements, first/quorum/manual/deadline closure and durable delivery.
to their original signed message, with explicit relay provenance.
cards behind the separate, default-off Interaction cards experimental toggle.
projections, so the relay signer cannot confer its own allowlist authority.
including selection limits, pending/error recovery, keyboard use, draft retention
and idle deadline handling. Provide a separate browser preview build entry point.
This is a first experimental slice. It does not add durable workflow suspension,
workflow approval migration, ACP question/permission and Hermes adapters,
composer commands, private ballots, secret fields, interaction push navigation or native mobile cards.
Unsupported privacy modes are rejected. Kind allocation, retention, key rotation,
and unified prompt/projection moderation need maintainer review before promotion.
See
docs/experimental-interactions.mdanddocs/interaction-controls.md.Related issue
Refs #3261. Searched existing issues and PRs for interaction prompts; #3261 is the
closest feature request. No duplicate implementation was found in that search.
Testing
Draft status is intentional: full CI is not green in the available environment.
Native PostgreSQL and supported-platform CI results are required before promotion.
with the repository's mock transport. Their vendor expectations are emulated
from primary documentation; no live Slack/Discord/Teams tenant was exercised.
just test-unitpasses all 14 groups, including 261 core, 466 CLI,123 DB and 917 ACP unit tests. The ACP tests exercise the connected author gate
and reject an unlisted asker even when the relay signer is allowlisted.
The packaged preview verifies approval, form, vote, manual close and reset without page errors.
interaction PostgreSQL tests are included, covering first-answer races,
authorization/isolation, attribution, rollback, expiry and outbox pruning.
just cireaches the Tauri gate and fails on unavailable GTK/GIO system libraries.Mobile dependency resolution is blocked; macOS/Windows platform jobs were not run.
All 10 interaction controls pass in that run. This environment used Chromium
149, six workers and video disabled, so supported-runner verification is required.
and two failures on both versions. Other failures remain untriaged; this result
does not establish that every failure is pre-existing.
UI evidence prepared: text fallback, closed approval, required-fields form and
three-card preview screenshots. GitHub screenshot upload remains blocked: the required
scripts/post-screenshots.shneeds authenticatedghand upstream branch-writeaccess, which this environment does not have. Screenshots are included in the
contribution package supplied to the contributor.
Published source
Published through the GitHub connector with Codex co-author attribution and DCO
trailers. Commit IDs differ from the local build because GitHub supplies author/time
metadata; every uploaded source tree was checked against its corresponding local
commit. Final source tree:
17834844f3da37b9c0841f3c29faa854746c0f2a.The branch is based on
3c7f288c60d67df78577b237e27c3dfc8831aaa1;a merge-tree check against upstream
86c189e8571d4254726f4d0519a500df9b9d947ereported no conflicts. The combined upstream merge has not been retested locally.
GitHub checks after publication
DCO Check passed. CI,
Desktop Release Candidate
and Docker image
currently report
action_requiredfor this fork contribution; maintainer approvalis needed before their results can be evaluated. These are not passing test results.