feat(learn): the assistant's field laid out as Claude's, with files attached and questions spoken, and no Check (ADR 0021, D67)

The question's text stands above its buttons: + attaching files, who
answers as a chip (Effort now a submenu of it), the conversations kept,
and the microphone while nothing is written, which gives way to the
button sending. What goes along is one row above the text, opening a
sheet with how far the assistant looks and the parts to send. A
conversation's follow-up has the same + and microphone.

Files are read on the device: an image goes as itself to an assistant
that reads images, a PDF as its pages' text, a text file as its text,
each cut at 20,000 characters and labelled by its name after the
question.

Voice is the device's own speech recognition (speech_to_text: Android,
Apple, Windows; none on Linux), in the app's language, the microphone
asked for once tapped. The privacy page says that Android's recogniser
may send the sound to Google or the phone's maker.

The field's Check goes, with its LanguageTool sheet (amending ADR 0024);
the editors' underlining and Why? stay.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
This commit is contained in:
Tizian 「ティツィアーン」 2026-11-02 05:50:36 +01:00
commit 447e00c52a
Signed by: raisondetredev
GPG key ID: 07F6FCF405488B64

View file

@ -55,8 +55,8 @@ HoldsRegister learnAccounts([Map<String, String>? environment]) =>
/// What the instance's privacy page says of Learn's data (ADR 0019, point 4,
/// and ADR 0021, D39): what a private studyset shows the instance, what is
/// published, what goes to it to be answered, conversations with
/// assistants (D13, D52), spelling and grammar checked (ADR 0024), and the
/// learner count.
/// assistants (D13, D52) with the files attached and questions spoken
/// (D67), spelling and grammar checked (ADR 0024), and the learner count.
const List<PrivacyPagePoint> _privacyPagePoints = [
(
english:
@ -87,8 +87,12 @@ const List<PrivacyPagePoint> _privacyPagePoints = [
'many there are, how long and when they were written, never what was '
'said. A device that can’t encrypt keeps none. An assistant gets what '
'you choose to send with a question and, where you let it look '
'further, what it looks up there: never your progress, and a private '
'studyset only once you agreed to send it to that assistant.',
'further, what it looks up there, and the files you attach: never '
'your progress, and a private studyset only once you agreed to send '
'it to that assistant. A question you speak is written by your '
'device’s own speech recognition, which on Android may send the '
'sound to Google or the phone’s maker; it never reaches the '
'instance.',
german:
'Deine Unterhaltungen mit Assistenten werden aufbewahrt, um sie '
'zwischen '
@ -97,9 +101,12 @@ const List<PrivacyPagePoint> _privacyPagePoints = [
'wann sie geschrieben wurden, nie, was gesagt wurde. Ein Gerät, das '
'nicht verschlüsseln kann, bewahrt keine auf. Ein Assistent bekommt, '
'was du mit einer Frage zu senden auswählst, und, wo du ihn weiter '
'suchen lässt, was er dort nachschlägt: nie deinen Fortschritt, und ein '
'privates Lernset erst, nachdem du zugestimmt hast, es diesem '
'Assistenten zu senden.',
'suchen lässt, was er dort nachschlägt, und die Dateien, die du '
'anhängst: nie deinen Fortschritt, und ein privates Lernset erst, '
'nachdem du zugestimmt hast, es diesem Assistenten zu senden. Eine '
'Frage, die du sprichst, schreibt die Spracherkennung deines Geräts, '
'die auf Android den Ton an Google oder den Hersteller des Telefons '
'senden kann; die Instanz erreicht er nie.',
),
(
english: