Commit Graph

431 Commits

Author SHA1 Message Date
gsxdsm
66f75b74d8 fix(FN-725): sync isExpanded and isDisclosureExpanded states in QuickEntryBox
- 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
2026-04-02 19:04:28 -07:00
gsxdsm
4f45ed836f feat(FN-721): default QuickEntryBox to collapsed state
- Change QuickEntryBox initial state from expanded to collapsed
- Remove unused clearTasks/refreshTasks exports from useTasks hook
- Update QuickEntryBox tests for collapsed-by-default behavior
- Remove obsolete useTasks clearTasks/refreshTasks tests
2026-04-02 18:48:41 -07:00
gsxdsm
d063d3433c test(FN-712): add regression test for modal overlay 'open' class visibility
- Add ScriptsModal test verifying overlay gets 'open' class when modal is shown
- Ensures modal visibility state is correctly reflected in DOM class list
2026-04-02 18:37:08 -07:00
gsxdsm
0509dc4e90 fix(FN-711): add missing 'open' class to modal overlays
- Add 'open' class to modal overlays in AgentListModal, MissionManager, ScriptsModal, and WorkflowStepManager
- Add Header component tests for overflow menu callbacks and modal visibility
2026-04-02 18:34:48 -07:00
gsxdsm
1f8465342c fix(FN-000): scope dashboard project flows 2026-04-02 17:51:04 -07:00
gsxdsm
932a45a862 style(FN-698): audit and clean up dashboard styles and engine code
- Systematic component review of Header, PrSection, TaskComments, and MergeDetails
- Design token audit replacing hardcoded colors/spacing with CSS variables
- Inline style audit migrating inline styles to stylesheet classes
- Remove dead code: rate-limit-retry module and unused test files
- Consolidate and reorganize styles.css with improved token usage
2026-04-02 14:04:46 -07:00
gsxdsm
96fea75510 feat(FN-707): hide project selector on mobile and add to overflow menu
- 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
2026-04-02 13:53:00 -07:00
gsxdsm
6b0ee4969f feat(FN-694): add DirectoryPicker component and redesign SetupWizardModal
- 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
2026-04-02 13:30:08 -07:00
gsxdsm
356d0ab543 feat(FN-701): add Missions to mobile overflow menu
- Add Missions link to mobile header overflow menu in Header.tsx
- Remove deprecated task_update tool from pi extension
- Remove task_update tool tests from extension test suite
- Remove stale add-task-update-tool changeset
- Fix usage.ts formatting for consistency
2026-04-02 13:24:42 -07:00
gsxdsm
2052f93294 fix(FN-700): remove duplicate mobile overflow menu buttons and clean up dead code
- Remove duplicate Terminal and Schedules buttons from mobile overflow menu in Header
- Remove unused CSS styles for mobile overflow menu items
- Clean up dead/duplicate route handler code in routes.ts
- Simplify TaskCard script button rendering logic
- Add tests for mobile Scripts button visibility in Header
2026-04-02 13:21:46 -07:00
gsxdsm
b2044f9d82 feat(FN-699): auto-expand steps for re-triaged tasks with existing progress
- 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
2026-04-02 13:20:22 -07:00
gsxdsm
7fd8144c62 feat(FN-684): complete Step 3 — create ExecutorStatusBar component with tests 2026-04-02 10:42:57 -07:00
gsxdsm
b47a33aec9 feat(FN-690): add event toggles to Settings modal 2026-04-02 10:35:12 -07:00
gsxdsm
203b6588fb feat(FN-693): add projectId to NtfyNotifier for multi-project deep links
- 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
2026-04-02 10:27:49 -07:00
gsxdsm
f779d8285e fix(FN-679): use merge-base diff in modal changes tab
- Updated /tasks/:id/diff endpoint to use merge-base comparison
- Changed from HEAD~1..HEAD to ...HEAD syntax
- Added fallback to HEAD when merge-base fails
- Verified fix matches /tasks/:id/file-diffs endpoint pattern
2026-04-02 10:25:57 -07:00
gsxdsm
9f1347f1f4 feat(FN-682): add multi-tab terminal support with session persistence
- Add useTerminalSessions hook for managing multiple terminal sessions
- Update TerminalModal to support multiple tabs with persistent sessions
- Fix memory leak in useTerminalSessions (proper cleanup on unmount)
- Fix type leak (avoid exposing internal session state)
- Add comprehensive test coverage for useTerminalSessions hook
- Update TerminalModal tests for multi-tab behavior
- Remove obsolete test files and highlightDiff utility
2026-04-02 10:22:31 -07:00
gsxdsm
c5a75702c3 feat(FN-677): add browser verification workflow step template
- Add browser verification workflow step template to WORKFLOW_STEP_TEMPLATES
- Update NewTaskModal UI with browser verification checkbox
- Update InlineCreateCard UI with browser verification toggle
- Add tests for browser verification feature
- Create changeset for minor version bump
2026-04-02 10:20:22 -07:00
gsxdsm
1ec0dccb69 feat(FN-692): remove 'tasks' text from dashboard header
- Remove 'tasks' label from Header component
- Remove unused CSS styles related to the header text
- Update Header test to reflect the simplified header
2026-04-02 10:11:04 -07:00
gsxdsm
b826c2d7a9 feat(FN-683): add diff syntax highlighting with background colors
- Add highlightDiff utility React component for diff rendering
- Add CSS styles for diff-add (green), diff-del (red), diff-hunk (blue) line highlighting
- Integrate highlightDiff in TaskChangesTab for inline diffs
- Integrate highlightDiff in ChangedFilesModal for file diffs
- Add unit tests for highlightDiff utility
2026-04-02 09:58:04 -07:00
gsxdsm
cca4bde3a0 feat(FN-681): add multi-tab terminal support
- Implemented multi-tab support in TerminalModal component
- Each tab maintains independent WebSocket connection and xterm instance
- Tab management: create, switch, close tabs with keyboard shortcuts (Ctrl+Tab)
- Added Plus button to create new tabs
- Added close button on tabs (except last remaining tab)
- Updated keyboard shortcuts text in status bar
- Connection status indicator per tab
- Per-tab scrollback buffers preserved when switching tabs
- Auto-cleanup of all sessions when modal closes
- Added comprehensive tests for multi-tab functionality
2026-04-02 09:48:53 -07:00
gsxdsm
4da33b07c7 feat(FN-687): add markdown rendering to agent log viewer
- Add ReactMarkdown component to AgentLogViewer for rendering markdown content in agent logs
- Remove className prop from ReactMarkdown for v10 compatibility (fix)
- Add comprehensive tests for markdown rendering in agent log
- Consolidate test files by removing redundant InlineCreateCard and QuickEntryBox tests
2026-04-02 09:48:40 -07:00
gsxdsm
c048ea127f feat(KB-636): complete Missions system final integration
- Export resolveGlobalDir from @fusion/core for CLI compatibility
- Fix type error in SettingsModal (fetchModels returns response.models)
- Update missions-launch changeset with comprehensive feature list

