Skip to content

Fix: normalize tags to lowercase across all write paths and existing …#58

Merged
hunter-read merged 1 commit intomainfrom
52-bug-tag-case-sensitivity-causes-broken-filtering-and-delete-behavior
Apr 23, 2026
Merged

Fix: normalize tags to lowercase across all write paths and existing …#58
hunter-read merged 1 commit intomainfrom
52-bug-tag-case-sensitivity-causes-broken-filtering-and-delete-behavior

Conversation

@hunter-read
Copy link
Copy Markdown
Owner

…data

Summary

  • Add startup DB migration that lowercases and deduplicates tags in all seven tag-bearing tables, resolving collisions like "Draw Steel" vs "draw steel" in existing databases
  • Add Pydantic field validators to MapUpdate, FolderTagsUpdate (maps & tokens), BookFolderUpdate, and GameSystemUpdate to enforce lowercase and deduplication on every API write
  • Normalize tags read from tags.json in the indexer before storing
  • Fix MapsView tag filter to build sets from lowercased values so clicking a filter pill matches maps regardless of stored casing

Type of change

  • Bug fix
  • New feature
  • Refactor / cleanup
  • Docs / configuration only

Testing

  • Backend tests pass (pytest -q)
  • Frontend tests pass (npm test)
  • Tested manually in the browser

Notes for reviewer

@hunter-read hunter-read added this to the v1.3.0 milestone Apr 23, 2026
@hunter-read hunter-read merged commit 5384f69 into main Apr 23, 2026
7 checks passed
@hunter-read hunter-read deleted the 52-bug-tag-case-sensitivity-causes-broken-filtering-and-delete-behavior branch April 24, 2026 17:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Bug: Tag case sensitivity causes broken filtering and delete behavior

1 participant