feat(learn): a private studyset goes to an assistant only once agreed
ADR 0021, D9 and D17. Before a question sends a private studyset's content to a remote model, through the parts chosen or a wider reach with private studysets switched on, a warning names the studysets, the provider's host and its terms (where checked: Anthropic, OpenAI, Google, OpenRouter), and is asked once per studyset and assistant: the agreement is kept in the person's sealed settings (schema 13, privateAgreements, folded only where both rows hold it), shown in the studyset's privacy dialog with Take back, and marked on the folded button while it holds. Follow-ups and Try again ask again once taken back, as the scope keeps where the parts came from (partsFrom). No warning for an own assistant on this machine (loopback or localhost, halkyon_llm's LlmEndpoint.onThisMachine); the local network may be shared. Texts that step 3 made untrue: the consent sheet now says what an assistant looks up goes too and that conversations are kept encrypted for the person's devices; the privacy dialogs no longer mention showing a studyset to Claude; the privacy page says what is looked up and when a private studyset goes. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
This commit is contained in:
parent
114b75cdab
commit
bf46f8c460
5 changed files with 1488 additions and 107 deletions
|
|
@ -1856,6 +1856,15 @@
|
|||
"assistantLookedUpNotes": "Notizen nach „{query}“ durchsucht: {count, plural, =0{keine gefunden} =1{1 gefunden} other{{count} gefunden}}",
|
||||
"assistantLookedUpNote": "Eine Notiz gelesen",
|
||||
"assistantLookedUpNoNote": "Eine Notiz gesucht, keine gefunden",
|
||||
"assistantPrivateTitle": "{count, plural, =1{Ein privates Lernset an {name} senden?} other{Private Lernsets an {name} senden?}}",
|
||||
"assistantPrivateGranted": "{count, plural, =1{Es ist Ende-zu-Ende-verschlüsselt, sodass nicht einmal {instance} es lesen kann. Was {name} darin nachschlägt oder was du daraus auswählst, geht durch {instance}, das nichts davon aufbewahrt, an {host}, wo es nach den Bedingungen des Anbieters gelesen wird.} other{Sie sind Ende-zu-Ende-verschlüsselt, sodass nicht einmal {instance} sie lesen kann. Was {name} darin nachschlägt oder was du daraus auswählst, geht durch {instance}, das nichts davon aufbewahrt, an {host}, wo es nach den Bedingungen des Anbieters gelesen wird.}}",
|
||||
"assistantPrivateOwn": "{count, plural, =1{Es ist Ende-zu-Ende-verschlüsselt, sodass nicht einmal die Instanz es lesen kann. Was {name} darin nachschlägt oder was du daraus auswählst, geht direkt an {host}, wo es nach den Bedingungen des Anbieters gelesen wird.} other{Sie sind Ende-zu-Ende-verschlüsselt, sodass nicht einmal die Instanz sie lesen kann. Was {name} darin nachschlägt oder was du daraus auswählst, geht direkt an {host}, wo es nach den Bedingungen des Anbieters gelesen wird.}}",
|
||||
"assistantPrivateOnce": "Das wird einmal je Lernset und Assistent gefragt. Zurücknehmen kannst du es über das Schloss beim Lernset.",
|
||||
"assistantPrivateTerms": "Bedingungen des Anbieters",
|
||||
"assistantPrivateSend": "Senden",
|
||||
"assistantPrivateMark": "{name} darf dieses private Lernset bekommen",
|
||||
"studysetPrivacyAssistants": "Assistenten, an die es gehen darf",
|
||||
"studysetPrivacyTakeBack": "Zurücknehmen",
|
||||
"settingsSearchEngine": "Suchmaschine",
|
||||
"searchEngineDevice": "Suche des Geräts",
|
||||
"searchEngineCustom": "Eigene Adresse",
|
||||
|
|
@ -2060,7 +2069,7 @@
|
|||
"studysetMenuMakePrivate": "Privat machen",
|
||||
"studysetMenuMakeReadable": "Nicht mehr privat",
|
||||
"studysetPrivateTitle": "„{title}“ privat machen?",
|
||||
"studysetPrivateBody": "Alles darin wird auf deinen Geräten Ende-zu-Ende-verschlüsselt: Die Instanz kann es weder lesen noch veröffentlichen noch Claude zeigen. Kopien in den Sicherungen der Instanz bleiben lesbar, bis diese ablaufen.",
|
||||
"studysetPrivateBody": "Alles darin wird auf deinen Geräten Ende-zu-Ende-verschlüsselt: Die Instanz kann es weder lesen noch veröffentlichen, und ein Assistent bekommt nur, was du ihm zu senden erlaubst. Kopien in den Sicherungen der Instanz bleiben lesbar, bis diese ablaufen.",
|
||||
"studysetReadableTitle": "„{title}“ nicht mehr privat?",
|
||||
"studysetReadableBody": "Alles darin wird entschlüsselt und neu synchronisiert, sodass die Instanz es lesen kann: Du kannst es veröffentlichen.",
|
||||
"studysetPrivateNoKeys": "Melde dich auf diesem Gerät mit deinem Passwort an, um Lernsets privat zu machen.",
|
||||
|
|
@ -2100,7 +2109,7 @@
|
|||
"studysetVisibilityReadable": "Nicht privat, nicht veröffentlicht",
|
||||
"studysetShareReadable": "Teilen: nicht privat",
|
||||
"studysetPrivacyPrivateTitle": "„{title}“ ist privat",
|
||||
"studysetPrivacyPrivateBody": "Alles darin ist Ende-zu-Ende-verschlüsselt: Nur deine Geräte können es lesen. Die Instanz kann es weder veröffentlichen noch Claude zeigen. Nicht mehr privat, wird es entschlüsselt und neu synchronisiert, sodass die Instanz es lesen kann.",
|
||||
"studysetPrivacyPrivateBody": "Alles darin ist Ende-zu-Ende-verschlüsselt: Nur deine Geräte können es lesen. Die Instanz kann es nicht veröffentlichen, und ein Assistent bekommt nur, was du ihm zu senden erlaubst. Nicht mehr privat, wird es entschlüsselt und neu synchronisiert, sodass die Instanz es lesen kann.",
|
||||
"studysetPrivacyReadableTitle": "„{title}“ ist nicht privat",
|
||||
"studysetPrivacyReadableBody": "Die Instanz kann es lesen: Du kannst es veröffentlichen. Privat wird es auf deinen Geräten Ende-zu-Ende-verschlüsselt; Kopien in den Sicherungen der Instanz bleiben lesbar, bis diese ablaufen.",
|
||||
"studysetPrivacyTopic": "Seine Privatsphäre ist die des Lernsets, in dem es liegt.",
|
||||
|
|
|
|||
|
|
@ -2178,6 +2178,23 @@
|
|||
"@assistantLookedUpNotes": {"placeholders": {"query": {"type": "String"}, "count": {"type": "int"}}},
|
||||
"assistantLookedUpNote": "Read a note",
|
||||
"assistantLookedUpNoNote": "Looked for a note, found none",
|
||||
"assistantPrivateTitle": "{count, plural, =1{Send a private studyset to {name}?} other{Send private studysets to {name}?}}",
|
||||
"@assistantPrivateTitle": {"description": "The warning before a private studyset's content goes to a remote model (ADR 0021, D9).", "placeholders": {"count": {"type": "int"}, "name": {"type": "String"}}},
|
||||
"assistantPrivateGranted": "{count, plural, =1{It is end-to-end encrypted, so that not even {instance} can read it. What {name} looks up in it, or what you chose of it, passes through {instance}, which keeps none of it, to {host}, which reads it under the provider's terms.} other{They are end-to-end encrypted, so that not even {instance} can read them. What {name} looks up in them, or what you chose of them, passes through {instance}, which keeps none of it, to {host}, which reads it under the provider's terms.}}",
|
||||
"@assistantPrivateGranted": {"description": "The warning for an assistant the operator granted, asked through the instance.", "placeholders": {"count": {"type": "int"}, "name": {"type": "String"}, "instance": {"type": "String"}, "host": {"type": "String"}}},
|
||||
"assistantPrivateOwn": "{count, plural, =1{It is end-to-end encrypted, so that not even the instance can read it. What {name} looks up in it, or what you chose of it, goes straight to {host}, which reads it under the provider's terms.} other{They are end-to-end encrypted, so that not even the instance can read them. What {name} looks up in them, or what you chose of them, goes straight to {host}, which reads it under the provider's terms.}}",
|
||||
"@assistantPrivateOwn": {"description": "The warning for the person's own assistant, asked directly.", "placeholders": {"count": {"type": "int"}, "name": {"type": "String"}, "host": {"type": "String"}}},
|
||||
"assistantPrivateOnce": "You're asked once for each studyset and assistant. Take it back from the lock beside the studyset.",
|
||||
"@assistantPrivateOnce": {"description": "D17: asked once, taken back in the privacy dialog."},
|
||||
"assistantPrivateTerms": "The provider's terms",
|
||||
"assistantPrivateSend": "Send",
|
||||
"@assistantPrivateSend": {"description": "Agrees and sends."},
|
||||
"assistantPrivateMark": "{name} may be sent this private studyset",
|
||||
"@assistantPrivateMark": {"description": "The mark on the assistant's button while an agreement holds (D17).", "placeholders": {"name": {"type": "String"}}},
|
||||
"studysetPrivacyAssistants": "Assistants it may go to",
|
||||
"@studysetPrivacyAssistants": {"description": "The privacy dialog's list of the assistants agreed to (D17)."},
|
||||
"studysetPrivacyTakeBack": "Take back",
|
||||
"@studysetPrivacyTakeBack": {"description": "Takes an agreement back."},
|
||||
"settingsSearchEngine": "Search engine",
|
||||
"searchEngineDevice": "The device's search",
|
||||
"searchEngineCustom": "Your own address",
|
||||
|
|
@ -2421,7 +2438,7 @@
|
|||
"studysetMenuMakeReadable": "Make non-private",
|
||||
"studysetPrivateTitle": "Make “{title}” private?",
|
||||
"@studysetPrivateTitle": {"placeholders": {"title": {"type": "String"}}},
|
||||
"studysetPrivateBody": "Everything in it is end-to-end encrypted on your devices: the instance can't read it, publish it or show it to Claude. Copies in the instance's backups stay readable until those expire.",
|
||||
"studysetPrivateBody": "Everything in it is end-to-end encrypted on your devices: the instance can't read it or publish it, and an assistant gets only what you agree to send it. Copies in the instance's backups stay readable until those expire.",
|
||||
"studysetReadableTitle": "Make “{title}” non-private?",
|
||||
"@studysetReadableTitle": {"placeholders": {"title": {"type": "String"}}},
|
||||
"studysetReadableBody": "Everything in it is decrypted and synced again, so the instance can read it: you can publish it.",
|
||||
|
|
@ -2463,7 +2480,7 @@
|
|||
"studysetShareReadable": "Share: not private",
|
||||
"studysetPrivacyPrivateTitle": "“{title}” is private",
|
||||
"@studysetPrivacyPrivateTitle": {"placeholders": {"title": {"type": "String"}}},
|
||||
"studysetPrivacyPrivateBody": "Everything in it is end-to-end encrypted: only your devices can read it. The instance can't publish it, nor show it to Claude. Making it non-private decrypts it and syncs it again, so the instance can read it.",
|
||||
"studysetPrivacyPrivateBody": "Everything in it is end-to-end encrypted: only your devices can read it. The instance can't publish it, and an assistant gets only what you agree to send it. Making it non-private decrypts it and syncs it again, so the instance can read it.",
|
||||
"studysetPrivacyReadableTitle": "“{title}” isn't private",
|
||||
"@studysetPrivacyReadableTitle": {"placeholders": {"title": {"type": "String"}}},
|
||||
"studysetPrivacyReadableBody": "The instance can read it: you can publish it. Making it private encrypts it end to end on your devices; copies in the instance's backups stay readable until those expire.",
|
||||
|
|
|
|||
|
|
@ -10953,6 +10953,65 @@ abstract class AppLocalizations {
|
|||
/// **'Looked for a note, found none'**
|
||||
String get assistantLookedUpNoNote;
|
||||
|
||||
/// The warning before a private studyset's content goes to a remote model (ADR 0021, D9).
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'{count, plural, =1{Send a private studyset to {name}?} other{Send private studysets to {name}?}}'**
|
||||
String assistantPrivateTitle(int count, String name);
|
||||
|
||||
/// The warning for an assistant the operator granted, asked through the instance.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'{count, plural, =1{It is end-to-end encrypted, so that not even {instance} can read it. What {name} looks up in it, or what you chose of it, passes through {instance}, which keeps none of it, to {host}, which reads it under the provider\'s terms.} other{They are end-to-end encrypted, so that not even {instance} can read them. What {name} looks up in them, or what you chose of them, passes through {instance}, which keeps none of it, to {host}, which reads it under the provider\'s terms.}}'**
|
||||
String assistantPrivateGranted(
|
||||
int count,
|
||||
String name,
|
||||
String instance,
|
||||
String host,
|
||||
);
|
||||
|
||||
/// The warning for the person's own assistant, asked directly.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'{count, plural, =1{It is end-to-end encrypted, so that not even the instance can read it. What {name} looks up in it, or what you chose of it, goes straight to {host}, which reads it under the provider\'s terms.} other{They are end-to-end encrypted, so that not even the instance can read them. What {name} looks up in them, or what you chose of them, goes straight to {host}, which reads it under the provider\'s terms.}}'**
|
||||
String assistantPrivateOwn(int count, String name, String host);
|
||||
|
||||
/// D17: asked once, taken back in the privacy dialog.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'You\'re asked once for each studyset and assistant. Take it back from the lock beside the studyset.'**
|
||||
String get assistantPrivateOnce;
|
||||
|
||||
/// No description provided for @assistantPrivateTerms.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'The provider\'s terms'**
|
||||
String get assistantPrivateTerms;
|
||||
|
||||
/// Agrees and sends.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Send'**
|
||||
String get assistantPrivateSend;
|
||||
|
||||
/// The mark on the assistant's button while an agreement holds (D17).
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'{name} may be sent this private studyset'**
|
||||
String assistantPrivateMark(String name);
|
||||
|
||||
/// The privacy dialog's list of the assistants agreed to (D17).
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Assistants it may go to'**
|
||||
String get studysetPrivacyAssistants;
|
||||
|
||||
/// Takes an agreement back.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Take back'**
|
||||
String get studysetPrivacyTakeBack;
|
||||
|
||||
/// No description provided for @settingsSearchEngine.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
|
|
@ -12144,7 +12203,7 @@ abstract class AppLocalizations {
|
|||
/// No description provided for @studysetPrivateBody.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Everything in it is end-to-end encrypted on your devices: the instance can\'t read it, publish it or show it to Claude. Copies in the instance\'s backups stay readable until those expire.'**
|
||||
/// **'Everything in it is end-to-end encrypted on your devices: the instance can\'t read it or publish it, and an assistant gets only what you agree to send it. Copies in the instance\'s backups stay readable until those expire.'**
|
||||
String get studysetPrivateBody;
|
||||
|
||||
/// No description provided for @studysetReadableTitle.
|
||||
|
|
@ -12366,7 +12425,7 @@ abstract class AppLocalizations {
|
|||
/// No description provided for @studysetPrivacyPrivateBody.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Everything in it is end-to-end encrypted: only your devices can read it. The instance can\'t publish it, nor show it to Claude. Making it non-private decrypts it and syncs it again, so the instance can read it.'**
|
||||
/// **'Everything in it is end-to-end encrypted: only your devices can read it. The instance can\'t publish it, and an assistant gets only what you agree to send it. Making it non-private decrypts it and syncs it again, so the instance can read it.'**
|
||||
String get studysetPrivacyPrivateBody;
|
||||
|
||||
/// No description provided for @studysetPrivacyReadableTitle.
|
||||
|
|
|
|||
|
|
@ -6870,6 +6870,69 @@ class AppLocalizationsDe extends AppLocalizations {
|
|||
@override
|
||||
String get assistantLookedUpNoNote => 'Eine Notiz gesucht, keine gefunden';
|
||||
|
||||
@override
|
||||
String assistantPrivateTitle(int count, String name) {
|
||||
String _temp0 = intl.Intl.pluralLogic(
|
||||
count,
|
||||
locale: localeName,
|
||||
other: 'Private Lernsets an $name senden?',
|
||||
one: 'Ein privates Lernset an $name senden?',
|
||||
);
|
||||
return '$_temp0';
|
||||
}
|
||||
|
||||
@override
|
||||
String assistantPrivateGranted(
|
||||
int count,
|
||||
String name,
|
||||
String instance,
|
||||
String host,
|
||||
) {
|
||||
String _temp0 = intl.Intl.pluralLogic(
|
||||
count,
|
||||
locale: localeName,
|
||||
other:
|
||||
'Sie sind Ende-zu-Ende-verschlüsselt, sodass nicht einmal $instance sie lesen kann. Was $name darin nachschlägt oder was du daraus auswählst, geht durch $instance, das nichts davon aufbewahrt, an $host, wo es nach den Bedingungen des Anbieters gelesen wird.',
|
||||
one:
|
||||
'Es ist Ende-zu-Ende-verschlüsselt, sodass nicht einmal $instance es lesen kann. Was $name darin nachschlägt oder was du daraus auswählst, geht durch $instance, das nichts davon aufbewahrt, an $host, wo es nach den Bedingungen des Anbieters gelesen wird.',
|
||||
);
|
||||
return '$_temp0';
|
||||
}
|
||||
|
||||
@override
|
||||
String assistantPrivateOwn(int count, String name, String host) {
|
||||
String _temp0 = intl.Intl.pluralLogic(
|
||||
count,
|
||||
locale: localeName,
|
||||
other:
|
||||
'Sie sind Ende-zu-Ende-verschlüsselt, sodass nicht einmal die Instanz sie lesen kann. Was $name darin nachschlägt oder was du daraus auswählst, geht direkt an $host, wo es nach den Bedingungen des Anbieters gelesen wird.',
|
||||
one:
|
||||
'Es ist Ende-zu-Ende-verschlüsselt, sodass nicht einmal die Instanz es lesen kann. Was $name darin nachschlägt oder was du daraus auswählst, geht direkt an $host, wo es nach den Bedingungen des Anbieters gelesen wird.',
|
||||
);
|
||||
return '$_temp0';
|
||||
}
|
||||
|
||||
@override
|
||||
String get assistantPrivateOnce =>
|
||||
'Das wird einmal je Lernset und Assistent gefragt. Zurücknehmen kannst du es über das Schloss beim Lernset.';
|
||||
|
||||
@override
|
||||
String get assistantPrivateTerms => 'Bedingungen des Anbieters';
|
||||
|
||||
@override
|
||||
String get assistantPrivateSend => 'Senden';
|
||||
|
||||
@override
|
||||
String assistantPrivateMark(String name) {
|
||||
return '$name darf dieses private Lernset bekommen';
|
||||
}
|
||||
|
||||
@override
|
||||
String get studysetPrivacyAssistants => 'Assistenten, an die es gehen darf';
|
||||
|
||||
@override
|
||||
String get studysetPrivacyTakeBack => 'Zurücknehmen';
|
||||
|
||||
@override
|
||||
String get settingsSearchEngine => 'Suchmaschine';
|
||||
|
||||
|
|
@ -7708,7 +7771,7 @@ class AppLocalizationsDe extends AppLocalizations {
|
|||
|
||||
@override
|
||||
String get studysetPrivateBody =>
|
||||
'Alles darin wird auf deinen Geräten Ende-zu-Ende-verschlüsselt: Die Instanz kann es weder lesen noch veröffentlichen noch Claude zeigen. Kopien in den Sicherungen der Instanz bleiben lesbar, bis diese ablaufen.';
|
||||
'Alles darin wird auf deinen Geräten Ende-zu-Ende-verschlüsselt: Die Instanz kann es weder lesen noch veröffentlichen, und ein Assistent bekommt nur, was du ihm zu senden erlaubst. Kopien in den Sicherungen der Instanz bleiben lesbar, bis diese ablaufen.';
|
||||
|
||||
@override
|
||||
String studysetReadableTitle(String title) {
|
||||
|
|
@ -7840,7 +7903,7 @@ class AppLocalizationsDe extends AppLocalizations {
|
|||
|
||||
@override
|
||||
String get studysetPrivacyPrivateBody =>
|
||||
'Alles darin ist Ende-zu-Ende-verschlüsselt: Nur deine Geräte können es lesen. Die Instanz kann es weder veröffentlichen noch Claude zeigen. Nicht mehr privat, wird es entschlüsselt und neu synchronisiert, sodass die Instanz es lesen kann.';
|
||||
'Alles darin ist Ende-zu-Ende-verschlüsselt: Nur deine Geräte können es lesen. Die Instanz kann es nicht veröffentlichen, und ein Assistent bekommt nur, was du ihm zu senden erlaubst. Nicht mehr privat, wird es entschlüsselt und neu synchronisiert, sodass die Instanz es lesen kann.';
|
||||
|
||||
@override
|
||||
String studysetPrivacyReadableTitle(String title) {
|
||||
|
|
|
|||
|
|
@ -6806,6 +6806,69 @@ class AppLocalizationsEn extends AppLocalizations {
|
|||
@override
|
||||
String get assistantLookedUpNoNote => 'Looked for a note, found none';
|
||||
|
||||
@override
|
||||
String assistantPrivateTitle(int count, String name) {
|
||||
String _temp0 = intl.Intl.pluralLogic(
|
||||
count,
|
||||
locale: localeName,
|
||||
other: 'Send private studysets to $name?',
|
||||
one: 'Send a private studyset to $name?',
|
||||
);
|
||||
return '$_temp0';
|
||||
}
|
||||
|
||||
@override
|
||||
String assistantPrivateGranted(
|
||||
int count,
|
||||
String name,
|
||||
String instance,
|
||||
String host,
|
||||
) {
|
||||
String _temp0 = intl.Intl.pluralLogic(
|
||||
count,
|
||||
locale: localeName,
|
||||
other:
|
||||
'They are end-to-end encrypted, so that not even $instance can read them. What $name looks up in them, or what you chose of them, passes through $instance, which keeps none of it, to $host, which reads it under the provider\'s terms.',
|
||||
one:
|
||||
'It is end-to-end encrypted, so that not even $instance can read it. What $name looks up in it, or what you chose of it, passes through $instance, which keeps none of it, to $host, which reads it under the provider\'s terms.',
|
||||
);
|
||||
return '$_temp0';
|
||||
}
|
||||
|
||||
@override
|
||||
String assistantPrivateOwn(int count, String name, String host) {
|
||||
String _temp0 = intl.Intl.pluralLogic(
|
||||
count,
|
||||
locale: localeName,
|
||||
other:
|
||||
'They are end-to-end encrypted, so that not even the instance can read them. What $name looks up in them, or what you chose of them, goes straight to $host, which reads it under the provider\'s terms.',
|
||||
one:
|
||||
'It is end-to-end encrypted, so that not even the instance can read it. What $name looks up in it, or what you chose of it, goes straight to $host, which reads it under the provider\'s terms.',
|
||||
);
|
||||
return '$_temp0';
|
||||
}
|
||||
|
||||
@override
|
||||
String get assistantPrivateOnce =>
|
||||
'You\'re asked once for each studyset and assistant. Take it back from the lock beside the studyset.';
|
||||
|
||||
@override
|
||||
String get assistantPrivateTerms => 'The provider\'s terms';
|
||||
|
||||
@override
|
||||
String get assistantPrivateSend => 'Send';
|
||||
|
||||
@override
|
||||
String assistantPrivateMark(String name) {
|
||||
return '$name may be sent this private studyset';
|
||||
}
|
||||
|
||||
@override
|
||||
String get studysetPrivacyAssistants => 'Assistants it may go to';
|
||||
|
||||
@override
|
||||
String get studysetPrivacyTakeBack => 'Take back';
|
||||
|
||||
@override
|
||||
String get settingsSearchEngine => 'Search engine';
|
||||
|
||||
|
|
@ -7635,7 +7698,7 @@ class AppLocalizationsEn extends AppLocalizations {
|
|||
|
||||
@override
|
||||
String get studysetPrivateBody =>
|
||||
'Everything in it is end-to-end encrypted on your devices: the instance can\'t read it, publish it or show it to Claude. Copies in the instance\'s backups stay readable until those expire.';
|
||||
'Everything in it is end-to-end encrypted on your devices: the instance can\'t read it or publish it, and an assistant gets only what you agree to send it. Copies in the instance\'s backups stay readable until those expire.';
|
||||
|
||||
@override
|
||||
String studysetReadableTitle(String title) {
|
||||
|
|
@ -7767,7 +7830,7 @@ class AppLocalizationsEn extends AppLocalizations {
|
|||
|
||||
@override
|
||||
String get studysetPrivacyPrivateBody =>
|
||||
'Everything in it is end-to-end encrypted: only your devices can read it. The instance can\'t publish it, nor show it to Claude. Making it non-private decrypts it and syncs it again, so the instance can read it.';
|
||||
'Everything in it is end-to-end encrypted: only your devices can read it. The instance can\'t publish it, and an assistant gets only what you agree to send it. Making it non-private decrypts it and syncs it again, so the instance can read it.';
|
||||
|
||||
@override
|
||||
String studysetPrivacyReadableTitle(String title) {
|
||||
|
|
|
|||
Loading…
Reference in a new issue