Commit Graph

543 Commits

Author SHA1 Message Date
gsxdsm
e7470147a7 feat(FN-697): style the Back to All Projects header button
- Add hover/active states with smooth color transitions
- Style icon and text elements for visual consistency
- Add subtle background and border-radius on hover
2026-04-02 13:18:50 -07:00
gsxdsm
2bc07fb977 feat(FN-684): complete Step 6 — integrate ExecutorStatusBar into App 2026-04-02 10:44:15 -07:00
gsxdsm
7e4cd09c86 feat(FN-684): complete Step 4 — add executor status bar CSS styles 2026-04-02 10:43:26 -07:00
gsxdsm
7fd8144c62 feat(FN-684): complete Step 3 — create ExecutorStatusBar component with tests 2026-04-02 10:42:57 -07:00
gsxdsm
30de037c31 feat(FN-684): complete Step 2 — create useExecutorStats hook with tests 2026-04-02 10:37:51 -07:00
gsxdsm
b47a33aec9 feat(FN-690): add event toggles to Settings modal 2026-04-02 10:35:12 -07:00
gsxdsm
cb71b0fa5f feat(FN-684): complete Step 1 — add ExecutorStats type and API function 2026-04-02 10:32:47 -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
d84aa98185 fix(FN-691): add height constraint to mobile board layout
- Add height: calc(100dvh - 57px) to mobile board layout media query
- Fixes board overflow issues on mobile viewports
2026-04-02 10:04:17 -07:00
gsxdsm
af5cd02064 feat(FN-686): make ChangedFilesModal mobile-friendly
- Improve ChangedFilesModal responsive layout for mobile devices
- Adjust styles for better touch targets and scrolling behavior
- Optimize modal dimensions and padding for smaller screens
2026-04-02 10:01:47 -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
18a2b3ec32 feat(KB-620): complete Step 7 — Migration and first-run experience
- 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
2026-04-02 09:18:45 -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
67a8777f87 feat(FN-669): complete Step 7 — add CSS styles for model favorite buttons 2026-04-01 22:27:58 -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
4b5e6baa2e feat(FN-669): complete Step 3 — update ModelsResponse interface to include favoriteModels 2026-04-01 22:21:11 -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
04ff1f5ca1 feat(KB-660): fix mobile responsive styles for Git Manager modal
- Add flex layout and overflow hidden to .gm-modal container
- Fix mobile responsive styles for Git Manager modal
- Clean up unused changeset files and test stubs
2026-04-01 21:58:28 -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
84a048e6c5 feat(KB-651): add task file diffs API
- Add API endpoint to fetch git diffs for tasks in review
- Implement file diff routes with support for changed files view
- Add comprehensive test suite for file diffs endpoint
- Update dashboard API client for diff fetching capabilities
2026-04-01 17:28:21 -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