Repository navigation
DWSH-51: require confirmation for six dangerous commands - #1539
Closed
haofeng0705 wants to merge 1 commit into
Closed
haofeng0705 wants to merge 1 commit into
haofeng0705 wants to merge 1 commit into
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
Fixes #1096
Six commands currently publish
confirmation=not_required, allowing Agents to cancel shared events, remove attendees or group members, replace minutes text, or change document permissions without the declared user gate. This change uses their existing leaf Safety declarations to install the runtime confirmation gate and publish matching Schema metadata.calendar event deletecalendar attendee deletecalendar room deletechat group members removeminutes replace-textdoc permission updateThe mono skill's dangerous-operation table now uses canonical
calendar attendee delete, resolving the documentation issue without changing global alias resolution.Implementation and runtime fixtures are adapted from typefield's #1097 at
38d9e6882ce5b6f17cb82ddaae0f90eb57387235. This PR also adds final full/compact Schema and provenance checks for all six commands, the five original destructive controls, and a canonical-path check against the calendar rows in the mono skill. Runtime regressions cover zero remote calls before confirmation and exact tool arguments afterward, including the group-owner lookup before member removal. New runtime tests use the repository'sTestCrossPlatformCoverageprefix. Existing payload-equivalence and owner-protection fixtures retain their original purpose.Risk tier
Verification
Base:
main@54a46921a2e5d074628afeb205adb4ccffef6ea1. Environment: macOS arm64; source module declares Go 1.26.7.gofmton all modified/new Go filesgit diff --check.changes/1096-dangerous-command-confirmation.mdDraft pending local verification and independent review. #1097's historical logs, screenshots and CI results are not evidence for this PR. Any automatically started Draft CI is development feedback, not formal Code Admission.
Suggested verification after execution is authorized:
Then complete the repository's current high-risk and interface-integrity checks against this PR's final head and current stable baseline before marking Ready.
Compatibility and rollback
Non-interactive callers must explicitly pass
--yesafter user approval; unconfirmed calls receiveconfirmation_requiredbefore remote execution. This is an intentional change for existing scripts. Four commands retaineffect=write; no business payloads or remote APIs change. Confirmation gates, owner protection and Schema delivery share the existing framework.Rollback is a normal revert of this PR, which also restores the previous unsafe confirmation metadata and must therefore be reviewed as a safety tradeoff. This contribution does not merge or release the fix; #1097 remains available as the original reference.