fix(study): scope the tag filter to the tags the studied tree owns #822
No reviewers
Labels
No labels
Compat/Breaking
Kind/Bug
Kind/Documentation
Kind/Enhancement
Kind/Feature
Kind/Security
Kind/Testing
Priority/Critical
Priority/High
Priority/Low
Priority/Medium
Reviewed/Confirmed
Reviewed/Duplicate
Reviewed/Invalid
Reviewed/Won't Fix
Status/Abandoned
Status/Blocked
Status/Need More Info
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
project-halkyon/halkyon-learn!822
Loading…
Reference in a new issue
No description provided.
Delete branch "refs/pull/822/head"
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?
Opening a studyset with hundreds of cards due could land straight on
"Nothing to study right now", with the study settings sheet showing no
tag selected. Pressing Reset — the button that clears the tag filter —
fixed it, which is the tell: the filter was set, and nothing on screen
said so.
selectedTagIdsis one global preference, but a tag row belongs to asingle studyset tree. Tags picked while studying one deck stay selected
when the next session starts somewhere else, where they can match no
card at all, and
_applyTagFilterthen drops the entire pool. Thesheet cannot show the selection either: its picker lists this tree's
content tags, and ids from another tree simply aren't among them. So the
filter reads as off while silently emptying the queue, and the only
visible difference between "you're up to date" and "your filter matched
nothing" is that Reset happens to be enabled.
The session now resolves the selection against the same source the
picker uses —
listForTreeunder the tree root — before decidingwhether a filter applies. A filter you cannot see is a filter that does
not apply.
A selection this tree DOES own is left alone even when it matches
nothing: that one is visible and clearable, and quietly widening it
would be its own surprise. A failed lookup keeps the raw selection
rather than silently studying unfiltered.
The repository is injected nullable, so the tests that don't wire it
build the same queue they always did.
Signed-off-by: Tizian 「ティツィアーン」 raisondetredev@pm.me