- m018_fts_from_normalized_tags: replace FTS triggers to read from asset_tags+tags instead of the legacy JSON asset_metadata.tags column - m019_drop_legacy_tag_columns: remove asset_metadata.tags and tags_text via create-copy-swap; includes invariant check (aborts if legacy tags not backfilled) - registry.py: MIGRATIONS = [M017, M018, M019] - schema_fts.py / schema_sql.py: FTS helpers and baseline triggers rewritten to source from normalized tables with asset_tags guard - TagsRepository: normalized read path (get_tags_for_asset, list_assets_with_tag, search_assets_by_tags) + sync_from_legacy_row repair helper - Readers v2: searcher, result_hydrator, metadata_helpers, updater, rating_tags_service, rename_service, stacks/service, duplicates/service migrated to asset_tags/tags JOIN - Stop-Write: writes no longer update asset_metadata.tags / tags_text - sqlite_facade: ahas_table helper; sqlite_recovery updated - deps.py: TagsRepository wired into service container - scripts/tag_drift_doctor.py: detects assets with legacy tags not backfilled - ADR 0009, ARCHITECTURE_MAP, RATINGS_TAGS_COLLECTIONS, adr/README updated - Tests: test_drop_legacy_tag_columns (2), test_fts_from_normalized (6), test_tags_dual_write, test_tags_normalized_readers + regression fixes across test_rating_tags_import, test_index_metadata_helpers, test_index_searcher, test_asset_updater, test_deps, test_schema_heal - Full suite: 1687 passed, 2 skipped, 2 pre-existing failures (test_health_routes)
693 B
693 B
Architecture Decision Records (ADRs)
This folder tracks non-trivial architectural decisions for Majoor Assets Manager.
Index
-
0001-error-handling-result.md— UseResult[T]everywhere, no UI exceptions. -
0002-comfyui-server-import-safety.md— Never importComfyUI/server.pyfrom extension code. -
0003-frontend-vue-ownership-runtime-bridges.md— Vue owns major UI surfaces; runtime bridges stay explicit and limited. -
0004-panel-runtime-split.md—panelRuntimeremains an orchestration layer; responsibilities split into focused modules. -
0009-tags-normalization.md- Tags use normalizedtags/asset_tagstables; legacy JSON columns are removed by v19.