aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/preload.ts
diff options
context:
space:
mode:
authorbndw <ben@bdw.to>2026-02-28 21:08:40 -0800
committerbndw <ben@bdw.to>2026-02-28 21:08:40 -0800
commit04c63d4ef601876186e5d7fab980d76575c494ec (patch)
tree2620784e148957ae2ee3af0327c2b128983577e7 /src/main/preload.ts
parent0da42e4fa414ab3268d4f71896455097239f8590 (diff)
feat: **1. `src/main/db/schema.ts`** — add `settings` table … (+10 more)
- ✅ **1. `src/main/db/schema.ts`** — add `settings` table to `initSchema` - ✅ **2. `src/main/db/settings.ts`** — create file with `getSetting`, `getSettings`, `setSetting`, `deleteSetting` - ✅ **3. `src/main/claude/phases.ts`** — add `customSystemPrompt?` param to `getPhaseConfig`; add `getDefaultSystemPromptTemplate` export - ✅ **4. `src/main/claude/index.ts`** — import `getSetting`; load custom prompt in `sendMessage`; pass to `getPhaseConfig` - ✅ **5. `src/main/ipc/handlers.ts`** — import `settingsDb` + `getDefaultSystemPromptTemplate`; register `settings:get`, `settings:set`, `settings:delete`, `settings:getDefaultPrompts` - ✅ **6. `src/main/preload.ts`** — add `getSettings`, `setSetting`, `deleteSetting`, `getDefaultSystemPrompts` to interface + api object - ✅ **7. `renderer/src/styles/globals.css`** — append all new CSS rules - ✅ **8. `renderer/src/components/settings/SystemPromptsSettings.tsx`** — create file (new directory) - ✅ **9. `renderer/src/components/SettingsPage.tsx`** — create file - ✅ **10. `renderer/src/components/Header.tsx`** — add `onOpenSettings` prop + ⚙ button - ✅ **11. `renderer/src/App.tsx`** — add `showSettings` state; import + render `<SettingsPage>`; pass `onOpenSettings` to Header
Diffstat (limited to 'src/main/preload.ts')
-rw-r--r--src/main/preload.ts12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/main/preload.ts b/src/main/preload.ts
index 299a1b5..52e947b 100644
--- a/src/main/preload.ts
+++ b/src/main/preload.ts
@@ -54,6 +54,12 @@ export interface ClaudeFlowAPI {
54 callback: (sessionId: string, message: SDKMessage) => void 54 callback: (sessionId: string, message: SDKMessage) => void
55 ) => () => void; 55 ) => () => void;
56 56
57 // Settings
58 getSettings: (keys: string[]) => Promise<Record<string, string | null>>;
59 setSetting: (key: string, value: string) => Promise<void>;
60 deleteSetting: (key: string) => Promise<void>;
61 getDefaultSystemPrompts: () => Promise<Record<"research" | "plan" | "implement", string>>;
62
57 // Dialogs 63 // Dialogs
58 selectDirectory: () => Promise<string | null>; 64 selectDirectory: () => Promise<string | null>;
59} 65}
@@ -110,6 +116,12 @@ const api: ClaudeFlowAPI = {
110 return () => ipcRenderer.removeListener("claude:message", handler); 116 return () => ipcRenderer.removeListener("claude:message", handler);
111 }, 117 },
112 118
119 // Settings
120 getSettings: (keys) => ipcRenderer.invoke("settings:get", keys),
121 setSetting: (key, value) => ipcRenderer.invoke("settings:set", key, value),
122 deleteSetting: (key) => ipcRenderer.invoke("settings:delete", key),
123 getDefaultSystemPrompts: () => ipcRenderer.invoke("settings:getDefaultPrompts"),
124
113 // Dialogs 125 // Dialogs
114 selectDirectory: async () => { 126 selectDirectory: async () => {
115 const result = await ipcRenderer.invoke("dialog:selectDirectory"); 127 const result = await ipcRenderer.invoke("dialog:selectDirectory");