Commit Graph

2757 Commits

Author SHA1 Message Date
Fusion
0c0bde66f6 docs(FN-1916): add plugin UI slots section to memory.md 2026-04-16 10:12:16 -07:00
gsxdsm
d6dec4a917 feat(FN-1903): merge fusion/fn-1903 2026-04-16 10:08:14 -07:00
gsxdsm
fd241f2df8 feat(FN-1869): merge fusion/fn-1869 2026-04-16 10:08:06 -07:00
Fusion
515981f976 feat(FN-1925): add plugin UI slot infrastructure
- Add fetchPluginUiSlots API wrapper with PluginUiSlotEntry type
- Add usePluginUiSlots hook with 30-second TTL cache for slot data
- Add PluginSlot component with error boundary and placeholder rendering
- Add comprehensive tests for hook (cache behavior, error handling, isolation)
- Add comprehensive tests for component (render states, error boundary)
2026-04-16 10:04:44 -07:00
gsxdsm
3a80f8e976 feat(FN-1929): merge fusion/fn-1929 2026-04-16 09:53:29 -07:00
gsxdsm
4ea89605c6 feat(FN-1902): merge fusion/fn-1902 2026-04-16 09:53:15 -07:00
gsxdsm
ca3da5c5a0 feat(FN-1868): merge fusion/fn-1868 2026-04-16 09:53:06 -07:00
gsxdsm
c8ad04323d feat(FN-1930): merge fusion/fn-1930 2026-04-16 09:38:55 -07:00
gsxdsm
8b50a77d57 feat(FN-1901): merge fusion/fn-1901 2026-04-16 09:38:12 -07:00
gsxdsm
30a178bb3f feat(FN-1827): merge fusion/fn-1827 2026-04-16 09:08:06 -07:00
gsxdsm
563f169f3d feat(FN-1920): merge fusion/fn-1920 2026-04-16 08:53:14 -07:00
gsxdsm
caa03ad752 feat(FN-1906): merge fusion/fn-1906 2026-04-16 08:53:06 -07:00
Fusion
e0f1ec5bd7 feat(FN-1842): add Documents view with search and grouping
- Add GET /documents API endpoint in dashboard routes
- Add getAllDocuments store method with search support in core
- Add useDocuments hook and API wrapper for frontend consumption
- Add DocumentsView component with search, grouping by type/status, and sortable columns
- Add Documents nav item to Header and MobileNavBar with route /documents
- Integrate DocumentsView into App routing
- Add tests for DocumentsView and useDocuments hook
- Add changeset for @gsxdsm/fusion
2026-04-16 08:52:01 -07:00
gsxdsm
3f412e9aa3 feat(FN-1924): merge fusion/fn-1924 2026-04-16 08:38:55 -07:00
gsxdsm
3a0350da60 feat(FN-1908): merge fusion/fn-1908 2026-04-16 08:38:41 -07:00
gsxdsm
70da5b21e6 feat(FN-1826): merge fusion/fn-1826 2026-04-16 08:38:08 -07:00
Fusion
ad09d3b582 fix(FN-1909): reorder insights routes to prevent /runs being shadowed by /:id
- Reorder route definitions in insights-routes.ts to place /runs before /:id
- Fix bug where /runs endpoint was shadowed by the catch-all /:id parameterized route
- Add comprehensive regression tests for insights route ordering covering /runs, /stats, /agents, and dynamic ID matching
- Document route ordering pitfall in memory.md for future reference
2026-04-16 08:36:11 -07:00
gsxdsm
b1c9f29880 feat(FN-1923): merge fusion/fn-1923 2026-04-16 08:08:06 -07:00
gsxdsm
68b1651e0b feat(FN-1914): merge fusion/fn-1914 2026-04-16 07:53:31 -07:00
gsxdsm
0d507091b2 feat(FN-1912): merge fusion/fn-1912 2026-04-16 07:53:21 -07:00
gsxdsm
19745989cf feat(FN-1448): merge fusion/fn-1448 2026-04-16 07:53:14 -07:00
gsxdsm
42d528f30d feat(FN-1825): merge fusion/fn-1825 2026-04-16 07:38:07 -07:00
gsxdsm
6cbcab20b7 feat(FN-1918): merge fusion/fn-1918 2026-04-16 07:23:18 -07:00
gsxdsm
46c7aad381 feat(FN-1900): merge fusion/fn-1900 2026-04-16 07:23:12 -07:00
gsxdsm
f6da5f317a feat(FN-1824): merge fusion/fn-1824 2026-04-16 07:23:06 -07:00
Fusion
c8f42856f5 fix(FN-1907): wrap skills page sections in scrollable content container
- Refactor SkillsView to wrap sections in .skills-view-content wrapper
- Add scrollable overflow handling for content container
- Add mobile responsiveness tests for skills view component
- Ensure consistent scrolling behavior across page sections
2026-04-16 07:21:17 -07:00
Fusion
9e1b81227e feat(FN-1822): add settings sync between mesh nodes
- Add settings sync options and logic to PeerExchangeService for bidirectional settings exchange
- Extend mesh/sync endpoint with push, pull, sync-status, and auth-sync operations
- Add comprehensive tests for settings sync in peer-exchange-service.test.ts
- Add mesh route tests for settings exchange endpoints in dashboard
- Update memory.md with settings sync documentation
2026-04-16 07:10:47 -07:00
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