Commit Graph

138 Commits

Author SHA1 Message Date
Fusion
0ffcc5e251 feat(FN-1971): Step 1 - Add streaming variant of generateFeatureSuggestions
- Extract generateFeatureSuggestionsCore() that accepts onText/onThinking callbacks
- Refactor generateFeatureSuggestions() to use core with no-op callbacks
- Add generateFeatureSuggestionsStream() that uses core with SSE callbacks
- Add SseCallbacks interface for streaming output types
2026-04-18 10:24:59 -07:00
Fusion
e7ece19c0d feat(FN-1933): show masked API key hints in auth settings
- Add optional keyHint field to the auth provider client interface
- Return masked API key hints from /api/auth/status for API-key providers
- Render key hints in both Settings and onboarding provider cards when authenticated
- Add auth-key-hint styling using existing dashboard design tokens
2026-04-18 05:24:10 -07:00
Fusion
3629dea3c2 feat(FN-2035): introduce PiExtensionsManager for settings UI parity
- Create a dedicated PiExtensionsManager component mirroring PluginManager interaction patterns
- Replace inline Pi extensions rendering in SettingsModal with the new manager component
- Add PiExtensionsManager styling in styles.css to match existing plugin manager layout and states
- Add component test coverage for PiExtensionsManager and update SettingsModal mocks/assertions
- Add a changeset for the pi-extensions UI parity release
2026-04-17 21:54:44 -07:00
Fusion
8711c10922 feat(FN-2027): gate Insights and Roadmaps views behind experimental flags
- Add insightsEnabled and roadmapEnabled state in useAppSettings derived from project experimentalFeatures.
- Pass experimental feature visibility into Header and MobileNavBar and hide Insights/Roadmaps navigation controls unless enabled.
- Redirect users back to Board when a disabled Insights or Roadmaps view is active after settings load.
- Update Settings modal to always show labeled Insights and Roadmaps feature toggles alongside any custom experimental flags.
- Expand App, Header, MobileNavBar, and SettingsModal tests to cover gated rendering and behavior.
2026-04-17 18:47:40 -07:00
Fusion
0678a5cdf6 feat(FN-2028): reorder settings sections by scope group
- Reorder SETTINGS_SECTIONS to present Account, Global, then Project groups in the sidebar
- Move Project Models into the Project group to match its project-scoped behavior
- Update SettingsModal inline documentation to clarify section grouping and scope ownership
2026-04-17 16:51:33 -07:00
gsxdsm
a054db8859 feat(FN-2018): merge fusion/fn-2018 2026-04-17 15:25:02 -07:00
gsxdsm
383033fcdc fix(FN-000): align qmd memory lifecycle 2026-04-17 09:41:05 -07:00
Fusion
28accdb085 feat(FN-2000): add memory auto-summarize settings and automation sync
- Add Memory section controls for enabling auto-summarize with threshold and cron schedule inputs
- Wire ProjectEngine to sync auto-summarize automation on startup and when related settings change
- Reuse a single startup settings snapshot when syncing insight extraction and auto-summarize automations
- Add SettingsModal and ProjectEngine tests covering auto-summarize UI persistence and automation re-sync behavior
2026-04-17 09:16:08 -07:00
gsxdsm
20b01981b8 fix(FN-000): compact selected memory file 2026-04-17 08:55:50 -07:00
gsxdsm
f0415937d3 fix(FN-000): restore memory compaction and log pagination 2026-04-17 08:43:13 -07:00
gsxdsm
0f16bb78e9 fix(FN-000): add qmd install button 2026-04-17 08:23:26 -07:00
gsxdsm
75dc5a8c77 fix(FN-000): simplify qmd memory settings 2026-04-17 08:16:36 -07:00
gsxdsm
bdfb4842d2 fix(FN-000): rebuild layered memory system 2026-04-17 07:36:22 -07:00
gsxdsm
0f6dd7ed61 feat(FN-1996): merge fusion/fn-1996 2026-04-17 06:11:05 -07:00
gsxdsm
32a92e961e fix(FN-1952): restore pi auth and extension loading 2026-04-16 21:42:16 -07:00
gsxdsm
48e79cd46d feat(FN-1952): move archived tasks to cold database 2026-04-16 19:49:07 -07:00
gsxdsm
a118333c7b feat(FN-1926): merge fusion/fn-1926 2026-04-16 10:23:07 -07:00
gsxdsm
30a178bb3f feat(FN-1827): merge fusion/fn-1827 2026-04-16 09:08:06 -07:00
gsxdsm
72842d8687 feat(FN-1808): merge fusion/fn-1808 2026-04-16 04:53:09 -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
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
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
b2d982a894 feat(FN-1889): add executor project model UI to settings modal
- Add execution model selection dropdown to project settings modal
- Include execution lane in project model lanes filter for better context
- Add test coverage for execution model in project settings
- Include changeset for @gsxdsm/fusion package
2026-04-15 16:44:29 -07:00
Fusion
06874344ac fix(FN-1883): move useMemoryBackendStatus hook to component top level
- Move useMemoryBackendStatus hook call outside of sub-component scope
- Fixes hook being called conditionally which caused stale state
- Add 18 new tests for memory backend status rendering
- Ensures hook runs consistently on every SettingsModal render
2026-04-15 15:47:01 -07:00
Fusion
e874a3ca06 feat(FN-1644): rename default global data directory from ~/.pi/fusion to ~/.fusion
- Change default global directory from ~/.pi/fusion to ~/.fusion
- Add migration logic to copy existing data from old directory to new location
- Update all core packages (store, settings, central-core, central-db) to use new default path
- Update all documentation references from ~/.pi/fusion to ~/.fusion
- Add test for ~/.pi/fusion migration path with updated mock paths
- Include changeset for @gsxdsm/fusion minor version bump
2026-04-15 13:33:27 -07:00
gsxdsm
4864b5edca feat(FN-1712): merge fusion/fn-1712 2026-04-15 04:15: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
42da5e80cb feat(FN-1748): merge fusion/fn-1748 2026-04-14 22:45:59 -07:00
gsxdsm
513e6e650e feat(FN-1705): merge fusion/fn-1705 2026-04-14 22:00:56 -07:00
gsxdsm
37d177f18c feat(FN-1835): merge fusion/fn-1835 2026-04-14 13:45:19 -07:00
gsxdsm
051622ae08 feat(FN-1828): merge fusion/fn-1828 2026-04-14 13:30:02 -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
07fb8fb093 feat(FN-1786): merge fusion/fn-1786 2026-04-14 12:15:09 -07:00
gsxdsm
831477e6ea feat(FN-1727): add regression tests for saturated-slot scenarios
- Add core test for title summarization behavior under saturated task lane conditions
- Add engine test for heartbeat execution when task lanes are saturated
- Fix experimentalFeatures test to correctly expect merge semantics (not replacement)
- Ensure tests validate task selection and execution under concurrency limits
2026-04-14 11:38:14 -07:00
gsxdsm
e722330964 feat(FN-1755): merge fusion/fn-1755 2026-04-14 10:59:04 -07:00
gsxdsm
e6becfa41b feat(FN-1658): merge fusion/fn-1658 2026-04-14 09:29:02 -07:00
gsxdsm
bc74460340 feat(FN-1524): add POST /routines/:id/trigger endpoint
- Add POST /routines/:id/trigger as canonical endpoint for manual routine triggers
- Keep POST /routines/:id/run as backward-compatible alias
- Remove duplicate recordRun calls from routine route handlers (persistence handled by RoutineRunner)
- Update webhook auth to return 401 instead of 403 for signature failures
- Fix TypeScript types for promptOverrides to support null values (delete semantics)
- Fix API endpoint to return empty diff stats when worktree doesn't exist
2026-04-14 09:28:05 -07:00
gsxdsm
07b8030400 feat(FN-1639): merge fusion/fn-1639 2026-04-14 08:43:59 -07:00
gsxdsm
f72a3a39db feat(FN-1771): add dashboard memory settings UX with backend selector and capability-aware editing
- Add /api/memory/backend endpoint returning current backend, capabilities, and available backends
- Create useMemoryBackendStatus hook with polling and frontend-friendly interface
- Add MemorySettingsSection to SettingsModal with backend selector dropdown
- Implement capability-aware UI: readonly backends disable save, fallback on unknown types
- Add comprehensive tests for API endpoints and hook behavior
- Update architecture docs with memory backend architecture section
2026-04-13 22:32:31 -07:00
gsxdsm
cc88b2be1c feat(FN-1695): polish Settings Authentication Panel UX
- Reorder authentication providers: authenticated shown first, then alphabetically sorted
- Upgrade auth section to grouped/card-style hierarchy with section labels
- Update auth status badges to show '✓ Active' and '✗ Not connected'
- Add 'Authenticated' and 'Available' group labels in auth section
- Improve visual prominence of authenticated providers with subtle green accent
- Add section hint when no providers are authenticated
- Update CSS for new card-based layout with mobile-responsive styles
- Add tests for provider ordering behavior
2026-04-13 20:35:18 -07:00
gsxdsm
192ea195f7 feat(FN-1627): expose global execution concurrency limit in settings
- Add global max concurrent agent limit to settings UI (Scheduling section)
- Add null-as-delete semantics for global settings persistence
- Add fetchGlobalConcurrency and updateGlobalConcurrency API integrations
- Update SettingsModal tests with comprehensive coverage for new features
- Fix lint issues in modified files
2026-04-13 20:22:10 -07:00
gsxdsm
f395a3d9e5 feat(FN-1680): merge fusion/fn-1680 2026-04-13 15:29:41 -07:00
gsxdsm
f2afce2468 feat: expose global execution concurrency limit in settings
- Add PUT /api/global-concurrency endpoint to update globalMaxConcurrent
  via CentralCore (validated 1-50 range)
- Make InProcessRuntime semaphore react to live concurrency changes via
  CentralCore "concurrency:changed" event — no restart needed
- Add Global Max Concurrent input to Settings modal Scheduling section
  with fetch-on-mount and save-alongside-project-settings behavior
- Add updateGlobalConcurrency API client function

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-13 14:23:40 -07:00
gsxdsm
36d5373a6e fix(settings): fix Zai API key clear/save and update GitManagerModal tests
- hasApiKey now only returns true for stored api_key credentials; previously
  it fell back to hasAuth() which includes env vars, causing Clear to appear
  to do nothing and Save to never appear
- Save button now shows when user types into the key input even if already
  authenticated, allowing key updates without clearing first
- Remove unused importFile state variable (TS 6133 lint error)
- Update GitManagerModal tests to pass undefined as projectId argument to
  all API mocks, matching the component's project-aware API signatures

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-13 09:48:59 -07:00
gsxdsm
f810774f6c feat(FN-1604): merge fusion/fn-1604 2026-04-12 19:46:06 -07:00
gsxdsm
c413353e43 feat(FN-1647): merge fusion/fn-1647 2026-04-12 18:21:24 -07:00
gsxdsm
a34ba41ad1 Harden architecture hot paths 2026-04-12 15:13:27 -07:00
gsxdsm
231c984a27 feat(FN-1594): merge fusion/fn-1594 2026-04-12 12:33:05 -07:00
gsxdsm
afa2e153ee fix(FN-1488): add showQuickChatFAB setting to control Quick Chat FAB visibility
- Add showQuickChatFAB boolean setting to ProjectSettings type
- Add useAppSettings hook function for accessing the setting
- Wire QuickChatFAB visibility in App.tsx based on setting
- Hide QuickChatFAB in MobileNavBar when setting is false
- Add Settings UI toggle for the new setting
- Add CSS for hiding QuickChatFAB on mobile when disabled
- Add comprehensive tests for all affected components
- Fix QuickChatFAB onOpenChange test to use controlled mode
- Update settings reference documentation
2026-04-11 00:18:22 -07:00
gsxdsm
33cfef2592 feat(FN-1426): add tests for prompt override edit/reset/save behavior 2026-04-10 22:33:29 -07:00