strip chat

This commit is contained in:
Fabian Freund
2025-05-25 22:41:19 +02:00
parent cd4be515f3
commit 3cedada44e
52 changed files with 5 additions and 5411 deletions
@@ -7,20 +7,12 @@ import 'package:weblibre/features/geckoview/features/tabs/data/database/daos/con
import 'package:weblibre/features/geckoview/features/tabs/data/database/daos/tab.dart';
import 'package:weblibre/features/geckoview/features/tabs/data/models/container_data.dart';
import 'package:weblibre/features/geckoview/features/tabs/data/models/tab_query_result.dart';
import 'package:weblibre/features/geckoview/features/tabs/features/vector_store/data/database/daos/vector.dart';
import 'package:weblibre/features/geckoview/features/tabs/features/vector_store/data/database/migrator.dart';
import 'package:weblibre/features/geckoview/features/tabs/features/vector_store/data/models/vector_result.dart';
import 'package:weblibre/features/search/domain/fts_tokenizer.dart';
part 'database.g.dart';
@DriftDatabase(
include: {'database.drift'},
daos: [ContainerDao, TabDao, VectorDao],
)
@DriftDatabase(include: {'database.drift'}, daos: [ContainerDao, TabDao])
class TabDatabase extends _$TabDatabase with TrigramQueryBuilderMixin {
final int embeddingDimensions;
@override
final int schemaVersion = 2;
@@ -31,23 +23,11 @@ class TabDatabase extends _$TabDatabase with TrigramQueryBuilderMixin {
@override
MigrationStrategy get migration => MigrationStrategy(
onCreate: (m) async {
final migrator = VectorDatabaseMigrator(dimensions: embeddingDimensions);
await m.database.customStatement(migrator.vectorTableDefinition);
//instead of m.createAll(); we igoner vec0 table
for (final entity in allSchemaEntities.where(
(entity) => entity is! DocumentVec,
)) {
await m.create(entity);
}
},
beforeOpen: (details) async {
await customStatement('PRAGMA foreign_keys = ON;');
await optimizeFtsIndex();
},
);
TabDatabase(super.e, {required this.embeddingDimensions});
TabDatabase(super.e);
}
@@ -25,14 +25,6 @@ CREATE TABLE tab (
timestamp DATETIME NOT NULL
);
import '../../features/vector_store/data/database/vector_store.drift';
-- automativcally remove documents and embeddings on delete
-- isnert and updates are managed code side
CREATE TRIGGER tab_document_delete AFTER DELETE ON tab BEGIN
DELETE FROM document WHERE main_document_id = old.id;
END;
CREATE VIRTUAL TABLE tab_fts
USING fts5(
title,
File diff suppressed because it is too large Load Diff
@@ -6,9 +6,7 @@ import 'package:riverpod/riverpod.dart';
import 'package:riverpod_annotation/riverpod_annotation.dart';
import 'package:sqlite3/sqlite3.dart';
import 'package:sqlite3_flutter_libs/sqlite3_flutter_libs.dart';
import 'package:sqlite3_vec/sqlite3_vec.dart';
import 'package:universal_io/io.dart';
import 'package:weblibre/core/providers/models.dart';
import 'package:weblibre/data/database/functions/lexo_rank_functions.dart';
import 'package:weblibre/features/geckoview/features/tabs/data/database/database.dart';
@@ -16,8 +14,6 @@ part 'providers.g.dart';
@Riverpod(keepAlive: true)
TabDatabase tabDatabase(Ref ref) {
final dimensions = ref.watch(embeddingDimensionsProvider);
final db = TabDatabase(
LazyDatabase(() async {
// put the database file, called db.sqlite here, into the documents folder
@@ -37,8 +33,6 @@ TabDatabase tabDatabase(Ref ref) {
// Explicitly tell it about the correct temporary directory.
sqlite3.tempDirectory = cachebase;
Sqlite3Vec.ensureExtensionLoaded();
return NativeDatabase.createInBackground(
file,
setup: (database) {
@@ -46,7 +40,6 @@ TabDatabase tabDatabase(Ref ref) {
},
);
}),
embeddingDimensions: dimensions,
);
ref.onDispose(() async {
@@ -6,7 +6,7 @@ part of 'providers.dart';
// RiverpodGenerator
// **************************************************************************
String _$tabDatabaseHash() => r'db190f01d7e70e65b9f44403effa82ec503144a0';
String _$tabDatabaseHash() => r'422bd4789296dc271fabbd5906f2e2ab16bccaa3';
/// See also [tabDatabase].
@ProviderFor(tabDatabase)