Skip to content

[Work model] Validate cumulative WIP when a proposal restores multiple cards #2926

Description

@Chris0Jeky

Confirmed MEDIUM from independent source review of #2920 at 434a043, before publication. No partial board write was identified; execution rolls back the failed proposal.

Trigger: a column has WIP limit 1 and no active cards, with two archived cards in that column. A proposal contains restore-lifecycle(A) and restore-lifecycle(B). ProposalOperationContractValidator validates each restore against the same current count, so both pass preview. Execution restores A, rejects B because the column is now full, and rolls back.

Acceptance: preview validation accounts for preceding supported operations when evaluating cumulative restore WIP, or the operation contract explicitly rejects unsupported multi-card lifecycle combinations. Keep preview/apply parity, atomic rollback, expectedUpdatedAt checks and the legacy archive-as-Block contract. Add a combined-lifecycle regression and a valid multi-operation control.

This is tracked separately from #2920's merge-blocking dependency-edge preservation repair under the bounded review rule. No new broad WIP redesign is requested. Current finding is source-proven; runtime regression has not yet been run.

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

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions