feat: multi-repo task support for kanban board#46
Merged
Conversation
Read and display tasks from multiple project repos, not just aidevops. Each repo's TODO.md is parsed independently with per-repo caching, composite task IDs (repo:tNNN) to avoid collisions, and a repo selector dropdown in the kanban UI. New server endpoints: - GET /api/repos - list tracked repos - GET /api/repos/discover - scan ~/Git for repos with TODO.md - POST /api/actions/repos/sync - sync discovered repos to settings - POST /api/actions/repos/toggle - enable/disable a repo Existing endpoints updated: - GET /api/tasks?repo=name - filter by repo (merged view by default) - POST /api/actions/tasks/* - accept composite task IDs and repo param Client changes: - RepoSelector dropdown in kanban header - Repo badge on task cards in merged view - Repo selector in task create dialog - Selection persisted in localStorage Closes #45
6910d74 to
27c246c
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
aidevops:t042) to avoid collisions across reposServer Changes
New files:
server/services/repo-discovery.ts- Scans gitDir for repos with TODO.md, filters out worktreesserver/routes/repos.ts- CRUD endpoints for repo management (discover, list, sync, toggle)Modified files:
server/writers/config-writer.ts- AddedtrackedReposto DashboardSettings with CRUD helpersserver/routes/tasks.ts- Multi-repo reading with?repo=filter, per-repo caching, merged viewserver/routes/actions/tasks.ts- Composite task ID parsing, repo-aware TodoWriter routingserver/watchers/file-watcher.ts- Watches TODO.md in all enabled tracked reposserver/index.ts- Registered 4 new repo management routesClient Changes
New files:
client/src/hooks/useRepos.ts- Hook for repo list, selection (persisted in localStorage), sync/toggle actionsclient/src/components/kanban/RepoSelector.tsx- Dropdown component for repo filteringModified files:
client/src/pages/KanbanPage.tsx- Added RepoSelector to headerclient/src/components/kanban/KanbanBoard.tsx- AcceptsselectedRepoprop, passes to API and TaskCardclient/src/components/kanban/TaskCard.tsx- Added optionalrepobadge (cyan, shown in merged view)client/src/components/actions/TaskCreateDialog.tsx- Added repo selector when multiple repos are trackedSetup
After merging, users need to sync repos once:
Or it can be triggered from a future settings UI. Repos are auto-discovered from
~/Gitdirectories containingTODO.md.Closes #45