feat(electrobun): final 5% — full integration, real data, polish

1. Claude CLI: additionalDirectories + worktreeName passthrough
2. Agent-store: reads settings (default_cwd, provider model, permission)
3. Project hydration: SQLite replaces hardcoded PROJECTS, add/remove UI
4. Group hydration: SQLite groups, add/delete in sidebar
5. Terminal auto-spawn: reads default_cwd from settings
6. Context tab: real tokens from agent-store, file refs, turn count
7. Memory tab: Memora DB integration (read-only, graceful if missing)
8. Docs tab: markdown viewer (files.list + files.read + inline renderer)
9. SSH tab: CRUD connections, spawn PTY with ssh command
10. Error handling: global unhandledrejection → toast notifications
11. Notifications: agent done/error/stall → toasts, 15min stall timer
12. Command palette: all 18 commands (was 10)

+1,198 lines, 13 files. Electrobun now 100% feature-complete vs Tauri v3.
This commit is contained in:
Hibryda 2026-03-22 02:02:54 +01:00
parent 4826b9dffa
commit 8e756d3523
13 changed files with 1199 additions and 239 deletions

View file

@ -181,6 +181,10 @@ export class SettingsDb {
.run(id, json);
}
deleteProject(id: string): void {
this.db.query("DELETE FROM projects WHERE id = ?").run(id);
}
listProjects(): ProjectConfig[] {
const rows = this.db
.query<{ config: string }, []>("SELECT config FROM projects")
@ -202,6 +206,16 @@ export class SettingsDb {
.all();
}
createGroup(id: string, name: string, icon: string, position: number): void {
this.db
.query("INSERT INTO groups (id, name, icon, position) VALUES (?, ?, ?, ?) ON CONFLICT(id) DO UPDATE SET name = excluded.name, icon = excluded.icon, position = excluded.position")
.run(id, name, icon, position);
}
deleteGroup(id: string): void {
this.db.query("DELETE FROM groups WHERE id = ?").run(id);
}
// ── Custom Themes ─────────────────────────────────────────────────────────
getCustomThemes(): CustomTheme[] {