IW-205: Restructure root page as projects overview #221

Merged
mprihoda merged 11 commits from IW-205 into main 2026-02-24 09:59:41 +00:00
mprihoda commented 2026-02-24 09:49:12 +00:00 (Migrated from github.com)

Summary

Restructures the dashboard root page (/) from a flat list of all worktree cards into a clean projects overview page. Each project card now shows worktree counts and attention indicators, with individual worktree cards accessible via the project details page (/projects/:projectName).

Closes #205

Changes

Phase 1: Project cards show worktree count and summary status

  • Added ProjectSummary view model pairing MainProject with worktree count and attention count
  • Added pure computeSummaries function for computing project statistics
  • Enhanced MainProjectsView to display worktree count badges and attention indicators

Phase 2: Remove flat worktree list from root page

  • Removed WorktreeListView.render() call from root page
  • Removed per-worktree data fetching (issue, progress, git status, PR) from renderDashboard
  • Root page no longer polls /api/worktrees/changes

Phase 3: Simplify DashboardService after worktree list removal

  • Simplified renderDashboard signature from 8 to 4 parameters
  • Removed unused issueCache, progressCache, prCache, config parameters
  • Updated CaskServer caller and all 27 test call sites

Test plan

  • Unit tests: ProjectSummary computation (8 tests)
  • Unit tests: MainProjectsView rendering with summaries (17 tests)
  • Unit tests: DashboardService integration (27 tests updated)
  • Unit tests: Negative assertions — root page has no worktree-list, worktree-card, or polling
  • E2E tests: All passing
  • Code review: 3 phases reviewed, no critical issues

🤖 Generated with Claude Code

## Summary Restructures the dashboard root page (`/`) from a flat list of all worktree cards into a clean **projects overview** page. Each project card now shows worktree counts and attention indicators, with individual worktree cards accessible via the project details page (`/projects/:projectName`). Closes #205 ## Changes ### Phase 1: Project cards show worktree count and summary status - Added `ProjectSummary` view model pairing `MainProject` with worktree count and attention count - Added pure `computeSummaries` function for computing project statistics - Enhanced `MainProjectsView` to display worktree count badges and attention indicators ### Phase 2: Remove flat worktree list from root page - Removed `WorktreeListView.render()` call from root page - Removed per-worktree data fetching (issue, progress, git status, PR) from `renderDashboard` - Root page no longer polls `/api/worktrees/changes` ### Phase 3: Simplify DashboardService after worktree list removal - Simplified `renderDashboard` signature from 8 to 4 parameters - Removed unused `issueCache`, `progressCache`, `prCache`, `config` parameters - Updated `CaskServer` caller and all 27 test call sites ## Test plan - [x] Unit tests: `ProjectSummary` computation (8 tests) - [x] Unit tests: `MainProjectsView` rendering with summaries (17 tests) - [x] Unit tests: `DashboardService` integration (27 tests updated) - [x] Unit tests: Negative assertions — root page has no worktree-list, worktree-card, or polling - [x] E2E tests: All passing - [x] Code review: 3 phases reviewed, no critical issues 🤖 Generated with [Claude Code](https://claude.com/claude-code)
Sign in to join this conversation.
No description provided.