feat: an F-Droid repository at learn.halkyon.app
Releases also publish the APK in the project's own F-Droid repository,
https://learn.halkyon.app/fdroid/repo. tool/fdroid_repo.sh adds the APK,
signs the indexes with the repository's own key and uploads them to
ramiel as the user fdroid, whose key can only write into the folder
Caddy serves (rrsync), the APKs first and the indexes last.
tool/release.sh checks that key and its password before building and
publishes after the Forgejo release.
- tool/release/fdroid/ holds the repository's settings (Halkyon, the
snap's icon) and the app's listing (the snap's text), with the
anti-features TetheredNet (learn.halkyon.eu only, for now) and
NonFreeNet (YouTube, the server's SSPL) declared with their reasons,
in F-Droid's own definitions and with its icons (fdroiddata, AGPL v3).
- The index key's certificate is pinned: a new key would make the F-Droid
app refuse the repository.
- fdroidserver v2.4.5, since Ubuntu's v2.2.1 knows neither TetheredNet
nor reasons.
README and AGENTS.md describe it.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
2026-10-05 20:25:02 +02:00
|
|
|
# Halkyon Learn's listing in the F-Droid repository: the snap's summary and
|
|
|
|
|
# description (snap/snapcraft.yaml), and its anti-features with their reasons.
|
|
|
|
|
Categories:
|
|
|
|
|
- Education
|
|
|
|
|
License: AGPL-3.0-or-later
|
|
|
|
|
AuthorName: Halkyon
|
|
|
|
|
AuthorEmail: support@halkyon.app
|
2026-10-10 05:48:56 +02:00
|
|
|
WebSite: https://halkyon.app/learn
|
build: Melos, a Dart check and every path for the single repository
- Melos 8.9 as the root's dev dependency, with scripts across the
workspace (analyze, test:dart, test:flutter, generate, check) and its
filters (--diff, --include-dependents); cli_util overridden to 0.5.2
for it, since Learn's flutter_launcher_icons asks for 0.4 and uses only
its logger, unchanged in 0.5.
- tool/check.dart in place of tool/check.sh: packages, formatting of our
own files, analysis, the tools' tests, then every package's tests
through Melos (--changed-since=<commit> for only what changed and what
depends on it). tool/pre-push is the hook: the signature check, then
the checks. CI generates every server's code and runs the same check.
- The images build from the root with a workspace narrowed to what they
need (tool/workspace_only.sh); compose, the deploy's migration test,
the snap, the release script, the editor's launch files and Learn's
asset tools (run from apps/learn) follow the new layout.
- The project's source is named as project-halkyon/halkyon (source link,
snap, F-Droid listing, release uploads); the AGPL packages carry the
licence's own text.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
2026-10-19 20:39:09 +02:00
|
|
|
SourceCode: https://code.halkyon.app/project-halkyon/halkyon
|
feat: an F-Droid repository at learn.halkyon.app
Releases also publish the APK in the project's own F-Droid repository,
https://learn.halkyon.app/fdroid/repo. tool/fdroid_repo.sh adds the APK,
signs the indexes with the repository's own key and uploads them to
ramiel as the user fdroid, whose key can only write into the folder
Caddy serves (rrsync), the APKs first and the indexes last.
tool/release.sh checks that key and its password before building and
publishes after the Forgejo release.
- tool/release/fdroid/ holds the repository's settings (Halkyon, the
snap's icon) and the app's listing (the snap's text), with the
anti-features TetheredNet (learn.halkyon.eu only, for now) and
NonFreeNet (YouTube, the server's SSPL) declared with their reasons,
in F-Droid's own definitions and with its icons (fdroiddata, AGPL v3).
- The index key's certificate is pinned: a new key would make the F-Droid
app refuse the repository.
- fdroidserver v2.4.5, since Ubuntu's v2.2.1 knows neither TetheredNet
nor reasons.
README and AGENTS.md describe it.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
2026-10-05 20:25:02 +02:00
|
|
|
|
|
|
|
|
AntiFeatures:
|
|
|
|
|
NonFreeNet: YouTube videos in study material play through YouTube, and the
|
|
|
|
|
server's licence (SSPL) isn't a free licence by F-Droid's definition.
|
|
|
|
|
|
|
|
|
|
Name: Halkyon Learn
|
|
|
|
|
Summary: Learn with flashcards, studied offline and synced between your devices
|
|
|
|
|
Description: |-
|
2026-10-14 21:13:23 +02:00
|
|
|
Halkyon Learn is a spaced-repetition app for your own material: studysets of
|
|
|
|
|
flashcards, notes, learning paths and PDFs, reviewed on an FSRS schedule. Every
|
|
|
|
|
studyset is made by its learners: build yours for any subject, or copy one that
|
|
|
|
|
someone published. It works offline and syncs between your devices.
|
feat: an F-Droid repository at learn.halkyon.app
Releases also publish the APK in the project's own F-Droid repository,
https://learn.halkyon.app/fdroid/repo. tool/fdroid_repo.sh adds the APK,
signs the indexes with the repository's own key and uploads them to
ramiel as the user fdroid, whose key can only write into the folder
Caddy serves (rrsync), the APKs first and the indexes last.
tool/release.sh checks that key and its password before building and
publishes after the Forgejo release.
- tool/release/fdroid/ holds the repository's settings (Halkyon, the
snap's icon) and the app's listing (the snap's text), with the
anti-features TetheredNet (learn.halkyon.eu only, for now) and
NonFreeNet (YouTube, the server's SSPL) declared with their reasons,
in F-Droid's own definitions and with its icons (fdroiddata, AGPL v3).
- The index key's certificate is pinned: a new key would make the F-Droid
app refuse the repository.
- fdroidserver v2.4.5, since Ubuntu's v2.2.1 knows neither TetheredNet
nor reasons.
README and AGENTS.md describe it.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
2026-10-05 20:25:02 +02:00
|
|
|
|
2026-10-14 21:13:23 +02:00
|
|
|
Learn from what you watch: play films and shows from your Jellyfin server,
|
|
|
|
|
and every subtitle line is split into dictionary words, with readings above
|
|
|
|
|
and the translation below. Tap a word, and it is a flashcard.
|
|
|
|
|
|
|
|
|
|
Dictionaries for Japanese, Chinese, Korean, German, Greek and English; kanji,
|
|
|
|
|
hanzi and Hangul written by hand, each stroke checked; exam plans for the
|
|
|
|
|
JLPT, HSK and Korean levels, with a daily pace to your exam's date; and
|
|
|
|
|
studysets published to Explore and copied, later releases coming in as
|
|
|
|
|
merges that keep your own edits.
|
|
|
|
|
|
feat(base)!: no anonymous accounts on the server (ADR 0020, D25)
The server's half of D25: every account has a way in, and the anonymous
accounts left from before go with the daily pruning.
- The module signs nobody in anonymously: `anonymousIdp` and
`gitHubUpgrade` are gone, and so is linking GitHub at the register.
- A password is set only by someone whose address is theirs (a
`firstPassword` code) or who signs in with GitHub alone (a fresh
sign-in and a `signUp` code); an anonymous account is refused
`wrongCredentials` before any code is used.
- SimpleLogin refuses to link onto a caller without `identified`
(`wrongCaller`), the member's endpoint too, so nothing turns an
anonymous account into one with a way in.
- `pruneAnonymousPeople` deletes every anonymous account left, however
new, never one identified. Learn and Todo schedule it as
`prune-accounts` and cancel the old `prune-abandoned-anonymous-people`
entry once.
- Learn: someone without `identified` keeps no files;
`FILE_LIMIT_ANONYMOUS_MB` is gone. `minimumAppBuild` is 23, as builds
up to 22 start with an anonymous account.
- Learn's sync tests make their person and session by SQL in the
development database, as Serverpod stores sessions.
- Docs, store listings and ADRs 0010, 0014, 0016, 0017 and 0019 amended.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
2026-10-24 16:07:27 +02:00
|
|
|
You sign in with SimpleLogin, by Proton, or with an email address, a
|
|
|
|
|
password and an authenticator app. It connects to learn.halkyon.eu, the project's
|
2026-10-14 21:13:23 +02:00
|
|
|
instance, or to any other: everything an instance needs is in the repository,
|
|
|
|
|
to run your own. The app is AGPL-3.0 and the server SSPL-1.0, so all of its
|
|
|
|
|
code is public.
|
|
|
|
|
|
|
|
|
|
Questions and reports: support@halkyon.app
|