Show completed agent work without reopening the full thread#2941
Open
BradGroux wants to merge 1 commit into
Open
Show completed agent work without reopening the full thread#2941BradGroux wants to merge 1 commit into
BradGroux wants to merge 1 commit into
Conversation
Co-authored-by: Brad Groux <bradgroux@hotmail.com> Signed-off-by: Brad Groux <bradgroux@hotmail.com>
Author
7 tasks
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.


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.No competing open pull request was found for this result-handoff scope.
Cause
KIND_JOB_RESULThad no payload contract, SDK builder, or CLI publisher. Desktop routed every result through the generic Markdown renderer, and Home knew only the event kind.What changes
JobResultPayloadcontract inbuzz-core, including dispositions, typed artifact references, verification results, explicit blockers, byte and item limits, unsafe-reference rejection, and cross-field invariants.buzz-sdkbuilder that emits one channel tag, one direct job-request reply tag, schema and disposition hints, and canonical signed JSON content.buzz jobs handoff --channel <uuid> --job <event-id> --manifest <path|->with file and stdin input, pre-signing validation, job-reference matching, and the standard normalized write response.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. Producers never scan a working directory or infer local file contents, credentials, environment variables, or verification.
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
cargo fmt --all -- --checkcargo clippy --workspace --all-targets -- -D warningscargo test -p buzz-core -p buzz-sdk -p buzz-cli— 736 tests passed across the affected Rust packages, plus doc tests.pnpm --dir desktop test— 3,531 tests passed.pnpm --dir desktop typecheckpnpm --dir desktop build:e2ejust cireaches the Desktop file-size gate and stops ondesktop/src-tauri/src/managed_agents/runtime.rs: the checker reports 2,220 lines against a 2,216-line limit. That file is byte-for-byte unchanged fromorigin/main; this pull request does not modify or exempt it.The SDK signing test round-trips the canonical payload through the signed event shape, and the CLI submits through the existing relay event path. A live relay integration run was not performed in this worktree because the repository gate stopped before integration on the unrelated base violation above.
Review findings resolved before publication
jobRequestmatched the signed reply tag. Structured rendering now requires exactly one valid reply tag and an exact event-ID match.Non-goals