Commit Graph

2503 Commits

Author SHA1 Message Date
Fusion
7fde8009da 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
c34165ce80 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
06cade0228 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
6a5542d1d9 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
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
ecd3a8690e 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
e123a6be77 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
7af2ae494c 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
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
f7998fa723 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
24ca409ec6 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
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
Fusion
f83d3483a6 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
87b40c9f3f 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
6941aedd65 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
eb5b9534ec feat(FN-1844): merge fusion/fn-1844 2026-04-15 18:38:06 -07:00
Fusion
ae4254b5e3 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
bbecfd097c feat(FN-1793): merge fusion/fn-1793 2026-04-15 18:23:17 -07:00
gsxdsm
cff03f11a3 feat(FN-1675): merge fusion/fn-1675 2026-04-15 18:23:05 -07:00
Fusion
20c138731c 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
653a25ecd0 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
831e07a625 feat(FN-1716): merge fusion/fn-1716 2026-04-15 17:08:12 -07:00
Fusion
b37dfc23f5 feat(FN-1674): add roadmap export and handoff system
- Add RoadmapStore with read APIs for project-scoped roadmap data
- Add roadmap-handoff mapper to transform roadmap data for export
- Add project-scoped handoff API route (/api/projects/:id/roadmap/handoff)
- Add useRoadmaps hook for fetching and exposing roadmap data to components
- Update RoadmapsView with export/handoff UX path and roadmap detail view
- Add roadmap routes with project-scoped handoff endpoint
- Add comprehensive tests for handoff mapper and roadmap routes
- Update architecture.md and add dashboard-guide.md documentation
2026-04-15 17:06:36 -07:00
Fusion
d52ae1cb99 feat(FN-1709): add InsightsView navigation and routing integration
- Add 'insights' to TaskView type for view state persistence
- Add InsightsView routing in App.tsx with scoped persistence
- Add Insights nav item to Header with icon and keyboard shortcut
- Add Insights nav item to MobileNavBar
- Add comprehensive tests for App, Header, and MobileNavBar view switching
- Add useViewState tests for scoped persistence
2026-04-15 16:58:26 -07:00
gsxdsm
aa9d7069d2 feat(FN-1766): merge fusion/fn-1766 2026-04-15 16:53:30 -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
a5188bb5eb feat(FN-1708): add InsightsView UI with section rendering and action UX
- Add InsightsView component for viewing project insights grouped by category
- Create useInsights hook with refresh, dismiss, and createTask actions
- Add InsightCategory type extensions for features, competitive_analysis, research, and trends
- Integrate InsightsView into dashboard routes with proper navigation
- Add comprehensive tests for InsightsView and useInsights hook
- Add changeset for @gsxdsm/fusion
2026-04-15 16:18:50 -07:00
gsxdsm
c21bfee00b feat(FN-1687): merge fusion/fn-1687 2026-04-15 16:08:05 -07:00
Fusion
89145ed102 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
9e4ee18b6b feat(FN-1691): add roadmap export and handoff API
- Add RoadmapStore.exportRoadmap() and RoadmapStore.handoffRoadmap() DTO methods with full test coverage
- Add REST endpoints POST /api/roadmaps/:id/export and POST /api/roadmaps/:id/handoff in roadmap-routes.ts
- Add corresponding api.ts wrappers with request/response type definitions and test coverage
- Update architecture docs with roadmap export/handoff endpoint reference
2026-04-15 15:31:05 -07:00
gsxdsm
221b599d5a fix(FN-1673): recover interrupted merge finalization
Add self-healing for stale in-review tasks left in merging status after the merge commit lands. Recovery uses taskStuckTimeoutMs, records merge details, moves confirmed merges to done, and clears stale merge status for retry when no landed commit is found.
2026-04-15 15:22:15 -07:00
Fusion
5fd6fb079e feat(FN-1673): add editable AI suggestion drafts before acceptance
- Add editable drafts for AI-generated feature suggestions before acceptance
- Fix prop type mismatch in MilestoneCard (add milestoneId parameter)
- Add component tests for suggestion editing functionality
- Add onUpdateFeatureSuggestionDraft prop to MilestoneCard
- Validate empty/whitespace titles to prevent accepting blank suggestions
2026-04-15 14:41:26 -07:00
gsxdsm
3c30687b03 feat(FN-1686): merge fusion/fn-1686 2026-04-15 14:27:06 -07:00
Fusion
dccd6bd615 feat(FN-1673): add editable AI suggestion drafts before acceptance
- Add editable drafts for AI-generated milestone and feature suggestions before acceptance
- Users can edit suggestion title and description before creating the actual items
- Draft edits persist when accepting individual or all suggestions
- Add empty/whitespace title validation to prevent accepting blank suggestions
- Add comprehensive tests for suggestion generation, editing, and acceptance
- Fix prop type mismatch between RoadmapsView and MilestoneCard components
- Add missing clearMilestoneSuggestions function to useRoadmaps hook
- Update refs to synchronize immediately with state for proper test behavior
- Add generateMilestoneSuggestions to API mock in component tests
- Add documentation for the AI suggestion feature in dashboard-guide.md
2026-04-15 14:18:10 -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
7f972c7535 feat(FN-1672): add AI feature suggestion UI to roadmaps
- Add dashboard API endpoints for roadmap feature suggestions
- Create useRoadmaps hook for fetching and managing roadmap data with suggestions
- Add feature suggestion UI to RoadmapsView with Accept All / Accept Individual buttons
- Render AI suggestions in MilestoneCard component
- Add CSS styling for suggestion buttons and interaction states
- Write comprehensive tests for useRoadmaps hook and RoadmapsView component
- Update dashboard guide documentation with feature suggestion usage
2026-04-15 12:50:08 -07:00
gsxdsm
1391b237d0 fix: add missing /api prefix in fetchAgentLogsWithMeta causing empty agent logs
fetchAgentLogsWithMeta was calling fetch(url) directly instead of
fetch(buildApiUrl(url)), so requests hit the SPA fallback instead of
the /api/tasks/:id/logs endpoint, returning HTML that silently failed
JSON parsing and resulted in empty agent log entries.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-15 12:20:03 -07:00
Fusion
7f06467f1d docs(FN-1732): remove changeset for docs-only task 2026-04-15 11:37:15 -07:00
Fusion
7ef3737378 feat(FN-1877): add auto-compaction on context window errors to promptWithFallback
- Detect context-window-limit errors from AI sessions and automatically compact
  the session conversation history before retrying (one attempt per session)
