Reproduce: file while archiving is disabled, supersede a project/unit Q.C. document, enable archiving, then run catch-up. The original sealed book is copied alongside newer supporting documents. Project/unit documents can legitimately change after a packet files.
Acceptance criteria:
Persist an immutable filing-time archive manifest or asset-reference snapshot with content digests and relevant names/metadata.
Use that snapshot for immediate copies and every deferred retry.
Define explicit handling for older seals without a snapshot; do not silently label current documents as historical ones.
Add a test that changes Q.C. documents between filing and catch-up and confirms the original versions are archived.
Reviewed revision: 18333600b55b70971877c1a0c72d1d61b6ce9c69. Raised from the November 2026 independent project reviews and parent verification. No production system was tested.
Priority: medium.
[server/packetstation/domain/archive.py:677](https://gt.pescoinc.biz/spencerm/PacketStation/src/commit/18333600b55b70971877c1a0c72d1d61b6ce9c69/server/packetstation/domain/archive.py#L677) builds an archive from the sealed data book plus packet_files() evaluated now. Q.C. files are selected using superseded_by IS NULL ([server/packetstation/domain/archive.py:570](https://gt.pescoinc.biz/spencerm/PacketStation/src/commit/18333600b55b70971877c1a0c72d1d61b6ce9c69/server/packetstation/domain/archive.py#L570)), rather than the revisions present at filing.
Reproduce: file while archiving is disabled, supersede a project/unit Q.C. document, enable archiving, then run catch-up. The original sealed book is copied alongside newer supporting documents. Project/unit documents can legitimately change after a packet files.
Acceptance criteria:
- Persist an immutable filing-time archive manifest or asset-reference snapshot with content digests and relevant names/metadata.
- Use that snapshot for immediate copies and every deferred retry.
- Define explicit handling for older seals without a snapshot; do not silently label current documents as historical ones.
- Add a test that changes Q.C. documents between filing and catch-up and confirms the original versions are archived.
Related: #25, #28, #57. Validation: static code-path review, no share/DB reproduction. Source: parent review.
Reviewed revision: `18333600b55b70971877c1a0c72d1d61b6ce9c69`. Raised from the November 2026 independent project reviews and parent verification. No production system was tested.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Priority: medium.
server/packetstation/domain/archive.py:677 builds an archive from the sealed data book plus packet_files() evaluated now. Q.C. files are selected using superseded_by IS NULL (server/packetstation/domain/archive.py:570), rather than the revisions present at filing.
Reproduce: file while archiving is disabled, supersede a project/unit Q.C. document, enable archiving, then run catch-up. The original sealed book is copied alongside newer supporting documents. Project/unit documents can legitimately change after a packet files.
Acceptance criteria:
Related: #25, #28, #57. Validation: static code-path review, no share/DB reproduction. Source: parent review.
Reviewed revision:
18333600b55b70971877c1a0c72d1d61b6ce9c69. Raised from the November 2026 independent project reviews and parent verification. No production system was tested.