Commit Graph

4388 Commits

Author SHA1 Message Date
gsxdsm
78492c617c feat(FN-731): consolidate model settings into single Models section
- Merge separate Model and Model Presets sections into unified Models section in SettingsModal
- Add Models settings button to Header for quick access
- Remove unused useTerminal hook and usage tracking code
- Update SettingsModal and Header tests for consolidated UI
- Simplify usage.ts by removing dead export and test coverage
2026-04-02 19:17:25 -07:00
gsxdsm
b83803ba58 feat(FN-733): remove redundant Manage Agents button from header
- Remove Manage Agents button from Header component (accessible via sidebar)
- Remove associated onClick handler and prop threading from App.tsx
- Remove Header test cases for the deleted button
- Remove unused useTerminal hook and its tests
2026-04-02 19:16:28 -07:00
gsxdsm
76913c24bc fix(FN-730): add missing ping handler in useTerminal WebSocket hook
- Add ping/pong heartbeat handler to useTerminal WebSocket hook
- Add tests for WebSocket heartbeat ping/pong behavior
- Remove unused usage tracking module and its tests
- Simplify usage.ts by removing dead code
2026-04-02 19:12:24 -07:00
gsxdsm
52c12f6b23 fix(FN-728): fix token refresh endpoint, content-type, and client_id
- Fix refresh token request to use correct endpoint URL
- Set proper content-type header for token refresh requests
- Include client_id in refresh token payload
- Add tests verifying correct endpoint, content-type, and client_id in refresh flow
2026-04-02 19:11:07 -07:00
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
0bcbc22dfe fix(FN-724): implement OAuth token refresh for expired Claude tokens
- Add token expiry detection with 60-second buffer before API calls
- Implement refresh_token grant flow against Anthropic OAuth endpoint
- Cache refreshed access tokens in-memory only (never written to disk)
- Retry token refresh on 401/403 responses before failing
- Add comprehensive tests for token refresh, expiry, and error scenarios
2026-04-02 18:54:44 -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
7fc187d9e6 feat(FN-723): add optimistic state insertion for createTask and duplicateTask
- Insert new tasks at correct sorted position in useTasks cache immediately on create/duplicate
- Compute insertIndex based on columnMovedAt/createdAt sorting to maintain board order
- Add comprehensive tests for optimistic insertion ordering in useTasks hook
- Cover edge cases: empty columns, single-item columns, and multi-item sorted columns
2026-04-02 18:47:38 -07:00
gsxdsm
f9363513c6 fix(FN-714): increase Claude provider timeout to 75s and improve error diagnostics
- Increase Claude fetch timeout from 10s to 75s to accommodate retries and CLI fallback
- Include response body snippet in HTTP error messages for better debugging
- Improve Claude CLI timeout error message with actionable guidance
- Export withTimeout and CLAUDE_FETCH_TIMEOUT_MS for testability
- Add comprehensive tests for withTimeout, timeout constant, and error diagnostics
2026-04-02 18:40:24 -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
371ec764b8 fix(FN-000): harden project migration runtime 2026-04-02 17:55:25 -07:00
gsxdsm
1f8465342c fix(FN-000): scope dashboard project flows 2026-04-02 17:51:04 -07:00
gsxdsm
86f8653b8f fix(FN-710): fix addSteeringComment to persist comments and correct type usage
- Fix addSteeringComment to skip auto-refinement and write directly to steeringComments array
- Update formatCommentForInjection to accept SteeringComment type instead of raw string
- Export SteeringComment type from @fusion/core for executor usage
- Add tests verifying steering comments are persisted to task store
- Fix executor import to use exported SteeringComment type
2026-04-02 14:17:19 -07:00
gsxdsm
321feb0b8d feat(FN-709): store branch name on tasks for reliable merge recovery
- Add 'branch' field to Task and ArchivedTaskEntry types with DB migration
- Executor stores branch name on task after worktree assignment
- Merger reads branch from task metadata instead of relying on worktree state
- Implement non-destructive conflict recovery in prepareForTask with reset/clean
- Add tests for branch storage, merger branch reading, and worktree recovery
2026-04-02 14:08:31 -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
c1ff739a87 fix(FN-706): add branch conflict recovery and pool fallthrough in executor
- Add branch conflict recovery to worktree-pool prepareForTask when checkout fails
- Add fallthrough in executor to create fresh worktree when pool preparation fails
- Add tests for branch conflict recovery in worktree-pool
- Add tests for executor fallthrough on pool preparation failure
2026-04-02 13:48:08 -07:00
gsxdsm
281fd206ba feat(FN-705): add rate-limit retry with exponential backoff for AI agents
- Add rate-limit retry utility with exponential backoff, jitter, and configurable limits
- Integrate retry logic into executor, triage, and merger agent sessions
- Export retryOnRateLimit from engine package index
- Remove unused DirectoryPicker component, stale CSS, and dead dashboard routes
- Update SetupWizardModal and usage tests to reflect cleanup
2026-04-02 13:39:04 -07:00
gsxdsm
cba40636da fix(FN-708): remove unused multi-project UI code and usage-limit references
- Remove DirectoryPicker component and its tests (unused multi-project UI)
- Simplify SetupWizardModal by removing directory picker integration
- Remove unused multi-project API endpoints, SSE handlers, and route definitions
- Clean up usage-limit detector and related engine references (executor, scheduler, triage)
- Fix 6 merge conflicts in usage.test.ts and update tests for simplified usage tracking
2026-04-02 13:31:43 -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
e6dc02354b fix(FN-703): fix overly broad usage limit pattern and add transient error retry
- Narrow 'insufficient' usage-limit regex to require quota/credit/balance/fund context
- Add transient error detection in executor and triage to retry instead of failing
- Improve scheduler pause/resume logging with actionable messages and resume confirmation
- Add SSE active connection counter for observability
- Add duplicate usage-limit pause suppression logging
2026-04-02 13:29:48 -07:00
gsxdsm
07d7c13ef0 feat(KB-328): bundle Fusion skill with CLI package for agent interoperability
- 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
2026-04-02 13:26: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
92071e4c45 fix(FN-704): increase Claude CLI timeout to 60 seconds
- Increase Claude CLI usage fetch timeout from 30s to 60s
- Improve timeout error message with actionable context
2026-04-02 13:24:22 -07:00
gsxdsm
06ffd8e35e feat(FN-702): add kb_task_update tool to pi extension
- 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
2026-04-02 13:22:05 -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
dcf18c32ee fix(FN-696): compute task counts from task store in health endpoint
- Compute live activeTaskCount, inFlightAgentCount, and totalTasksCompleted from the task store when the requested project matches the current dashboard
- Fall through to cached central DB health data for remote projects
- Add project existence check before health lookup, returning proper 404s
- Remove unused CSS styles (20 lines deleted from styles.css)
2026-04-02 13:19:24 -07:00
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
a0fb5c40f4 test(FN-695): add assertion for updateProject call in addProject test 2026-04-02 10:45:51 -07:00
gsxdsm
4feaf8b43c feat(FN-684): complete Step 8 — add Executor Status Bar documentation 2026-04-02 10:45:33 -07:00
gsxdsm
e979111a28 fix(FN-695): transition project status from initializing to active in addProject() 2026-04-02 10:45:28 -07:00
gsxdsm
2bc07fb977 feat(FN-684): complete Step 6 — integrate ExecutorStatusBar into App 2026-04-02 10:44:15 -07:00
gsxdsm
bafd9499ca feat(FN-684): complete Step 5 — add /api/executor/stats endpoint 2026-04-02 10:43:47 -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
50503fea28 fix(FN-690): export NtfyNotificationEvent type from @fusion/core 2026-04-02 10:35: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
f2aaea0655 test(FN-690): add tests for event filtering 2026-04-02 10:32:20 -07:00
gsxdsm
d18bc1a4ce feat(FN-690): update NtfyNotifier to respect ntfyEvents setting 2026-04-02 10:30:55 -07:00
gsxdsm
6242cbab3d feat(FN-690): add ntfyEvents setting to GlobalSettings 2026-04-02 10:29:28 -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
78bff07c69 feat(FN-689): sync steps from PROMPT.md in getTask
- Add step synchronization when loading task from database
- Sync steps array from PROMPT.md file to keep task metadata in sync
- Add test coverage for getTask step sync behavior
- Remove terminal session functionality (useTerminalSessions hook and tests)
- Clean up unused terminal-related components and CSS
2026-04-02 10:25:37 -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