cards: add hidden_at column for retiring a flashcard #77
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-infra!77
Loading…
Reference in a new issue
No description provided.
Delete branch "refs/pull/77/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?
First of three PRs for a "hide" (retire) a flashcard feature. Adds a nullable
hidden_attimestamp topublic.cards.A hidden card is retained in full but retired from active learning: excluded from study sessions (spaced-rep + cram), the due-count badge, and mastery %, yet still visible (greyed-out) in browse and carried through export/import so the state round-trips in a backup. Modelled on Anki's suspend — indefinite until the user unhides it, FSRS scheduling state left untouched so unhiding resumes where it left off.
hidden_atis independent ofdeleted_at(soft-delete → invisible everywhere): a card may be hidden xor deleted xor neither. The CHECK mirrorsdeleted_at(hidden_at IS NULL OR hidden_at >= created_at).No new index: due-filtering runs client-side in the local Drift store, and the existing
cards_studyset_ordering_idx(WHEREdeleted_at IS NULL) must keep returning hidden rows so browse can grey them.Already applied to the Halkyon Learn project via MCP (version
20260708224607); this mirrors it into version control with the matching filename. Additive + nullable, so existing clients ignore the column until the app PRs land.Follow-ups: (2) halkyon-learn data layer — Drift column, model, gateway/repository hide/unhide, sync, study/mastery exclusion; (3) halkyon-learn UI — greyed tiles + hide/unhide toggle.