fix(electrobun): address all 20 Codex review findings
CRITICAL: - PTY leak: Terminal.svelte now calls pty.close on destroy, not just unsubscribe - Agent session cleanup: clearSession() removes done/error sessions, backend deletes after 60s grace period HIGH: - Clone branch passthrough: user's branch name flows through callback - Circular imports: extracted rpc.ts singleton, broke main.ts ↔ App.svelte cycle - Settings wired to runtime: Terminal reads cursor/scrollback from settings - Security disclaimer: added "prototype — not system keyring" notice - ThemeEditor: fixed basePalette → initialPalette reference MEDIUM: - Clone race: UUID suffix instead of count-based index - Silent failures: structured error returns from PTY handlers - WebKitGTK mount: only current + previous group mounted - Debug listeners: gated behind DEBUG, cleanup on destroy - NDJSON residual buffer parsed on process exit - Codex adapter: deduplicated tool_call/tool_result - extraEnv: rejects CLAUDE*/CODEX*/OLLAMA* keys - settings-db: runMigrations() with version tracking - active_group: persisted via settings.set LOW: - Removed dead demo code, unused variables - color-mix() fallbacks added
This commit is contained in:
parent
ef0183de7f
commit
29a3370e79
18 changed files with 331 additions and 114 deletions
|
|
@ -110,12 +110,30 @@ export class SettingsDb {
|
|||
this.db.exec(SCHEMA);
|
||||
this.db.exec(SEED_GROUPS);
|
||||
|
||||
// Seed schema_version row if missing
|
||||
const version = this.db
|
||||
// Run version-tracked migrations
|
||||
this.runMigrations();
|
||||
}
|
||||
|
||||
/** Run version-tracked schema migrations. */
|
||||
private runMigrations(): void {
|
||||
const CURRENT_VERSION = 1;
|
||||
|
||||
const row = this.db
|
||||
.query<{ version: number }, []>("SELECT version FROM schema_version LIMIT 1")
|
||||
.get();
|
||||
if (!version) {
|
||||
this.db.exec("INSERT INTO schema_version (version) VALUES (1)");
|
||||
const currentVersion = row?.version ?? 0;
|
||||
|
||||
if (currentVersion < 1) {
|
||||
// Version 1 is the initial schema — already created above via SCHEMA.
|
||||
// Future migrations go here as version checks:
|
||||
// if (currentVersion < 2) { this.db.exec("ALTER TABLE ..."); }
|
||||
// if (currentVersion < 3) { this.db.exec("ALTER TABLE ..."); }
|
||||
}
|
||||
|
||||
if (!row) {
|
||||
this.db.exec(`INSERT INTO schema_version (version) VALUES (${CURRENT_VERSION})`);
|
||||
} else if (currentVersion < CURRENT_VERSION) {
|
||||
this.db.exec(`UPDATE schema_version SET version = ${CURRENT_VERSION}`);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue