feat(assistant): a question opens in the AI assistant chosen, Proton's Lumo by default

Questions asked from the app went to Claude alone. Settings › Assistant
now chooses where they open (decided 2026-10-14): Lumo, the default, by
its guest chat with the question in the address's fragment (Lumo's
`prefill`, which needs no account and reaches no server; the address for
one's own account loses the question when nobody is signed in), ChatGPT,
Claude, Mistral, Perplexity, Duck.ai, Grok, Kagi Assistant, HuggingChat,
or an address of one's own with %s. Each link fills the question in for
the person to send (Perplexity answers at once, Grok asks first); Gemini,
which has no such link, and Copilot, whose stopped working, are left out.
The field names the assistant ("Ask Lumo…"). A device that sent questions
to Claude goes on asking an assistant, now Lumo. Connecting Claude to read
studysets stays as it was.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
This commit is contained in:
Tizian 「ティツィアーン」 2026-10-14 13:19:51 +02:00
commit 8dde0fa42a
Signed by: raisondetredev
GPG key ID: 07F6FCF405488B64

View file

@ -24,8 +24,8 @@ import 'package:halkyon_learn_flutter/src/feature/anki/data/anki_package_reader.
import 'package:halkyon_learn_flutter/src/feature/archive/data/archive_reader.dart';
import 'package:halkyon_learn_flutter/src/feature/archive/model/import_archive.dart';
import 'package:halkyon_learn_flutter/src/feature/assistant/data/assistant_gateway.dart';
import 'package:halkyon_learn_flutter/src/feature/assistant/data/assistant_hand_off.dart';
import 'package:halkyon_learn_flutter/src/feature/assistant/data/assistant_repository.dart';
import 'package:halkyon_learn_flutter/src/feature/assistant/data/claude_hand_off.dart';
import 'package:halkyon_learn_flutter/src/feature/assistant/data/web_search.dart';
import 'package:halkyon_learn_flutter/src/feature/auth/data/auth_gateway.dart';
import 'package:halkyon_learn_flutter/src/feature/auth/data/auth_repository.dart';
@ -162,7 +162,7 @@ Dependencies testDependencies({
SyncOnce? syncOnce,
PendingChangesStore? pendingChanges,
OpenPerson? openPerson,
ClaudeHandOff? claude,
AssistantHandOff? assistantHandOff,
WebSearch? webSearch,
AssistantGateway? assistantGateway,
JellyfinGateway? jellyfinGateway,
@ -191,7 +191,8 @@ Dependencies testDependencies({
deviceSettings: deviceSettings,
appVersion: appVersion,
pomodoro: pomodoro ?? FakePomodoroPlatform(),
claude: claude ?? ClaudeHandOff(open: (url) async => true),
assistantHandOff:
assistantHandOff ?? AssistantHandOff(open: (url) async => true),
webSearch:
webSearch ??
WebSearch(