[Feature] Campaign attachment reuse policy and duplicate detection #61

Closed
opened 2026-07-14 20:08:40 +02:00 by zemion · 1 comment
Owner

Problem / User Need

Some campaigns may intentionally send the same file to multiple recipients or multiple times, while other campaigns must prohibit duplicate attachment use. The campaign model needs an explicit policy instead of relying on accidental behavior.

Acceptance Criteria

  • Campaign configuration can express whether duplicate attachment use is allowed.
  • Review detects duplicate file usage across recipients/messages where the policy requires it.
  • Violations can block send or require explicit review depending on campaign policy.
  • Allowed duplicates remain visible and explain why they are permitted.
  • The policy and any override decisions are included in protocol/audit output.

Notes / Decisions

Needs product decision on policy levels: allow, warn, block, or allow only within a recipient/message group.

## Problem / User Need Some campaigns may intentionally send the same file to multiple recipients or multiple times, while other campaigns must prohibit duplicate attachment use. The campaign model needs an explicit policy instead of relying on accidental behavior. ## Acceptance Criteria - Campaign configuration can express whether duplicate attachment use is allowed. - Review detects duplicate file usage across recipients/messages where the policy requires it. - Violations can block send or require explicit review depending on campaign policy. - Allowed duplicates remain visible and explain why they are permitted. - The policy and any override decisions are included in protocol/audit output. ## Notes / Decisions Needs product decision on policy levels: allow, warn, block, or allow only within a recipient/message group.
Author
Owner

Implemented and pushed in 112ef9d. Campaign attachment reuse is now governed by a configurable action (allow, warn, review, or block) and an independently configurable reuse allowance (none, same_recipient, or same_message). Detection is path-safe, records aggregate/provenance evidence without source paths, integrates with the existing reason-required review flow, and is surfaced in both the editor and review UI. Added bilingual user/admin documentation and coverage for the policy matrix, allowances, review decisions, recovery, and audit evidence. Verification: 396 backend tests plus 26 subtests passed; all 57 WebUI module permutations built within budget; manifest registry check passed for 68 modules; diff and Ruff checks passed.

Implemented and pushed in `112ef9d`. Campaign attachment reuse is now governed by a configurable action (`allow`, `warn`, `review`, or `block`) and an independently configurable reuse allowance (`none`, `same_recipient`, or `same_message`). Detection is path-safe, records aggregate/provenance evidence without source paths, integrates with the existing reason-required review flow, and is surfaced in both the editor and review UI. Added bilingual user/admin documentation and coverage for the policy matrix, allowances, review decisions, recovery, and audit evidence. Verification: 396 backend tests plus 26 subtests passed; all 57 WebUI module permutations built within budget; manifest registry check passed for 68 modules; diff and Ruff checks passed.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: GovOPlaN/govoplan-campaign#61