<feed xmlns='http://www.w3.org/2005/Atom'>
<title>claude-flow.git/src/main/ipc, branch claude-flow-v1</title>
<subtitle>A document-centric coding assistant</subtitle>
<id>https://code.northwest.io/claude-flow.git/atom?h=claude-flow-v1</id>
<link rel='self' href='https://code.northwest.io/claude-flow.git/atom?h=claude-flow-v1'/>
<link rel='alternate' type='text/html' href='https://code.northwest.io/claude-flow.git/'/>
<updated>2026-03-05T05:36:32+00:00</updated>
<entry>
<title>feat: Thread optional `phase` param into `db/sessions.ts::cre… (+7 more)</title>
<updated>2026-03-05T05:36:32+00:00</updated>
<author>
<name>bndw</name>
<email>ben@bdw.to</email>
</author>
<published>2026-03-05T05:36:32+00:00</published>
<link rel='alternate' type='text/html' href='https://code.northwest.io/claude-flow.git/commit/?id=73d2680b83ccbdbd8dfec2d319533e98b379b830'/>
<id>urn:sha1:73d2680b83ccbdbd8dfec2d319533e98b379b830</id>
<content type='text'>
- ✅ Thread optional `phase` param into `db/sessions.ts::createSession()`
- ✅ Thread optional `phase` param into `ipc/handlers.ts` sessions:create handler
- ✅ Thread optional `phase` param into `preload.ts` createSession API
- ✅ Update Plan phase system prompt to gracefully handle missing research.md
- ✅ Update Implement phase system prompt to gracefully handle missing plan.md
- ✅ Create `renderer/src/components/NewSessionModal.tsx`
- ✅ Update `App.tsx`: add modal state, split handler, add modal JSX
- ✅ Add modal CSS to `globals.css`
</content>
</entry>
<entry>
<title>feat(mcp): add tool discovery and per-tool permissions</title>
<updated>2026-03-01T18:15:14+00:00</updated>
<author>
<name>Clawd</name>
<email>ai@clawd.bot</email>
</author>
<published>2026-03-01T18:15:14+00:00</published>
<link rel='alternate' type='text/html' href='https://code.northwest.io/claude-flow.git/commit/?id=044d628a47f063bcbbd9adba7860542156a0c66e'/>
<id>urn:sha1:044d628a47f063bcbbd9adba7860542156a0c66e</id>
<content type='text'>
- Add MCP protocol client for tool discovery (initialize + tools/list)
- Show discovered tools in settings UI with enable/disable checkboxes
- Build explicit allowedTools list from enabled MCP tools
- Remove bypassPermissions hack - now uses proper tool allowlisting
- Format: mcp__servername__toolname for SDK allowedTools
</content>
</entry>
<entry>
<title>feat: **1 — `git.ts`:** Add exported `getCurrentBranch` helpe… (+8 more)</title>
<updated>2026-03-01T05:35:39+00:00</updated>
<author>
<name>bndw</name>
<email>ben@bdw.to</email>
</author>
<published>2026-03-01T05:35:39+00:00</published>
<link rel='alternate' type='text/html' href='https://code.northwest.io/claude-flow.git/commit/?id=0484d97dfbc3b8a2e7878d3ab35a9895decdf467'/>
<id>urn:sha1:0484d97dfbc3b8a2e7878d3ab35a9895decdf467</id>
<content type='text'>
- ✅ **1 — `git.ts`:** Add exported `getCurrentBranch` helper after `ensureGitRepo`
- ✅ **2a — `ipc/handlers.ts`:** Update git import to include `ensureGitRepo` and `getCurrentBranch`
- ✅ **2b — `ipc/handlers.ts`:** Replace `workflow:advance` implement-phase block with branching-toggle logic
- ✅ **3 — `GitSettings.tsx`:** Create new settings component with pill toggle
- ✅ **4 — `SettingsPage.tsx`:** Add `"git"` section type, import, nav item, content render; fix both unicode glyphs
- ✅ **5 — `globals.css`:** Append toggle-row + pill toggle + maximize-btn CSS
- ✅ **6 — `index.ts`:** Add `ipcMain` to import; add `window:toggleMaximize` handler + maximize/unmaximize events inside `createWindow()`
- ✅ **7 — `preload.ts`:** Add `toggleMaximize` + `onWindowMaximized` to interface and `api` object
- ✅ **8 — `Header.tsx`:** Add `isMaximized` state + effect + maximize button in JSX
</content>
</entry>
<entry>
<title>feat: **1. `src/main/db/schema.ts`** — add `settings` table … (+10 more)</title>
<updated>2026-03-01T05:08:40+00:00</updated>
<author>
<name>bndw</name>
<email>ben@bdw.to</email>
</author>
<published>2026-03-01T05:08:40+00:00</published>
<link rel='alternate' type='text/html' href='https://code.northwest.io/claude-flow.git/commit/?id=04c63d4ef601876186e5d7fab980d76575c494ec'/>
<id>urn:sha1:04c63d4ef601876186e5d7fab980d76575c494ec</id>
<content type='text'>
- ✅ **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 `&lt;SettingsPage&gt;`; pass `onOpenSettings` to Header
</content>
</entry>
<entry>
<title>feat: Complete 9 tasks</title>
<updated>2026-03-01T04:45:23+00:00</updated>
<author>
<name>bndw</name>
<email>ben@bdw.to</email>
</author>
<published>2026-03-01T04:45:23+00:00</published>
<link rel='alternate' type='text/html' href='https://code.northwest.io/claude-flow.git/commit/?id=0da42e4fa414ab3268d4f71896455097239f8590'/>
<id>urn:sha1:0da42e4fa414ab3268d4f71896455097239f8590</id>
<content type='text'>
- ✅ **Change 1** — `src/main/git.ts`: Add `LOCK_FILES`, `buildTaskSubject`, `getStagedFileNames`, `buildFileSubject` helpers; rewrite `commitMsg` block in `autoCommitTurn`
- ✅ **Change 2a** — `src/main/ipc/handlers.ts`: Update import to include `ensureGitIgnore`; strip branch creation from `sessions:create`; add bare `ensureGitIgnore` call
- ✅ **Change 2b** — `src/main/ipc/handlers.ts`: Update `workflow:advance` to create branch on implement transition; return `{ phase, git_branch }`
- ✅ **Change 3** — `src/main/preload.ts`: Update `advancePhase` return type in `ClaudeFlowAPI` interface
- ✅ **Change 4** — `renderer/src/App.tsx`: Destructure `{ phase, git_branch }` from advance result; spread `git_branch` into `setSelectedSession`
- ✅ **Change 5a** — `renderer/src/components/Header.tsx`: Remove branch from `&lt;option&gt;` text
- ✅ **Change 5b** — `renderer/src/components/Header.tsx`: Add `phase !== "implement"` guard to rename button
- ✅ **Change 5c** — `renderer/src/components/Header.tsx`: Gate badge on `gitBranch` truthy; remove disabled/unavailable state
- ✅ **Change 6** — `renderer/src/styles/globals.css`: Delete `.branch-badge.branch-unavailable` rule
</content>
</entry>
<entry>
<title>feat: git branches</title>
<updated>2026-03-01T04:07:05+00:00</updated>
<author>
<name>bndw</name>
<email>ben@bdw.to</email>
</author>
<published>2026-03-01T04:07:05+00:00</published>
<link rel='alternate' type='text/html' href='https://code.northwest.io/claude-flow.git/commit/?id=9d192d16b7a4026b35ad2bcaff9edb9f2670de2b'/>
<id>urn:sha1:9d192d16b7a4026b35ad2bcaff9edb9f2670de2b</id>
<content type='text'>
</content>
</entry>
<entry>
<title>feat: auto session naming</title>
<updated>2026-03-01T03:34:02+00:00</updated>
<author>
<name>bndw</name>
<email>ben@bdw.to</email>
</author>
<published>2026-03-01T03:34:02+00:00</published>
<link rel='alternate' type='text/html' href='https://code.northwest.io/claude-flow.git/commit/?id=283013c09d4855529e846951a1e090f0f16030a8'/>
<id>urn:sha1:283013c09d4855529e846951a1e090f0f16030a8</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Move artifacts to ~/.claude-flow/ (outside repo)</title>
<updated>2026-03-01T02:46:11+00:00</updated>
<author>
<name>Clawd</name>
<email>ai@clawd.bot</email>
</author>
<published>2026-03-01T02:46:11+00:00</published>
<link rel='alternate' type='text/html' href='https://code.northwest.io/claude-flow.git/commit/?id=3ac34530578b9a6f59bcea6b5aeefd97eb03d588'/>
<id>urn:sha1:3ac34530578b9a6f59bcea6b5aeefd97eb03d588</id>
<content type='text'>
- Store session artifacts in ~/.claude-flow/projects/{projectId}/sessions/{sessionId}/
- Artifacts no longer live in project directory - can't be accidentally committed
- Remove .claude-flow/ from .gitignore (not needed anymore)
- Update all IPC handlers and renderer to use projectId instead of projectPath
- Update prompts to remove worktree references
- Update README with new storage location
</content>
</entry>
<entry>
<title>Remove git worktree/branch management</title>
<updated>2026-03-01T02:32:21+00:00</updated>
<author>
<name>Clawd</name>
<email>ai@clawd.bot</email>
</author>
<published>2026-03-01T02:32:21+00:00</published>
<link rel='alternate' type='text/html' href='https://code.northwest.io/claude-flow.git/commit/?id=4aaed77705081009fe9e3d7025b545108f7db205'/>
<id>urn:sha1:4aaed77705081009fe9e3d7025b545108f7db205</id>
<content type='text'>
Session-scoped artifacts already solve the concurrent session problem.
No need for worktrees or branches. Simpler is better.
</content>
</entry>
<entry>
<title>Add session-specific artifacts, CLAUDE.md, and git worktree support</title>
<updated>2026-02-28T23:35:00+00:00</updated>
<author>
<name>Clawd</name>
<email>ai@clawd.bot</email>
</author>
<published>2026-02-28T23:35:00+00:00</published>
<link rel='alternate' type='text/html' href='https://code.northwest.io/claude-flow.git/commit/?id=0edd7235cd861ef77d4ceb37a594ae65df52624b'/>
<id>urn:sha1:0edd7235cd861ef77d4ceb37a594ae65df52624b</id>
<content type='text'>
- Store artifacts in .claude-flow/sessions/{sessionId}/
- Each session now has isolated research.md and plan.md
- Concurrent sessions no longer conflict
- Add CLAUDE.md support for shared codebase documentation
- Add git worktree creation on session start
- Add git commit/status IPC handlers
- Update all artifact APIs to be session-specific
- Remove artifact clearing on new session (no longer needed)
</content>
</entry>
</feed>
