- Add ProjectSelector component with search and status indicators
- Integrate ProjectSelector into Header with mobile responsive layout
- Update App.tsx with project selection handlers and view mode switching
- Add ProjectSelector CSS styles with status color coding
- 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
- Add SetupWizardModal for first-run project registration with auto-detection
- Add project overview and selector component styles (560+ lines)
- Update ProviderIcon component with multi-project support
- Add project API routes and registration endpoints
- Update core types and exports for multi-project architecture
- Extend CLI with project management commands
- Remove obsolete changeset and test file
- Add report_build_failure tool to merger agent for explicit build failure signaling
- Run buildCommand before finalizing merge, abort if build fails with git reset --merge
- Treat build failures as fatal errors (no retry) and keep task in in-review
- Add build verification instruction to executor system prompt
- Update executor to use steeringComments field for mid-execution guidance
- Fix sticky bottom actions positioning in NewTaskModal with CSS improvements
- Add changeset for modal button position fix
- Refactor CLI project commands with cleaner error handling and logic
- Update project resolver tests for improved coverage and reliability
- Sync settings and task command improvements from core type changes
- Add toggle button (ChevronDown/ChevronUp) to QuickEntryBox (list view) and InlineCreateCard (board view)
- Replace auto-expand behavior with manual toggle control
- Add CSS styles for collapsed/expanded states and toggle button positioning
- Update tests to verify toggle behavior
- Provide cleaner default UI while keeping advanced options discoverable
- Add persistent disclosure state with localStorage to QuickEntryBox
- Add toggle button for manual expand/collapse with ChevronUp/Down icons
- Change expanded controls to show based on user preference, not focus
- Add comprehensive CSS for toggle button and expanded/collapsed states
- Reorganize mobile header overflow menu (Usage and Activity Log buttons)
- Update all QuickEntryBox tests for new disclosure behavior
- Add flex layout to .gm-modal with display: flex, flex-direction: column, overflow: hidden
- Add flex-shrink: 0 to modal header to prevent compression
- Change .gm-content min-height from 400px to 0 for flexible sizing
- Fix mobile responsive styles: height: auto with max-height: 90vh
- Reduce mobile .gm-content min-height from 300px to 200px
- Remove unused Task Changes Tab styles
- Add project subcommands: list, add, remove, show, set-default, detect
- Add --project flag support for all task commands
- Create project-context.ts utilities for project resolution
- Add defaultProjectId to GlobalSettings type
- Implement project auto-detection from cwd
- Update CLI argument parsing for global --project flag
- Add multi-project CLI documentation to AGENTS.md
- Set ID column width to 70px for consistent sizing in list view
- Set header cell width to match data cells at 70px
- Remove max-width constraint on title cells for better space utilization
- Update responsive styles for title cells
- Add modifiedFiles and baseCommitSha fields to task schema for tracking changes
- Capture list of modified files during task execution in the executor
- Add GET /tasks/:id/diff API endpoint to retrieve file list and patches
- Create TaskChangesTab component with expandable file diffs
- Integrate Changes tab into TaskDetailModal for in-progress, in-review, and done tasks
- Add CSS styles for diff viewer with syntax highlighting
- Update API client with fetchTaskDiff function and Project Management types
- 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 disclosure state with expanded/collapsed toggle button
- Implement disclosure pattern CSS styles for visual feedback
- Update QuickEntryBox to support expandable/collapsible interface
- Fix CSS variable reference: use --card-hover instead of non-existent --background-hover
- Set default disclosure state to expanded (true) for backward compatibility
- Add comprehensive tests for disclosure state, toggle behavior, and interactions
- Add width: 100% to .list-cell-title CSS class
- Ensures title column expands to fill available space in list view
- Apply fix in both default and responsive media query sections
- Add toggle button to QuickEntryBox (list view) for expand/collapse
- Add toggle button to InlineCreateCard (board view) for expand/collapse
- Add CSS styles for toggle buttons and collapsed states
- Update component tests for new toggle functionality
- Add changeset for the toggle button feature
- Add modifiedFiles and baseCommitSha tracking during task execution
- Create GET /tasks/:id/diff API endpoint for file list and patches
- Build TaskChangesTab component with expandable file diffs
- Integrate Changes tab into TaskDetailModal for in-progress, in-review, and done tasks
- Add database columns and types for diff tracking
- Update executor to capture modified files during agent sessions
- Fix .gm-content min-height from 400px to 0 for proper flex behavior
- Add mobile responsive styles to prevent modal overflow
- Create changeset for patch release
- Reduce ID column width in list view for better space utilization
- Remove deprecated AgentsView component (consolidated into other views)
- Remove TaskChangesTab component (replaced by unified diff viewer)
- Add project-runtime.ts foundation for multi-project runtime architecture
- Fix duplicate variable declaration in SettingsModal
- Update tests for removed components and new hooks behavior
- Add 100dvh fallback after 100vh for proper mobile browser chrome handling
- Fixes board overflow issues on mobile Safari/Chrome where dynamic toolbars affect viewport
- Maintains backward compatibility with 100vh for older browsers
- Add project API methods and types (fetchProjects, registerProject, fetchProjectHealth, etc.)
- Add ProjectCard component with health metrics, status badges, and pause/resume actions
- Add server-side project management routes for multi-project orchestration
- Add ActivityFeed component with grouped entries and project badges
- Add SetupWizard component with 5-step project creation flow
- Fix TypeScript errors in server routes for listProjects and getGlobalConcurrencyState
- Add baseCommitSha field to tasks for diff computation baseline
- Track modified files in executor and store in database
- Add /api/tasks/:id/diff endpoint to serve unified diffs
- Add getTaskDiff() API client function in dashboard
- Create TaskChangesTab component with file list and diff viewer
- Integrate Changes tab into TaskDetailModal with proper styling
- Add changeset for the new diff viewer feature
- Reduce ID column width in list view for better space utilization
- Remove duplicate variable declaration in SettingsModal
- Resolve merge conflict in types.ts
- Speed up tests with increased file parallelism across packages
- Refactor backup tests to use fake timers for faster execution
- Clean up styles and test configurations
- Add 100dvh fallback for board height to handle mobile browser chrome
- Keep 100vh as fallback for older browsers
- Create patch changeset for @gsxdsm/fusion package
- Import getDefaultProject from project-context.js instead of duplicating
- Remove local getDefaultProject implementation in project.ts
- All 6 tests still passing
- Add media query for tablet screens (max-width: 768px) with 70vh max-height
- Add media query for mobile screens (max-width: 640px) with 60vh max-height
- Center dropdown horizontally using transform translateX
- Set responsive width with viewport calculation and min-width unset
- Add horizontal overflow scrolling to .detail-tabs for mobile viewports
- Add -webkit-overflow-scrolling: touch for smooth momentum scrolling
- Hide scrollbars with scrollbar-width: none and ::-webkit-scrollbar
- Change .detail-tab from flex:1 to flex-shrink:0 to prevent tab compression
- Add comprehensive e2e test for steering comments injection in executor
- Verify system prompt steering comments are correctly injected
- Test covers executor initialization and prompt construction
- Add listPullRequests and getPullRequest methods to GitHubClient
- Add /github/pulls/fetch and /github/pulls/import API endpoints
- Add apiFetchGitHubPulls and apiImportGitHubPull frontend API functions
- Add tabbed UI for Issues and Pull Requests in GitHubImportModal
- Add comprehensive PR tab tests (14 new tests)
- Include changeset for the new PR tab feature
- Add Step types to core data model (command, validation, approval steps)
- Update AutomationStore CRUD operations for step management
- Refactor CronRunner for sequential step execution with per-step config
- Add Dashboard API routes for step CRUD and step-aware schedule updates
- Create ScheduleStepsEditor component for visual step configuration
- Add StepTypeBadge component for step type visualization
- Update ScheduleCard and ScheduleForm to display and manage steps
- Add comprehensive test coverage for stores, runner, and components
- Add changeset for patch release
- Add AI text refinement backend service with OpenAI/Anthropic integration
- Add /api/refine-text API endpoint with error handling
- Add QuickEntryBox AI refine button with style presets menu
- Add NewTaskModal AI refine feature for task description editing
- Add comprehensive tests for backend service, API, and components
- Add changeset for the new feature
- 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 workspace file APIs and hooks for session-scoped file browsing
- Create WorkspaceSelector component for switching between workspaces
- Update FileBrowserModal with workspace mode and improved UX
- Add files button to header with workspace-aware file browsing
- Add session files indicator to task cards for quick file access
- Include comprehensive tests for all new components and hooks
- Fix FileEditor height with flexbox constraints (flex-1/min-h-0 pattern)
- Add test for markdown preview scrollability (scrollable markdown body)
- Remove planning validator models feature from SettingsModal and engine
- Clean up related types in @kb/core and changeset files
- Add word wrap toggle button with WrapText icon to FileEditor
- Fix markdown preview scrolling with height: 100% CSS
- Add comprehensive tests for word wrap toggle and scrollability
- Move QuickEntryBox from below headers to above the table in ListView
- Update CSS to support new positioning with sticky header layout
- Adjust ListView component structure for better visual hierarchy
- Update ListView tests to reflect new component ordering
- Add flex: 1 to allow textarea to fill available space in flex container
- Add min-height: 0 to prevent flexbox min-height constraints from limiting growth
- Decrease vertical spacing between task ID and title in task cards
- Fix horizontal scrolling overflow on mobile devices
- Update dashboard styles.css with compact layout adjustments
- Add mobile view state and screen size detection in FileBrowserModal
- Add back button and conditional layout with CSS classes for mobile/desktop
- Add mobile CSS for two-state layout (file list and editor views)
- Add comprehensive tests for mobile view interactions and navigation
- Add changeset for release notes