[Task] Link existing files/mail/campaign to cases #3

Closed
opened 2026-07-10 22:07:26 +02:00 by zemion · 2 comments
Owner

Moved from add-ideas/govoplan-core#124.

Reason: Case integration orchestration belongs to the cases module.

Original issue body:

Imported from a backlog-like text file.

  • Source: /mnt/DATA/Nextcloud/ADD ideas UG/Products/govoplan/split-concept-action-plan.md
  • Line: 318
  • Source kind: product
  • Section: GovOPlaN Split Concept and Action Plan > Product Roadmap > Milestone B: Daily Administrative Work

Imported item:

Link existing files/mail/campaign to cases.
Moved from add-ideas/govoplan-core#124. Reason: Case integration orchestration belongs to the cases module. Original issue body: <!-- codex-generic-backlog-fingerprint:aa2ccc9f845d40a3ddae3b5c --> Imported from a backlog-like text file. - Source: `/mnt/DATA/Nextcloud/ADD ideas UG/Products/govoplan/split-concept-action-plan.md` - Line: `318` - Source kind: `product` - Section: `GovOPlaN Split Concept and Action Plan > Product Roadmap > Milestone B: Daily Administrative Work` Imported item: ```text Link existing files/mail/campaign to cases. ```
Author
Owner

Backlog triage: this no longer requires a product decision. Core already defines tenant-bound active-object and Quick Access result contracts, Files already returns authorized exact-version references, and Cases already persists immutable tenant-bound EvidenceReference values without copying sibling-module content.

Autonomous implementation slice:

  1. Add a Cases-owned link/unlink action that consumes only a validated owner-module reference and appends a new Case revision with OCC/idempotency/change reason.
  2. Recheck Case update authority and reject cross-tenant, duplicate, malformed, or unsupported references.
  3. Add owner-authorized select results for Mail messages and Campaigns alongside the existing Files selector; no sibling module imports.
  4. Render linked evidence with stable owner path/version and unavailable-provider states; never copy message, file, recipient, or campaign content into Cases.
  5. Cover stale revision, replay, missing module, revoked source access, and history/audit behavior; update user/admin docs.

No manual environment is required for this provider-neutral slice. Real connector-backed source verification remains an owner-module concern.

Backlog triage: this no longer requires a product decision. Core already defines tenant-bound active-object and Quick Access result contracts, Files already returns authorized exact-version references, and Cases already persists immutable tenant-bound EvidenceReference values without copying sibling-module content. Autonomous implementation slice: 1. Add a Cases-owned link/unlink action that consumes only a validated owner-module reference and appends a new Case revision with OCC/idempotency/change reason. 2. Recheck Case update authority and reject cross-tenant, duplicate, malformed, or unsupported references. 3. Add owner-authorized select results for Mail messages and Campaigns alongside the existing Files selector; no sibling module imports. 4. Render linked evidence with stable owner path/version and unavailable-provider states; never copy message, file, recipient, or campaign content into Cases. 5. Cover stale revision, replay, missing module, revoked source access, and history/audit behavior; update user/admin docs. No manual environment is required for this provider-neutral slice. Real connector-backed source verification remains an owner-module concern.
zemion added codex/ready
status
ready
and removed codex/needs-human
status
triage
labels 2026-08-21 14:20:38 +02:00
Author
Owner

Implemented and released as v0.1.19 across the owning modules.

Commits:

  • Cases f236034 — OCC/idempotent link and unlink actions, immutable Case revisions/history, tenant and reference validation, provider-neutral evidence rendering, unavailable/revoked-source behavior, and documentation.
  • Mail cfd3847 — exact authorized mail.message Quick Access results.
  • Campaign 5a21067 — current-version authorized campaigns.campaign selector for active Cases.
  • Files already supplied the exact-version files.file-version selector contract.

Cases stores only bounded opaque owner references and never copies sibling-module content or grants source access. Owner modules re-authorize content on navigation; unlinking never deletes the source.

Verification includes 36 Cases tests, 142 Mail tests, focused Campaign tests, manifest and dependency checks, composed TypeScript, Quick Access provider permutations, and the complete focused workspace suite.

Implemented and released as `v0.1.19` across the owning modules. Commits: - Cases f236034 — OCC/idempotent link and unlink actions, immutable Case revisions/history, tenant and reference validation, provider-neutral evidence rendering, unavailable/revoked-source behavior, and documentation. - Mail cfd3847 — exact authorized `mail.message` Quick Access results. - Campaign 5a21067 — current-version authorized `campaigns.campaign` selector for active Cases. - Files already supplied the exact-version `files.file-version` selector contract. Cases stores only bounded opaque owner references and never copies sibling-module content or grants source access. Owner modules re-authorize content on navigation; unlinking never deletes the source. Verification includes 36 Cases tests, 142 Mail tests, focused Campaign tests, manifest and dependency checks, composed TypeScript, Quick Access provider permutations, and the complete focused workspace suite.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: GovOPlaN/govoplan-cases#3