23-06-REVIEW.md found two real defects in the just-merged idempotency fix: - CR-01: autoPostAcknowledgment's audit payload omitted actionId, which the campaign-detail API requires to derive completedAt — every auto-posted acknowledge_user row rendered a null completion date in the Action Area UI. - CR-02: the manual approve/remediate path had no server-side guard against re-approving acknowledge_user for a campaign that already got auto-posted — only a client-side UI check prevented the exact duplicate-note bug 23-06 was chartered to close, reachable via a direct API call. Fixes both: capture RETURNING id from the insert and include it in the audit payload; add an existence check in approveRemediationActions that rejects acknowledge_user when already posted for the campaign. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01W6RuWdiUiXrPK6FLBHjtpY |
||
|---|---|---|
| .. | ||
| hooks | ||
| services | ||
| types | ||
| utils | ||
| auth-client.ts | ||
| auth-utils.ts | ||
| auth.ts | ||
| bootstrap.ts | ||
| permissions.test.ts | ||
| permissions.ts | ||
| status-registry.ts | ||
| utils.ts | ||