-
Notifications
You must be signed in to change notification settings - Fork 0
Reject archived parent targets in Board JSON hierarchy imports #2966
Copy link
Copy link
Closed
Labels
Priority IIIValuable but unscheduled: residuals, tech-debt, performance, depth work.Valuable but unscheduled: residuals, tech-debt, performance, depth work.backendPrimary implementation impact in .NET API/domain/application/infrastructure.Primary implementation impact in .NET API/domain/application/infrastructure.bugSomething isn't workingSomething isn't working
Description
Activity
Metadata
Metadata
Assignees
Labels
Priority IIIValuable but unscheduled: residuals, tech-debt, performance, depth work.Valuable but unscheduled: residuals, tech-debt, performance, depth work.backendPrimary implementation impact in .NET API/domain/application/infrastructure.Primary implementation impact in .NET API/domain/application/infrastructure.bugSomething isn't workingSomething isn't working
Projects
- StatusShow more project fieldsDone
Follow-up from PR #2965 review comment 3984069198 at 5ba1892.
Source-confirmed MEDIUM contract gap: hand-crafted version-3 Board JSON can name an archived card as another card's parent. Import calls SetParent before Archive, and full graph validation checks existence, scope, cycles and depth but not parent archive state. Normal create/update/proposal lanes reject archived parents; ordinary archive detaches all direct children, so a clean ordinary export cannot produce this graph.
Import creates a fresh board and fresh card IDs. This does not overwrite existing data or bypass board authority. No separate runtime probe is claimed for this finding.
Residual acceptance: reject archived parent targets atomically before import commit, while preserving valid archived children whose parent remains active. Prove both cases, old plain/v2 compatibility, and no partial board creation. Do not change restore behavior or historical account export.
Keep Pending. No implementation claim; the current hard-work programme is finishing hierarchy and then assignment.