feat(agent): show completed work without reopening the full thread - #2941
feat(agent): show completed work without reopening the full thread#2941BradGroux wants to merge 1 commit into
Conversation
daef386 to
fcb0ede
Compare
|
I rebased this branch onto current The structured handoff remains relevant and does not overlap the newer invite or Markdown parser changes on Head Verification was refreshed against the rebased tree: the full affected Rust package suites, all 3,737 Desktop JavaScript tests, Desktop typecheck and E2E build, strict Rust formatting/Clippy, and targeted Biome checks passed. A live relay submission was not rerun, so the proof remains the signed-event round trip plus the existing relay submission path. |
Co-authored-by: Brad Groux <bradgroux@hotmail.com> Signed-off-by: Brad Groux <bradgroux@hotmail.com>
fcb0ede to
7d1c3bc
Compare
|
Rebased this branch onto current Head moved from Verification:
GitHub checks are rerunning on the new head. |


Closes #2932.
Observed problem
Buzz already has signed agent job events, but
kind:43004results are opaque strings. A requester has to reconstruct the requested outcome, final state, artifacts, verification, and blockers from the full thread, and Home can expose structured content as raw JSON.What changes
JobResultPayloadcontract with dispositions, typed artifact references, verification results, explicit blockers, byte and item limits, unsafe-reference rejection, and cross-field invariants.buzz jobs handoff --channel <uuid> --job <event-id> --manifest <path|->.43004content on the existing Markdown fallback.docs/nips/NIP-AJ.md.Trust and compatibility
The signed content is authoritative, while schema and disposition tags are query hints. Desktop only trusts structured content when the payload event ID matches the single signed reply tag.
Artifact references fail closed. URL-shaped references are parsed before kind-specific validation, including artifact kinds that also accept raw branch, canvas, workflow-output, or free-form references. Credential-bearing URLs such as
https://user:secret@example.com/...are rejected in both Rust and Desktop instead of becoming clickable links.Version 1 ignores additive unknown object fields. Older clients continue to see JSON content as ordinary text, and newer clients continue to render legacy plaintext results as Markdown.
Verification
Verified at exact head
f387a8e9b75c4462df9073f3b442f12276d25fbe, rebased onto currentmain:buzz-core,buzz-sdk, andbuzz-cli.The SDK signing test round-trips the canonical payload through the signed event shape. A live relay integration run was not performed in this worktree.
Non-goals