Skip to content

Reject archived parent targets in Board JSON hierarchy imports #2966

Description

@Chris0Jeky

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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Priority IIIValuable but unscheduled: residuals, tech-debt, performance, depth work.backendPrimary implementation impact in .NET API/domain/application/infrastructure.bugSomething isn't working

    Projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions