[Feature] Add an auditable campaign collaboration thread #88

Closed
opened 2026-07-31 01:22:06 +02:00 by zemion · 3 comments
Owner

Split from Campaign #24.

Outcome

Allow authorized collaborators to discuss campaign work without changing immutable campaign versions or confusing comments with audit evidence.

Acceptance criteria

  • Comments attach to a stable campaign and may optionally reference a version, recipient/import batch, attachment rule, delivery job, or report.
  • Entries record actor, timestamp, reference context, and visibility; posted content is append-only, while withdrawal/redaction leaves a tombstone and audit event.
  • Permissions and access explanations are evaluated independently from campaign edit permission.
  • Mentions emit Notifications only when that optional capability is available.
  • The activity UI is bounded, paginated, keyboard accessible, and clearly separates human discussion from system/audit events.
  • Historical versions remain immutable and can only be referenced, never edited through comments.
> Split from [Campaign #24](https://git.add-ideas.de/GovOPlaN/govoplan-campaign/issues/24). ## Outcome Allow authorized collaborators to discuss campaign work without changing immutable campaign versions or confusing comments with audit evidence. ## Acceptance criteria - Comments attach to a stable campaign and may optionally reference a version, recipient/import batch, attachment rule, delivery job, or report. - Entries record actor, timestamp, reference context, and visibility; posted content is append-only, while withdrawal/redaction leaves a tombstone and audit event. - Permissions and access explanations are evaluated independently from campaign edit permission. - Mentions emit Notifications only when that optional capability is available. - The activity UI is bounded, paginated, keyboard accessible, and clearly separates human discussion from system/audit events. - Historical versions remain immutable and can only be referenced, never edited through comments.
zemion added this to the Milestone 10 - Collaboration And Advanced Governance milestone 2026-07-31 01:22:06 +02:00
Author
Owner

This is the comments slice split from Campaign #24.

<!-- codex-routing-2026-07-31:campaign-24-comments --> This is the comments slice split from [Campaign #24](https://git.add-ideas.de/GovOPlaN/govoplan-campaign/issues/24).
zemion added
status
in-progress
and removed
status
ready
labels 2026-08-21 23:21:40 +02:00
Author
Owner

Starting the autonomous implementation slice. I am treating discussion as a separately governed campaign resource: independent read/post/moderate permissions, stable optional typed references, append-only content with withdrawal/redaction tombstones, bounded cursor pagination, durable audit evidence, optional Notifications mentions, and an accessible activity surface. Historical CampaignVersion rows will only be validated as references and will not be mutated.

Starting the autonomous implementation slice. I am treating discussion as a separately governed campaign resource: independent read/post/moderate permissions, stable optional typed references, append-only content with withdrawal/redaction tombstones, bounded cursor pagination, durable audit evidence, optional Notifications mentions, and an accessible activity surface. Historical CampaignVersion rows will only be validated as references and will not be mutated.
Author
Owner

Implemented, released, and integrated.

Delivered in Campaign c2f083e, tagged v0.1.20, loaded by Core af90db4 / v0.1.24, and selected by the workspace catalog in 4c7552f.

Acceptance evidence:

  • append-only, tenant-scoped collaboration entries with canonical typed references, actor/time/visibility context, deterministic cursor pagination, and an Alembic migration;
  • independent read/post/moderate scopes and server-side parent-Campaign access enforcement/explanations;
  • author withdrawal and moderator redaction remove text while retaining tombstone, SHA-256 evidence, reference context, and bounded Audit events;
  • active, already-authorized mention targets only; optional content-free Notifications dispatch is failure-isolated;
  • accessible Activity page using the shared page/action/dialog/form/reference primitives, with bounded loading and explicit discussion-versus-Audit guidance;
  • DSAR coverage and user/admin documentation updated without modifying historical Campaign versions.

Verification:

  • Campaign backend: 430 passed, 26 subtests passed;
  • focused collaboration/access/DSAR/docs suite: 50 passed;
  • every Campaign WebUI test script passed;
  • workspace manifest registry: 68/68, DSAR coverage: 68 active modules;
  • full workspace focused gate passed, including 59 WebUI permutations and 8 browser conformance tests;
  • Core production build passed within bundle budgets with the collaboration page as a lazy chunk.
Implemented, released, and integrated. Delivered in [Campaign `c2f083e`](https://git.add-ideas.de/GovOPlaN/govoplan-campaign/commit/c2f083e5f6dcbbe5ad1e9aeedb66f28539419679), tagged [`v0.1.20`](https://git.add-ideas.de/GovOPlaN/govoplan-campaign/src/tag/v0.1.20), loaded by [Core `af90db4`](https://git.add-ideas.de/GovOPlaN/govoplan-core/commit/af90db4) / `v0.1.24`, and selected by the workspace catalog in [`4c7552f`](https://git.add-ideas.de/GovOPlaN/govoplan/commit/4c7552f). Acceptance evidence: - append-only, tenant-scoped collaboration entries with canonical typed references, actor/time/visibility context, deterministic cursor pagination, and an Alembic migration; - independent read/post/moderate scopes and server-side parent-Campaign access enforcement/explanations; - author withdrawal and moderator redaction remove text while retaining tombstone, SHA-256 evidence, reference context, and bounded Audit events; - active, already-authorized mention targets only; optional content-free Notifications dispatch is failure-isolated; - accessible Activity page using the shared page/action/dialog/form/reference primitives, with bounded loading and explicit discussion-versus-Audit guidance; - DSAR coverage and user/admin documentation updated without modifying historical Campaign versions. Verification: - Campaign backend: `430 passed, 26 subtests passed`; - focused collaboration/access/DSAR/docs suite: `50 passed`; - every Campaign WebUI test script passed; - workspace manifest registry: 68/68, DSAR coverage: 68 active modules; - full workspace focused gate passed, including 59 WebUI permutations and 8 browser conformance tests; - Core production build passed within bundle budgets with the collaboration page as a lazy chunk.
zemion removed the
status
in-progress
label 2026-08-22 00:24:19 +02:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: GovOPlaN/govoplan-campaign#88