Commit Graph

581 Commits

Author SHA1 Message Date
gsxdsm
476ef812dc feat(FN-1636): fix thinking level default to respect global setting
- Fix thinking level selector to default to 'off' when no global default is configured
- Add 'Using default' badge when thinking level falls back to global setting
- Show explicit thinking level badge only when a non-default value is selected
- Add comprehensive tests for thinking level selector behavior
- Add tests for resolved model display with global settings fallback
2026-04-12 14:05:56 -07:00
gsxdsm
2fc4fccd00 feat(FN-1271): add Documents tab to task detail modal
- Add task document API routes for listing, viewing, and downloading task files
- Create TaskDocumentsTab component with file browser UI
- Integrate Documents tab into TaskDetailModal alongside existing tabs
- Add frontend API functions for task document operations
- Add CSS styles for document list, file icons, and download actions
- Add comprehensive route tests for task document endpoints
2026-04-12 13:20:37 -07:00
gsxdsm
055e7d84f0 test: remove waits from slow tests 2026-04-12 12:52:32 -07:00
gsxdsm
94996e204d feat(FN-1594): merge fusion/fn-1594 2026-04-12 12:33:05 -07:00
gsxdsm
d8e3866d85 feat(FN-1593): merge fusion/fn-1593 2026-04-12 10:55:53 -07:00
gsxdsm
d2e9aafff9 feat(FN-1465): merge fusion/fn-1465 2026-04-12 07:00:49 -07:00
gsxdsm
2ada00ac77 feat(FN-1586): update ChatView with model selector
- Add model selector to ChatView component for AI model selection
- Update ChatView tests to cover model selector functionality
- Add styles for model selector in chat interface
2026-04-11 20:48:48 -07:00
gsxdsm
87e22f16a0 feat(FN-1445): add project-scoping and fallback handling for AI routes and missions
- Add projectId parameter to refineText API and TaskForm for proper scoping
- Update mission routes to require projectId and add regression tests
- Add mission interview fallback to mission-level context when target not found
- Add AI refine route scoping tests for project isolation
- Update component tests to expect projectId argument
- Update prompt-keys test counts for new system prompts
2026-04-11 15:23:03 -07:00
gsxdsm
ebb848c9da feat(FN-1584): add step-change dependency and polling to useTaskDiffStats
- Add step-based dependency to useTaskDiffStats hook to trigger refetch when task steps change
- Implement 5-second polling interval for live diff statistics updates
- Add comprehensive test coverage for polling behavior and step-change detection
- Update TaskCard to pass step information to useTaskDiffStats
- Add TaskCard unit tests for diff statistics display
2026-04-11 11:27:32 -07:00
gsxdsm
ca296aa63d feat(FN-1433): wire prompt overrides into mission interview service
- Import resolvePrompt and PromptOverrideMap from @fusion/core
- Add promptOverrides parameter to all agent creation paths:
  - createMissionInterviewSession
  - submitMissionInterviewResponse
  - retryMissionInterviewSession
  - initializeAgent
  - createMissionInterviewAgent
  - ensureMissionInterviewAgent
- Use resolvePrompt('planning-system', promptOverrides) for effective prompt
- Fall back to MISSION_INTERVIEW_SYSTEM_PROMPT when override absent
- Update module docs to reflect prompt override behavior
2026-04-11 08:52:39 -07:00
gsxdsm
eed12b4011 test: fix mission manager icon mock 2026-04-11 07:03:07 -07:00
gsxdsm
8b1081dab0 feat(FN-1489): reorganize Task Detail modal footer with split menus
- Add SplitMenu component for reusable dropdown menus in modal footers
- Update TaskDetailModal footer to use LeftMenu (Plan, Subtask, Models) and RightMenu (Save, Close)
- Add comprehensive tests for dropdown menu behavior in modal footers
- Update QuickEntryBox and NewTaskModal tests to match new menu patterns
- Add testing patterns for modal dropdown menus to project memory
2026-04-11 06:51:20 -07:00
gsxdsm
2019b71e6b fix(FN-1488): add showQuickChatFAB setting to control Quick Chat FAB visibility
- Add showQuickChatFAB boolean setting to ProjectSettings type
- Add useAppSettings hook function for accessing the setting
- Wire QuickChatFAB visibility in App.tsx based on setting
- Hide QuickChatFAB in MobileNavBar when setting is false
- Add Settings UI toggle for the new setting
- Add CSS for hiding QuickChatFAB on mobile when disabled
- Add comprehensive tests for all affected components
- Fix QuickChatFAB onOpenChange test to use controlled mode
- Update settings reference documentation
2026-04-11 00:18:22 -07:00
gsxdsm
80869dba88 feat(FN-1413): merge fusion/fn-1413 2026-04-10 23:20:39 -07:00
gsxdsm
997dd01eca feat(FN-1426): add tests for prompt override edit/reset/save behavior 2026-04-10 22:33:29 -07:00
gsxdsm
35cdc97686 feat(FN-1426): add Prompts section to Settings modal with per-prompt editor UI 2026-04-10 22:27:41 -07:00
gsxdsm
fd8208d2f5 fix(FN-1567): fix plugin loader type and ntfy events test
- Fix ConstructorParameters type in plugin loader
- Update ntfy events test to expect awaiting-user-review event
2026-04-10 21:52:58 -07:00
gsxdsm
f2b08b6781 Fix task card step progress 2026-04-10 21:46:06 -07:00
gsxdsm
020549d5cc feat(FN-1562): merge fusion/fn-1562 2026-04-10 21:22:59 -07:00
gsxdsm
fd79050af3 feat(FN-1490): merge fusion/fn-1490 2026-04-10 21:22:50 -07:00
gsxdsm
35084c8e20 chore: snapshot WIP across dashboard, engine, and core
Bundles staged work-in-progress modifications across multiple packages
(routes, store, agent-instructions, self-healing, QuickEntryBox, etc.)
plus the dashboard theme-data.css preload fix.

