feat(app): reconciliatie fase 2 — code leest/schrijft nieuw datamodel #65
No reviewers
Labels
No labels
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
janpeter/Media-Organizer!65
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "feat/reconcile-fase2"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Wat
Alle applicatiecode schakelt over op het gereconcilieerde datamodel uit fase 1 (PR #64, gemerged):
assetasset_state(besluit A)asset_sourceImmichAsset+ImmichPersonAsset_v2als leesmodel (vervangt lees-gebruik vanImmichPersonAsset, die als sync-landing blijft tot fase 3a)Per module
asset_id, placement, album-teller, en koppelt zowelImmichPersonAssetalsImmichAssetop filename.ensureImportAlbumonderhoudt de NOT NULL FKroot.album_id; placement-filters lezen viaimport_file.asset.state.libraryImportFileToMediaFilemapt viaimportFile.asset.asset.state; output-interface ongewijzigd.assetState; permanent delete ruimt collection-links van alle images van de asset. Collecties blijven bewust image-gebaseerd (lidmaatschap).ImmichAsset × ImmichPersonAsset_v2; src =/api/slideshow-media/<filename>bij koppeling, anders fallback naar oude proxy-URL (die netjes 404't). Vervangt PR #62.ImmichAsset(asset_id, geen filename-match); merge zetasset_idop verplaatste import files (NOT NULL FK — échte bug, gevangen door integratietest); favorite-overdracht op asset-niveau.assetop media_filename, source_path viaasset.sources[0].src/lib/assets/media-assets.tsverwijderd: collisie-diagnostiek is onmogelijk op het nieuwe model.Bewust niet aangeraakt
scripts/sync-immich*.tsensrc/lib/immich/sync.ts— de Immich API is uitgeruimd; deze schrijven alleen naar landing-tabellen. Worden opgeruimd in fase 3a.src/actions/immich-people.ts— raakt alleen ImmichPerson-namen, geen gewijzigde tabellen.Testen
npm run buildgroen.Volgorde (ontwerp §6)
slideshow_imageworden nog geschreven tot fase 3a).npm run reconcile:backfill) → constraints-migratie → rooktest.Stackt op fase 1 (#64, gemerged). Fase 3a pas na ≥1 week stabiel draaien.
Verdict: APPROVED
Geen gekoppeld plan gevonden — beoordeeld op codekwaliteit + product-standaarden.
Findings
De diff volgt de actieve datamodel-reconciliatie richting: asset als canonical record, state op
asset_state, provenance viaasset_source,LibraryImportRoot.album_idals harde FK, en Immich-normalisatie viaImmichAsset+ImmichPersonAsset_v2. De aangepaste tests dekken de belangrijkste lees- en schrijfpaden die door deze omschakeling geraakt worden.Gemerged via lokale merge (merge-commit
f8dd4f1opmain): de Forgejo-merge-endpoint bleef 405 geven ondanks conflictvrije diff. Conflict met de eerder gemergede #62 insrc/lib/immich/person-browser.ts(+test) is opgelost door de fase-2-versie te nemen, die de lokale-src-logica van #62 volledig overneemt op het nieuwe datamodel. Suite 301/301 groen en build groen op de gemergede main. Branchfeat/reconcile-fase2mag weg.Pull request closed