- Add editable drafts for AI-generated milestone and feature suggestions before acceptance
- Users can edit suggestion title and description before creating the actual items
- Draft edits persist when accepting individual or all suggestions
- Add empty/whitespace title validation to prevent accepting blank suggestions
- Add comprehensive tests for suggestion generation, editing, and acceptance
- Fix prop type mismatch between RoadmapsView and MilestoneCard components
- Add missing clearMilestoneSuggestions function to useRoadmaps hook
- Update refs to synchronize immediately with state for proper test behavior
- Add generateMilestoneSuggestions to API mock in component tests
- Add documentation for the AI suggestion feature in dashboard-guide.md
- Add dashboard API endpoints for roadmap feature suggestions
- Create useRoadmaps hook for fetching and managing roadmap data with suggestions
- Add feature suggestion UI to RoadmapsView with Accept All / Accept Individual buttons
- Render AI suggestions in MilestoneCard component
- Add CSS styling for suggestion buttons and interaction states
- Write comprehensive tests for useRoadmaps hook and RoadmapsView component
- Update dashboard guide documentation with feature suggestion usage
- Merge mobile Board and List tabs into unified Tasks tab in MobileNavBar
- Add Board/List toggle to Header component for switching views within Tasks tab
- Add comprehensive Header tests covering toggle functionality and keyboard navigation
- Update mobile feature access tests to reflect new tab structure
- Add mobile task view toggle CSS styles
- Add type toggle buttons (Command/AI Prompt) in simple schedule mode
- Show command input or AI prompt textarea based on selected type
- Add model provider/model ID fields for AI Prompt mode
- Restore simple type when editing existing schedules with single step
- Add comprehensive tests for type toggle behavior and validation
- Fix missing mocks in ScheduledTasksModal test
- Replace manual provider/modelId text inputs in schedule step forms with the standard CustomModelDropdown component
- Add model loading state (loading, error) in StepEditor with graceful error handling
- Fetch available models via fetchModels() API on mount for model selection dropdown
- Add comprehensive tests for model selector integration in schedule steps editor
- Add ScheduleForm tests covering multi-step mode with model selector validation
- Add MailboxView as a full-page navigation view replacing the modal-based approach
- Migrate MessageStore from filesystem to SQLite backend for message persistence
- Implement conversation grouping for inbox display with unread badge state
- Remove modal plumbing (useModalManager, AppModals exports) and simplify App.tsx
- Add evictStaleProcessing() to TriageProcessor for self-healing hung triage sessions
- Add comprehensive MailboxView tests and Header mailbox tests
- Update README documentation with MailboxView features
- Add CSS styles for MailboxView component
- Fix MobileNavBar tests for mailbox tab visibility
- Implement RoadmapsView component with drag-and-drop support for milestones and features
- Add milestone reorder via drag-and-drop with optimistic UI updates and API persistence
- Add feature reorder within milestones and cross-milestone move support
- Add useRoadmaps hook with full CRUD API for roadmaps, milestones, and features
- Add /roadmaps route with sidebar navigation to roadmap views
- Add comprehensive tests for API, useRoadmaps hook, and RoadmapsView component
- Update dashboard guide with roadmap management documentation
- Harden API with race-condition safety and proper error handling
- Add markOnboardingCompleted() to set completedAt timestamp when user finishes onboarding
- Add isOnboardingCompleted() to check if onboarding was completed (vs dismissed)
- Update ModelOnboardingModal to call markOnboardingCompleted on successful completion
- Skip onboarding auto-open when already completed locally
- Add completion state tracking tests in ModelOnboardingModal.test.tsx
- Add model-onboarding-state unit tests
- Update useAuthOnboarding to check local completion state before auto-opening
- Document localStorage completion state tracking pattern in .fusion/memory.md
- Resolve conflict in TerminalModal.test.tsx by keeping helpful loadAddon comment
- Add clarifying comment in mobile WebGL skip test
- Fix pre-existing typecheck errors in SettingsModal.tsx
The test was checking that loadAddon was never called with any object,
but fitAddon and webLinksAddon are both objects that are legitimately
loaded. The WebglAddon constructor check is sufficient to verify that
WebGL is not loaded on mobile.
- Add OnboardingResumeCard component shown when onboarding was dismissed but not completed
- Store onboarding step state in localStorage for session persistence
- Update App.tsx to render resume card when onboarding is resumable
- Add comprehensive tests for model-onboarding-state utility functions
- Add tests for OnboardingResumeCard component and App integration
- Use onResume callback pattern for consistency with modal API
- Add model-onboarding-state.ts module for persisting onboarding step state
- Create OnboardingResumeCard component with resume functionality
- Wire resume card into App.tsx (visible when onboarding is resumable and modal is closed)
- Add unit tests for state helpers and resume card
- Add integration tests for App.tsx resume card behavior
- Update documentation with resume banner behavior
- Fix missing contextVersionAtStart property declaration in useBadgeWebSocket.ts
- Pass recoverApprovedTriageTask and getSpecifyingTaskIds callbacks from
TriageProcessor to SelfHealingManager in InProcessRuntime. Without these,
approved triage tasks stuck in 'specifying' status were never recovered.
- Remove duplicate imports in ModelOnboardingModal.tsx that caused TypeScript
errors (duplicate identifiers: useEffect, useRef, ToastType, fetchAuthStatus).
- Add mock for model-onboarding-state in App.test.tsx.
- Add core test for title summarization behavior under saturated task lane conditions
- Add engine test for heartbeat execution when task lanes are saturated
- Fix experimentalFeatures test to correctly expect merge semantics (not replacement)
- Ensure tests validate task selection and execution under concurrency limits
- Fix store.test.ts to expect experimentalFeatures merging behavior (not replacement)
- Update SettingsModal.test.tsx nav item count from 14 to 15 for Experimental Features section
- Note: RoadmapStore implementation was already merged to main via previous squash