---
id: task-001
title: 'Add velocity dashboard, Do Today feature, and label toggle filters'
status: Done
assignee: []
created_date: '2025-12-07 06:25'
updated_date: '2025-12-07 06:25'
labels:
  - feature
  - web-ui
  - devops
dependencies: []
priority: medium
---

## Description

<!-- SECTION:DESCRIPTION:BEGIN -->
Implemented three major features for the backlog web UI:

1. **Task Velocity Dashboard** - Real velocity metrics using statusHistory data:
   - Completed (7d): Tasks completed in the last 7 days
   - Avg Cycle Time: Average time from "To Do" → "Done"
   - Avg Time to Start: Average time from "To Do" → "In Progress"
   - Avg/Week (4w): Average weekly throughput over 4 weeks
   - Weekly Velocity Bars: Visual bar chart showing completions per week

2. **"Do Today" Star Feature**:
   - Added doToday field to Task type
   - Parser/serializer support for do_today frontmatter
   - Star icon toggle on TaskCard and TaskList items
   - "Today" filter button to show only starred tasks
   - URL parameter sync (?doToday=true)

3. **Clickable Label Toggle Filters**:
   - Labels work as toggle filters in TaskCard and TaskList
   - Click to filter, click again to remove
   - Multiple labels can be active (AND filter)
   - Active labels shown in filter bar
   - URL parameter sync (?labels=bug,feature)
<!-- SECTION:DESCRIPTION:END -->

## Implementation Notes

<!-- SECTION:NOTES:BEGIN -->
## Files Modified
- `src/types/index.ts` - Added `doToday` to Task and TaskUpdateInput
- `src/markdown/parser.ts` - Parse `do_today` from frontmatter
- `src/markdown/serializer.ts` - Serialize `do_today` to frontmatter
- `src/core/backlog.ts` - Handle `doToday` in task updates
- `src/core/statistics.ts` - Added `VelocityStats` interface and calculation using statusHistory
- `src/web/components/Statistics.tsx` - Added velocity UI with charts and metrics
- `src/web/components/TaskCard.tsx` - Added star toggle and clickable labels
- `src/web/components/TaskList.tsx` - Added Today filter, label filters, doToday toggle

## Technical Notes
- StatusHistory is already recorded on task creation and status changes
- Velocity metrics calculate from statusHistory entries
- Existing tasks without history show "-" for velocity metrics
- All new features sync with URL parameters for shareable links
<!-- SECTION:NOTES:END -->