- Centralize auto-compaction in promptWithFallback (pi.ts) so executor, merger,
  and step-session-executor all benefit from the same mechanism
- Remove scattered context-limit error handling from executor.ts, merger.ts, and
  step-session-executor.ts in favor of the centralized approach
- Add comprehensive tests for auto-compaction retry behavior in pi.test.ts
- Remove unused compactSessionContext import from step-session-executor.ts
- Add memory note documenting the centralized auto-compaction design
2026-04-15 10:42:20 -07:00
Fusion
0c948f5074 feat(FN-1671): add AI milestone suggestion feature
- Add milestone suggestion generation backend contract with scoring algorithm
- Add milestone suggestion hook actions (generate, accept, dismiss) in useRoadmaps
- Add RoadmapsView UI with suggestion panel, cards, and accept/dismiss buttons
- Document AI milestone suggestion feature in dashboard guide
- Add roadmap-suggestions unit tests covering generation and UX flows
2026-04-15 09:49:45 -07:00
gsxdsm
e5fac0f9b6 feat(FN-1876): merge fusion/fn-1876 2026-04-15 09:46:36 -07:00
gsxdsm
72076c65d1 feat(FN-1875): merge fusion/fn-1875 2026-04-15 09:45:57 -07:00
Fusion
85f6bf1b5e feat(FN-1732): document model scope hierarchy in README and storage docs
- Add Model System section to README.md with five-lane dual-scope overview
- Add new global fields to docs/storage.md (8 *GlobalProvider/*GlobalModelId keys)
- Add new project fields to docs/storage.md (defaultProviderOverride, defaultModelIdOverride, executionProvider, executionModelId)
- Add scope isolation note clarifying *Global* keys are project-settings-exclusive
- Note: docs/settings-reference.md already had complete Model Selection Hierarchy with all five lanes
- All model lane hierarchy engine and dashboard changes already merged via fusion/fn-1678
2026-04-15 09:43:28 -07:00
gsxdsm
84c42e4f26 feat(FN-1872): merge fusion/fn-1872 2026-04-15 09:31:20 -07:00
gsxdsm
d5f802ea1e feat(FN-1729): merge fusion/fn-1729 2026-04-15 09:31:09 -07:00
gsxdsm
dc39fa82d5 feat(FN-1678): merge fusion/fn-1678 2026-04-15 09:31:03 -07:00
Fusion
13b80f89e4 feat(FN-1330): consolidate mobile Board/List tabs into Tasks tab with header toggle
- Merge mobile Board and List tabs into unified Tasks tab in MobileNavBar
- Add Board/List toggle to Header component for switching views within Tasks tab
- Add comprehensive Header tests covering toggle functionality and keyboard navigation
- Update mobile feature access tests to reflect new tab structure
- Add mobile task view toggle CSS styles
2026-04-15 09:10:38 -07:00