Markdown Kanban Mode#508
Conversation
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 89ee995ba9
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
Greptile SummaryThis PR adds an opt-in per-project Markdown Kanban mode where cards are stored as
Confidence Score: 4/5Safe to merge with the understanding that the kanban config dialog can briefly show settings from a previously-opened project if the user opens and closes dialogs quickly before the RPC resolves. All six issues flagged in the prior review round have been addressed: the duplicate isMarkdownCandidate declaration is gone, setSelectedTicketId is typed null-only, archiveAllDone now takes a single index snapshot, the layout migration has proper per-iteration rollback, non-kanban project settings are saved before the kanban mode-change call, and the migrateMarkdownLayout atomicity gap has a full rollback path. The one remaining open concern is that the kanbanApi.config.get promise in ProjectSettingsDialog has no cancellation guard while the sibling detectSetupSuggestions call does, meaning a slow response for project A can overwrite folder-path state after the user has switched to project B's dialog. src/renderer/src/components/projects/ProjectSettingsDialog.tsx — the kanban config fetch (lines 111-134) does not participate in the effect's cancellation flag. Important Files Changed
Reviews (19): Last reviewed commit: "Address feedback again" | Re-trigger Greptile |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: f077959b07
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: e37ad255a1
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: cb95c23b5a
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: c5aa09e419
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
|
this is a pretty big PR. Im in the middle of the whole ipc -> http migration |
I can imagine. I'd like to add the actual migration from "internal" tickets into the markdown files (and vice versa), as a second pr. If you like the direction of course. The greptile says that layout migration silently skips invalid markdown files - I can address that in this second pr as well. |
|
i like the direction i think it can be really cool and would allow more long running agents to run by creating boards through managing files rather than through a specialized tool controlling the board with customized commands like now. it can open doors to orchestrator agents as well, managing tickets moving them between statuses etc. |
|
We need to do the necessary adaptions to this pr so that it merges |
c8fbac2 to
bc86ea8
Compare
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: bc86ea8210
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 4aa7e721a8
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 68a74ad635
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
|
@morapelker I think it's ready |
|
ive got a few comments from claude, can you investigate/check if theyre valid/fix whatever he mentions? 🔴 Correctness
🟡 Efficiency / Quality
Verdict: Finding #1 should block — the watcher's auto-reload doesn't work cross-process. #2 and #4 are concrete user-visible regressions. The rest are real but lower-severity. Note nextSortOrder excluding archived cards (kanban-backend.ts:1519) creates real sort_order collisions but is currently harmless since archived view sorts by archived_at — worth a comment but not a fix. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 961d9e0881
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 795abe6ec0
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
|
@morapelker Addressed findings 1, 2, 3, 4, 5, 7, and 8. That includes watcher event delivery across the server/main boundary, watcher stop-race guarding, Leaving 6, 9, and 10 out of this PR for now:
|
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: a0e372abef
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
…-rpc-rebase # Conflicts: # src/renderer/src/api/kanban-api.ts # src/renderer/src/components/kanban/KanbanTicketCard.tsx # src/server/rpc/domains/kanban.ts
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 93af1b64b7
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 987b5b0da3
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
|
There are quite alot of "Correctness" review items claude is mentioning. A large feature (~9.8k lines) adding markdown-file-backed kanban boards alongside the existing DB-backed boards. The core architecture is sound — a polymorphic KanbanBackend interface dispatched by getKanbanBackendForProject, rather than scattered if (isMarkdown) branches. But the project-scoping refactor and a file rewrite introduced several confirmed regressions. 🔴 Correctness bugs
🟠 Quality / altitude
Also worth a cleanup pass (not blocking): the new runtime-state table uses 11 inline raw-SQL statements via getRawDb() bypassing the typed Database class every other table uses (kanban-backend.ts:1457); wouldCreateDependencyCycle and slugify duplicate existing helpers; and each markdown mutation triggers 2–4 full-directory reloads (O(cards) disk I/O per drag/reorder). The four I'd treat as must-fix before merge: #1 (wrong worktree), #2 (data loss), #3 (hang), and #4 (lost dependencies). #9 needs a decision on whether the file reset was intentional. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: ce61a7b2c8
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: c1c8470cae
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
|
@morapelker I've addressed all the findings of Claude, except for #3 Restore import/export dialog timeout - the concern is theoretically valid if main never replies, but restoring a 5s timeout is wrong for native dialogs; and #4 Cross-project move drops dependencies - factually true, but not necessarily a bug, as accepted move semantics intentionally clear dependency links when moving projects. |
Description
Adds Markdown Kanban Mode: an opt-in, per-project Kanban storage mode where cards are stored as markdown files in user-configured folders instead of the internal SQLite ticket table.
This version is rebased onto upstream’s RPC/API architecture. Kanban ticket, dependency, config, diagnostics, and watcher operations now route through project-aware RPC/API methods rather than the old Electron preload/IPC integration.
Related Issue
N/A
Type of Change
Changes Made
Screenshots
Screenshots (if applicable)
Testing
Test Configuration
Test Steps
pnpm exec vitest run src/renderer/src/api/__tests__/kanban-api.test.ts src/server/__tests__/kanban-rpc.mock-provider.test.ts src/renderer/src/components/projects/ProjectSettingsDialog.test.tsx test/kanban/markdown-diagnostics-cache.test.ts test/kanban/markdown-adoption-repair.test.ts test/kanban/markdown-kanban-watcher.test.ts test/kanban/markdown-kanban-watcher-hook.test.tsx test/kanban/internal-dependency-routing.test.ts test/kanban/duplicate-card-identity.test.tsx test/kanban/board-assistant-create-navigation.test.tsx test/kanban/session-9/worktree-picker-modal.test.tsx src/renderer/src/components/kanban/KanbanTicketModal.handoff.test.tsx src/renderer/src/components/kanban/WorktreePickerModal.claude-cli.test.tsxtsconfig.webandtsconfig.nodeoutput to the Markdown/Kanban/RPC files touched by this PR.Test Results
Targeted test result: 13 test files passed, 224 tests passed.
Feature-owned TypeScript filters are clean for the Markdown Kanban/RPC/API files. Full workspace typecheck still fails on existing unrelated repo-wide issues outside this PR surface.
Checklist
pnpm lintand fixed any issuespnpm formatto format my codepnpm testand all tests passPerformance Impact
Markdown mode adds filesystem scans and folder watchers for configured card folders. Watchers are scoped to visible markdown boards, and internal-mode projects no-op through the watcher APIs, so existing internal Kanban boards should not take on markdown folder scanning/watching work.
Breaking Changes
Kanban internals are now project-scoped through RPC/API calls, but this is not intended to be a user-facing breaking change.
Additional Notes
Markdown Kanban Mode is opt-in per project and mutually exclusive with the existing internal storage mode. This PR does not add automatic migration from populated internal boards to markdown files.
Invalid or duplicate markdown cards are surfaced through diagnostics/placeholders instead of being silently ignored. Local runtime state such as sessions, worktrees, notes, attachments, plan-ready state, and token counts stays in Hive storage rather than being written to markdown files.
Previous review feedback is addressed, including markdown dependency cleanup on delete/archive/import, aggregate simple-mode drop behavior, project-scoped dependency cleanup, partial Board Assistant draft failures, and Project Settings partial-save behavior.
Post-Merge Tasks