[Feature] Surface watched-folder files that are not linked to campaign entries #60

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

Problem / User Need

Campaigns that watch or consume a folder need to show files that are present but not linked to a recipient/message. Operators need an explicit policy for these files instead of silently ignoring them.

Acceptance Criteria

  • Campaign review shows files in watched folders that are not yet linked to any recipient or message.
  • Operators can inspect those files from the campaign workflow.
  • Campaign configuration supports a policy for unlinked files: block send, ignore, or route/send to a determined address where appropriate.
  • The selected policy is visible in review and recorded in the campaign protocol/audit trail.

Notes / Decisions

Depends on file-side property filtering and/or usage metadata. Product decision needed for the exact policy options and default behavior.

## Problem / User Need Campaigns that watch or consume a folder need to show files that are present but not linked to a recipient/message. Operators need an explicit policy for these files instead of silently ignoring them. ## Acceptance Criteria - Campaign review shows files in watched folders that are not yet linked to any recipient or message. - Operators can inspect those files from the campaign workflow. - Campaign configuration supports a policy for unlinked files: block send, ignore, or route/send to a determined address where appropriate. - The selected policy is visible in review and recorded in the campaign protocol/audit trail. ## Notes / Decisions Depends on file-side property filtering and/or usage metadata. Product decision needed for the exact policy options and default behavior.
Author
Owner

Local Campaign/Files WIP is only a partial precursor: it discovers rule-matching file assets that are not yet Campaign-shared and can link them. It does not surface unmatched watched-folder files, implement block/ignore/route policy, or record that policy in protocol. Coordinate the remaining contract with Files #30.

Local Campaign/Files WIP is only a partial precursor: it discovers rule-matching file assets that are not yet Campaign-shared and can link them. It does not surface unmatched watched-folder files, implement block/ignore/route policy, or record that policy in protocol. Coordinate the remaining contract with Files #30.
Author
Owner

Completed in f4fe534 (building on the existing residual-file workflow from c2efd6b).

Campaign now covers the configurable spectrum explicitly:

  • block/review/ignore through validation_policy.unsent_attachment_files;
  • route as a reviewed report message; or
  • route as a reviewed message with the residual files attached.

Every build now emits a normalized residual_file_disposition protocol record with the selected action, routing mode, validation behavior, watched-source count, residual-file count, and configured route recipient. Review & Send displays that evidence even for the ignore path. The campaign.messages_built audit event records the policy and observed counts while deliberately excluding the recipient address.

Verification: 389 Campaign tests plus 20 subtests, block/ignore/report/attach acceptance coverage, review UI structural/accessibility tests, Core production WebUI build, targeted Ruff, and the 68/68 manifest check.

Completed in `f4fe534` (building on the existing residual-file workflow from `c2efd6b`). Campaign now covers the configurable spectrum explicitly: - block/review/ignore through `validation_policy.unsent_attachment_files`; - route as a reviewed report message; or - route as a reviewed message with the residual files attached. Every build now emits a normalized `residual_file_disposition` protocol record with the selected action, routing mode, validation behavior, watched-source count, residual-file count, and configured route recipient. Review & Send displays that evidence even for the ignore path. The `campaign.messages_built` audit event records the policy and observed counts while deliberately excluding the recipient address. Verification: 389 Campaign tests plus 20 subtests, block/ignore/report/attach acceptance coverage, review UI structural/accessibility tests, Core production WebUI build, targeted Ruff, and the 68/68 manifest check.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: GovOPlaN/govoplan-campaign#60