Commit Graph

1732 Commits

Author SHA1 Message Date
gsxdsm
5d124c447d feat(FN-1443): create dedicated soul.md files for all New Agent presets
- Add soul.md files for 20 agent presets (backend-engineer, ceo, cfo, ci-engineer, cmo, cto, data-engineer, designer, devops-engineer, engineer, frontend-engineer, fullstack-engineer, marketing-manager, ml-engineer, product-manager, qa-engineer, reviewer, security-engineer, technical-writer, triage)
- Create agent-presets/index.ts module exporting all preset definitions
- Refactor NewAgentDialog to use centralized agent-presets module
- Add comprehensive tests for agent presets validation
- Update docs/agents.md with agent preset documentation
2026-04-09 15:23:51 -07:00
gsxdsm
6f8a904747 fix(FN-1334): reduce terminal tab heights on mobile
- Reduce terminal tab heights from 48px to 36px on mobile
- Adjust terminal button sizes from 36px to 32px
- Optimize padding and font sizes for mobile viewports
2026-04-09 15:23:04 -07:00
gsxdsm
57ba3dbbd7 feat(FN-1457): fix stale subtask session title when minimizing newly started breakdown
- Refactor beginBreakdown() to accept explicit description parameter
- Update auto-start effect to pass current initialDescription directly
- Pass description as broadcastTitle to connectToSubtaskStream for correct background activity title
- Preserves existing send-to-background and cancel semantics
2026-04-09 15:20:02 -07:00
gsxdsm
13304cdfdc fix(FN-1333): wrap btn-icon hover rules in @media (hover: hover) and add active state
- Wrap .btn-icon hover styles in @media (hover: hover) to prevent touch activation on mobile/touch devices
- Add .btn-icon:active styles for proper pressed state feedback
- Fixes unintended hover state activation on touch interactions
2026-04-09 15:17:04 -07:00
gsxdsm
ed275f2021 feat(FN-1246): add app version tracking and sync infrastructure
- Add getAppVersion() utility that walks up directories to find package.json
- Add parseSemver() for semver string parsing with major/minor/patch components
- Add CentralCore version sync methods (getAppVersion, syncVersion, getLastSyncTime, getSyncStatus)
- Add CentralCore events for version sync lifecycle (version-sync-started, version-sync-completed, version-sync-failed)
- Add schema v4 migration with appVersion and lastSyncTime columns to projects table
- Export new types (CentralSyncStatus, SyncResult) and utilities via @fusion/core
- Update memory.md documentation with new types
- Fix TypeScript error in app-version.ts (return pkg.version directly instead of cached variable)
2026-04-09 15:14:19 -07:00
gsxdsm
bc936ec893 feat(FN-1428): remove separate Commits tab for done tasks
- Update README to reflect merged Changes tab replacing Commits tab
- Remove CommitsTab component and related imports from TaskDetailModal
- Remove commit-related modal state from useModalManager
- Update TaskDetailModal tests to remove Commits tab assertions
2026-04-09 15:10:20 -07:00
gsxdsm
ad7ec81016 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
c9c72203ab 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
cb339d6657 feat(FN-1397): strengthen ProjectOverview tests with sorting and filtering behavior 2026-04-09 15:03:52 -07:00
gsxdsm
7cd9cc9754 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
e8db0de099 feat(FN-1397): replace MultiProjectFlow smoke tests with behavior tests 2026-04-09 14:58:47 -07:00
gsxdsm
b13ad40361 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
3b1756375b 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
99458cdda5 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
3ef6b2e383 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
ce370bf8a1 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
2bb35ae2a5 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
cb903f4801 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
f045c438cd 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
582f9bec47 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
bbd5495bb7 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
df8057491e 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
9f8fd5e520 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
b5b37c4fa6 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
0c3e46e4e0 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
2c7562eea2 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
f0578bdfa5 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
590d7762de 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
b89e87c787 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
159a117469 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
c4a48491e2 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
b0f543b632 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
a53da8890c 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
1808ab8e06 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
0ebf60904c 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
0304df348f 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
d8619ae298 docs(FN-1228): add Node Dashboard documentation to AGENTS.md 2026-04-09 12:37:18 -07:00
gsxdsm
590e8af63b docs(FN-1379): add UX improvement audit report 2026-04-09 12:37:05 -07:00
gsxdsm
2e3c94f4de feat(FN-1228): add Node Dashboard UI with mesh topology and routes tests 2026-04-09 12:34:03 -07:00
gsxdsm
a16568a75a 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
e2f20dc2be 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
2410f77b00 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
fb061d7275 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
ea8d32d4bf 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
9320530603 feat(FN-1373): add tests for reconcileAllMissionFeatures and feature:updated SSE handler 2026-04-09 11:34:56 -07:00
gsxdsm
26ff7eb900 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
889b7fc37c feat(FN-1373): refresh selected mission detail on feature:updated SSE event 2026-04-09 11:30:58 -07:00
gsxdsm
b81076081d feat(FN-1373): add reconcileAllMissionFeatures() for startup reconciliation 2026-04-09 11:28:56 -07:00
gsxdsm
f0aa63bd73 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
27991efdfd fix(FN-1371): replace placeholder MiniMax and Z.ai logos with real brand icons 2026-04-09 11:23:33 -07:00