- Add new theme IDs (nord, dracula, gruvbox, tokyo-night) to core types and ThemeSelector component
- Add CSS custom properties for all four themes covering background, text, accent, border, and surface colors
- Add theme validation sync, bootstrap logic, and unit tests for ThemeSelector and useTheme hook
- Update GitManagerModal to support new theme-aware styling
- Update README theme system documentation with expanded theme list
- Add changeset for published package
- Add openrouterModelSync setting to eagerly fetch OpenRouter model catalog at
dashboard startup so the model picker shows all available models
- Add toggle in Settings → Models to disable the sync
- Add mission-interview session management module for AI-guided mission specs
- Include tests for the sync opt-out behavior
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Fix executor bug where tasks paused during execution with a graceful session exit were silently dropped instead of moved back to todo
- When session.dispose() resolves the prompt without throwing, the paused-aborted flag now triggers moveTask(todo) so the scheduler can resume after unpause
- Add executor test suite covering pause via graceful exit, pause via abort error, and pause during session disposal
- Document corrected pause/unpause behavior for in-progress tasks in README and AGENTS.md
- Switch settings export filename prefix from 'kb' to 'fusion' (e.g. fusion-settings-*.json)
- Switch backup filename prefix from 'kb' to 'fusion' with legacy-safe parsing for existing kb-* backups
- Remove unused ntfy deep-link code and dashboard routing for /project/:id
- Remove dead notifier tests and App test assertions for removed features
- Clean up dashboard command and bin.ts unused variables
- Add changeset for the published package rename
- Thread real project context (projectName, projectId) into ntfy notification deep links
- Dashboard deep-link URL now honors project context with /project/:name/task/:id pattern
- Update App.tsx routing to handle project-scoped deep link navigation
- Add project info to NtfyNotifier types and wire through notification payload
- Add changeset for published @gsxdsm/fusion package
- Add tests for notifier project context and dashboard routing
- Change MIN_DESCRIPTION_LENGTH threshold from 140 to 200 in ai-summarize.ts
- Update shouldAutoSummarize logic and tests for new 200-char threshold
- Update UI copy in SettingsModal and API/routes references
- Update store tests to reflect the new threshold value
- Remove obsolete dashboard activity-log mobile layout test files and unused CSS
- Add changeset for patch bump
- 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
- Add project-store-resolver to correctly scope SSE and WebSocket connections to the active project's TaskStore
- Fix shared resolver so multi-project setups deliver task events only to the right dashboard clients
- Add regression tests for project store resolver (routing, missing project, SSE integration)
- Remove unused import and clean up stale changeset
- Add changeset for published package patch bump
- Derive readable refinement titles from source task title or first line of description instead of raw task ID
- Fall back to task ID only when both title and description are empty/whitespace
- Collapse internal whitespace in description-derived labels for clean output
- Update PROMPT.md heading to match the new readable refinement title
- Add comprehensive tests for title precedence, whitespace handling, and edge cases
- Document refinement naming behavior in README
- Add changeset for @gsxdsm/fusion patch release
- Stop merging steeringComments into comments array in rowToTask to prevent duplication
- Add regression tests verifying comments and steeringComments remain separate
- Add changeset for the comments deduplication fix
- Fix SSE event relay to properly broadcast task store events to dashboard clients
- Use named heartbeat events instead of SSE comments for reliable keep-alive
- Add missing event emission in core task store for state changes
- Add comprehensive tests for SSE pipeline, event emission, and UI hooks
- Remove broken useTerminal hook and AgentLogViewer tests, fix flaky test suites
- Add bundled Fusion skill at packages/cli/skill/fusion/ with SKILL.md and reference docs
- Include workflow guides for task lifecycle, specifications, dashboard CLI, and task management
- Add reference docs for CLI commands, extension tools, capabilities, best practices, and patterns
- Add postinstall script to sync skill into ~/.pi/agent/skills/fusion on install
- Add skill-sync test coverage and changeset for minor version bump
- Add kb_task_update tool enabling AI agents to update task title, size, and column
- Add extension tests for the new kb_task_update tool
- Clean up unused CSS styles, dead test code, and stale route handlers
- Include changeset for the new tool addition
- Add autoExpand prop to QuickEntryBox (defaults to true for backward compatibility)
- When autoExpand is true, component auto-expands on focus
- List view passes autoExpand={false} to keep view collapsed by default
- Board view continues to auto-expand using default behavior
- Add tests for both autoExpand modes and verify focus behavior
- Add fn init command for initializing new kb projects
- Add auto-migration check at CLI startup
- Add /api/setup-state and /api/complete-setup dashboard endpoints
- Add SetupState and CompleteSetupInput types to dashboard API
- Add migration and rollback documentation to AGENTS.md
- Create changeset for multi-project migration feature
- Add --json flag to 'kb project list' for machine-readable output
- Add --json flag to 'kb project show' for structured data
- Show task counts per column in project details
- Update CLI help text for better documentation
- Add changeset for multi-project CLI commands feature
- Add comprehensive tests for project commands
fix: update scheduler filesystem path from .kb to .fusion for task validation
style: clean up TaskDetailModal styling with reusable CSS classes
test: add comprehensive tests for file-service operations with mocked filesystem
- Add deeper MissionStore integration tests for hierarchy integrity, rollups, reorders, and task link cleanup
- Extend mission API end-to-end coverage for feature patching, validation, and cascade scenarios
- Fix TaskStore task upsert placeholders to preserve mission slice linking fields after merge resolution
- Tidy mission CLI help text and include the published package changeset for the missions launch
- fix TaskStore.getOrCreateForProject to resolve projects through BackwardCompat and support legacy .fusion/.kb detection
- add regression tests for exact-name project lookup, legacy cwd fallback, and fresh-schema task create/update persistence
- sync the tasks schema definition with missionId support so fresh databases match runtime migrations
- add project overview and selector styles for the multi-project dashboard UI
- Add mission CLI commands and pi extension tools for creating missions, milestones, slices, features, and task links
- Extend core mission storage and schema migrations with auto-advance support, task slice linkage, and comment normalization coverage
- Wire mission-aware scheduler and executor behavior so linked features progress with task execution and completed slices can auto-activate follow-on work
- Add regression tests for mission CLI parsing, extension behaviors, scheduler mission semantics, and executor integration
- Add chevron expand/collapse toggles to dashboard quick-add flows in list and board views
- Keep advanced quick-add controls hidden until expanded and collapse them after successful submission
- Tighten quick-add accessibility and blur behavior around overlays and empty drafts
- Add dashboard regression coverage and a published changeset for the quick-add interaction update
- Constrain the Git Manager modal with a flex column layout and overflow containment
- Prevent the modal header from shrinking and let the content area resize within available space
- Adjust small-screen sizing to use auto height with a 90vh cap so overlay padding is respected
- Add changeset entries documenting the Git Manager modal viewport rendering fix
- Add an autoExpand prop to QuickEntryBox with default focus expansion behavior
- Preserve manual expand and blur persistence while allowing list view to opt out
- Add coverage for autoExpand={false} behavior in QuickEntryBox tests
- Include a published-package changeset describing the quick entry behavior change
- Replace direct HTTPS requests to api.anthropic.com with `claude usage --json` CLI subprocess call, eliminating 429 rate-limit errors
- Remove retry/backoff logic (_sleep, CLAUDE_MAX_RETRIES, exponential delay) that is no longer needed
- Add specific error handling for CLI-not-found (ENOENT) and timeout scenarios
- Update tests to use setupClaudeMocks helper that handles both keychain and CLI mocking
- Add changeset for the patch fix
- Render ModelSelectionModal via createPortal to document.body so it is no longer clipped behind the board on mobile
- Add SSR guard (typeof document check) around the portal call
- Update QuickEntryBox test to assert the modal is portaled outside the component container
- Add changeset for the patch fix
- Add `setupScript` property to ProjectSettings to reference a named script
- Execute the referenced setup script after worktreeInitCommand on fresh worktrees
- Log success/failure of setup script execution; warn and skip if script name not found
- Skip setup script for pooled/recycled worktrees (fresh only)
- Add changeset (minor) for the new setting
- Fix SQL parameter mismatch in db-migrate task INSERT (add baseCommitSha, modifiedFiles, sliceId columns)
- Fix dashboard routes type predicate to guard against null entries from git diff parsing
- Stabilize central-core activity cleanup test with fake timers
- Align executor test assertions with updated steering comment log messages
- Align store test comment log assertion with new action/outcome format
- Create QuickScriptsDropdown component with script listing, one-click execution, and keyboard navigation (arrow keys, Enter, Escape)
- Replace static Scripts button in Header with dropdown menu showing all configured scripts
- Add loading, empty, and error states with 'Manage Scripts...' footer link
- Add full CSS styles with theme support, animations, and mobile responsiveness
- Add comprehensive tests (510 lines) covering rendering, interactions, keyboard nav, and edge cases
- Remove SteeringTab component and merge steering comments into TaskComments
- Consolidate both steering comments (pinned) and regular comments in one tab
- Update TaskDetailModal to render single Comments tab instead of separate Steering/Comments tabs
- Migrate SteeringTab tests into TaskComments test suite with full coverage
- Update TaskDetailModal tests for new 6-tab layout (Definition, Activity, Agent Log, Changes, Comments, Model)
- Refactor header styles for responsive mobile layout
- Add comprehensive Header component tests for mobile breakpoints
- Include changeset for patch release
- Align session-files API endpoint behavior and response structure with diff endpoint
- Add comprehensive test suite for session-files routes (241 lines)
- Update route handlers to match diff endpoint patterns and file counting
- Include changeset for the file count alignment fix
- Implement automatic PROMPT.md regeneration in updateTask() when title or description changes
- Add comprehensive tests for PROMPT.md sync behavior in store.test.ts
- Create changeset for the PROMPT.md sync fix
- Remove multi-project migration changeset (superseded)
- Update dashboard components and styles for setup wizard and provider icons
- Add MigrationOrchestrator with filesystem scanning and auto-registration
- Add FirstRunExperience with setup wizard state management
- CLI integration with automatic migration hook on first run
- Backward-compatible single-project mode support
- \"--project\" flag support for CLI multi-project targeting
- KB_SKIP_MIGRATION environment variable for recovery
- Graceful fallback when central database unavailable
- New fn init command to initialize kb projects
- Interactive first-run setup wizard API in dashboard
- Fix TaskStore sliceId persistence and bidirectional linking between tasks and features
- Add comprehensive mission integration tests for hierarchy, status rollup, and events
- Enhance E2E tests with reorder, cascade delete, and error handling coverage
- Add scheduler integration tests for mission slice activation
- Fix duplicate mission commands in CLI help text
- Add changeset for missions launch
- Add Project Overview page with responsive grid and health metrics
- Add Project selector dropdown for quick context switching
- Add Project drill-down with back navigation to overview
- Add Setup wizard with auto-detection and manual entry flows
- Add Global activity feed with project attribution badges
- Add Project health polling (active tasks, agents, completion counts)
- Add Empty states and loading skeletons for better UX
- Add Keyboard navigation support (arrow keys, enter, escape)
- Add LocalStorage persistence for wizard state and view preferences
- Add mission CLI commands: create, list, show, delete, activate-slice
- Add pi extension tools for mission management
- Add MissionStore helper methods and Mission types
- Add scheduler mission awareness for automatic slice activation
- Add engine integration wiring for mission-aware task execution
- Add dashboard mission routes and API endpoints
- Link tasks to missions via sliceId field with autoAdvance support
- Consolidate steeringComments and comments into unified comments field using TaskComment type
- Remove SteeringComment type, migrate all comments to TaskComment format
- Update addComment to delegate to addTaskComment with auto-refinement for done tasks
- Merge legacy steeringComments data into comments during database migration
- Update dashboard API endpoint from /steer to /comments
- Update executor to use unified comments field for real-time injection
- Update PR comment handler to use addTaskComment method