3 Commits

Author SHA1 Message Date
bvandeusen 191a1329c3 docs: character-fandom association refactor spec (wide scope)
Replaces the string-embedded `character:Name (Fandom)` naming scheme with
structural storage: bare name in tag.name, kind in kind column only,
fandom association via fandom_id. Extends to all tag kinds — the kind
prefix (`artist:`, `fandom:`, etc.) is stripped from tag.name repo-wide,
making tag.name authoritative display text and tag.kind the sole source
of truth for kind.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-21 22:51:17 -04:00
bvandeusen 0f35a0c484 feat: ML tag suggestions, character/fandom integrity, underscores, modal polish
Consolidated merge of feat/tag-suggestions branch. Original 64-commit history
was lost to git-object corruption in a Nextcloud-synced checkout; this single
commit captures the equivalent diff.

Includes:
- pgvector-backed tag suggestion infra (WD14 + SigLIP centroids, ml-worker
  container, Celery tasks, suggestion service, accept/reject endpoints + modal
  UI with green/red chip buttons)
- Character/fandom integrity: title-case normalization on every write path,
  fandom-id backfill, maintenance task + settings button, migrations g26041901
  + h26041901 to canonicalize legacy rows with case-only duplicate merging
- Tag-underscores + modal polish: WD14 name canonicalization at emit + accept
  + add/bulk-add paths, migration i26041901 for legacy-row rename-or-merge
  across character/fandom/NULL kinds, suggestion-accept refresh parity via
  awaited loadTags, persistent chip tint
2026-04-19 19:50:58 -04:00
bvandeusen 998d573298 add UI/UX improvements design spec
Content-first redesign covering showcase stagger animation and ghost
badges, gallery source tag filtering, modal two-panel hierarchy,
series reader immersive mode, and settings tab structure.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-19 23:11:49 -04:00