- Update mission route ID validation to accept generated ID format (mission-types.ts, mission-routes.ts)
- Add MissionManager component tests for generated ID handling
- Add mission E2E tests covering ID generation and validation flows
- Update TaskDetailModal to work with new mission ID format
- Update documentation (README, dashboard README) with generated ID examples
- Relocate Save/Cancel action buttons from inline position to TaskDetailModal footer
- Add regression tests for footer button placement and visibility
- Remove unused file-service tests and FileBrowserModal test code
- Clean up dead CSS rules from styles.css
- Update dashboard README to reflect current architecture
- Move 'Create Refinement Task' button from modal footer into input group adjacent to feedback textarea
- Wrap char count and submit button in new .detail-refine-input-group flex container
- Add CSS for input group with space-between layout and gap
- Add 3 tests verifying button placement, disabled/enabled rules, and sibling structure
- Update dashboard README with refinement modal UX documentation
- Add slugify and generatePresetId utilities with collision handling for unique preset IDs
- Remove manual ID input field from preset editor UI in SettingsModal
- Auto-generate preset IDs server-side from name on creation
- Simplify Header tests by removing ID-related test cases
- Deduplicate tablet header controls tests by importing from shared Header tests
- Remove unused CSS rules for removed ID input field
- Update reviewer to pass through preset ID generation logic
- Replace single overflow terminal button with split-action dropdown showing quick-run scripts
- Add script submenu in header for launching predefined commands from compact view
- Add comprehensive regression tests for split-button behavior and quick-run script actions
- Update dashboard README to document the new split-action terminal overflow UI
- Adjust title summarization threshold and clean up related test/store changes
- Add mobile responsive CSS for Activity Log modal with adaptive breakpoints
- Add regression test coverage for mobile activity log layout
- Add tests for ActivityLogModal responsive behavior
- Update README with responsive layout documentation note
- Fix useActivityLog hook to properly load activity log entries from the store
- Add comprehensive test coverage for useActivityLog hook with 243 lines of tests
- Restore missing ActivityLogModal CSS styles (modal overlay, list, animations)
- Add ActivityLogModal component tests for empty state, loading, and error handling
- Register activity log route in App.tsx
- Update README with activity log data source documentation
- Add changeset for patch release
- Restructure Header.tsx to render Scripts as a submenu of Terminal in compact/tablet overflow menus
- Add submenu toggle state, keyboard navigation, and click-outside-to-close behavior
- Add CSS for nested submenu styling with slide-in animation and depth indicators
- Update Header tests to verify Scripts nested under Terminal with toggle interaction
- Update mobile-header-controls and tablet-header-controls tests for new menu hierarchy
- Update README documentation to reflect the Terminal > Scripts submenu structure
- Replace plain <select> dropdown with styled agent-state-filter container featuring Filter icon, hover/focus states, and consistent dashboard theming
- Add aria-label for accessibility on the state filter dropdown
- Add CSS styles for .agent-state-filter wrapper with border, color transitions, and focus ring
- Add unit test for styled filter container rendering and aria-label presence
- Document Agents view features (state filter, view modes, CRUD, health monitoring) in README
- Close the Scripts modal immediately before making the async script-run API call, preventing the modal from interfering with the terminal handoff
- Add regression tests covering script-to-terminal handoff behavior (modal close timing, API call sequencing, error handling)
- Document the script-run modal handoff behavior in the dashboard README
- Move Plan and Subtask buttons next to the description input in QuickEntryBox, InlineCreateCard, and TaskForm
- Improve action button layout with consistent icon+label pattern and disabled states
- Add CSS styles for new action button group and description-adjacent controls
- Add regression tests for all three task creation surfaces ensuring buttons appear next to description
- Document the description-adjacent AI controls pattern in dashboard README
- Increase inline editor textarea default rows from 1 to 4 for better multi-line editing
- Add mount-time auto-resize to fit content on initial render
- Add regression tests for taller inline editor behavior
- Update documentation to reflect the new taller editor defaults
- Add CSS rules for executor status bar footer with safe-area padding
- Update App.tsx and AgentsView.tsx layout to accommodate footer space
- Add regression tests for footer-safe project layout (App.test.tsx)
- Add unit tests for ExecutorStatusBar component
- Document footer-safe dashboard layout behavior in README
- Redesign ChangedFilesModal as a two-view navigation flow (file list → file detail) with back navigation
- Fix theming and loading/reading ergonomics for the diff viewer
- Enhance useChangedFiles hook with improved loading and error states
- Add comprehensive tests for modal navigation, diff rendering, and edge cases
- Update styles with mobile-friendly layout and diff viewer improvements
- Update dashboard README with mobile navigation description
- Add ScriptRunDialog component with xterm.js terminal emulation and real-time streaming
- Align saved-script launches with backend contract (POST /api/scripts/:id/run)
- Wire dialog into App.tsx with open/close state management
- Add comprehensive styles for dialog overlay, terminal area, and action buttons
- Add unit tests for ScriptRunDialog and App integration
- Document ScriptRunDialog usage in dashboard README
- Share task list data between footer ExecutorStatusBar and board view to ensure consistent counts
- Refactor MissionManager component with improved structure and readability
- Refactor useExecutorStats hook and simplify test coverage
- Update ExecutorStatusBar component and tests for accurate count display
- Consolidate and clean up dashboard styles.css
- Update footer status bar documentation in README
- Rebuild MissionManager component with updated modal shell and list view layout
- Refactor and reorganize dashboard CSS styles (551 lines changed)
- Remove terminal-related test files and simplify terminal service/useTerminal hook
- Clean up global settings: remove unused global-settings test and simplify settings types
- Remove dead code from App.tsx, SettingsModal.tsx, and dashboard README
- Redesign MissionManager component with improved interaction patterns and shell layout
- Refactor Board, Column, and QuickEntryBox components for consistency
- Add comprehensive CSS styles (742 lines) for mission manager and related components
- Add MissionManager test suite (324 lines) covering new interaction behavior
- Update Board, Column tests; remove obsolete ListView and QuickEntryBox tests
- Clean up unused code in App.tsx and ListView.tsx
- Update Missions section in README and dashboard README to reflect actual UI behavior
- Pass autoExpand={false} to QuickEntryBox in Column.tsx so the board view starts collapsed
- Add test verifying autoExpand prop is false for board columns
- Update QuickEntryBox mock in Column tests to capture autoExpand prop
- Wire favorite model state into QuickEntryBox with star toggle and dropdown integration
- Add favorite model selector to Board and Column quick-add components
- Pass favorite models through ListView and App context to entry surfaces
- Add regression tests for QuickEntryBox, Board, Column, and ListView favorite behavior
- Update dashboard README to document quick-add favorite model support
- Remove unused recovery-policy module and dead code from executor/triage/scheduler
- Clean up unused types from core and simplify store methods
- Add tablet compact-header breakpoint (769px–1024px) with condensed layout
- Implement responsive Header component with mobile/tablet/desktop modes
- Add tablet-header-controls test suite (373 lines) for compact mode behavior
- Update existing Header and mobile-header-controls tests for new responsive tiers
- Refactor server routes and styles.css for three-tier responsive support
- Document responsive header architecture in README
- Simplify TaskCard inline editing to support description-only editing
- Remove terminal/PTY features: useTerminal hook, TerminalModal, xterm integration
- Remove project store resolver caching and session file route handling
- Simplify executor worktree pool and remove terminal-related code
- Clean up dead code from dashboard server, styles, and engine
- Update QuickEntryBox and all related tests for the simplified editing model
- Remove unused .gitignore entries and update dashboard README
- Reset isDisclosureExpanded in QuickEntryBox resetForm so disclosure collapses after task creation
- Remove sticky disclosure persistence from QuickEntryBox component
- Preserve terminal sessions across transient WebSocket disconnects with buffer/replay
- Buffer and replay initial terminal state for prompt visibility on reconnect
- Update tests for non-persistent disclosure, terminal reconnect, and server routes
- Remove unused UsageIndicator tests and TaskDetailModal test cleanup
- Display resolved executor and validator model names in the Agent Log header of TaskDetailModal
- Add comprehensive UI tests for model resolution in TaskDetailModal
- Add missing fetchSettings mock to PlanningModeModal test
- Remove unused project-store-resolver module, UsageIndicator tests, and usage tests
- Clean up unused styles and API references
- Restructure TerminalModal header layout to support mobile viewports with proper flex sizing
- Add CSS styles for responsive terminal header with title truncation and icon wrapping
- Add inline comment documenting mobile header layout contract
- Add comprehensive TerminalModal test suite covering mobile layout, resize behavior, and header interactions
- Clean up unrelated store test and changeset remnants from prior work
- Fix mobile visual viewport positioning to handle dynamic viewport changes (address bar, keyboard)
- Improve CustomModelDropdown with better mobile scroll/resize handling
- Add comprehensive visual viewport regression tests for CustomModelDropdown
- Refactor build-exe tests for cleaner structure and coverage
- Add favorite model selection to QuickEntryBox and InlineCreateCard components
- Wire up model favorites in TaskForm and TaskDetailModal
- Add model favorites management UI to SettingsModal
- Add tests for favorites in InlineCreateCard, QuickEntryBox, TaskForm, ListView, and SettingsModal
- Remove unused CommitDiffTab component and related tests
- Create CommitDiffTab component with commit list and inline diff display
- Integrate Commits tab into TaskDetailModal with conditional visibility
- Add comprehensive tests for CommitDiffTab rendering, selection, and diff display
- Add TaskDetailModal tests for tab visibility based on task PR info
- Remove stale changeset and unused store test code
- Extract shared TaskForm component from NewTaskModal with all form fields and validation logic
- Integrate TaskForm into NewTaskModal, replacing duplicated form code
- Integrate TaskForm into TaskDetailModal edit mode for consistent editing experience
- Add comprehensive tests for TaskForm, Header, and updated modal components
- Clean up removed/obsolete tests and fix SSE, settings, and comment components
- Add overflow-x: hidden and word-break constraints to AgentLogViewer
- Apply overflow-hidden to pre/code blocks and ANSI span containers
- Add unit tests verifying overflow constraint styles on log elements
- Replace inline model dropdown in InlineCreateCard with modal-based ModelSelectionModal
- Add model selection button to Header and SettingsModal for unified access
- Add comment threading support in TaskComments component
- Remove unused useTerminal hook and usage tracking module
- Update tests for modal-based model selection and new components
- Remove useSteeringComments toggle from SettingsModal and task comment UI
- Unify TaskComments to always use the steering comment path
- Add Help button in Header linking to documentation
- Update SettingsModal and TaskComments tests for unified comment behavior
- Clean up obsolete dual-mode comment tests
- Merge separate Model and Model Presets sections into unified Models section in SettingsModal
- Add Models settings button to Header for quick access
- Remove unused useTerminal hook and usage tracking code
- Update SettingsModal and Header tests for consolidated UI
- Simplify usage.ts by removing dead export and test coverage
- Remove Manage Agents button from Header component (accessible via sidebar)
- Remove associated onClick handler and prop threading from App.tsx
- Remove Header test cases for the deleted button
- Remove unused useTerminal hook and its tests
- Fix state desync between isExpanded and isDisclosureExpanded in QuickEntryBox component
- Ensure both states update together to prevent UI inconsistencies
- Add regression tests for state synchronization scenarios
- Add 72 lines of new test coverage in QuickEntryBox.test.tsx
- Add ScriptsModal test verifying overlay gets 'open' class when modal is shown
- Ensures modal visibility state is correctly reflected in DOM class list
- Add 'open' class to modal overlays in AgentListModal, MissionManager, ScriptsModal, and WorkflowStepManager
- Add Header component tests for overflow menu callbacks and modal visibility
- Hide ProjectSelector on mobile via hidden className and CSS media query
- Add project selector as menu item in mobile overflow menu
- Add CSS safety net (max-width: 767px) to ensure selector stays hidden
- Add comprehensive tests for mobile project selector visibility behavior
- Add browse-directory API endpoint and client for native folder selection
- Create DirectoryPicker component with manual input, browse button, and validation
- Redesign SetupWizardModal to use DirectoryPicker for project path selection
- Add comprehensive tests for DirectoryPicker and SetupWizardModal
- Remove bundled fusion skill and related extension/sync code from CLI package
- Auto-expand step list on TaskCard when triage tasks have done/skipped steps
- Update existing triage test to use pending steps for fresh task scenario
- Add tests for re-triaged tasks with completed and skipped steps
- Add projectId parameter to NtfyNotifier constructor and sendMessage method
- Include projectId in notification deep links for multi-project context
- Add unit tests for deep link URL construction with projectId in App.tsx
- Add unit tests verifying project ID handling in notifier