Freeze supporting asset references at filing for deferred archive copies #63

Open
opened 2026-11-05 12:09:28 +00:00 by spencerm · 0 comments
Owner

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:

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

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.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: spencerm/PacketStation#63