halkyon/apps/learn/halkyon_learn_client
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
..
doc chore: Halkyon Learn moves into apps/learn 2026-10-22 18:11:02 +02:00
lib feat(privacy): the instance's side of private studysets (ADR 0019) 2026-10-23 14:13:08 +02:00
.gitignore chore: Halkyon Learn moves into apps/learn 2026-10-22 18:11:02 +02:00
analysis_options.yaml chore: Halkyon Learn moves into apps/learn 2026-10-22 18:11:02 +02:00
CHANGELOG.md chore: Halkyon Learn moves into apps/learn 2026-10-22 18:11:02 +02:00
dartdoc_options.yaml chore: Halkyon Learn moves into apps/learn 2026-10-22 18:11:02 +02:00
LICENSE chore: Halkyon Learn moves into apps/learn 2026-10-22 18:11:02 +02:00
pubspec.yaml build: one workspace for every app and the packages they share 2026-10-22 18:11:03 +02:00
README.md chore: Halkyon Learn moves into apps/learn 2026-10-22 18:11:02 +02:00

halkyon_learn_client

This is your Serverpod client. The code in here is mostly generated by Serverpod, but you may want to make changes if you are adding modules to your project.

Licence

Copyright (C) 2026 The Halkyon Learn contributors

This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.

You should have received a copy of the GNU Affero General Public License along with this program (LICENSE). If not, see https://www.gnu.org/licenses/.