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.
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.