The first part of step 3, decided as D47 to D52 in ADR 0021: where a conversation shows (a sheet over the screen), where kept ones are found (the field), the scope's chip and that it starts with only what is ticked, how conversations are kept, and what a device that can't seal does. Two synced tables: assistant_conversation (its title, assistant and scope) and assistant_turn (one question and everything up to its answer, never changed once written, ADR 0001, rule 2), so two devices continuing a conversation offline lose nothing. SyncConversationGateway seals every row with the person's key, a turn bound to its conversation, and reads no row that isn't sealed: a device that can't seal keeps nothing (D52, ConversationNotKept). Deleting one blanks it and its turns first (ADR 0002, rule 2). A turn keeps every message a follow-up sends back (tool calls and results, the providers' own blocks), but no image, only that one was sent. The instance's privacy page says conversations are kept, encrypted, and what the instance sees of them. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
75 lines
3.6 KiB
Dart
75 lines
3.6 KiB
Dart
/// AUTOGENERATED BY SERVERPOD create-migration - DO NOT EDIT BY HAND
|
|
/// Merging: resolve registry conflicts the same as migration_registry.txt.
|
|
library;
|
|
|
|
import 'package:serverpod_database/serverpod_database.dart';
|
|
|
|
part '20260930094729362-studysets/migration.dart';
|
|
part '20260930122235111-cards/migration.dart';
|
|
part '20260930145136285-reviews/migration.dart';
|
|
part '20261001064926911-tree-tags-assets/migration.dart';
|
|
part '20261002191122122-notes/migration.dart';
|
|
part '20261002211346701-learning-paths/migration.dart';
|
|
part '20261003110855698-pdf-sources/migration.dart';
|
|
part '20261007205440868-card-buried-at/migration.dart';
|
|
part '20261008165051407-pdf-position/migration.dart';
|
|
part '20261009224606274-feedback/migration.dart';
|
|
part '20261012162411835-studyset-deleted-at/migration.dart';
|
|
part '20261019121406578-halkyon-base/migration.dart';
|
|
part '20261019201023295-profiles-in-halkyon-base/migration.dart';
|
|
part '20261019204112282-deletion-notices/migration.dart';
|
|
part '20261020111943300-passwords/migration.dart';
|
|
part '20261020125117584-sessions-ended/migration.dart';
|
|
part '20261020185750538-recovery-proof-key/migration.dart';
|
|
part '20261020194228286-second-factor-waits/migration.dart';
|
|
part '20261020204619104-session-code-tries/migration.dart';
|
|
part '20261020211224692-email-code-purpose/migration.dart';
|
|
part '20261021100422048-session-ended-warning/migration.dart';
|
|
part '20261021110159867-second-factor-paths/migration.dart';
|
|
part '20261021134803749-reset-hold-outs/migration.dart';
|
|
part '20261021184601197-private-studysets/migration.dart';
|
|
part '20261023181810112-oidc-module/migration.dart';
|
|
part '20261023192913178-simplelogin-keys/migration.dart';
|
|
part '20261025135744595-waiting-accounts/migration.dart';
|
|
part '20261025165102861-assistants/migration.dart';
|
|
part '20261025184004860-assistant-conversations/migration.dart';
|
|
|
|
/// Migration registry for the client-side database.
|
|
class MigrationRegistry {
|
|
/// Ordered list of all client-side database migrations.
|
|
/// New migrations are always appended at the end.
|
|
static final List<MigrationVersionSql> migrations = [
|
|
_Migration20260930094729362_studysets(),
|
|
_Migration20260930122235111_cards(),
|
|
_Migration20260930145136285_reviews(),
|
|
_Migration20261001064926911_tree_tags_assets(),
|
|
_Migration20261002191122122_notes(),
|
|
_Migration20261002211346701_learning_paths(),
|
|
_Migration20261003110855698_pdf_sources(),
|
|
_Migration20261007205440868_card_buried_at(),
|
|
_Migration20261008165051407_pdf_position(),
|
|
_Migration20261009224606274_feedback(),
|
|
_Migration20261012162411835_studyset_deleted_at(),
|
|
_Migration20261019121406578_halkyon_base(),
|
|
_Migration20261019201023295_profiles_in_halkyon_base(),
|
|
_Migration20261019204112282_deletion_notices(),
|
|
_Migration20261020111943300_passwords(),
|
|
_Migration20261020125117584_sessions_ended(),
|
|
_Migration20261020185750538_recovery_proof_key(),
|
|
_Migration20261020194228286_second_factor_waits(),
|
|
_Migration20261020204619104_session_code_tries(),
|
|
_Migration20261020211224692_email_code_purpose(),
|
|
_Migration20261021100422048_session_ended_warning(),
|
|
_Migration20261021110159867_second_factor_paths(),
|
|
_Migration20261021134803749_reset_hold_outs(),
|
|
_Migration20261021184601197_private_studysets(),
|
|
_Migration20261023181810112_oidc_module(),
|
|
_Migration20261023192913178_simplelogin_keys(),
|
|
_Migration20261025135744595_waiting_accounts(),
|
|
_Migration20261025165102861_assistants(),
|
|
_Migration20261025184004860_assistant_conversations(),
|
|
];
|
|
|
|
/// List of all client-side database migration versions.
|
|
static List<String> get versions => migrations.map((m) => m.version).toList();
|
|
}
|