fix(harness): atomic claim for auto-approval and rejected proposals stay rejected

보안 리뷰 반영. 자동 승인은 approved_at·executed_at·rejected_at 이 비어 있고 만료 전인
행만 조건부 UPDATE 로 선점한 경우에만 실행하므로, 사람의 승인·실행·거절이 먼저 오면
이중 실행이 없다. proposals 에 rejected_at 열을 추가해 거절 경로가 기록하고,
approve/authorize/자동 승인이 거절된 제안을 거부한다.
This commit is contained in:
seon committed 2026-10-15 23:41:44 +09:00
1 parent ca933a646e
commit 85d99324a1
5 files changed
+34 -8

No files matched your search

+2
View File
@@ -127,6 +127,8 @@ func (a *App) authorize(ctx context.Context, req ActionRequest) (string, error)
return "", errors.New("invalid token")
}
switch {
case p.RejectedAt != nil:
return "", errors.New("proposal rejected")
case p.ApprovedAt == nil:
return "", errors.New("proposal not approved")
case p.ExecutedAt != nil: