Commit Graph

1391 Commits

Author SHA1 Message Date
Fusion
e22c929264 fix(FN-1843): add onClose prop to SkillsView and anchor node selector dropdown
- Add missing onClose prop to SkillsView component in App.tsx for proper close navigation
- Anchor node selector dropdown to left edge to prevent off-screen rendering
2026-04-15 05:07:16 -07:00
gsxdsm
8d5b8cf3df feat(FN-1731): merge fusion/fn-1731 2026-04-15 05:00:56 -07:00
gsxdsm
c5600372b6 feat(FN-1816): merge fusion/fn-1816 2026-04-15 04:46:02 -07:00
gsxdsm
a7d966feb0 feat(FN-1800): merge fusion/fn-1800 2026-04-15 04:45:56 -07:00
gsxdsm
1eb71a49fe feat(FN-1794): merge fusion/fn-1794 2026-04-15 04:30:56 -07:00
gsxdsm
4864b5edca feat(FN-1712): merge fusion/fn-1712 2026-04-15 04:15:57 -07:00
Fusion
78b64587f5 feat(FN-1614): convert blocking execSync to async in route handlers
- Convert git helper functions to async with runGitCommand wrapper
- Remove blocking execSync from task retry and git management endpoints
- Add await calls for async helpers in all affected route handlers
- Fix git format flag to use --format= without quotes (execFile passes args directly unlike shell)
2026-04-15 04:15:37 -07:00
gsxdsm
bae5d1d812 feat(FN-1831): merge fusion/fn-1831 2026-04-15 04:01:02 -07:00
gsxdsm
cd5d4551b6 feat(FN-1792): merge fusion/fn-1792 2026-04-15 04:00:56 -07:00
Fusion
f86f5456ae feat(FN-1790): add dashboard skills API client wrappers
- Add fetchDiscoveredSkills() to fetch all discovered skills with enabled state
- Add toggleExecutionSkill() to toggle skill enabled/disabled state
- Add fetchSkillsCatalog() to search the skills.sh catalog with query and limit
- Export skills types (DiscoveredSkill, CatalogEntry, CatalogFetchResult, ToggleSkillResult) for use by hooks/components
- Add comprehensive test coverage for all three API functions
2026-04-15 03:48:14 -07:00
Fusion
4f4b06605d fix(FN-1801): plugin settings UX and theme awareness improvements
- Add new input types for plugin settings (password, textarea, array fields)
- Render toggle switch inside .toggle-switch label for theme-aware styling
- Update STATE_COLORS to use CSS variable references instead of hardcoded hex values
- Add SSE live updates for plugin lifecycle events (enabled, disabled, uninstalled, settings-updated)
- Project-scoped SSE subscription when projectId is provided
- Expand PluginManager tests with 32 passing tests covering new functionality
2026-04-15 03:29:08 -07:00
Fusion
885f29382c feat(FN-1629): add pagination to agent logs
- Add pagination support to TaskStore.getAgentLogs() with limit/offset parameters
- Add GET /tasks/:id/logs API route with pagination support
- Add fetchAgentLogs API client with pagination parameters
- Refactor useAgentLogs hook for incremental loading with loadMore callback
- Update useMultiAgentLogs for pagination consistency across multiple task IDs
- Add Load More UI to AgentLogViewer component
- Wire up Load More in TaskDetailModal agent log section
- Fix offset slice direction bug in getAgentLogs
- Remove incorrect reverse() call in getAgentLogs offset logic
- Add comprehensive tests for useAgentLogs and useMultiAgentLogs pagination
2026-04-15 02:53:06 -07:00
Fusion
ae3716de44 feat(FN-1726): add saturated-slot regression tests for utility AI routes
- Add heartbeat wake saturation regression tests covering timer, assignment, and on-demand triggers
- Add mission interview saturated-slot regression tests for milestone and slice interviews
- Add saturated-slot regression tests for planning and subtask breakdown routes
- Tests verify 503 responses and correct slot-checking behavior under maxConcurrent saturation
2026-04-15 02:08:57 -07:00
gsxdsm
7f830626db feat(FN-1669): merge fusion/fn-1669 2026-04-15 02:01:02 -07:00
Fusion
b9264670e2 feat(FN-1549): simplify chat creation with agent-only selection and auto title
- Remove task selection from chat creation flow
- Add agent-only chat creation with automatic title generation
- Introduce useChat hook for unified chat state management
- Update ChatView with simplified creation UI
- Add CSS styles for chat creation interface
- Add comprehensive tests for chat manager and routes
- Update routes to support agent-only chat creation
2026-04-15 01:49:41 -07:00
Fusion
f93e343648 refactor(FN-1616): convert blocking fs operations to async on HTTP request paths
- Convert skills-adapter.ts readFileSync/writeFileSync to async readFile/writeFile
- Cache GitHub webhook private key in memory to avoid repeated fs reads
- Convert usage.ts readFileSync to async readFile
- Update usage.test.ts to work with async file operations
- All HTTP request handlers now use non-blocking async fs operations
2026-04-15 01:39:34 -07:00
Fusion
cfc2e16148 fix(FN-1818): fix milestone/slice status tracking on feature changes
- Add SSE listener for milestone:updated events in MissionManager to refresh UI on status changes
- Trigger slice and milestone status recompute when task feature status changes
- Add diagnostic log when task feature resolution fails for easier debugging
- Add regression tests for milestone status recompute logic
2026-04-15 01:15:29 -07:00
gsxdsm
208062b8b4 feat(FN-1765): merge fusion/fn-1765 2026-04-15 01:01:08 -07:00
Fusion
336c9c4fdf feat(FN-1752): add relaxed ESLint rules for plugins and improve onboarding
- Relax ESLint rules for plugin templates and agent skill files to reduce false positives
- Add relaxed ruleset for TypeScript with explicit plugin overrides
- Add resume card UI for onboarding dismissal to allow users to restart setup
- Fix pre-existing test failures and TypeScript errors from experimentalFeatures merge
- Fix WebGL addon assertions in desktop package tests
- Remove unused CSS classes from dashboard styles
2026-04-15 00:28:49 -07:00
gsxdsm
5a9445e350 feat(FN-1860): merge fusion/fn-1860 2026-04-15 00:15:56 -07:00
gsxdsm
d8b601c19b feat(FN-1862): merge fusion/fn-1862 2026-04-15 00:00:57 -07:00
Fusion
a51e75941c feat(FN-1862): add completion state tracking for onboarding
- Add markOnboardingCompleted() to set completedAt timestamp when user finishes onboarding
- Add isOnboardingCompleted() to check if onboarding was completed (vs dismissed)
- Update ModelOnboardingModal to call markOnboardingCompleted on successful completion
- Skip onboarding auto-open when already completed locally
- Add completion state tracking tests in ModelOnboardingModal.test.tsx
- Add model-onboarding-state unit tests
- Update useAuthOnboarding to check local completion state before auto-opening
- Document localStorage completion state tracking pattern in .fusion/memory.md
2026-04-14 23:44:40 -07:00
gsxdsm
6d685a542b feat(FN-1814): merge fusion/fn-1814 2026-04-14 23:15:56 -07:00
gsxdsm
42da5e80cb feat(FN-1748): merge fusion/fn-1748 2026-04-14 22:45:59 -07:00
Fusion
6e2236c0ae fix(FN-1778): resolve merge conflicts and typecheck errors
- Resolve conflict in TerminalModal.test.tsx by keeping helpful loadAddon comment
- Add clarifying comment in mobile WebGL skip test
- Fix pre-existing typecheck errors in SettingsModal.tsx
2026-04-14 22:24:54 -07:00
gsxdsm
513e6e650e feat(FN-1705): merge fusion/fn-1705 2026-04-14 22:00:56 -07:00
Fusion
b72aba522e fix(TerminalModal): remove incorrect loadAddon assertion in mobile WebGL test
The test was checking that loadAddon was never called with any object,
but fitAddon and webLinksAddon are both objects that are legitimately
loaded. The WebglAddon constructor check is sufficient to verify that
WebGL is not loaded on mobile.
2026-04-14 21:31:57 -07:00
gsxdsm
9a14947a2a feat(FN-1779): merge fusion/fn-1779 2026-04-14 21:30:56 -07:00
gsxdsm
2fbb22ee10 feat(FN-1775): merge fusion/fn-1775 2026-04-14 21:15:56 -07:00
gsxdsm
74eabf76b9 feat(FN-1704): merge fusion/fn-1704 2026-04-14 21:00:56 -07:00
gsxdsm
8c0f6eadb4 feat(FN-1758): merge fusion/fn-1758 2026-04-14 19:45:56 -07:00
Fusion
b7fb074551 fix(FN-1704): use approved mobile breakpoint value (640px instead of 600px)
- Change @media query breakpoint from 600px to 640px for .onboarding-resume-card
- 640px is an approved breakpoint value per mobile CSS guidelines
- Fixes mobile-css test failure that was blocking the build
2026-04-14 18:51:01 -07:00
gsxdsm
fa5cd05078 feat(FN-1857): merge fusion/fn-1857 2026-04-14 18:46:34 -07:00
gsxdsm
568c6ddd17 feat(FN-1852): merge fusion/fn-1852 2026-04-14 18:46:00 -07:00
gsxdsm
9cccf8d5da test(FN-1752): fix pre-existing test failures for experimentalFeatures merge and WebGL addon assertions
- Update experimentalFeatures comment wording in store.test.ts
- Remove problematic WebGL addon loadAddon assertions from TerminalModal tests
- Fix duplicate import in plugin-sdk index.test.ts
2026-04-14 17:11:15 -07:00
gsxdsm
07b6a89807 feat(FN-1849): merge fusion/fn-1849 2026-04-14 16:00:02 -07:00
gsxdsm
e6b2f96cfc feat(FN-1704): add onboarding resume card for dismissed modals
- Add OnboardingResumeCard component shown when onboarding was dismissed but not completed
- Store onboarding step state in localStorage for session persistence
- Update App.tsx to render resume card when onboarding is resumable
- Add comprehensive tests for model-onboarding-state utility functions
- Add tests for OnboardingResumeCard component and App integration
- Use onResume callback pattern for consistency with modal API
2026-04-14 15:41:00 -07:00
gsxdsm
0a4f054207 feat(FN-1704): add dashboard resume entry point for onboarding
- Add model-onboarding-state.ts module for persisting onboarding step state
- Create OnboardingResumeCard component with resume functionality
- Wire resume card into App.tsx (visible when onboarding is resumable and modal is closed)
- Add unit tests for state helpers and resume card
- Add integration tests for App.tsx resume card behavior
- Update documentation with resume banner behavior
- Fix missing contextVersionAtStart property declaration in useBadgeWebSocket.ts
2026-04-14 14:16:32 -07:00
gsxdsm
37d177f18c feat(FN-1835): merge fusion/fn-1835 2026-04-14 13:45:19 -07:00
gsxdsm
70082a8919 feat(FN-1838): merge fusion/fn-1838 2026-04-14 13:30:24 -07:00
gsxdsm
051622ae08 feat(FN-1828): merge fusion/fn-1828 2026-04-14 13:30:02 -07:00
gsxdsm
4863b83981 feat(FN-1812): merge fusion/fn-1812 2026-04-14 13:15:04 -07:00
gsxdsm
841f57f394 fix(FN-1778): resolve pre-existing typecheck errors in SettingsModal.tsx
- Fix number input onChange handlers for maxConcurrent, pollIntervalMs, and maxWorktrees
- Add 'as any' type assertion to allow undefined values in form state
- Enables clearing numeric inputs to undefined for null-as-delete semantics
2026-04-14 13:10:43 -07:00
gsxdsm
f0f3389dea feat(FN-1815): merge fusion/fn-1815 2026-04-14 13:00:57 -07:00
gsxdsm
136d9cc4ce feat(FN-1809): merge fusion/fn-1809 2026-04-14 13:00:02 -07:00
gsxdsm
a10151d234 feat(FN-1798): merge fusion/fn-1798 2026-04-14 12:45:09 -07:00
gsxdsm
66dafb0e96 feat(FN-1777): merge fusion/fn-1777 2026-04-14 12:45:01 -07:00
gsxdsm
7e3ae29d0c feat(FN-1799): merge fusion/fn-1799 2026-04-14 12:30:05 -07:00
gsxdsm
a4f8684394 feat(FN-1788): merge fusion/fn-1788 2026-04-14 12:15:21 -07:00
gsxdsm
07fb8fb093 feat(FN-1786): merge fusion/fn-1786 2026-04-14 12:15:09 -07:00