Commit Graph

1826 Commits

Author SHA1 Message Date
gsxdsm
c32fc14381 fix(FN-1332): fix activity log modal mobile layout and theme colors
- Fix mobile layout issues in activity log modal
- Update theme colors for better contrast and consistency
- Improve responsive behavior on smaller screens
2026-04-09 15:09:49 -07:00
gsxdsm
7995944653 feat(FN-1431): harden Claude session reset derivation with robust timestamp parsing
Squash merge of fusion/fn-1431. The changes were already integrated into main through other commits; this commit formally records the merge.

- Add robust timestamp parsing in getLastSessionResetTimestamp()
- Support multiple date formats (ISO-8601, Unix timestamps in seconds and milliseconds)
- Add fallback chain: environment variable → Claude config file → current date
- Parse Unix timestamps (both seconds and milliseconds) from config file
- Add comprehensive tests for timestamp parsing edge cases
2026-04-09 15:05:39 -07:00
gsxdsm
5462a3085a feat(FN-1397): strengthen ProjectOverview tests with sorting and filtering behavior 2026-04-09 15:03:52 -07:00
gsxdsm
ebf7e6ec74 fix(FN-1331): prevent horizontal scroll in task modal logs panel on mobile
- Add overflow-x: auto CSS to task modal logs panel for mobile
- Add unit test for detail body mobile overflow behavior
2026-04-09 15:02:18 -07:00
gsxdsm
0b2d4e5d49 feat(FN-1397): replace MultiProjectFlow smoke tests with behavior tests 2026-04-09 14:58:47 -07:00
gsxdsm
37f75e5eb2 fix(FN-1329): make description text input highlight theme-aware
- Add theme-aware selection and focus highlight styles for description textarea
- Ensure text input focus state respects dark/light theme colors
2026-04-09 14:58:09 -07:00
gsxdsm
cc1485b971 feat(FN-1396): add Budget Settings section to AgentDetailView ConfigTab
- Add Budget Settings section to agent ConfigTab in AgentDetailView
- Section includes Token Budget, Usage Threshold, Budget Period, and Reset Day controls
- Budget settings are stored in agent.runtimeConfig.budgetConfig and persisted via PATCH /api/agents/:id
- Add comprehensive tests for Budget Settings UI interactions
- Document Budget Settings in AGENTS.md
2026-04-09 14:57:46 -07:00
gsxdsm
3c3560aca3 docs(FN-1134): document create-fusion-plugin skill
- Add skill documentation to agent memory
- Document routing rules for create/add-tool/debug workflows
- Include API reference, patterns, and template file locations
- Note vitest pool:threads requirement for plugin tests
2026-04-09 14:57:14 -07:00
gsxdsm
a1e5cbce2b fix(FN-1384): increase timeouts for CI-slow agent store tests
- Increase heartbeat test timeout from 150ms to 250ms for CI environments
- Increase in-process-runtime test timeouts to handle slower CI execution
- Prevents flaky test failures in slow CI runners
2026-04-09 14:54:58 -07:00
gsxdsm
d3d590d24d fix(FN-1382): remove autopilotLoading state for simplified toggle
- Remove unnecessary autopilotLoading state variable from MissionManager
- Simplify autopilot toggle by relying directly on autopilotEnabled prop
- Eliminate intermediate loading state that added complexity without benefit
2026-04-09 14:51:50 -07:00
gsxdsm
d9e4bc2b8c fix(FN-1327): replace purple-tinted bg-secondary/bg-tertiary with color-mix derived values
- Replace hardcoded purple-tinted --bg-secondary (#1a1a2e) and --bg-tertiary (#252536) with dynamic color-mix values
- Use --surface and --card blending for better visual consistency with the dark theme palette
- Ensure background layers harmonize with the existing surface/card design tokens
2026-04-09 14:49:20 -07:00
gsxdsm
d2080b190e feat(FN-1386): add Kimi logo, usage mapping, fetcher, and tests
- Add Kimi logo to ProviderIcon component for visual identification
- Add Kimi provider to usage mapping for cost tracking
- Add Kimi usage fetcher to fetch cost and usage data from Kimi API
- Add ProviderIcon tests for Kimi logo verification
- Add UsageIndicator tests for Kimi provider
- Add comprehensive usage tests for Kimi fetcher
2026-04-09 14:48:56 -07:00
gsxdsm
8c5327a660 feat(FN-1111): merge fusion/fn-1111 (auto-resolved)
- docs(FN-1111): complete Step 8 - plugin system documentation
- feat(FN-1111): complete Step 7 - testing and build fixes
- feat(FN-1111): complete Step 6 - export plugin types from core
- feat(FN-1111): complete Step 5 - plugin SDK package
- feat(FN-1111): complete Step 4 - plugin loader with lifecycle management
- feat(FN-1111): complete Step 3 - plugin store with CRUD
- feat(FN-1111): complete Step 2 - add plugins table schema migration
- feat(FN-1111): complete Step 1 - plugin type definitions
2026-04-09 14:45:32 -07:00
gsxdsm
cdc430598d feat(FN-1398): complete Step 1 — re-validate audit findings
- Add docs/codebase-improvement-audit.md with re-validated audit findings
- Update docs/README.md to reference the audit document
2026-04-09 14:37:21 -07:00
gsxdsm
378383c645 docs(FN-1379): publish UX audit report to docs folder
- Add comprehensive UX audit report documenting accessibility findings
- Include WCAG 2.1 compliance analysis with severity ratings
- Document color contrast, keyboard navigation, and semantic HTML findings
- Add actionable recommendations prioritized by impact
2026-04-09 14:27:04 -07:00
gsxdsm
8b8439a400 feat(FN-1326): externalize search filter from ListView
- Remove internal search filter from ListView, use searchQuery prop instead
- Show header search bar in list view for consistent filtering
- Remove obsolete list-filter styles (63 lines removed)
- Update tests to reflect new searchQuery prop behavior
2026-04-09 14:02:35 -07:00
gsxdsm
7d484dd972 feat(FN-1257): add runContext audit trail for task mutations
- Add RunMutationContext type to track which agent run caused a mutation
- Thread runContext through TaskStore.logEntry, addComment, addSteeringComment, and pauseTask
- Propagate runContext from HeartbeatMonitor.executeHeartbeat to task store operations
- Propagate runContext from TaskExecutor.execute to task store operations
- Add GET /api/agents/:id/runs/:runId/mutations endpoint to query mutations by runId
- Add createTaskLogToolWithContext for heartbeat tools with run context support
- Add comprehensive tests for RunMutationContext across store and heartbeat modules
- Update memory.md with RunMutationContext usage convention
2026-04-09 13:59:43 -07:00
gsxdsm
e26321790c refactor(FN-1353): simplify mission autopilot to single toggle
- Deprecate autoAdvance field in favor of autopilotEnabled as the sole control
- Remove autoAdvance guard logic from MissionAutopilot engine class
- Simplify MissionManager UI to use single autopilot toggle with visual state indicator
- Update MissionAutopilot tests to use autopilotEnabled instead of autoAdvance
- Update MissionManager component tests for simplified UI
- Update AGENTS.md documentation to reflect the simplified autopilot model
2026-04-09 13:45:19 -07:00
gsxdsm
4ef5d73ba1 fix(FN-1388): display Claude session reset time in usage dialog
- Fix usage dialog to show Claude session reset time when session is paused
- Add unit tests for reset time display logic in usage calculations
- Update usage summary and history components to include reset time
2026-04-09 13:43:41 -07:00
gsxdsm
5b9ad7db90 fix(FN-1325): make new task dialog take up full height on mobile
- Add height: 100dvh and max-height: 100dvh to new-task-modal for mobile viewport support
- Fixes dialog not filling the mobile viewport height on smaller screens
2026-04-09 13:41:52 -07:00
gsxdsm
0aca8cbb73 feat(FN-1390): replace sidebar emoji scope markers with Lucide icons
- Replace 🌐/📁 emoji in SettingsModal sidebar with Globe/FileText Lucide icons
- Update SettingsModal tests to expect icon-based scope markers instead of emoji
- Use consistent iconography for visual hierarchy between global and project settings
2026-04-09 13:40:59 -07:00
gsxdsm
8812bea1ff fix(FN-1385): fix Z.ai logo being cut off in usage modal
- Adjust ProviderIcon sizing to prevent logo clipping in usage modal
2026-04-09 13:33:08 -07:00
gsxdsm
4a07e69f7d feat(FN-1324): add fullscreen expand to task creation components
- Add Maximize2/Minimize2 toggle button to QuickEntryBox for fullscreen textarea expansion
- Add Maximize2/Minimize2 toggle button to InlineCreateCard for fullscreen textarea expansion
- Implement single-textarea pattern with positioned container for expand button overlay
- Add description--fullscreen CSS class for fullscreen textarea styling
- Add focus handoff when entering fullscreen mode
- Add comprehensive unit tests for fullscreen expansion in both components
- Tests cover collapsed/expanded states, toggle button visibility, and class application
2026-04-09 13:31:26 -07:00
gsxdsm
008f664183 feat(FN-1224): add peer gossip protocol for mesh network synchronization
- Add peer exchange types (MeshSyncState, PeerExchangeMessage, PeerGossipConfig) to core types
- Add peer merge and sync methods to CentralCore (mergeProject, syncWithPeer, getMeshState)
- Add mesh sync API endpoints (GET /api/mesh/state, POST /api/mesh/sync)
- Implement PeerExchangeService background gossip engine for periodic peer synchronization
- Add comprehensive tests for CentralCore mesh methods and PeerExchangeService
- Update memory docs with peer gossip protocol documentation
2026-04-09 13:22:29 -07:00
gsxdsm
fc23e522a7 feat(FN-1232): add remote node mesh dashboard integration
- Add core proxy API infrastructure (api-node.ts) with remote node communication
- Create NodeContext for centralized node state management
- Implement useNodeProxy hook for node operations (metrics, events, health)
- Implement useRemoteNodeData hook with 10-second polling for live metrics
- Implement useRemoteNodeEvents hook for real-time SSE event subscription
- Add NodeStatusIndicator component with animated status indicators
- Add comprehensive tests for all new hooks and components
- Update dashboard styles for node status visualization
2026-04-09 13:01:19 -07:00
gsxdsm
7ab96cc876 feat(FN-1381): add Send Back dropdown for in-progress tasks
- Add Send Back dropdown to TaskCard showing for in-progress tasks with available target columns
- Thread onMoveTask prop through Column component to BoardView
- Terminate agent sessions when tasks move away from in-progress column
- Add executor tests for move-away session termination
- Add TaskCard send-back UI tests with dropdown visibility and interaction verification
2026-04-09 13:00:37 -07:00
gsxdsm
3ea53f1aa2 feat(FN-1229): add node mesh CLI commands for node and mesh management
- Add fn node list command to list all registered nodes with status and URL
- Add fn node show command to display detailed node information including system metrics
- Add fn node health-check command to trigger and verify node health status
- Add fn node remove command to unregister nodes from the mesh
- Add fn mesh status command to show mesh topology with peer connections
- Add comprehensive tests for all node and mesh CLI commands
- Update bin.ts to wire up new node and mesh subcommands
- Update memory with CLI mock pattern for testing
2026-04-09 12:54:16 -07:00
gsxdsm
3ef12726d1 feat(FN-1375): add null-as-delete pattern for settings with Reset button
- Send null instead of undefined when clearing token cap to explicitly delete setting
- Handle null values as delete operations in updateSettings (for clearing keys)
- Add Reset button in Settings modal to clear token cap with one click
- Update placeholder and help text for token cap input
- Fix TypeScript cast error for config.settings
2026-04-09 12:43:38 -07:00
gsxdsm
d0cb2e7faf docs(FN-1379): add UX improvement audit report
- Add comprehensive UX audit report covering accessibility, visual design, interaction quality, and user feedback
- Update project memory with key UX findings and improvement recommendations
2026-04-09 12:42:41 -07:00
gsxdsm
3e403f8816 feat(FN-1228): enhance MeshTopology with peer awareness and status legend
- Export MeshTopologyProps interface for external use
- Add peer awareness lines between remote nodes for mesh visualization
- Implement dynamic SVG sizing based on number of remote nodes
- Add status color legend showing online/offline/connecting/error states
- Improve CSS variable handling with fallback values
- Use transform-based positioning for cleaner SVG structure
2026-04-09 12:41:50 -07:00
gsxdsm
10f26b4fd8 docs(FN-1228): add Node Dashboard documentation to AGENTS.md 2026-04-09 12:37:18 -07:00
gsxdsm
d3cd02fd34 docs(FN-1379): add UX improvement audit report 2026-04-09 12:37:05 -07:00
gsxdsm
07e193b0a0 feat(FN-1228): add Node Dashboard UI with mesh topology and routes tests 2026-04-09 12:34:03 -07:00
gsxdsm
ced3ad3be6 fix(FN-1187): integration fixes for mission health and type updates
- Add /missions/health endpoint handling to MissionManager test mocks
- Add listMissionsWithSummaries to mission-e2e test mock
- Add planState to Slice type and mock factories
- Add stuckKillCount to retry task test assertions
- Update log message for stuck-killed retry
2026-04-09 12:21:51 -07:00
gsxdsm
850939d268 feat(FN-1228): complete Step 5 — MeshTopology component
- Added MeshTopology.tsx with SVG visualization
- Nodes arranged in circle with local node at center
- Color-coded by status
- Added CSS for mesh topology styles
2026-04-09 12:08:02 -07:00
gsxdsm
6328c18c9c feat(FN-1373): add mission feature reconciliation on startup
- Add reconcileAllMissionFeatures() method to sync task status with mission features
- Refresh selected mission detail when feature:updated SSE event fires
- Add unit tests for reconcileAllMissionFeatures and SSE handler
- Fix async getTask call in reconcileAllMissionFeatures (keep await)
2026-04-09 12:06:10 -07:00
gsxdsm
27dce00c17 fix(FN-1228): Update tests to match spec requirements
- DELETE /api/nodes/:id now returns 204 No Content
- GET /api/nodes/:id/metrics returns systemMetrics from node
- Added test for GET /api/mesh/state endpoint
2026-04-09 11:55:17 -07:00
gsxdsm
5e38eace77 feat(FN-1228): complete Step 1 — Backend API Routes modifications
- Modified POST /api/nodes to make type optional (defaults to 'remote')
- Changed DELETE /api/nodes/:id to return 204 No Content
- Updated GET /api/nodes/:id/metrics to return SystemMetrics from node.systemMetrics
- Added GET /api/mesh/state route for full mesh topology state
2026-04-09 11:51:03 -07:00
gsxdsm
97c6edd105 feat(FN-1373): add tests for reconcileAllMissionFeatures and feature:updated SSE handler 2026-04-09 11:34:56 -07:00
gsxdsm
4fc2dde663 feat(FN-1186): add Performance tab to agent detail with ratings
- Add agent rating API routes (GET/PATCH /api/agents/:id/ratings)
- Add API helper functions for fetching and updating agent ratings
- Add Performance tab UI to AgentDetailView with star rating display
- Add CSS styling for the Performance tab and star rating components
- Add comprehensive route tests for agent ratings endpoints
2026-04-09 11:33:40 -07:00
gsxdsm
c9e2c3a213 feat(FN-1373): refresh selected mission detail on feature:updated SSE event 2026-04-09 11:30:58 -07:00
gsxdsm
7d1a16ffcd feat(FN-1373): add reconcileAllMissionFeatures() for startup reconciliation 2026-04-09 11:28:56 -07:00
gsxdsm
bd9612291e fix(FN-1371): replace placeholder MiniMax and Z.ai logos with real brand icons
- Replace placeholder SVG content for MiniMax provider icon with authentic MiniMax branding
- Replace placeholder SVG content for Z.ai provider icon with authentic Z.ai branding
- Update ProviderIcon tests to reflect the new icon implementations
2026-04-09 11:24:27 -07:00
gsxdsm
88c0db6aac fix(FN-1371): replace placeholder MiniMax and Z.ai logos with real brand icons 2026-04-09 11:23:33 -07:00
gsxdsm
ddc574bdd7 feat(FN-1183): add agent reflections tab to dashboard
- Add API routes for agent reflections (GET, POST, DELETE)
- Create AgentReflectionsTab component with reflection list and form
- Integrate reflections tab into AgentDetailView
- Add CSS styles for the reflections tab UI
- Write tests for API routes and component
2026-04-09 11:15:57 -07:00
gsxdsm
f0619ed678 refactor(FN-1370): merge execution settings into scheduling section
- Remove separate Execution section from settings sidebar
- Move step execution settings (runStepsInNewSessions, maxParallelSteps) into Scheduling section
- Consolidate related runtime behavior settings for better UX
- Update tests to navigate to Scheduling section instead of Execution
2026-04-09 11:08:50 -07:00
gsxdsm
81a98c3acf feat(FN-1359): add ChatStore for session and message management
- Add chat system type definitions (ChatSession, ChatMessage, ChatMessageRole)
- Add SQLite schema migration for chat_sessions and chat_messages tables
- Implement ChatStore with full CRUD operations for sessions and messages
- Export ChatStore and types from @fusion/core public API
- Add comprehensive test suite for ChatStore with session/message operations
- Update schema version expectations in existing tests
2026-04-09 10:58:21 -07:00
gsxdsm
88396b2d05 feat(FN-1351): create useActivityLog hook with agent:log subscriptions 2026-04-09 10:31:25 -07:00
gsxdsm
977a99cee4 feat(FN-1351): create useTasks hook with TaskStore event subscriptions 2026-04-09 10:30:41 -07:00
gsxdsm
d4b1e8fdb1 fix(FN-1348): fix test mocks for HeartbeatMonitor wiring in dashboard
- Update dashboard command tests to properly mock HeartbeatMonitor dependencies
- Ensure test suite passes with correct wiring expectations
2026-04-09 10:20:39 -07:00