feat: improve streaming and startup responsiveness

This commit is contained in:
mesalogo
2026-08-15 18:06:03 +08:00
parent ed8d1791b1
commit f27dd37f42
13 changed files with 1795 additions and 885 deletions
+36
View File
@@ -4426,6 +4426,31 @@ export class KnowledgeDatabase {
}
private migrate(database: DatabaseSync): void {
const migrationTable = database
.prepare(
`SELECT 1 AS found FROM sqlite_schema
WHERE type = 'table' AND name = 'schema_migrations'`
)
.get()
if (migrationTable) {
const versions = database
.prepare(
`SELECT
(SELECT COALESCE(MAX(version), 0) FROM schema_migrations)
AS migration_version,
user_version
FROM pragma_user_version`
)
.get()
if (
versions &&
asNumber(versions, 'migration_version') === DATABASE_VERSION &&
asNumber(versions, 'user_version') === DATABASE_VERSION
) {
return
}
}
database.exec('BEGIN IMMEDIATE')
try {
database.exec(`
@@ -4443,6 +4468,17 @@ export class KnowledgeDatabase {
`Knowledge database version ${currentVersion} is newer than supported version ${DATABASE_VERSION}`
)
}
const userVersionRow = database
.prepare('PRAGMA user_version')
.get()
const userVersion = userVersionRow
? asNumber(userVersionRow, 'user_version')
: 0
if (userVersion > DATABASE_VERSION) {
throw new Error(
`Knowledge database user version ${userVersion} is newer than supported version ${DATABASE_VERSION}`
)
}
if (currentVersion < 1) {
this.migrateToVersion1(database)
database