fix(approvals): add native confirmation handoff and scope receipts - #18
Merged
Conversation
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
Makes Tend's approval boundary accurate and gives supported native host confirmations a real, explicit user-response path in the feed.
Recipient summaries now use the selected action and the leading outbound To/Cc/Bcc envelope, not email addresses in quoted history or body text. Tend receipts identify their local scope and no longer claim to override connector authorization. A terminal denial remains blocked instead of triggering retries with reworded receipts.
Native Confirmations
During a Tend-owned Codex drain, a native choice request appears above the feed only when the host provides an explicit tool-item ID matching the active thread and turn. The panel shows the exact tool arguments and host questions, selects nothing by default, and sends only the human's new answer on that same request.
This is bounded native transport support, not proof of one-click Gmail acceptance. A terminal connector denial without a pending native request cannot be reopened by this UI. Real-host Gmail acceptance remains unverified; no real messages were sent during validation. The remaining host contract is documented in
docs/approval-boundary.md.Verification
pnpm check: 251 tests passed; one local Supabase integration test skipped.pnpm buildpassed.pnpm audit --audit-level highpassed after targeted PostCSS and Nano ID patch updates; lower-severity findings remain.All tests and visual checks use temporary state. Existing live feeds and connector state are not modified by the PR.