Commit Graph

2380 Commits

Author SHA1 Message Date
Fusion
d0a49b108c feat(FN-1898): add provider descriptions and card layout to onboarding
- Add ProviderCard component displaying name, description, and model count
- Display provider descriptions during model onboarding flow
- Add card-based layout for provider selection in ModelOnboardingModal
- Add comprehensive tests for ModelOnboardingModal component
- Include CSS styles for provider cards with hover states
2026-04-16 06:53:15 -07:00
Fusion
da432d515c fix(FN-1894): add base and mobile CSS for .mailbox-view full-page layout
- Add .mailbox-view base styles for full-page layout with flexbox and inset edges
- Add mobile responsive styles for .mailbox-view within 768px breakpoint
- Add MailboxView component test covering layout rendering and mobile behavior
2026-04-16 06:33:37 -07:00
Fusion
e0266565f3 feat(FN-1821): add settings and auth sync API routes for mesh nodes
- Add GET /api/nodes/:id/settings endpoint to fetch remote node settings
- Add POST /api/nodes/:id/settings/push to push local settings to a remote node
- Add POST /api/nodes/:id/settings/pull to pull settings from a remote node
- Add GET /api/nodes/:id/settings/sync-status for sync diff summary
- Add POST /api/nodes/:id/auth/sync to sync model auth credentials
- Add POST /api/settings/sync-receive inbound settings endpoint
- Add POST /api/settings/auth-receive inbound auth endpoint
- Add GET /api/settings/auth-export to export local auth credentials
- Add comprehensive route tests for all sync endpoints
- Update AGENTS.md with Node Settings Sync API reference
2026-04-16 06:25:37 -07:00
Fusion
261bfff9ae feat(FN-1890): improve mobile UX for SkillsView component
- Add comprehensive mobile CSS overrides for skills page layout and responsiveness
- Improve touch targets for toggle switches and interactive elements (44px minimum per Apple HIG)
- Polish skills view base styles with refined toggle dimensions
- Expand mobile CSS tests to cover touch target sizes and responsive layout
2026-04-16 06:16:50 -07:00
Fusion
fdaf1cacfe feat(FN-1888): add mobile-ready MailboxView with agents load and styles
- Load agents on mount for compose from any MailboxView tab
- Add .mailbox-view base styles for full-page layout
- Add .mailbox-view mobile overrides with safe-area-inset handling
- Add MailboxView test coverage for compose from inbox with agents
2026-04-16 05:56:17 -07:00
Fusion
7e05e8962f fix(FN-1817): enrich session list with lastMessagePreview and restore active session on remount
- Add lastMessagePreview field to ChatSession to show message previews in session list
- Restore active session state on component remount via stored lastSessionId
- Add chat routes for session management (create, list, read, update/delete)
- Add tests for useChat hook, chat store, and chat routes
- Remove unused serveCommand assignment in serve.ts command
2026-04-16 05:47:34 -07:00
Fusion
6e784c3700 feat(FN-1813): merge fusion/fn-1813 2026-04-16 05:37:24 -07:00
gsxdsm
72842d8687 feat(FN-1808): merge fusion/fn-1808 2026-04-16 04:53:09 -07:00
gsxdsm
06383521b3 feat(FN-1885): merge fusion/fn-1885 2026-04-16 04:38:12 -07:00
gsxdsm
589615806a feat(FN-1804): merge fusion/fn-1804 2026-04-16 04:38:05 -07:00
Fusion
1d706d7671 feat(FN-1803): add nodeId support to project registration and browse-directory
- Add nodeId parameter to registerProject in CentralCore for multi-project tracking
- Update POST /api/projects route to accept and persist nodeId
- Update browse-directory route to filter by nodeId
- Add nodeId field to frontend API wrappers for registerProject and browseDirectory
- Add comprehensive tests for nodeId in project registration and browse-directory routes
2026-04-16 04:34:49 -07:00
Fusion
020b27fc37 feat(FN-1884): fix mobile side margins in settings pages
- Fix mobile side margins on settings pages to use design tokens
- Add responsive padding for mobile viewports in settings components
- Add settings-mobile test to verify mobile layout behavior
2026-04-16 04:11:17 -07:00
Fusion
ea02e146c5 feat(FN-1880): add mobile roadmap controls - list, create, navigate
- Add mobile-friendly roadmap view with list, create, and navigation controls
- Implement RoadmapCard and inline creation form for quick roadmap entry
- Add mobile-optimized navigation between roadmap views
- Include mobile touch targets and responsive layout using design tokens
- Add comprehensive tests for RoadmapsView mobile components
2026-04-16 03:56:09 -07:00
Fusion
8e1d43ecc6 feat(FN-1802): add generic node proxy forwarding route
- Add /proxy/:nodeId/* route to forward HTTP requests to registered mesh nodes
- Implement node proxy handler with target URL construction and request forwarding
- Add comprehensive test suite covering route registration, request forwarding, and error cases
- Support GET/POST/PUT/DELETE/PATCH methods with full header and body passthrough
2026-04-16 03:44:46 -07:00
Fusion
5939cb9b11 fix(FN-1871): constrain description textarea height on mobile task edit
- Add mobile-specific textarea constraints for task description in task edit modal
- Set max-height: 120px with auto-grow up to that limit on mobile viewports
- Add regression test for mobile modal textarea height behavior
- Ensures description field doesn't grow too tall and cause layout issues on small screens
2026-04-16 03:26:02 -07:00
Fusion
6927cc028a feat(FN-1806): add node proxy API routes for remote node data fetching
- Add proxy API routes for cross-node data fetching (tasks, agents, stats, health)
- Implement secure proxy endpoint with target validation and error handling
- Add comprehensive test suite covering proxy route functionality
- Update memory documentation with cross-node proxy implementation
2026-04-16 03:16:29 -07:00
gsxdsm
48c3fe740a feat(FN-1865): complete remotes tab UX pass with two-column layout
- Update tests for two-column layout structure
- Fix test selectors to use within() for scoped queries
- Add mocks for fetchGitRemotesDetailed in button tests
- Use remote-sync-card and remote-detail-card testids

Co-authored-by: Fusion <noreply@runfusion.ai>
2026-04-16 02:49:48 -07:00
Fusion
21759d34e7 feat(FN-1776): expose AgentStore for SSE event forwarding with ephemeral agent filtering
- Expose getAgentStore from runtime and engine packages
- Add includeSystem filter to getOrgTree API endpoint
- Wire AgentStore into SSE endpoint for event forwarding
- Forward agent events through the SSE pipeline
- Exclude ephemeral agents from org tree API and UI
- Filter ephemeral agents in useAgents hook
- Update AgentsView test to expect includeSystem filter
- Document agent SSE event forwarding architecture
2026-04-16 01:44:54 -07:00
Fusion
47be23932c docs(FN-1744): document scoped scheduling semantics in README and settings reference
- Add scheduling scope section to README explaining global vs project execution scopes
- Document scope resolution rules: scope=global for cross-project, scope=project for per-project
- Add operational guidance for multi-project setups (backups, insight extraction vs CI, deployments)
- Update architecture.md to mention scoped automations/routines in store and API descriptions
- Add scheduling scope section to settings-reference.md covering cron defaults and interaction with autoBackup and insightExtraction settings
- Add changeset for @gsxdsm/fusion minor release documenting scoped scheduling feature
2026-04-16 01:33:29 -07:00
Fusion
879fd1f2b0 feat(FN-1897): rewrite onboarding step copy for mixed-audience clarity
- Rewrite AI Setup step description to explain what Fusion does with AI models
- Update GitHub step text to clarify what linking enables (issue import, PR sync)
- Refresh First Task step to be more actionable and inviting
- Update completion message to guide users to the board
- Revise helper text across all steps to be warmer and less technical
- Update test assertions to match new copy
2026-04-16 01:22:37 -07:00
gsxdsm
ed778db7c2 feat(FN-1743): merge fusion/fn-1743 2026-04-16 01:08:05 -07:00
Fusion
a9d6c4159d feat(FN-1899): implement login timeout, cancellation, and 409 conflict handling
- Add login outcome types (timeout, success, failed) and state tracking via stepData
- Implement login timeout after MAX_POLL_CYCLES (150 polls × 2s = 5 minutes) with warning toast
- Add 409 Conflict detection for concurrent login attempts with warning toast
- Add cancellation capability for in-progress logins with cleanup and state reset
- Update ModelOnboardingModal tests to cover timeout and concurrent login scenarios
2026-04-16 01:05:18 -07:00
Fusion
4fb8be4273 feat(FN-1899): add login timeout, cancellation, and 409 conflict handling
- Add LoginOutcome type ('pending' | 'success' | 'failed' | 'timeout') with state tracking
- Implement AbortController-based cancellation for OAuth login flows
- Add timeout detection after MAX_POLL_CYCLES (150 polls, ~5 min)
- Handle 409 Conflict when concurrent login is attempted
- Persist login outcomes to onboarding stepData for session recovery
- Add getStepData mock export to App.test.tsx vi.mock
- Fix ToastType: use 'info' instead of invalid 'warning' type
2026-04-16 00:26:01 -07:00
gsxdsm
dfb0a836be feat(FN-1770): merge fusion/fn-1770 2026-04-16 00:23:05 -07:00
Fusion
5789101cd9 fix(FN-1866): add warning toast type for ModelOnboardingModal 2026-04-16 00:15:41 -07:00
gsxdsm
c020764107 feat(FN-1768): merge fusion/fn-1768 2026-04-16 00:08:06 -07:00
Fusion
23ca8bd3ef refactor(FN-1797): replace catch-any with catch-unknown in dashboard routes
- Replace catch-any with catch-unknown in dashboard route error handlers
- Remove unused imports from routes.ts
- Improves TypeScript type safety by catching only unknown errors
2026-04-15 23:47:35 -07:00
Fusion
14a8f76b37 test(FN-1742): add scope regression tests for routines and automations
- Add scope regression tests for dashboard routine routes
- Add scope regression tests for dashboard automation routes
- Add scope regression tests for RoutineStore
- Add scope regression tests for AutomationStore
- Total 609 lines of test coverage across 3 test files
2026-04-15 23:33:45 -07:00
Fusion
dfa5823694 feat(FN-1863): add non-blocking progression indicators to onboarding wizard
- Add 'Optional' badge to AI Setup and GitHub step headers
- Add 'Skip setup →' link on AI Setup step footer
- Add 'Skip GitHub →' link on GitHub step footer
- Add helper text on AI Setup step when no providers authenticated
- Add helper text on GitHub step when GitHub is available but not connected
- Add regression tests for all non-blocking progression behaviors
- Add CSS styles for optional badge, skip links, and helper text
2026-04-15 23:18:37 -07:00
Fusion
37fdcc99a7 test(FN-1893): add comprehensive QMD test coverage
- Add QMD route success tests in dashboard routes
- Expand QMD prompt completeness tests in executor
- Add QMD bootstrap and instruction completeness tests in triage
- Add QMD convenience function integration tests in memory-backend and project-memory
2026-04-15 23:09:02 -07:00
Fusion
738ff223aa feat(FN-1861): restore completed steps in onboarding resume flow
- Update getOnboardingResumeStep to include completedSteps array
- Allow backward navigation to previously completed steps in onboarding modal
- Show completed step count in the resume card UI
- Restore completed steps when reopening the onboarding modal
- Add comprehensive tests for completedSteps functionality and live auth reopen scenarios
2026-04-15 23:00:26 -07:00
Fusion
93f8bb0cef feat(FN-1856): rename chat agent to Fusion and add model indicator tag
- Rename chat agent from generic label to 'Fusion' in ChatView header
- Add model indicator tag displaying the current AI model name
- Fix GPT model name formatting to use proper display name
- Add CSS styling for the model tag pill component
- Add changeset for minor version bump of @gsxdsm/fusion
- Update and add ChatView tests for Fusion name and model tag
2026-04-15 22:35:35 -07:00
Fusion
e5db683c42 feat(FN-1754): raise global max concurrent ceiling to 10000
- Enforce 10000 upper bound in CentralCore for globalMaxConcurrent setting
- Add 10000 upper bound validation in the project settings API route
- Raise max ceiling in SettingsModal from previous limit to 10000
- Add route test verifying the 10000 upper bound is enforced
2026-04-15 22:26:51 -07:00
Fusion
e89e085e54 feat(FN-1853): add description truncation with expand toggle to TaskDetailModal
- Add truncation state and expand/collapse toggle logic to TaskDetailModal
- Truncate descriptions at 4 lines with a 'Show more' button to expand
- Add CSS styles for description toggle button using design tokens
- Add comprehensive tests for truncation behavior and toggle interactions
2026-04-15 22:12:49 -07:00
Fusion
c0cf2e91f2 feat(FN-1741): add memory compaction feature
- Add MemoryCompaction service in core for compacting agent memory stores
- Add POST /api/memory/compact route handler in dashboard server
- Add compactMemory frontend API wrapper in dashboard app
- Add Compact Memory button to SettingsModal UI
- Add comprehensive tests for the compaction service and routes
2026-04-15 22:03:50 -07:00
Fusion
91cc970e78 feat(FN-1742): Step 4 - scope-aware route handlers and dashboard regression tests
- Update automation routes to use scope-aware store methods:
  - GET /automations uses listSchedules(scopeQuery)
  - POST /automations passes projectId
  - GET/PATCH/DELETE /automations/:id use scope-aware methods
  - POST /automations/:id/run uses scope-aware recordRun
  - POST /automations/:id/toggle uses scope-aware updateSchedule
  - POST /automations/:id/steps/reorder uses scope-aware reorderSteps

- Update routine routes to use scope-aware store methods:
  - GET /routines uses listRoutines(scopeQuery)
  - POST /routines passes projectId
  - GET/PATCH/DELETE /routines/:id use scope-aware methods
  - POST /routines/:id/run and /trigger use scope-aware getRoutine
  - GET /routines/:id/runs uses scope-aware getRoutine

- Fix CronRunner and RoutineScheduler to use { scope: value } format
- Update test mocks to implement scope-aware methods
- Update test assertions for new API signatures
- Fix pre-existing CLI typecheck error (storeToken call)
2026-04-15 21:24:15 -07:00
Fusion
85ed165b0e fix(FN-1851): make GitManager remotes tab scrollable on mobile
- Add overflow-y: auto and max-height to remotes tab panel for mobile scrolling
- Add test to verify GitManager modal remotes panel is scrollable at mobile widths
- Ensures remotes content is accessible on small screens without overflow issues
2026-04-15 21:22:51 -07:00
Fusion
3b66fa4fe4 feat(FN-1848): simplify mobile node selection to read-only label
- Replace interactive dropdown with static label in mobile header
- Add CSS styling for the read-only node indicator
- Improve mobile UX by removing unnecessary dropdown interaction
2026-04-15 21:01:07 -07:00
Fusion
be8add9ef4 style(FN-1847): unify dialog overlay styling and add accessibility attributes
- Add role=dialog and aria-modal attributes to all modal dialogs for accessibility
- Standardize close button aria-labels across all modals
- Unify overlay backdrop-filter, z-index, and background styles in styles.css
- Add light theme overrides for non-standard overlay backgrounds
- Update AgentListModal tests to reflect new aria attributes
- Add changeset for @gsxdsm/fusion package
2026-04-15 20:44:40 -07:00
Fusion
f2c5ac7b82 feat(FN-1737): auto-delete child/task-worker agents and hide system agents by default
- Auto-delete spawned child agents when their parent task terminates (reportsTo cleanup)
- Auto-delete task-worker agents when their owned task completes
- Add includeSystem filter to AgentStore.list() and REST API
- Hide system agents by default on the agents page (show only user-facing agents)
- Wire includeSystem toggle through the API layer and AgentsView component
- Add changeset for @gsxdsm/fusion patch release
- Add comprehensive tests for agent cleanup and includeSystem filtering
2026-04-15 20:36:42 -07:00
Fusion
9bd437e166 feat(FN-1733): add dedicated pause/resume APIs for projects
- Add pauseProject() and resumeProject() methods to ProjectEngineManager
- Wire pause and resume routes to engineManager with proper error handling
- Update frontend useProjectActions hook to use dedicated pause/resume APIs
- Add comprehensive tests for pause/resume in ProjectEngineManager
- Add route tests for project pause/resume with engineManager mocks
- Fix mock stubs for getProject/updateProject/updateProjectHealth
2026-04-15 19:53:22 -07:00
Fusion
01a221fbe8 feat(FN-1846): add mobile responsive styles for node modals
- Add mobile responsive styles for AddNodeModal and ConnectNodeModal
- Create comprehensive AddNodeModal tests with type toggle, validation, and transitions
- Improve CSS consistency across node modals with proper spacing and transitions
- Refactor AddNodeModal TSX markup with clean structure and type toggle
- Remove duplicate CSS block in ConnectNodeModal
2026-04-15 19:27:53 -07:00
Fusion
e4eac5c03b fix(FN-1845): make routine editor action buttons sticky
- Add position: sticky with bottom: 0 and z-index: 1 to routine editor action buttons
- Ensures action buttons remain visible when scrolling in the routine editor
- Applied to both default and mobile responsive variants
2026-04-15 18:55:27 -07:00
gsxdsm
c6ad3da8cc feat(FN-1844): merge fusion/fn-1844 2026-04-15 18:38:06 -07:00
Fusion
cf1b36d5da feat(FN-1736): add projectId scoping to chat session creation
- Add projectId field to chat session creation for multi-project isolation
- Include projectId in session response when projectId query param is provided
- Resolve agent from project-scoped store using getProjectContext
- Add projectId assertion to chat session creation tests
- Mock project-store-resolver in tests for proper store isolation
- Update project memory with multi-project scoping audit findings
2026-04-15 18:30:39 -07:00
gsxdsm
3a8cda93b5 feat(FN-1793): merge fusion/fn-1793 2026-04-15 18:23:17 -07:00
gsxdsm
6fc1a1bd4f feat(FN-1675): merge fusion/fn-1675 2026-04-15 18:23:05 -07:00
Fusion
7695497cfd test(FN-1730): add lane precedence and summarize-title scoping regression tests
- Add comprehensive lane precedence tests in routes.test.ts
- Add summarize-title scoping regression tests to verify correct behavior
- Simplify summarize-title scoping tests for better maintainability
- Expand test coverage for route lane matching logic
2026-04-15 17:45:32 -07:00
Fusion
e068e139a4 feat(FN-1717): add scope selection controls to dashboard UI
- Add scope selector controls to ScheduleForm and RoutineEditor components
- Add scope badges to RoutineCard and ScheduleCard for visual scope indication
- Add scope controls to ScheduledTasksModal with projectId propagation
- Add scheduling scope options to automation/routine API wrappers
- Add comprehensive regression tests for scope propagation and modal wiring
- Update README with dashboard UI scope selection documentation
2026-04-15 17:36:18 -07:00
gsxdsm
268dced2ec feat(FN-1716): merge fusion/fn-1716 2026-04-15 17:08:12 -07:00