Commit Graph

520 Commits

Author SHA1 Message Date
gsxdsm
bbc0ce89be feat(FN-2119): merge fusion/fn-2119 2026-04-19 10:13:34 -07:00
gsxdsm
0dbdc1847c fix(FN-2116): allow two vitest workers 2026-04-18 17:48:22 -07:00
gsxdsm
1d8b7f2cb8 fix(FN-2116): show paused agents and cap vitest workers 2026-04-18 17:34:44 -07:00
gsxdsm
5a831a67bc fix(FN-2116): use sqlite-backed agent storage 2026-04-18 17:25:17 -07:00
Fusion
0bad6c25a5 fix(FN-2065): log final merge cleanup reset failures
- Log final-path git reset --merge cleanup failures in aiMergeTask with task-scoped warning details
- Preserve the original "all 3 attempts exhausted" merge error even when cleanup reset fails
- Add merger retry tests covering successful final cleanup and failed final cleanup logging behavior
- Add a patch changeset for @gsxdsm/fusion documenting the improved merger diagnostics
2026-04-18 16:39:34 -07:00
Fusion
017b0bb8da fix(FN-2057): move DocumentsView base styles outside mobile media query
- Move the core DocumentsView, document group, and document card styles to global scope so they apply on desktop and tablet
- Keep the max-width: 768px block focused on mobile-only agent and skills layout overrides
- Preserve existing design tokens and interaction states while restoring expected non-mobile DocumentsView styling
2026-04-18 16:01:23 -07:00
Fusion
c10ff474cc fix(FN-2013): flush buffered SSE events at stream end
- Remove the trailing-newline guard when flushing pending SSE buffer data in streamChatResponse
- Re-enable the regression test covering final done events without a trailing blank line
- Add parser coverage for chunk-split events, newline-terminated streams, and incomplete trailing fragments
- Add a patch changeset for @gsxdsm/fusion documenting the SSE final-buffer flush fix
2026-04-18 14:55:20 -07:00
gsxdsm
9ac44b4892 feat(FN-2051): merge fusion/fn-2051 2026-04-18 10:28:16 -07:00
Fusion
9974cc7019 feat(FN-1947): add file mention search and chat autocomplete
- Add file search API wiring in dashboard client/server with route coverage for /api/files/search
- Introduce useFileMention hook and FileMentionPopup component, integrated into ChatView and QuickChatFAB
- Resolve @file references in chat messages so referenced file content is included in AI context
- Add styling, mobile responsiveness, and focused tests for popup UI, hook behavior, chat resolution, and file services
2026-04-18 07:36:57 -07:00
Fusion
2fd586f6d0 feat(FN-1944): add Pi settings package management flow
- Add dashboard backend routes for Pi settings management with comprehensive route tests
- Add API client functions and tests for fetching and updating Pi settings endpoints
- Replace PiExtensionsManager with package management UI and add supporting dashboard styles
- Rewrite and fix PiExtensionsManager tests and include a changeset for @gsxdsm/fusion
2026-04-18 06:31:41 -07:00
Fusion
b80cae1b5a feat(FN-1850): aggregate projects across connected nodes
- Add /api/projects/across-nodes to merge local projects with online remote node project lists
- Expose fetchProjectsAcrossNodes and ProjectInfoWithSource, and switch useProjects to consume cross-node data
- Update ProjectOverview and ProjectCard with node badges, node count stats, and a node filter dropdown plus responsive styles
- Add server and dashboard test coverage for cross-node aggregation, filtering, and hook behavior changes
- Include a changeset for @gsxdsm/fusion minor release and preserve stale-channel SSE reconnect guards during merge
2026-04-18 03:08:00 -07:00
Fusion
03f4e7fe44 fix(FN-2045): keep quick chat open when selecting model override
- Add regression coverage for QuickChatFAB to ensure model dropdown selection does not dismiss the chat panel
- Verify selected model override is preserved and sent to createChatSession with provider and model id
- Add a patch changeset for @gsxdsm/fusion documenting the quick chat model-selection dismissal fix
2026-04-18 00:27:26 -07:00
Fusion
b3cc6047c3 fix(FN-2043): prevent quick chat from closing on model dropdown clicks
- Update QuickChatFAB outside-click handling to ignore events from the portaled model combobox dropdown
- Add a regression test that verifies clicks inside the model dropdown portal keep the quick chat panel open
- Keep outside body clicks closing behavior intact with test coverage for the control path
- Add a patch changeset for @gsxdsm/fusion describing the quick chat model dropdown dismiss fix
2026-04-17 23:51:17 -07:00
Fusion
a8a4d0a3d1 fix(FN-2039): align mail composer styling with theme tokens
- Update .btn-secondary and mailbox badge/error styles to use shared design tokens instead of hardcoded colors
- Refine message composer select/textarea styles with tokenized spacing, radii, typography, and focus-visible ring behavior
- Add mobile-specific composer overrides for textarea height, footer wrapping/button targets, and field label stacking
- Add a patch changeset for @gsxdsm/fusion documenting the mail compose styling fix
2026-04-17 23:00:13 -07:00
Fusion
3e095c1d22 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
01eabe4aa7 fix(FN-2040): prevent false unresponsive agent states
- Apply a default 30s heartbeat interval when scheduler config is missing or invalid
- Dynamically register and update heartbeat triggers from AgentStore create/update events
- Register all non-disabled agents at startup and guard listener cleanup when stopping runtime
- Treat non-periodic agents as healthy in dashboard health checks to avoid stale-time false alarms
- Expand engine and dashboard tests and add a patch changeset for @gsxdsm/fusion
2026-04-17 20:40:06 -07:00
Fusion
53685f8213 fix(FN-2041): reduce Quick Chat FAB desktop edge margin
- Change QuickChatFAB desktop drag clamp margin from 48px to 8px while keeping the 4px mobile margin
- Update QuickChatFAB drag boundary tests and descriptions to assert the new 8px desktop behavior
- Add a patch changeset for @gsxdsm/fusion documenting the FAB edge margin reduction
2026-04-17 20:31:53 -07:00
gsxdsm
24513716e4 feat(FN-2018): merge fusion/fn-2018 2026-04-17 15:25:02 -07:00
gsxdsm
759075bdb0 feat(FN-2012): merge fusion/fn-2012 2026-04-17 15:24:46 -07:00
gsxdsm
f35ea101c1 fix(FN-1572): stabilize fusion agent execution 2026-04-17 12:13:39 -07:00
gsxdsm
2a981fc4d1 fix(FN-000): align qmd memory lifecycle 2026-04-17 09:41:05 -07:00
gsxdsm
39cbfaba02 fix(FN-000): simplify qmd memory settings 2026-04-17 08:16:36 -07:00
Fusion
24f0bf8d36 feat(FN-1943): add post-onboarding setup recommendations panel
- Add a PostOnboardingRecommendations component that detects incomplete AI provider, default model, and GitHub setup and offers direct actions
- Persist post-onboarding dismissal state in model-onboarding-state with new helpers for dismiss, check, and clear flows
- Integrate recommendations into App rendering so they appear after completed onboarding when resume onboarding is not active
- Add dashboard styles and focused tests for recommendation rendering/actions plus onboarding dismissal state coverage
- Add a changeset for @gsxdsm/fusion patch release describing the post-onboarding recommendations
2026-04-17 05:36:02 -07:00
gsxdsm
5ef809d935 fix(FN-1952): merge pi package settings 2026-04-17 00:20:19 -07:00
gsxdsm
8df18fab2b fix(FN-1952): restore pi auth and extension loading 2026-04-16 21:42:16 -07:00
gsxdsm
a99af24297 fix(FN-1952): read legacy oauth auth 2026-04-16 21:16:48 -07:00
gsxdsm
bd8324eba4 fix(FN-1952): recover failed review tasks 2026-04-16 20:52:50 -07:00
gsxdsm
48d377f688 fix(FN-1952): read legacy pi auth keys 2026-04-16 20:23:48 -07:00
gsxdsm
35c89af4b6 fix(FN-1952): use fusion storage for pi config 2026-04-16 20:12:09 -07:00
gsxdsm
e2560981fe feat(FN-1952): move archived tasks to cold database 2026-04-16 19:49:07 -07:00
gsxdsm
4a576c028c fix(FN-1952): bound recovery and task log growth 2026-04-16 19:32:35 -07:00
Fusion
343c133d99 feat(FN-1965): add per-agent model override controls in dashboard
- Show the active model override in Agent Information, including support for legacy runtimeConfig.model values
- Add a Model section to agent settings with CustomModelDropdown and available model loading via fetchModels
- Persist model overrides as modelProvider/modelId/model and clear those fields when reverting to global default
- Expand AgentDetailView tests to cover model display, prefill behavior, save payloads, and clearing overrides
- Add a changeset for @gsxdsm/fusion describing the new agent model selection capability
2026-04-16 15:17:24 -07:00
Fusion
9e1c18e0c8 feat(FN-1949): add send_message and read_messages agent tools
- Add send_message tool factory for executor agents to send messages
- Add read_messages tool factory to retrieve agent inbox messages
- Update heartbeat to process pending messages during agent wake cycles
- Include message tools in executor agent tool context
- Add comprehensive unit tests for message tools
- Add heartbeat message processing tests
- Add end-to-end agent messaging test
- Create changeset for @gsxdsm/fusion package
2026-04-16 13:50:10 -07:00
Fusion
910c5ab386 feat(FN-1892): merge fusion/fn-1892 2026-04-16 13:05:12 -07:00
gsxdsm
9b1598a437 feat(FN-1921): merge fusion/fn-1921 2026-04-16 11:08:06 -07:00
gsxdsm
6d3fa11cc5 feat(FN-1920): merge fusion/fn-1920 2026-04-16 08:53:14 -07:00
Fusion
184b1f9667 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
2122aee46d feat(FN-1908): merge fusion/fn-1908 2026-04-16 08:38:41 -07:00
Fusion
8a3c192301 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
e30d96879d 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
bad65187b4 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
f33f15a98f 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
c8a0876f45 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
gsxdsm
bbecfd097c feat(FN-1793): merge fusion/fn-1793 2026-04-15 18:23:17 -07:00
Fusion
1234d715a0 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
08a0d7157a feat(FN-1715): add scope-aware automation and routine scheduling
- Add scope field to automations and routines for granular control
- Update automation-store and routine-store with scope-aware query methods
- Extend database schema with scope column for automations and routines
- Update cron-runner and routine-scheduler to respect scope boundaries
- Add project context injection to in-process runtime for scoped execution
- Include changeset for minor version bump
2026-04-15 16:32:16 -07:00
Fusion
0c8089b1d2 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
Fusion
af4df19e94 fix(FN-1879): add roadmaps and project_insights tables to SCHEMA_SQL
- Add roadmaps table for roadmap persistence with id, title, description, timestamps
- Add roadmap_milestones table with FK cascade to roadmaps and orderIndex for deterministic sorting
- Add roadmap_features table with FK cascade to milestones and orderIndex for feature ordering
- Add project_insights table for normalized insight entities with category, status, fingerprint fields
- Add project_insight_runs table for insight-generation run records with trigger, status, counts
- Add covering indexes for milestone/feature ordering and insight filtering by projectId, category, fingerprint
2026-04-15 13:21:37 -07:00
Fusion
7f06467f1d docs(FN-1732): remove changeset for docs-only task 2026-04-15 11:37:15 -07:00
gsxdsm
dc39fa82d5 feat(FN-1678): merge fusion/fn-1678 2026-04-15 09:31:03 -07:00