Problem
Repeated archive/unarchive operations can overwrite timestamps or hide the true lifecycle order, complicating reconciliation and retention.
Objective
Deliver a production-quality improvement to transfer archival lifecycle and audit records that creates measurable value for correctness, security, reliability, performance, or maintainability.
Implementation scope
- Define monotonic state transitions and immutable event timestamps; reject stale commands; record actor and reason for each change.
Acceptance criteria
- Current state and history remain consistent under retries and concurrency; timestamps never move backward; each transition is auditable.
Required validation
- State-machine, stale-command, race, retry, and event-order tests.
- Existing tests and CI remain passing.
- Add regression coverage for the original failure mode.
- Do not weaken, delete, or skip unrelated tests to obtain a green build.
PR quality bar
- Keep the PR focused and explain design tradeoffs, compatibility impact, and test evidence.
- Avoid typo-only, documentation-only, cosmetic-only, or unrelated refactor submissions.
Out of scope
- Broad rewrites not required by the acceptance criteria.
- Changes to unrelated services, contracts, or user flows.
Problem
Repeated archive/unarchive operations can overwrite timestamps or hide the true lifecycle order, complicating reconciliation and retention.
Objective
Deliver a production-quality improvement to transfer archival lifecycle and audit records that creates measurable value for correctness, security, reliability, performance, or maintainability.
Implementation scope
Acceptance criteria
Required validation
PR quality bar
Out of scope