Skip to content

Commit 6151b3d

Browse files
committed
fix: fail-safe時に updatedPermissions をクリアし出力にも反映
条件/アクションエラーによるfail-safe(deny化)で updatedPermissions を クリアしていなかった。allow時のみ有効な仕様に違反した deny + updatedPermissions の不正な組み合わせが出力される可能性があったため修正。 Codexレビュー(2回目)で指摘。
1 parent 6a6b2b6 commit 6151b3d

1 file changed

Lines changed: 4 additions & 2 deletions

File tree

hooks_tool_permission.go

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -703,8 +703,9 @@ func executePermissionRequestHooksJSON(config *Config, input *PermissionRequestI
703703
// Fail-safe: force deny on errors
704704
if len(conditionErrors) > 0 || len(actionErrors) > 0 {
705705
behavior = "deny"
706-
updatedInput = nil // deny時はupdatedInputをクリア
707-
interrupt = false // エラー時はinterruptも明示的にfalseにリセット
706+
updatedInput = nil // deny時はupdatedInputをクリア
707+
updatedPermissions = nil // deny時はupdatedPermissionsもクリア (公式仕様: allow時のみ有効)
708+
interrupt = false // エラー時はinterruptも明示的にfalseにリセット
708709
// deny時はmessageが必須なので、エラー概要を設定
709710
var errMsg string
710711
if len(conditionErrors) > 0 {
@@ -714,6 +715,7 @@ func executePermissionRequestHooksJSON(config *Config, input *PermissionRequestI
714715
}
715716
finalOutput.HookSpecificOutput.Decision.Behavior = behavior
716717
finalOutput.HookSpecificOutput.Decision.UpdatedInput = updatedInput
718+
finalOutput.HookSpecificOutput.Decision.UpdatedPermissions = updatedPermissions
717719
finalOutput.HookSpecificOutput.Decision.Message = errMsg
718720
finalOutput.HookSpecificOutput.Decision.Interrupt = interrupt
719721
finalOutput.SystemMessage = errMsg

0 commit comments

Comments
 (0)