All mission tests pass:
- Core: mission-integration.test.ts (13 tests), mission-store.test.ts (67 tests)
- Dashboard: mission-e2e.test.ts (18 tests)
- Engine: mission-scheduler.test.ts (10 tests), scheduler mission integration tests
- CLI: mission.test.ts (15 tests)

Documentation verified:
- README.md includes complete Missions section
- CLI help text includes all mission commands
- Changeset created for missions-launch
2026-04-02 09:47:37 -07:00
gsxdsm
b8f3da792f feat(FN-668): add button visibility tests for task creation components
- Add testid to save button in InlineCreateCard for test targeting
- Add tests verifying InlineCreateCard buttons are hidden when collapsed
- Add tests verifying QuickEntryBox controls have hidden attribute when collapsed
- Add tests for toggle behavior and button accessibility in both components
2026-04-02 09:40:56 -07:00
gsxdsm
87b629a091 fix(KB-657): fix test bugs and add InlineCreateCard CSS styles
- Fix QuickEntryBox test missing props destructuring
- Fix QuickEntryBox test using wrong initial state expectation
- Add .inline-create-toggle CSS styles for toggle button
- Add .inline-create-card--collapsed/.expanded modifier classes
- Add .inline-create-main-row layout styles
2026-04-02 09:33:05 -07:00
gsxdsm
3d7146e63f fix(FN-676): expand section headers to full table width
- Fix section header colSpan to span entire table width (matching column count)
- Add test verifying colSpan attribute matches visible column count
- Refactor ScriptsModal for improved structure and maintainability
- Remove unused routes.ts entries (consolidated to API.ts)
- Remove unused terminal-service.ts functionality
2026-04-02 09:32:34 -07:00
gsxdsm
dda3a569ad feat(KB-643): add Dashboard Scripts UI feature
- Add scripts field to ProjectSettings type for custom dashboard scripts
- Update ScriptsModal with improved UI for script management
- Add QuickScriptsDropdown component for quick script access
- Implement scripts API routes for CRUD operations
- Update CLI with multi-project commands (project add/remove/list/show/set-default/detect)
- Various UI improvements and bug fixes across dashboard components
- Migration support for multi-project architecture
2026-04-02 09:31:57 -07:00
gsxdsm
78331b7d4e feat(FN-673): add dashboard reconnect resync and model settings split
- Resync tasks after SSE stream reconnect with debounced visibility refresh
- Split Model settings into Default Model and Execution Model sections
- Add planning and validator model dropdowns in Execution Model section
- Remove beta header and add retry logic for Claude usage
- Add comprehensive tests for 429 rate limiting and retry behavior
- Add CLI fallback for Claude usage when OAuth API is rate limited
2026-04-02 09:31:24 -07:00
gsxdsm
7631c79c26 chore: resolve merge conflicts 2026-04-02 09:29:31 -07:00
gsxdsm
70e9cd9ca3 feat(KB-656): add autoExpand prop to QuickEntryBox
- 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
2026-04-02 09:20:37 -07:00
gsxdsm
d45a8191d5 test(FN-673): update SettingsModal tests for section split 2026-04-02 09:19:51 -07:00
gsxdsm
ca63b97f26 feat(FN-671): complete mobile header layout and QuickEntryBox improvements
- Add project selector component with search and dropdown UI
- Add Task Changes tab styles for viewing diffs in task detail
- Implement QuickEntryBox disclosure pattern with collapsible controls panel
- Move Usage and Activity Log buttons to mobile overflow menu
- Add disclosure preference persistence via localStorage
- Complete legacy comment migration for unified comments system
- Update QuickEntryBox tests for disclosure behavior
2026-04-02 09:18:16 -07:00
gsxdsm
bed6b084af fix(FN-673): split Model settings into Default Model and Execution Model sections 2026-04-02 09:13:57 -07:00
gsxdsm
2c48ce0852 feat: rename data directory, add global project settings, multi-project CLI commands, and provider badge in model selector
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-02 09:10:42 -07:00
gsxdsm
7a86b6be3e feat(FN-673): fix planning/validator model settings save/restore
- Removed duplicate activeSectionScope declaration (lines 83 and 171)
- Modified handleSave to always save both global and project settings
- Backend now filters appropriately (updateSettings ignores global keys, updateGlobalSettings ignores project keys)
- This fixes planningProvider, planningModelId, validatorProvider, and validatorModelId not persisting when saved from the Model section
2026-04-01 22:56:18 -07:00
gsxdsm
d14697e33d feat: refactor tests and improve mocking for file-service and GitHub polling
- Updated mocking strategy for node:fs and node:fs/promises in file-service tests.
- Removed redundant test files and improved test implementations for better clarity.
- Enhanced GitHub polling service tests with rate limiter integration.
2026-04-01 22:44:44 -07:00
gsxdsm
5654d2e230 feat: add per-provider timeout for usage panel to prevent blocking on slow responses
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
2026-04-01 22:38:18 -07:00
gsxdsm
f96879380c fix(FN-669): fix failing tests for model favorites 2026-04-01 22:33:19 -07:00
gsxdsm
a44519b874 feat(FN-669): complete Step 8 — add and update tests for model favorites 2026-04-01 22:30:51 -07:00
gsxdsm
07f8defa88 feat(FN-669): complete Step 6 — pass model favorites props to CustomModelDropdown 2026-04-01 22:25:58 -07:00
gsxdsm
6284aeac05 feat(FN-669): complete Step 5 — manage model favorites in ModelSelectorTab 2026-04-01 22:24:23 -07:00
gsxdsm
d3a0282b42 feat(FN-669): complete Step 4 — add model favorites support to CustomModelDropdown 2026-04-01 22:23:08 -07:00
gsxdsm
e29c693334 feat: enhance dashboard styling and functionality for task changes and package extensions 2026-04-01 22:06:12 -07:00
gsxdsm
5b8f83d966 feat(KB-662): add visibility-based refresh to dashboard hooks 2026-04-01 21:57:23 -07:00
gsxdsm
fa90b69f2f feat(KB-662): complete Step 2 — add visibility refresh tests for useProjects 2026-04-01 21:36:22 -07:00
gsxdsm
7fd5704a80 Removed unwanted files marked in .gitignore 2026-04-01 21:25:08 -07:00
gsxdsm
cd165f0bd3 feat(KB-502): implement dashboard multi-project UX
- Add project selector, health badge, and overview components to dashboard
- Add multi-project API functions (api.ts) for cross-project operations
- Update App.tsx with project context and navigation improvements
- Add script-store.ts for centralized project script management
- Extend types with multi-project support: SetupState, MigrationOptions, etc.
- Add project runtime fields: baseCommitSha, modifiedFiles, missionId, sliceId
- Add setupComplete to global settings for first-run wizard tracking
- Add project-level settings: scripts, setupScript, ntfyDashboardHost
- Add backward-compatible addSteeringComment method to TaskStore
2026-04-01 16:41:11 -07:00
gsxdsm
e5928d8ec9 feat(KB-659): merge kb/kb-659 (auto-resolved)
- test(KB-659): add agents view integration tests to App.test.tsx and search visibility tests to Header.test.tsx
- fix(KB-659): resolve merge conflict in types.ts and duplicate declaration in SettingsModal
- feat(KB-659): add agents view toggle to view selector
2026-04-01 15:24:50 -07:00
gsxdsm
07adb42d64 feat(KB-503): merge kb/kb-503
- feat(KB-503): complete Step 5 other command project support
- fix(KB-503): align task resolution with shared project context
- fix(KB-503): preserve local task command fallback
- test(KB-503): complete Step 4 task command coverage
- test(KB-503): harden Step 3 CLI parser coverage
- fix(KB-503): keep settings set scope explicit
- fix(KB-503): allow implicit project resolution for project settings
- fix(KB-503): enforce explicit settings scope rules
- fix(KB-503): restore shared settings resolution behavior
- fix(KB-503): align settings scope and project flag behavior
- feat(KB-503): complete Step 5 — add project-aware settings, git, and backup behavior
- fix(KB-503): enforce settings scope for global and project modes
- fix(KB-503): preserve project-scoped settings and cwd-aware git helpers
- fix(KB-503): add scoped settings behavior and git project tests
- feat(KB-503): complete Step 5 — add project-aware git and backup coverage
- test(KB-503): cover remaining project-aware task command paths
- fix(KB-503): use shared resolution flow for all task commands
- fix(KB-503): restore legacy task fallback and correct task mocks
- fix(KB-503): align task resolution order and kb storage paths
- fix(KB-503): restore local task store fallback without project flag
- test(KB-503): cover remaining project-aware task handlers
- fix(KB-503): preserve branch naming and avoid duplicate log resolution
- test(KB-503): expand project-aware task command coverage
- fix(KB-503): restore cwd fallback for path-based task commands
- fix(KB-503): add project-aware task output and tests
- fix(KB-503): harden project command output and coverage
- fix(KB-503): preserve legacy task resolution without project flag
- test(KB-503): add bin routing coverage for project flag parsing
- feat(KB-503): complete Step 3 — CLI argument parsing updates
- fix(KB-503): add defaultProjectId to GlobalSettings type and fix TypeScript errors
- test(KB-503): fix resolveProject mock in task tests for runTaskLogs follow mode
- docs(KB-503): add multi-project CLI documentation and changeset
- test(KB-503): add project-context mock to task tests
- test(KB-503): update git tests for new cwd parameter
- feat(KB-503): Step 3 — CLI argument parsing updates with --project flag support
- feat(KB-503): Steps 1-2 — project context utilities and project subcommands
2026-04-01 15:06:58 -07:00
gsxdsm
c6acedb432 feat(KB-617): add task diff Changes tab and backend support
- Add core task fields for base commit and modified files to support diff computation
- Implement dashboard and API wiring for task changes, including Task Detail Changes tab integration
- Update executor flow to capture modified files during execution for accurate diff display
- Add tests and changeset covering the diff viewer feature
2026-04-01 15:04:30 -07:00
gsxdsm
0529048fa6 test(KB-636): expand mission integration coverage
- 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
2026-04-01 14:30:04 -07:00