- task-service: add missing review field to parseTaskFile return
- TaskDetailPanel: useDebouncedSave now tracks changed fields only
(prevents overwriting server state with stale local data)
- Merge & Close button in ReviewPanel when approved
- Confirmation dialog with branch details
- Merge worker that merges to base, deletes worktree, marks done
- Loading state during merge operation
- Panel auto-closes on successful merge
- ReviewState type with decision, timestamp, summary
- ReviewPanel component with approve/changes/reject buttons
- Summary input for changes-requested and rejected
- Current review status display with clear option
- Review tab in task detail panel
- Comment count display in review panel
- Add review comments to task schema
- Inline comment input on diff lines
- Comment display with amber highlighting
- Comment counts in file tree and headers
- Remove comment with X button
- Auto-save comments with debounced update
US-301: Agent configuration
- Settings UI for enabling/disabling agents
- Default agent selection
- Shows command and args for each agent
US-302: Start agent on task
- AgentService for process management
- POST /api/agents/:taskId/start
- Spawns agent in worktree directory
- Creates attempt record in task
US-303: Real-time agent output streaming
- WebSocket subscription for agent output
- useAgentStream hook with reconnection
- Terminal-style output panel with colors
- Auto-scroll with manual override
US-304: Agent conversation log persistence
- Logs saved to .veritas-kanban/logs/
- Markdown format with task metadata
- Full stdin/stdout/stderr capture
US-305: Send follow-up message to agent
- stdin input to running process
- Message input field in UI
- Displays with 'You:' prefix
US-306: Stop agent
- POST /api/agents/:taskId/stop
- SIGTERM then SIGKILL after timeout
- Confirmation dialog
- Marks attempt as failed
US-307: Agent completion handling
- Detects process exit
- Updates attempt status (complete/failed)
- Updates task status to 'review'
- WebSocket notification
- GitSection component for task detail panel
- Repo dropdown from configured repos
- Base branch dropdown (fetched from repo)
- Auto-generated feature branch from task title
- Git fields saved to task file via debounced save
- Only shows for code task type
US-104: Kanban board UI shell
- Loading skeleton while fetching
- 4 columns with task counts
- Empty state with drop zone highlight
US-105: Task card component
- Type icons and color-coded borders
- Priority badges
- Project tags
- Tooltip on hover for full title
- Click opens detail panel
US-106: Create task dialog
- All fields working
- Validation and defaults
US-107: Task detail panel (new)
- Slide-out sheet from right
- Inline editing for all fields
- Debounced auto-save (500ms)
- Delete with confirmation dialog
- Escape key to close
- Metadata display (created/updated)
US-108: Drag and drop
- Visual feedback (ring highlight, ghost card)
- Status update on drop
- Persists to file via API
Added shadcn components: sheet, skeleton, tooltip, alert-dialog
- Task schema with full types in shared package
- TaskService with injectable paths for testing
- gray-matter for markdown frontmatter parsing
- 15 unit tests for parser/service
- Full CRUD API with zod validation
- Fixed undefined value handling in frontmatter
- Updated sprint tracking