halkyon/apps/learn/halkyon_learn_flutter/pubspec.yaml
Tizian 「ティツィアーン」 00212bf49c
feat(learn): voice mode goes, as a spoken conversation isn't wanted (ADR 0021, D68 withdrawn)
The developer's review of 4 Nov 2026: "an actual conversation with the AI
chatbot is not desirable and necessary". The field's voice-mode button,
the screen it opened, reading answers aloud and its texts go, and with
them flutter_tts, its patched copy in third_party/ (one override fewer),
the TTS_SERVICE query in the manifest and the plugin's registrants. The
microphone stays and dictates into the question. ImageApproval is the
conversation sheet's own again, as only voice mode needed it.

Whats-New: Voice mode is gone; the microphone dictates into your question.
Whats-New-De: Der Sprachmodus ist weg; das Mikrofon diktiert in deine Frage.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
2026-11-05 08:58:36 +01:00

256 lines
11 KiB
YAML

name: halkyon_learn_flutter
description: A new Flutter project with Serverpod.
# The following line prevents the package from being accidentally published to
# pub.dev using `pub publish`. This is preferred for private packages.
publish_to: 'none' # Remove this line if you wish to publish to pub.dev
# The following defines the version and build number for your application.
# A version number is three numbers separated by dots, like 1.2.43
# followed by an optional build number separated by a +.
# Both the version and the builder number may be overridden in flutter
# build by specifying --build-name and --build-number, respectively.
# In Android, build-name is used as versionName while build-number used as versionCode.
# Read more about Android versioning at https://developer.android.com/studio/publish/versioning
# In iOS, build-name is used as CFBundleShortVersionString while build-number used as CFBundleVersion.
# Read more about iOS versioning at
# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html
version: 0.24.0+27
environment:
sdk: '^3.13.0'
flutter: '^3.44.4'
resolution: workspace
dependencies:
# Our fork of the editor's main branch, moved to win32 v6 so the app can stay in the pub
# workspace, pinned to a signed commit of its branch halkyon/win32-v6.
appflowy_editor:
git:
url: https://code.halkyon.app/project-halkyon/appflowy-editor.git
ref: 81c3006c74e789ed2e470b8612529541b358fd26
# Anki packages are zip files.
archive: ^4.0.7
# Sounds in content (pronunciations): one package for all five platforms; on
# Linux it plays through GStreamer, whose development files a Linux build needs.
audioplayers: ^6.8.1
clock: ^1.1.3
crypto: ^3.0.7
# The following adds the Cupertino Icons font to your application.
# Use with the CupertinoIcons class for iOS style icons.
cupertino_icons: ^1.0.5
# The Pomodoro timer on Linux talks to the desktop's notification server over
# the session bus; the version the network packages bring along already.
dbus: ^0.7.15
equatable: ^3.0.0
expressive_loading_indicator: ^0.0.1
# Saves exports on Android and iOS, where file_selector has no save dialog
# (the system's through it: Android's Storage Access Framework); the editor
# brings this version along already.
file_picker: ^13.1.0
# Picks the files to import (and later the images to add), and saves exports
# on the desktop: flutter.dev's own.
file_selector: ^1.1.0
flutter:
sdk: flutter
flutter_bloc: ^9.1.1
flutter_localizations:
sdk: flutter
flutter_math_fork: ^0.7.4
# Keeps the token of a Jellyfin server in the system's keyring; Serverpod's
# sign-in keeps its session there with it already.
flutter_secure_storage: ^10.0.0
fractional_indexing_dart: ^1.0.7
# Pinned exactly: every device on one app version must compute the same
# schedules.
fsrs: 2.0.1
go_router: ^18.0.2
# What every Halkyon app is built around (a shared package): the instances a
# device keeps accounts on, signing in through halkyon_base, each person's
# data opened and closed, and syncing it, with texts of its own.
halkyon_app:
path: ../../../packages/halkyon_app
# The client side of halkyon_base: people's public profiles, which the
# instance's register keeps (ADR 0016).
halkyon_base_client:
path: ../../../packages/halkyon_base_client
# Halkyon's low-level parts (a shared package): the queues the repositories
# run their work in (SerialQueue, CoalescingRunner).
halkyon_core:
path: ../../../packages/halkyon_core
halkyon_learn_client:
path: ../halkyon_learn_client
# Language models' APIs (a shared package, ADR 0021, D15): the protocols a
# person's own assistant is asked in, which their settings keep.
halkyon_llm:
path: ../../../packages/halkyon_llm
# The device's half of signing in with OpenID Connect (ADR 0023): the
# browser that SimpleLogin's sign-in opens, and on Linux and Windows the
# loopback it comes back to, which the app builds with its name.
halkyon_oidc_flutter:
path: ../../../packages/halkyon_oidc_flutter
# Halkyon's look, shared by its apps (a shared package): the theme, the bundled
# Noto Sans, window sizes and the widgets every screen is built of.
halkyon_ui:
path: ../../../packages/halkyon_ui
# Anki's fields are HTML; the editor brings this parser along already.
html: ^0.15.6
# Talks to Jellyfin servers; Serverpod's client brings it along already.
http: ^1.6.0
# Photos for an assistant's question, taken with the camera's own app or
# picked from the system's photo picker (the developer's review of 3 Nov
# 2026): flutter.dev's own, no permission asked on Android.
image_picker: ^1.2.4
intl: ^0.20.3
lucide_icons_flutter: ^3.1.20
material_ui: ^1.5.0
# Cuts Japanese into words on the device (ADR 0012): MeCab 0.996 (BSD), which
# the package's build hook compiles from its C++, so every build, `flutter
# test` too, needs a C++ compiler; its dictionary, IPADIC, comes from the
# instance once the person asks for it.
mecab_for_dart: ^2.0.5
# Videos from a Jellyfin server on Linux and Windows, where video_player has
# no player: libmpv (MIT; libmpv LGPL), the system's on Linux (a Linux build
# needs libmpv-dev), bundled on Windows. Used directly rather than behind
# video_player, which can't keep libmpv from drawing the video's own
# subtitles. Not fvp, whose libmdk is closed.
media_kit: ^1.2.6
media_kit_libs_linux: ^1.2.1
media_kit_libs_windows_video: ^1.0.11
media_kit_video: ^2.0.1
package_info_plus: ^10.2.2
path: ^1.9.1
# SVG path data, for the strokes KanjiVG draws characters with.
path_parsing: ^1.1.0
path_provider: ^2.1.6
# Modern Anki packages are zstd-compressed, every frame without its content
# size, which upstream's v1.0.0 refuses. Our fork decodes them, pinned to a
# signed commit of its branch halkyon/unknown-content-size; back to upstream
# once it decodes them too.
pdfrx: ^2.6.5
pure_zstd:
git:
url: https://code.halkyon.app/project-halkyon/pure-zstd.git
ref: 596b63d5741d479073fbfc78377cc7dbdd342da3
serverpod_auth_idp_flutter: 4.0.4
serverpod_flutter: 4.0.4
serverpod_offline_sync_client: 0.0.10
# Anki collections are SQLite databases (the sync engine already bundles it).
sqlite3: ^3.6.0
url_launcher: ^6.3.2
# Videos from a Jellyfin server elsewhere: flutter.dev's player (ExoPlayer on
# Android, AVPlayer on iOS and macOS).
video_player: ^2.14.1
youtube_player_iframe: ^6.0.2
dev_dependencies:
fake_async: ^1.3.3
# The flags halkyon_app draws where an instance keeps its data, which the
# whole-app tests look for.
flag: ^7.1.0
# Used for agents to drive the app through the Dart MCP
flutter_driver:
sdk: flutter
# Writes the app's icons for every platform from assets/icon/halkyon_learn_icon.png,
# run through the repository's tool/app_icons.py (see the flutter_launcher_icons
# section below).
flutter_launcher_icons: ^0.14.4
flutter_test:
sdk: flutter
# Checks on a device what no widget test can see (integration_test/).
integration_test:
sdk: flutter
# The sync tests (test/sync/) sign in like the app and read the server's database.
postgres: ^3.5.16
serverpod_auth_core_client: 4.0.4
yaml: ^3.1.4
# For information on the generic Dart part of this file, see the
# following page: https://dart.dev/tools/pub/pubspec
# The following section is specific to Flutter.
flutter:
# Generates AppLocalizations from lib/l10n (see l10n.yaml).
generate: true
# The following line ensures that the Material Icons font is
# included with your application, so that you can use the icons in
# the material Icons class.
uses-material-design: true
# To add assets to your application, add an assets section, like this:
# assets:
# - images/a_dot_burr.jpeg
# - images/a_dot_ham.jpeg
# An image asset can refer to one or more resolution-specific "variants", see
# https://flutter.dev/assets-and-images/#resolution-aware.
# For details regarding adding assets from package dependencies, see
# https://flutter.dev/assets-and-images/#from-packages
assets:
- assets/config.json
# What each release changed, one file a release and language
# (<version>.<language>.txt), drafted by tool/release.dart and edited
# (Halkyon Train's ADR 0030, D61): halkyon_app's What's new shows them.
- assets/whats_new/
# The app's icon (ADR 0031), the window's on Linux, atop the navigation rail and
# on the launch screen (D6), and Lucide's notice for it.
- assets/icon/halkyon_learn_icon.png
- assets/icon/LICENSE-lucide.txt
# Region maps for map questions (see assets/maps/ATTRIBUTION.md).
- assets/maps/japan_prefectures.geojson
- assets/maps/world_countries.geojson
- assets/maps/LICENSE-CLDR.txt
# The CJK fonts' licence, for the licence list (see assets/fonts/ATTRIBUTION.md).
- assets/fonts/OFL-NotoSansCJK.txt
# The licences of MeCab, its dictionary IPADIC and Ve's rules, which cut Japanese
# into words on the device (ADR 0012).
- assets/mecab/
# How kanji and kana are written, from KanjiVG (see assets/kanjivg/ATTRIBUTION.md).
- assets/kanjivg/
# How Chinese characters are written, from Make Me a Hanzi (see
# assets/makemeahanzi/ATTRIBUTION.md), and the Hangul letters.
- assets/makemeahanzi/
- assets/hangul/
# The CJK fonts, the same on every device and never fetched: Noto Sans JP, SC, TC
# and KR for Japanese, Chinese and Korean, behind halkyon_ui's Noto Sans, in the
# order a studyset's language asks for (halkyon_ui's appFontFallbackFor, which
# names them by these families). Each file holds every weight (variable fonts).
fonts:
- family: Noto Sans JP
fonts:
- asset: assets/fonts/NotoSansJP-Variable.otf
- family: Noto Sans SC
fonts:
- asset: assets/fonts/NotoSansSC-Variable.otf
- family: Noto Sans TC
fonts:
- asset: assets/fonts/NotoSansTC-Variable.otf
- family: Noto Sans KR
fonts:
- asset: assets/fonts/NotoSansKR-Variable.otf
# The app's icons, written by the repository's tool/app_icons.py: it prepares the
# images derived from Lucide's graduation cap in build/icons/ first, then runs `dart
# run flutter_launcher_icons` with this. Android: an adaptive icon, the cap on white
# for each launcher to cut to its shape, and the square one older Androids show. iOS: without
# transparency, as Apple requires. macOS: the rounded tile on Apple's grid. Windows:
# the rounded tile (tool/app_icons.py then writes its .ico with every size).
flutter_launcher_icons:
image_path: "assets/icon/halkyon_learn_icon.png"
android: true
adaptive_icon_background: "#ffffff"
adaptive_icon_foreground: "assets/icon/halkyon_learn_icon.png"
ios: true
remove_alpha_ios: true
background_color_ios: "#ffffff"
macos:
generate: true
image_path: "build/icons/macos.png"
windows:
generate: true
image_path: "build/icons/rounded.png"
icon_size: 256