- Extract uploadFile helper from file input handler for reuse
- Add clipboard paste listener to upload pasted images automatically
- Add drag-over and drop handlers on modal for drag-and-drop image upload
- Add comprehensive tests for paste upload, non-image paste skip, uploading state, and drop upload
- Update useFlashOnIncrease default duration from 700ms to 1400ms
- Update CSS count-flash-bg animation duration to 1400ms
- Update test assertions to match new 1400ms duration
- Add blockedBy field to Task type and core store
- Update scheduler to set blockedBy when deferring tasks due to file-scope overlap
- Render file-scope overlap badge on TaskCard in dashboard
- Add tests for blockedBy store logic, scheduler deferral, and TaskCard badge
- Simplify and refactor existing executor, triage, and CLI command code
- Add position: relative and z-index: 1 to .card-meta so dep tooltip renders above .card-title
- Change tooltip background from var(--bg-card) to var(--surface) for correct theming
- Add test asserting data-tooltip attribute contains dependency IDs as readable string
- Expand MIME type support for text file uploads
- Add --attach flag to CLI task create command
- Surface attachments to triage agent with image content support
- Reference attachments in executor prompt for task execution context
- Add drag-and-drop file upload on dashboard task cards
- Add focusout listener that cancels InlineCreateCard when focus leaves with empty input
- Preserve card when focus moves between elements inside the card
- Treat whitespace-only input as empty for cancel purposes
- Add comprehensive tests for blur-to-cancel behavior
- Update board grid to use minmax(260px, 1fr) for minimum column widths
- Replace overflow: hidden with overflow-x: auto for horizontal scrolling
- Add min-width: 260px to column class for consistent sizing
- Add Board test verifying id='board' attribute for scroll targeting
- Update TaskCard and TaskDetailModal to display description as fallback instead of repeating the task ID
- Remove unused hooks (useFlashOnIncrease), routes, assets, and dead CSS
- Clean up engine modules (executor, scheduler, triage, worktree-names) removing unused code
- Update and add tests for title fallback behavior in TaskDetailModal
- Fix pre-existing type error in test helper (types.ts)
- Set task status to 'failed' on execution failure in engine executor
- Add failed indicator styling on TaskCard component
- Add POST /tasks/:id/retry API endpoint and client function
- Add retry button in TaskDetailModal for failed tasks
- Add tests for failed indicator, retry endpoint, and modal behavior
- Add recycleWorktrees toggle to the Worktrees section in SettingsModal
- Wire checkbox state to settings store
- Add unit tests for recycleWorktrees setting behavior
- Exclude checkbox inputs from full-width text input styles using :not([type="checkbox"])
- Add dedicated checkbox styling with proper size, accent color, and cursor
- Add test verifying groupOverlappingFiles input renders as a checkbox
- Set status to queued in scheduler for file-scope-deferred tasks
- Normalize queued badge display in TaskCard component
- Add TaskCard unit tests for queued status rendering
- Add scheduler tests for file-scope-deferred task queuing
- Move logo.svg to correct public directory
- Add worktree-names module with adjective-animal name generator (generateWorktreeName)
- Update executor to assign humanized random worktree names and support dependency worktree reuse
- Remove task-ID fallback paths from merger and store; add shared worktree cleanup via findWorktreeUser
- Remove worktree pool module and related scheduler/integration tests
- Update dashboard worktree label tests and add JSDoc documentation for worktree naming
- Fix prompt heading to use only task ID when title is absent, preventing description duplication
- Strip leading markdown heading from TaskDetailModal since the modal has its own header
- Add store tests covering prompt generation for tasks with and without titles
- Update TaskDetailModal tests to verify heading stripping and single description rendering
- Convert fetchTaskDetail to async with explicit fetch call
- Add single retry attempt on failure (2 max attempts)
- Parse and throw server error message on final failure
- Add paste handler to extract and preview images from clipboard
- Track pending images with object URL previews and cleanup on unmount
- Upload pasted images as attachments on task creation
- Add styled image preview strip with remove button
- Add CSS for preview thumbnails with hover-to-delete overlay
- Add sidebar navigation structure with section links to SettingsModal
- Implement sidebar and form layout styles in styles.css
- Add SettingsModal sidebar navigation tests for section switching
- Update SettingsModal component with multi-section support
- Add core types and store methods for attachment CRUD operations
- Add dashboard API routes for upload, download, and delete of attachments
- Add attachment UI in TaskDetailModal with upload and management controls
- Add CLI 'attach' command for attaching files to tasks
- Update documentation with attachment feature usage details
- Add markdown-body base styles in dashboard styles.css
- Remove backdrop and enable scroll on task detail prompt rendering
- Add TaskDetailModal unit tests with vitest jsdom environment
- Update vitest config with globals and jsdom support
- Clean up unused test files and legacy concurrency module
- Add agent-active CSS with animated purple border glow using in-progress theme color
- Apply agent-active class conditionally in TaskCard component
- Add TaskCard agent-active unit tests
- Move TaskCard tests to __tests__ directory
- Route now returns 404 only for ENOENT, 500 for transient errors
- store.getTask() retries once after 50ms on non-ENOENT failures
- Added route tests for success, 404, and 500 cases
- Updated vitest config to include src/**/*.test.* files
- Add step completion progress bar to TaskCard component
- Color progress fill dynamically based on column status
- Add card-progress, card-progress-bar, card-progress-fill, and card-progress-label styles
- Show completed/total step count label beside progress bar