Note: an unstaged 621-line deletion in .fusion/memory.md was deliberately
NOT committed — it appears to be an accidental overwrite of architecture
notes and is left in the working tree for review.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-10 21:12:40 -07:00
gsxdsm
39a0f783bf perf(dashboard): slim task list + auto-archive stale done tasks
GET /api/tasks was returning ~69 MB of JSON per call (67.9 MB of agent
logs across 1199 tasks), causing the dashboard to hang for 2+ minutes.

- core: extend listTasks() with slim and includeArchived options
- dashboard: GET /api/tasks now uses slim mode and excludes archived
  by default; ?includeArchived=1 opts in
- frontend: lazy-load archived tasks when the archived column is first
  expanded via new useTasks.loadArchivedTasks()
- engine: self-healing maintenance now auto-archives done tasks older
  than 48h (data stays in SQLite, column flips done -> archived)
- tests: slim mode + includeArchived coverage in store.test.ts;
  routes.test.ts assertion updated for new args

Also bundles in-progress test-setup noise filters and pre-existing
QuickEntryBox/routes test work that was already modified locally.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-10 20:16:20 -07:00
gsxdsm
ffa0edc7b2 fix(FN-1446): improve test reliability and git command TTY handling
- Fix QuickEntryBox focus restoration after task creation with proper submission state tracking
- Improve QuickEntryBox tests by using explicit promise resolution and proper afterEach cleanup with act() wrappers
- Fix TaskCard tests to use proper act() wrappers for async operations
- Add stdio: 'pipe' to all git execSync calls to prevent TTY interaction issues in CI environments
- Add test log suppression for noisy subagent and pi-claude-cli output in vitest setup
2026-04-10 19:49:05 -07:00
gsxdsm
d79d2eef47 feat(FN-1559): recover orphaned features in autopilot reconciliation
- Add tryRelinkOrphanedFeature() to find and link matching tasks
- Normalize titles (trim, lowercase, collapse whitespace) for matching
- Only relink when exactly one task matches (ambiguous = no action)
- Sync feature status from task state on successful relink
- Normalize to 'defined' when no safe relink exists
- Add 7 tests for orphaned feature relink scenarios
- All 57 tests passing
2026-04-10 19:14:23 -07:00
gsxdsm
b3f057a281 fix: improve merge verification and dashboard behavior 2026-04-10 18:30:23 -07:00
gsxdsm
43802b165c feat(FN-1480): merge fusion/fn-1480 2026-04-10 18:09:00 -07:00
gsxdsm
f9d65f5447 feat(FN-1558): add dedicated Instructions tab in Agent Detail view
- Add InstructionsTab component for editing agent system instructions directly in the dashboard
- Include validation (character count, preview section) and reset to default functionality
- Add 82 regression tests covering Instructions tab editing flows
- Update agents.md documentation with Instructions tab usage guide
- Add changeset for @gsxdsm/fusion package
2026-04-10 13:30:37 -07:00
gsxdsm
bf7b7ad701 fix(FN-1564): remove duplicate Retry button in task detail modal
- Fix duplicate Retry button appearing in task detail modal header
- Add test coverage for Retry button visibility conditions
- Clean up conditional logic for Retry button rendering
2026-04-10 13:02:51 -07:00
gsxdsm
487ed993d5 feat(FN-1555): remove quick-entry textarea expand/fullscreen affordance
- Remove expand/compress chevron button from QuickEntryBox
- Remove isExpanded state and resize logic
- Remove fullscreen toggle functionality
- Remove related test cases for expand/collapse behavior
2026-04-10 12:34:38 -07:00
gsxdsm
a95e965780 feat(FN-1548): merge fusion/fn-1548 2026-04-10 10:49:27 -07:00
gsxdsm
583285fa65 feat(FN-1463): fix settings tab highlight alignment on mobile
- Fix settings modal tab alignment on mobile by switching .settings-nav-item to flexbox
- Add align-items: center to .settings-sidebar for icon+label vertical alignment
- Add justify-content: center and gap: 4px to .settings-nav-item
- Remove deprecated text-align: center from .settings-nav-item
- Add regression tests for new CSS properties in settings-mobile tests
2026-04-10 10:38:29 -07:00
gsxdsm
92b67d8660 fix(FN-1458): add safe-area-inset padding to mobile header floating search
- Add safe-area-inset padding to mobile header-floating-search to prevent viewport overlap
- Add regression tests in Header.test.tsx for mobile search safe-area handling
- Add regression tests in mobile-header-controls.test.tsx for viewport safety
- Document the fix in .fusion/memory.md
2026-04-10 09:39:59 -07:00
gsxdsm
60b9f8614c feat(FN-1442): replace emoji scope icons with theme-aware Lucide icons
- Replace emoji icons (🌐, 📁) with Lucide Globe and Folder icons in Settings sidebar scope indicators
- Icons now automatically adapt to light/dark theme colors for better visual consistency
- Update SettingsModal tests to validate Lucide icon rendering
- Add mobile-specific tests for settings scope indicators
2026-04-10 09:19:16 -07:00
gsxdsm
71782efa9c feat(FN-1441): correct Models settings scope to mixed and update renderScopeBanner
- Correct Models section scope from project to mixed since it contains both global settings (provider/model) and project overrides
- Update renderScopeBanner to support mixed scope type with globe+folder icon
- Add scope-banner-mixed CSS class for consistent styling of mixed-scope banners
- Update SettingsModal tests to cover mixed scope behavior
2026-04-10 08:52:31 -07:00
gsxdsm
9830ea96c6 fix(ci): fix test failures from recent feature additions
- Add ChatStore mock to all dashboard route tests that mock @fusion/core,
  since server.ts now instantiates ChatStore(store.getFusionDir(), ...)
