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

@ -28,6 +28,8 @@ export interface StartSessionOptions {
permissionMode?: string;
claudeConfigDir?: string;
extraEnv?: Record<string, string>;
additionalDirectories?: string[];
worktreeName?: string;
}
type MessageCallback = (sessionId: string, messages: AgentMessage[]) => void;
@ -222,7 +224,7 @@ export class SidecarManager {
});
// Send the query command to the runner
const queryMsg = {
const queryMsg: Record<string, unknown> = {
type: "query",
sessionId,
prompt,
@ -235,6 +237,13 @@ export class SidecarManager {
extraEnv: validateExtraEnv(options.extraEnv),
};
if (options.additionalDirectories?.length) {
queryMsg.additionalDirectories = options.additionalDirectories;
}
if (options.worktreeName) {
queryMsg.worktreeName = options.worktreeName;
}
this.writeToProcess(sessionId, queryMsg);
return { ok: true };