halkyon/apps/learn/halkyon_learn_client/lib/migrations
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Tizian 「ティツィアーン」 a1c5ac3f86
feat(privacy): the instance's side of private studysets (ADR 0019)
- `content_key`, a synced table in the person's space, keeps their data keys
  sealed to their account (a private studyset's, their personal one);
  `learning_path_answer` gains `keyId` and `nonce` for answers in private
  studysets. Additive only, on the server and the device.
- Publishing refuses a private studyset, and a tree holding a private row
  (`PublishRefusal.private`); a private studyset elsewhere no longer breaks
  publishing a readable one. Encrypted tags are named as the device names
  them (`tagNames`): a name for a tag that isn't the person's, or an
  encrypted tag of the release without one, refuses it
  (`tagNamesMismatch`); a readable tag keeps its own name.
- The connector leaves private studysets out and says how many there are.
- The learner count reads no payload any more: Count me is kept by the
  instance (`counted_learner`) and the device reports which publications
  its copies come from (`learning_copy`, accepted only while counted, each
  report replacing the last); only the reporter's own studysets count.
  Deleting a person deletes both.
- An upload says whether its file is encrypted: only a readable one over
  20 MB is checked to be a PDF, and an encrypted one may be 4 KiB larger.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
2026-10-23 14:13:08 +02:00
..
20260930094729362-studysets chore: Halkyon Learn moves into apps/learn 2026-10-22 18:11:02 +02:00
20260930122235111-cards chore: Halkyon Learn moves into apps/learn 2026-10-22 18:11:02 +02:00
20260930145136285-reviews chore: Halkyon Learn moves into apps/learn 2026-10-22 18:11:02 +02:00
20261001064926911-tree-tags-assets chore: Halkyon Learn moves into apps/learn 2026-10-22 18:11:02 +02:00
20261002191122122-notes chore: Halkyon Learn moves into apps/learn 2026-10-22 18:11:02 +02:00
20261002211346701-learning-paths chore: Halkyon Learn moves into apps/learn 2026-10-22 18:11:02 +02:00
20261003110855698-pdf-sources chore: Halkyon Learn moves into apps/learn 2026-10-22 18:11:02 +02:00
20261007205440868-card-buried-at chore: Halkyon Learn moves into apps/learn 2026-10-22 18:11:02 +02:00
20261008165051407-pdf-position chore: Halkyon Learn moves into apps/learn 2026-10-22 18:11:02 +02:00
20261009224606274-feedback chore: Halkyon Learn moves into apps/learn 2026-10-22 18:11:02 +02:00
20261012162411835-studyset-deleted-at chore: Halkyon Learn moves into apps/learn 2026-10-22 18:11:02 +02:00
20261019121406578-halkyon-base chore: Halkyon Learn moves into apps/learn 2026-10-22 18:11:02 +02:00
20261019201023295-profiles-in-halkyon-base refactor(profile): handles and profiles move into halkyon_base 2026-10-22 18:11:07 +02:00
20261019204112282-deletion-notices feat(accounts): one account across an instance's services (ADR 0016) 2026-10-22 18:11:07 +02:00
20261020111943300-passwords feat(auth): Learn's and Todo's servers take password sign-in 2026-10-22 18:11:11 +02:00
20261020125117584-sessions-ended feat(auth): change the password and the recovery phrase while signed in 2026-10-23 14:12:40 +02:00
20261020185750538-recovery-proof-key fix(auth)!: the recovery phrase is proved by a key of its own 2026-10-23 14:12:43 +02:00
20261020194228286-second-factor-waits fix(auth): codes wait after ten wrong in a row, and the owner is told 2026-10-23 14:12:44 +02:00
20261020204619104-session-code-tries fix(auth): a session's wrong codes end the session, not the account's codes 2026-10-23 14:12:47 +02:00
20261020211224692-email-code-purpose fix(auth): a code by mail serves only what it was asked for 2026-10-23 14:12:48 +02:00
20261021100422048-session-ended-warning feat(auth): a session ended for its wrong proofs warns its owner 2026-10-23 14:12:51 +02:00
20261021110159867-second-factor-paths fix(auth): codes after the recovery phrase count apart from the password's 2026-10-23 14:12:52 +02:00
20261021134803749-reset-hold-outs fix(auth): a hold-out moves a reset on only by its own time, and a reset lives 30 days at most 2026-10-23 14:12:59 +02:00
20261021184601197-private-studysets feat(privacy): the instance's side of private studysets (ADR 0019) 2026-10-23 14:13:08 +02:00
migration_registry.dart feat(privacy): the instance's side of private studysets (ADR 0019) 2026-10-23 14:13:08 +02:00