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

@ -94,8 +94,18 @@
// ── Connect to PTY daemon (fire-and-forget from onMount) ───────────────
void (async () => {
// Read default_shell and default_cwd from settings if not provided
let effectiveCwd = cwd;
try {
const { settings } = await appRpc.request['settings.getAll']({});
if (!effectiveCwd && settings['default_cwd']) {
effectiveCwd = settings['default_cwd'];
}
// default_shell is handled by agor-ptyd, not needed in create params
} catch { /* use provided or defaults */ }
const { cols, rows } = term;
const result = await appRpc.request['pty.create']({ sessionId, cols, rows, cwd });
const result = await appRpc.request['pty.create']({ sessionId, cols, rows, cwd: effectiveCwd });
if (!result?.ok) {
term.writeln(`\x1b[31m[agor] Failed to connect to PTY daemon: ${result?.error ?? 'unknown error'}\x1b[0m`);
term.writeln('\x1b[33m[agor] Is agor-ptyd running? Start it with: agor-ptyd\x1b[0m');