halkyon/apps/meditate
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Tizian 「ティツィアーン」 2d27451cb8
fix(app,learn,meditate): a device without speech recognition says so, and how to get one
On GrapheneOS, which installs no recogniser, the microphone did nothing
and stayed listening: speech_to_text's initialize throws a
PlatformException (recognizerNotAvailable) there rather than answering
false, and DeviceSpeechInput let it through. A listen now answers how it
went (SpeechStart: listening, noRecognizer, unavailable) and never
throws; Learn's field and Meditate's dream say that no speech
recognition is installed and name two to install (FUTO Voice Input,
Google's speech services), in halkyon_app's texts. It also passes
androidNoBluetooth, as the apps declare no Bluetooth permission the
plugin would otherwise ask for.

Whats-New: Where the device has no speech recognition, the microphone says so and how to get one.
Whats-New-De: Wo das Gerät keine Spracherkennung hat, sagt das Mikrofon das und wie du eine bekommst.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
2026-11-05 08:58:37 +01:00
..
halkyon_meditate_client feat(meditate): the operator's library on the server, and a course's lessons done synced 2026-11-04 09:31:59 +01:00
halkyon_meditate_flutter fix(app,learn,meditate): a device without speech recognition says so, and how to get one 2026-11-05 08:58:37 +01:00
halkyon_meditate_server feat(meditate): the library's accesses name nobody, and the privacy page says so 2026-11-04 09:31:59 +01:00
tool feat(meditate): the app: Today, Explore, Profile, the sitting and its bells 2026-11-04 09:31:56 +01:00
.gitignore feat(meditate): the app: Today, Explore, Profile, the sitting and its bells 2026-11-04 09:31:56 +01:00
AGENTS.md docs(meditate): ADR 0038, D16, the operator's library, as the developer asked 2026-11-04 09:32:00 +01:00
CLAUDE.md feat(meditate): the app: Today, Explore, Profile, the sitting and its bells 2026-11-04 09:31:56 +01:00
README.md feat(meditate): the app: Today, Explore, Profile, the sitting and its bells 2026-11-04 09:31:56 +01:00

Halkyon Meditate

Meditation, as a Halkyon app (ADR 0038): a silent timer with bells, Halkyon's own guided practices as text cues, found by goal and kind, and the person's minutes, days and days in a row, every sitting sealed and synced between their devices. People choose an instance, sign in (with SimpleLogin or a password), switch between the accounts on their devices, sign out and delete their account, as in every Halkyon app.

Package What it is
halkyon_meditate_server The server: Serverpod with the halkyon_base module and the sync engine
halkyon_meditate_client Its client, generated by Serverpod
halkyon_meditate_flutter The app, on halkyon_app and halkyon_ui (Android, iOS, Linux, macOS, Windows)

Run it with serverpod start in halkyon_meditate_server, which starts the server (and its embedded PostgreSQL) and the app; or the app alone against an instance with flutter run --dart-define=SERVER_URL=https://…/ in halkyon_meditate_flutter. Tests: dart run melos run test:dart --scope=halkyon_meditate_server and dart run melos run test:flutter --scope=halkyon_meditate_flutter at the repository's root, or dart run tool/check.dart for everything.

The app's icon is Lucide's sprout (ISC licence, ADR 0031), drawn by the repository's tool/app_icons.py. Its bells are synthesised by tool/bells.py and are the project's own. Licences: the server under the SSPL, the client and the app under the AGPL (LICENSE.md).