Skip to content

Delivered ​

Backend PR #450 adds migration 0036 and schema documentation for the Notion packaging nomenclature. The snapshot contains 71 unique product keys and 13 categories. PostgreSQL names are product, sealed_type and libelle; a separate sealed_types reference table restricts categories through a foreign key. Product keys are unique, nonblank and case-preserving. Seeds are non-overwriting and replay-safe.

This is a mapping of packaging/category keys, not commercial product records. The existing scan taxonomy, catalogue, cards, users and collection are untouched. No API or frontend integration is included. Source anomalies are documented, including mini-tin-sealed mapped to Blister; no automatic correction was made.

Verification ​

  • Schema test first failed on missing migration; seed test then failed with zero instead of 71 rows. Both passed after their respective implementation steps.
  • Existing migration structural suite: 11 passed.
  • Node 22.22.0 package gates: 546 ingest tests and 1062 API tests passed.
  • Local E2E blocked by unavailable Docker engine and OCR traineddata returning 404; stopped without claiming success. No E2E tests ran on the production VPS.

VPS Application ​

User approved the proposed PostgreSQL schema and requested implementation. Both names were absent before application. A schema backup was saved, the transferred migration SHA256 matched, and only migration 0036 was applied using ON_ERROR_STOP and a single transaction. PostgreSQL confirmed 13 categories, 71 unique mappings and zero orphan categories; PK, unique, check and foreign-key constraints are present. The existing sealed product count is unchanged.

No service restart, backend image deployment, checkout promotion or other migration was performed. The exact SQL remains alongside the schema backup. The PR remains open against staging; future deployment must retain migration 0036 in the normal startup migration set. Rollback requires a separate approved operation, documented in the backend schema guide.

Merge And Targeted Synchronization ​

Backend PR #450 merged into staging on 2026-10-10 at commit c9294f242b6181cb2049121dff03555292e8a268, after all six CI checks passed. This supersedes the initial open-PR status above. The exact SQL and schema guide were compared with the merge commit and installed in the VPS backend checkout. Only migration 0036 was replayed transactionally: both seeds inserted zero rows, with 71 unique mappings, 13 categories and zero orphans still confirmed.

The VPS Git fetch failed because its GitHub SSH configuration/key was unavailable; verified file transfer was used instead. The checkout revision was not promoted. The two installed files remain untracked there until normal Git synchronization; account for them when repairing access and updating the checkout, comparing their contents before any replacement. The existing compose override is untouched. No API rebuild or restart was needed. Frontend PR #643 remains open and pushed at 0cc4567c9eceb72037f415dc2d6861b4b94f727f, explicitly not merged.

Follow-Up ​

Review source category decisions with the product owners, then design the real sealed catalogue/filter API separately. The frontend remains empty rather than loading demo products. Unrelated local instruction changes and the remote compose override were not modified.