- Add getFusionDir to createMockStore in server.test.ts
- Gate AI session cleanup scheduling behind shouldScheduleAiSessionCleanup()
  (returns false in test env) to prevent open handle warnings
- Fix desktop tests: DASHBOARD_URL is now exported as a function alias,
  update assertions to call DASHBOARD_URL() instead of using as string
- Add node:os mocks to system-metrics.test.ts for deterministic results
- Replace hardcoded maxWorkers=16 with availableParallelism()-based
  calculation in all vitest configs to prevent OOM on 2-core CI runners
- Add --workspace-concurrency=2 to pnpm test commands
- Fix TaskCard tests: update mission badge title assertions to full titles
- Remove unused /api/mesh/state route
- Fix plugin-auto-label: add isError field, async onTaskCreated, "tests" keyword
- Fix plugin-ci-status: add module-level logger, tighten test assertions

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-10 08:01:03 -07:00
gsxdsm
71cad2ff53 feat(FN-1439): render dependency titles in Task Detail modal
- Display task dependency titles alongside IDs in the Task Detail modal dependencies section
- Add truncation styling for long dependency titles with hover tooltip for full text
- Add comprehensive tests for dependency label rendering with various title lengths
- Update styles.css with dependency label truncation classes
2026-04-10 07:40:55 -07:00
gsxdsm
f7fde6a2d3 feat(FN-1438): enable description expansion in task creation forms
- Fix textbox role selector to avoid matching the expand button in TaskForm
- Enable description expansion in create mode for better task input experience
- Update tests in NewTaskModal and TaskForm to cover the new behavior
2026-04-10 07:08:13 -07:00
gsxdsm
eab57af28f feat(FN-1275): add Routines tab to ScheduledTasksModal
- Add RoutineCard component with status display and run history
- Add RoutineEditor form with trigger, agent, policy, and model fields
- Integrate Routines tab into ScheduledTasksModal alongside Scheduled Tasks
- Add CSS styles for routine components
- Add comprehensive tests for RoutineCard, RoutineEditor, and ScheduledTasksModal
2026-04-10 03:07:25 -07:00
gsxdsm
5c95d30c86 feat(FN-1529): implement search query propagation to remote node data
- Add search query propagation so remote nodes receive and use query filters
- Update api-node.ts to accept and forward search query parameters
- Add useRemoteNodeData query key dependency for proper re-fetching on filter changes
- Add api-node.test.ts with tests for search query propagation
- Add comprehensive tests for App component including remote data filtering
- Document search query propagation pitfall in .fusion/memory.md
2026-04-10 02:59:38 -07:00
gsxdsm
6324f047d0 feat(FN-1410): add inline missions header parity with agents view
- Add MissionManager component updates with expanded header controls
- Implement inline mission actions (interview, autopilot toggle) matching AgentsView style
- Add MissionManager unit tests with comprehensive coverage
- Add CSS styles for mission header alignment and interaction states
2026-04-10 02:14:48 -07:00
gsxdsm
4eb802909c test(FN-1368): tests for planning UI and interview modal 2026-04-10 02:00:45 -07:00
gsxdsm
640e38922b feat(FN-1361): add chat view with SSE streaming and session management
- Add ChatView component with sidebar navigation and message thread layout
- Add useChat hook with SSE streaming state management for real-time updates
- Add chat API functions for sessions and messages (create, list, send, stream)
- Add mobile-responsive CSS styles for chat interface
- Add tests for useChat hook and ChatView component
- Integrate chat into task view and navigation (Header, MobileNavBar)
2026-04-10 01:42:07 -07:00
gsxdsm
3c58dbe08d feat(FN-1266): add dashboard API integration tests for budget endpoints 2026-04-10 01:05:21 -07:00
gsxdsm
31726caec4 test(FN-1377): add ThemeSelector tests for 6 new themes 2026-04-10 00:59:17 -07:00
gsxdsm
028d7f44cc feat(FN-1265): add agent budget settings UI and API
- Add Budget Settings section to ConfigTab with token limit, usage threshold, budget period, and reset day inputs
- Add budget usage badge to DashboardTab showing token consumption and threshold warning
- Add budget API functions to api.ts (getBudgetSummary, updateBudgetConfig, deleteBudgetUsage)
- Add budget routes to routes.ts for GET/PATCH/DELETE agent budget endpoints
- Add CSS styles for budget progress bar, warning indicators, and section layout
- Add comprehensive tests for budget UI components and API routes
2026-04-10 00:25:17 -07:00
gsxdsm
3fdc16bf5d feat(FN-1408): add node provider and remote node status integration
- Add NodeProvider and useNodeContext to App shell for centralized node state
- Add node selector dropdown and status indicator to Header component
- Wire remote node data and event hooks into task-facing views
- Update App.test.tsx mocks for new node context providers
- Add project memory learnings for node context wiring patterns
- Update dashboard guide documentation for node selection
2026-04-09 23:42:25 -07:00
gsxdsm
be102a88cd feat(FN-1387): add fullscreen expand toggle to agent log viewer
- Add expand/collapse fullscreen button to AgentLogViewer header
- Implement fullscreen mode with fixed overlay positioning
- Add CSS styles for fullscreen container and header visibility
- Add comprehensive tests for fullscreen toggle functionality
2026-04-09 23:22:28 -07:00
gsxdsm
2077398f40 feat(FN-1504): add non-mobile search toggle for board/list views
- Add search toggle button to header controls for non-mobile viewports
- Toggle persists search visibility state across board and list views
- Implement responsive visibility rules (show on non-mobile, hide on mobile)
- Add comprehensive tests for tablet header controls and Header component
- Update Header component with search toggle functionality
2026-04-09 23:03:05 -07:00
gsxdsm
29e1ade4c3 fix(FN-1374): truncate mission labels on task cards
- Add truncation logic for mission labels exceeding max length in TaskCard component
- Add CSS text-overflow styles for mission label ellipsis display
- Add unit tests for mission label truncation behavior
2026-04-09 22:55:24 -07:00
gsxdsm
7acae1928d feat(FN-1372): reduce mobile nav bar height from 56px to 48px
- Reduce MobileNavBar height from 56px to 48px for a more compact mobile experience
- Update footer safe area padding to accommodate the new nav height
- Update board mobile layout tests to reflect the reduced height
- Update mobile nav bar CSS tests for the new height value
2026-04-09 22:50:43 -07:00