- Fix ActivityLogModal to correctly select between project and central activity logs based on project context
- Add regression tests verifying data source selection logic for single-project and multi-project scenarios
- Update README documentation with activity log data source rules and selection behavior
- Replace obsolete test files (SettingsModal, TaskCard, App, dashboard-footer-mobile-layout) with targeted tests for NewTaskModal and TaskForm
- Fix SettingsModal component reference and update TaskCard preset badge logic
- Clean up dead code in engine pi.ts and its test
- Add preset indicator styles in dashboard CSS
- Update dashboard README to clarify preset availability across all new-task surfaces
- Refactor TaskChangesTab to use merge commit diff for done/archived tasks instead of branch diff
- Add CommitDiffTab component integration for displaying merge commit changes
- Remove legacy API endpoints and tests for branch-based diff on completed tasks
- Add comprehensive test suite for TaskChangesTab covering all task lifecycle states
- Document merge commit diff behavior in dashboard README
- Add expand button to TaskCard for opening task detail modal on mobile
- Implement CSS scroll-snap on board columns for swipe-friendly navigation
- Add touch-action and overscroll-behavior styles for smoother mobile scrolling
- Add comprehensive tests for mobile scroll snap behavior and expand button
- Document expand button and swipe-friendly board behavior in README
- Fix modal entry flow, navigation, and reset behavior for mobile
- Apply mobile theme fixes and navigation improvements across dashboard
- Enhance ChangedFilesModal with mobile-friendly behavior and responsive layout
- Add comprehensive tests for ChangedFilesModal mobile interactions
- Fix orphaned pause path in executor and remove unused code
- Update dashboard README with mobile changed-files viewer documentation
- Add mobile-specific CSS styles for improved responsiveness
- Remove stale changeset for orphaned pause path fix
- Add backend API routes for remote commit lists (local-ahead, remote-ahead, all commits by branch)
- Surface ahead/behind commit counts and expandable commit lists in Remotes tab UI
- Add expand/collapse rows showing commit hash, message, author, and relative date
- Style commit list rows with alternating backgrounds and monospace hashes
- Add comprehensive tests for API routes and GitManagerModal component
- Update README documentation for Git Manager Remotes tab
- Replace hardcoded border-radius value in AgentsView agent create form with CSS variable token
- Update dashboard README styling description for the Agents View create-form
- Add unit test for agent create form border-radius token usage
- Route saved script launches from App.tsx directly into TerminalModal, removing the ScriptRunDialog component entirely
- Add openGeneration handling and initialCommand support to TerminalModal for reliable script execution
- Add openGeneration to initialCommand effect dependencies to prevent stale closures
- Remove 114 lines of now-unused styles.css rules related to ScriptRunDialog
- Update tests: replace ScriptRunDialog tests with TerminalModal execution tests, update App routing tests
- Update README to document terminal-based script launch behavior
- Extend ModelSelectionModal with preset picker and apply-to-task wiring
- Wire preset state through QuickEntryBox and InlineCreateCard new-task flows
- Add regression tests for preset selection in ModelSelectionModal, QuickEntryBox, InlineCreateCard, and ListView
- Update dashboard README with preset-in-quick-add documentation
- Clean up unused footer-safe-layout test and adjust styles
- 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
- 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
- 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
- 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
- Render the custom model dropdown menu in a portal so it escapes clipped stacking contexts
- Update dashboard styles to give the floating model menu reliable overlay positioning above quick entry surfaces
- Refresh dropdown-focused tests to cover portal layering behavior in quick entry and model selector flows
- Document the layering behavior in the dashboard README for future UI maintenance
- resync dashboard tasks after stream reconnects and when the tab becomes visible again
- add regression coverage for stale board recovery and usage-fetch edge cases
- replace direct Claude usage API calls with the CLI-based usage command
- document the dashboard resync safeguards and include a published package changeset
- Add backend API endpoint /api/tasks/:id/diff for file diffs
- Add useChangedFiles hook for fetching and managing diff state
- Create ChangedFilesModal component with file list and diff viewer
- Integrate modal with TaskCard via files changed badge click
- Add CSS styling for changed files layout and diff display
- Add keyboard navigation (Escape to close)
- Include unit tests for ChangedFilesModal component
- Optimize backup tests using fake timers instead of real timeouts
- Enable parallel file execution in core, engine, CLI, and dashboard packages
- Add inline test helpers to reduce dependencies in dashboard routes tests
- Update executor tests with exact command matching and improved assertions
- Update AGENTS.md with test optimization patterns (fake timers, unique temp dirs)
- Add backend API endpoint to get changed files and diffs for a task worktree
- Add useChangedFiles hook for fetching and managing diff data
- Create ChangedFilesModal component with file list and diff viewer
- Integrate modal into TaskCard with click handler to view changes
- Add frontend API integration and type definitions
- Include unit tests for hook and modal components
- Add changeset for the new feature
- Remove deprecated mission-related test files
- Rename all KB_* environment variables to FUSION_* prefix across CLI and dashboard
- Update CLI runtime files (native-patch.ts) and build configuration
- Update dashboard server, badge-pubsub, GitHub webhooks, and terminal service
- Update test files to use new FUSION_API_KEY and related env vars
- Update documentation in README, AGENTS.md, STANDALONE.md, and dashboard README
- Update changeset files with new environment variable names
- Add GlobalSettingsStore with file-based storage in ~/.pi/kb/settings.json
- Implement two-tier hierarchy: global (user prefs) and project (.kb/config.json)
- Update TaskStore to merge settings with project overriding global
- Add API endpoints: GET/PUT /api/settings/global and GET /api/settings/scopes
- Add scope indicators (🌐 global, 📁 project) to settings modal sidebar
- Implement scope-aware save: only save active scope, reject global-only fields
- Add frontend API functions for global settings operations
- Add tests for GlobalSettingsStore, settings routes, and SettingsModal scopes
- Create changeset for the new settings hierarchy feature
- Update AGENTS.md with settings hierarchy documentation
- Add verified POST /api/github/webhooks endpoint with signature verification
- Implement GitHub App installation token authentication for API calls
- Add webhook handlers for pull_request, issues, and issue_comment events
- Support multi-task resource matching by parsed badge URL
- Retire live GitHub polling service in favor of push-based updates
- Add comprehensive webhook integration and unit tests
- Keep 5-minute REST refresh endpoints as fallback