Skip to content

feat: multi-repo task support for kanban board#46

Merged
johnwaldo merged 1 commit intomainfrom
feature/multi-repo-tasks
Mar 5, 2026
Merged

feat: multi-repo task support for kanban board#46
johnwaldo merged 1 commit intomainfrom
feature/multi-repo-tasks

Conversation

@johnwaldo
Copy link
Owner

Summary

  • Adds multi-repo task management so the kanban board can display tasks from any project repo with a TODO.md, not just the aidevops repo
  • Auto-discovers repos in ~/Git that contain TODO.md files, with worktree filtering
  • Repo selector dropdown in the kanban header lets users filter by repo or view all tasks merged together
  • Task IDs are prefixed with repo name (e.g., aidevops:t042) to avoid collisions across repos

Server Changes

New files:

  • server/services/repo-discovery.ts - Scans gitDir for repos with TODO.md, filters out worktrees
  • server/routes/repos.ts - CRUD endpoints for repo management (discover, list, sync, toggle)

Modified files:

  • server/writers/config-writer.ts - Added trackedRepos to DashboardSettings with CRUD helpers
  • server/routes/tasks.ts - Multi-repo reading with ?repo= filter, per-repo caching, merged view
  • server/routes/actions/tasks.ts - Composite task ID parsing, repo-aware TodoWriter routing
  • server/watchers/file-watcher.ts - Watches TODO.md in all enabled tracked repos
  • server/index.ts - Registered 4 new repo management routes

Client Changes

New files:

  • client/src/hooks/useRepos.ts - Hook for repo list, selection (persisted in localStorage), sync/toggle actions
  • client/src/components/kanban/RepoSelector.tsx - Dropdown component for repo filtering

Modified files:

  • client/src/pages/KanbanPage.tsx - Added RepoSelector to header
  • client/src/components/kanban/KanbanBoard.tsx - Accepts selectedRepo prop, passes to API and TaskCard
  • client/src/components/kanban/TaskCard.tsx - Added optional repo badge (cyan, shown in merged view)
  • client/src/components/actions/TaskCreateDialog.tsx - Added repo selector when multiple repos are tracked

Setup

After merging, users need to sync repos once:

curl -X POST http://localhost:3001/api/actions/repos/sync

Or it can be triggered from a future settings UI. Repos are auto-discovered from ~/Git directories containing TODO.md.

Closes #45

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
@johnwaldo johnwaldo force-pushed the feature/multi-repo-tasks branch from 6910d74 to 27c246c Compare March 5, 2026 01:24
@johnwaldo johnwaldo merged commit 03af4a2 into main Mar 5, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat: Multi-repo TODO/project selector for dashboard relevance

1 participant