Repository navigation
Add completion receipts for owner discussion requests - #506
Conversation
Report fixed, authenticated draft and reply outcomes after completion, with durable write intents and canonical receipt filtering. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
There was a problem hiding this comment.
🟡 Changes recommended
Update intents are scoped per attempt rather than across the owner command, allowing new writes while earlier outcomes remain unresolved and risking a late earlier write overwriting the newer receipt.
1 open issue
What changed in this PR
Adds completion receipts to TypeChat’s owner-requested discussion automation without publishing draft text, accepting work, or authorizing implementation.
Changes:
- Adds a completion-only controller with separate Issue and Discussion permissions.
- Validates source requests and outcomes, manages receipt writes, and excludes canonical receipts from frozen evidence.
- Adds regression coverage and documents rollout, recovery, and verified Issue acceptance.
| File | Description |
|---|---|
tools/tests/discussion-status.test.mjs |
Tests controller permissions, event guards, and write sequencing. |
tools/tests/discussion-draft.test.mjs |
Tests receipt outcomes, authentication, retries, and evidence limits. |
tools/discussion-draft.mjs |
Implements receipt validation, planning, publication, and evidence filtering. |
README.md |
Updates automation milestones and receipt rollout status. |
OWNER-CHEATSHEET.md |
Adds owner-facing receipt guidance and recovery steps. |
AUTOMATION.md |
Documents receipt safeguards, limits, and live-verification requirements. |
.github/workflows/discussion-status.yml |
Adds the completion-triggered receipt controller. |
.github/workflows/discussion-draft.md |
Binds run titles to event, target, and comment identifiers. |
.github/workflows/discussion-draft.lock.yml |
Updates the compiled workflow’s run title and metadata. |
.github/copilot-instructions.md |
Documents receipt evidence and safety requirements. |
Review effort: Balanced
Bind update intents to the receipt being replaced and keep all mutations inside the retained-intent authorization window. Cover later attempts, direct writer handoffs, late confirmations, and both target types. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
There was a problem hiding this comment.
🔵 Needs a closer look
The privileged workflow_run controller’s comment writes and durable retry state require owner review and live Issue/Discussion verification of token permissions and retry recovery beyond offline fixtures.
No open issues 🎉
1 resolved since last review
Review effort: Balanced
|
Review follow-up: the code finding about cross-attempt receipt updates is fixed and its thread is resolved. The owner has now merged this PR as 6abfd86. The remaining review note is a rollout requirement, not an unresolved code thread: live Issue and Discussion verification of comment permissions, retry recovery, and failure/cancellation outcomes still needs a separately authorized check. The completion-receipt checklist is in AUTOMATION.md. No live command or model run was triggered as part of this review follow-up, and offline fixtures/CI are not being presented as live verification. |

Summary
Close the loop after the eyes acknowledgment for owner
/typechat draftand/typechat replyrequests. This is the separately approved receipt milestone, not the implementation pilot in #504.workflow_runcontroller with fixed, authenticated outcome comments and separate Issue/Discussion write permissions. No model invocation, App credentials, repository setting changes, or extra start comments.Validation
noopseal guard.Rollout and boundaries