halkyon/apps/learn/halkyon_learn_flutter/test/support
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Tizian 「ティツィアーン」 54e212a51c
Some checks failed
CI / check (push) Failing after 1m56s
feat(learn): Learn's agent, an MCP server suggesting in shared studysets
Halkyon's ADR 0044, step 6c (D7, D49 to D52). apps/learn/halkyon_learn_agent
is one executable, `halkyon-agent --instance URL sign-in | sync | mcp`:

- sign-in keeps the token read from stdin, signs in with it, makes the
  agent's key pair on its first sign-in, keeps it before setting the
  public halves on the register (agents.setKeys), and syncs;
- it opens its data as the app's _openPersonData does, on
  halkyon_learn_core and halkyon_content: its own SQLite database, the
  sync's space router, its keys and those of the spaces shared with it,
  and the repositories of studysets, cards, notes, paths, files and
  feedback;
- mcp serves ten tools over stdio (dart_mcp): list, read and search the
  studysets shared with it, suggest a change or a new card or note,
  report, list a studyset's suggestions and reply. Each syncs first and
  a suggestion again at once; a refusal is the tool's error;
- its files live in $XDG_CONFIG_HOME/halkyon-agent/<host>, 0700 and
  0600, refused when others may read them (D50);
- tool/install.sh builds it with `dart build cli` (libsodium and SQLite
  bundled) and copies it to its user on the host, the build before kept
  (D52).

The synced gateways of learning paths and files, and the fakes of the
core's gateways, move into halkyon_learn_core (its testing.dart), which
the app's tests and the agent's share.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
2026-11-11 22:08:31 +01:00
..
device_export.dart chore: Halkyon Learn moves into apps/learn 2026-10-22 18:11:02 +02:00
eventually.dart chore: Halkyon Learn moves into apps/learn 2026-10-22 18:11:02 +02:00
fake_assistant_files.dart feat(learn): an assistant reads PDFs' pages, and sees images the person chooses or approves 2026-10-26 07:17:09 +01:00
fake_content_key_gateway.dart refactor(content,core,app,editor,learn): Learn's content in pure Dart, for its agent 2026-11-11 22:08:16 +01:00
fake_conversation_gateway.dart feat(learn): conversations with assistants, kept sealed (ADR 0021, step 3) 2026-10-26 07:17:08 +01:00
fake_device_dictionaries.dart chore: Halkyon Learn moves into apps/learn 2026-10-22 18:11:02 +02:00
fake_dictionary_gateway.dart refactor(content,core,app,editor,learn): Learn's content in pure Dart, for its agent 2026-11-11 22:08:16 +01:00
fake_discussion_gateway.dart refactor(content,core,app,editor,learn): Learn's content in pure Dart, for its agent 2026-11-11 22:08:16 +01:00
fake_explore_gateway.dart feat(learn): Explore by what a licence allows, a skeleton while the library loads, and an assistant's agreement per provider (ADR 0005, rule 12; ADR 0021, D66) 2026-11-02 05:19:18 +01:00
fake_file_saver.dart feat(app): sign in with a password and TOTP on the device 2026-10-23 14:12:41 +02:00
fake_grammar_gateway.dart feat(learn): spelling and grammar checked as people write (ADR 0024) 2026-10-26 07:17:10 +01:00
fake_jellyfin.dart chore: Halkyon Learn moves into apps/learn 2026-10-22 18:11:02 +02:00
fake_learning_count_gateway.dart feat(explore): the device tells the instance whether to count the person, and what their copies come from (ADR 0019, D3) 2026-10-23 14:13:09 +02:00
fake_path_answer_gateway.dart chore: Halkyon Learn moves into apps/learn 2026-10-22 18:11:02 +02:00
fake_pdf_engine.dart feat(learn): an assistant proposes flashcards from a text, a note or a PDF page 2026-10-26 07:17:09 +01:00
fake_pdf_source_gateway.dart chore: Halkyon Learn moves into apps/learn 2026-10-22 18:11:02 +02:00
fake_photo_picker.dart feat(learn): + opens a sheet as Claude's, Camera, Photos and Files, and what goes along in rounded rows 2026-11-04 09:32:04 +01:00
fake_pomodoro_platform.dart chore: Halkyon Learn moves into apps/learn 2026-10-22 18:11:02 +02:00
fake_publish_gateway.dart feat(learn): confirm the notes and files a release takes 2026-11-11 10:06:38 +01:00
fake_review_gateway.dart perf(learn): a rated card gives way to the next one at once 2026-11-08 11:48:42 +01:00
fake_settings_gateway.dart feat(app,learn,todo): the assistants in Settings and on the operator's screen 2026-10-26 07:17:07 +01:00
fake_sound_player.dart chore: Halkyon Learn moves into apps/learn 2026-10-22 18:11:02 +02:00
fake_space_setup.dart feat(learn): Learn's agent, an MCP server suggesting in shared studysets 2026-11-11 22:08:31 +01:00
fake_youtube_videos.dart chore: Halkyon Learn moves into apps/learn 2026-10-22 18:11:02 +02:00
loaded_maps.dart chore: Halkyon Learn moves into apps/learn 2026-10-22 18:11:02 +02:00
loaded_strokes.dart chore: Halkyon Learn moves into apps/learn 2026-10-22 18:11:02 +02:00
mecab_output.dart chore: Halkyon Learn moves into apps/learn 2026-10-22 18:11:02 +02:00
memory_device_settings_store.dart chore: Halkyon Learn moves into apps/learn 2026-10-22 18:11:02 +02:00
memory_pomodoro_run_store.dart chore: Halkyon Learn moves into apps/learn 2026-10-22 18:11:02 +02:00
memory_published_store.dart chore: Halkyon Learn moves into apps/learn 2026-10-22 18:11:02 +02:00
memory_studyset_tab_store.dart refactor(content,core,app,editor,learn): Learn's content in pure Dart, for its agent 2026-11-11 22:08:16 +01:00
pump_app.dart feat(learn): Explore by what a licence allows, a skeleton while the library loads, and an assistant's agreement per provider (ADR 0005, rule 12; ADR 0021, D66) 2026-11-02 05:19:18 +01:00
sample_episode.dart refactor(content,core,app,editor,learn): Learn's content in pure Dart, for its agent 2026-11-11 22:08:16 +01:00
test_dependencies.dart feat(learn): Learn's agent, an MCP server suggesting in shared studysets 2026-11-11 22:08:31 +01:00