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

@ -2165,11 +2165,37 @@
"@assistantEffortTooltip": {"description": "Tooltip of the effort chip in the field (ADR 0021, D63): more effort thinks longer and uses more of the budget."},
"assistantEffortDefault": "{effort} (default)",
"@assistantEffortDefault": {"description": "The effort the operator set up for an assistant, among those to choose, by its name.", "placeholders": {"effort": {"type": "String"}}},
"assistantEffortMenu": "Effort: {effort}",
"@assistantEffortMenu": {"description": "In the menu of who answers, the submenu of how much the assistant thinks (D63), with the one it asks at.", "placeholders": {"effort": {"type": "String"}}},
"assistantContext": "What goes along",
"@assistantContext": {"description": "Title of the sheet, and tooltip of the row below the field opening it (D67): how far the assistant looks, and the parts sent along."},
"assistantContextReach": "How far it looks",
"assistantContextParts": "Send along",
"assistantContextChosen": "{count, plural, =1{1 part} other{{count} parts}}",
"@assistantContextChosen": {"description": "Beside how far it looks on the row below the field: how many parts were chosen to go along.", "placeholders": {"count": {"type": "int"}}},
"assistantContextDone": "Done",
"assistantAttach": "Attach a photo or file",
"@assistantAttach": {"description": "The + below the field (D67), for an assistant that reads images."},
"assistantAttachFile": "Attach a file",
"@assistantAttachFile": {"description": "The + below the field (D67), for an assistant that reads no images."},
"assistantAttachFiles": "Images, PDFs and text files",
"@assistantAttachFiles": {"description": "The kind of files the + offers, in the platform's file dialog."},
"assistantAttachNotRead": "{name} can't go along: only images, PDFs and text files can.",
"@assistantAttachNotRead": {"placeholders": {"name": {"type": "String"}}},
"assistantAttachTooLarge": "{name} is larger than 5 MB, more than assistants take.",
"@assistantAttachTooLarge": {"placeholders": {"name": {"type": "String"}}},
"assistantAttachNoImages": "{name} is an image, and {assistant} reads none.",
"@assistantAttachNoImages": {"placeholders": {"name": {"type": "String"}, "assistant": {"type": "String"}}},
"assistantAttachRemove": "Remove",
"assistantSpeak": "Speak your question",
"@assistantSpeak": {"description": "The microphone below the field while it is empty (D67): the device's own speech recognition writes what is said."},
"assistantStopListening": "Stop listening",
"assistantSpeechUnavailable": "This device can't listen now. Check that the app may use the microphone and that speech recognition is on.",
"assistantScopeTicked": "Only what I choose",
"assistantScopeStudyset": "This studyset",
"assistantScopeTree": "Its tree",
"assistantScopeLibrary": "Library",
"assistantScopeTickedLong": "Only what I choose above",
"assistantScopeTickedLong": "Only what I send along",
"assistantScopeStudysetLong": "This studyset with its topics",
"assistantScopeTreeLong": "Its whole tree, from the top",
"assistantScopeLibraryLong": "My whole library",
@ -2254,8 +2280,6 @@
"@studyTypedWhy": {"description": "Asks an assistant why a reading typed is wrong (D54)."},
"assistantWhyTyped": "I typed “{typed}”. Why isn't that right?",
"@assistantWhyTyped": {"description": "The question an assistant is asked about a reading typed wrong.", "placeholders": {"typed": {"type": "String"}}},
"assistantCheck": "Check for mistakes",
"@assistantCheck": {"description": "Has an assistant check what was written in the field (D54)."},
"grammarNoSuggestions": "No suggestions",
"@grammarNoSuggestions": {"description": "In place of suggestions for a mistake that has none."},
"grammarNothingFound": "No spelling or grammar mistakes found",
@ -2263,16 +2287,6 @@
"@grammarPrivateAsk": {"placeholders": {"instance": {"type": "String"}}, "description": "The banner above an editor in a private studyset not asked yet (ADR 0024)."},
"grammarPrivateNotHere": "Not here",
"grammarPrivateCheckHere": "Check here",
"grammarCheckTitle": "Spelling and grammar",
"@grammarCheckTitle": {"description": "The field's Check sheet, what the instance's LanguageTool found."},
"grammarCheckTooOften": "Checked too often for now. Try again in a minute.",
"grammarCheckTooLong": "Too long to check at once.",
"grammarCheckUnknownLanguage": "The instance doesn't check this language.",
"grammarCheckFailed": "The instance's check couldn't be reached. Try again later.",
"grammarCheckAskWhy": "Ask {name} why",
"@grammarCheckAskWhy": {"placeholders": {"name": {"type": "String"}}},
"grammarCheckAskInstead": "Ask {name} to check",
"@grammarCheckAskInstead": {"placeholders": {"name": {"type": "String"}}},
"proposalsTitle": "Flashcards by {name}",
"@proposalsTitle": {"description": "The sheet of cards an assistant proposes (ADR 0021, D55).", "placeholders": {"name": {"type": "String"}}},
"proposalsWriting": "{name} is writing flashcards…",