The four modules with tag junctions now filter their main useAll*
queries through filterBySceneScope: when a scene has scopeTagIds set,
only records tagged with at least one matching tag (+ untagged records)
appear in the UI. Modules without tag junctions (drink, food, habits,
journal, dreams, places) are unaffected — their records are always
globally visible.
- useAllNotes → noteTagOps.getTagIds
- useAllTasks → taskTagTable junction lookup
- useAllContacts → contactTagOps.getTagIds
- useAllCalendarItems → eventTagOps.getTagIds (calendar-sourced blocks
only; task/habit blocks pass through unfiltered)
When no scene scope is active (scopeTagIds undefined), filterBySceneScope
is a no-op identity pass — zero overhead for unscoped scenes.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>