Commit Graph

2246 Commits

Author SHA1 Message Date
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
91cc970e78 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
85ed165b0e 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
3b66fa4fe4 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
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
f2c5ac7b82 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
9bd437e166 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
01a221fbe8 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
e4eac5c03b 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
c6ad3da8cc feat(FN-1844): merge fusion/fn-1844 2026-04-15 18:38:06 -07:00
Fusion
cf1b36d5da 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
3a8cda93b5 feat(FN-1793): merge fusion/fn-1793 2026-04-15 18:23:17 -07:00
gsxdsm
6fc1a1bd4f feat(FN-1675): merge fusion/fn-1675 2026-04-15 18:23:05 -07:00
Fusion
7695497cfd 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
e068e139a4 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
268dced2ec feat(FN-1716): merge fusion/fn-1716 2026-04-15 17:08:12 -07:00
Fusion
07b406d412 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
9d42dbe93c 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
c18608c7e6 feat(FN-1766): merge fusion/fn-1766 2026-04-15 16:53:30 -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
03863986bf 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
e0cc066b42 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
6ce6750f66 feat(FN-1687): merge fusion/fn-1687 2026-04-15 16:08:05 -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
e63bbf4a85 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
561ca32040 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
979ba2c04a 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
835562a588 feat(FN-1686): merge fusion/fn-1686 2026-04-15 14:27:06 -07:00
Fusion
d147a8091f 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
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
Fusion
d6681d0dc8 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
48173275b1 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
533f627ea4 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
f62d97cff8 docs(FN-1732): remove changeset for docs-only task 2026-04-15 11:37:15 -07:00
Fusion
ddf0fc7303 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
bd7ada7533 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
05e928d67f feat(FN-1876): merge fusion/fn-1876 2026-04-15 09:46:36 -07:00
gsxdsm
afcf2fd12e feat(FN-1875): merge fusion/fn-1875 2026-04-15 09:45:57 -07:00
Fusion
7736a805e1 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
b59a3dea23 feat(FN-1872): merge fusion/fn-1872 2026-04-15 09:31:20 -07:00
gsxdsm
45c0630ead feat(FN-1729): merge fusion/fn-1729 2026-04-15 09:31:09 -07:00
gsxdsm
dde7c3174e feat(FN-1678): merge fusion/fn-1678 2026-04-15 09:31:03 -07:00
Fusion
9e67333982 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
Fusion
063ce782a3 feat(FN-1874): add command/AI prompt type toggle to schedule form simple mode
- Add type toggle buttons (Command/AI Prompt) in simple schedule mode
- Show command input or AI prompt textarea based on selected type
- Add model provider/model ID fields for AI Prompt mode
- Restore simple type when editing existing schedules with single step
- Add comprehensive tests for type toggle behavior and validation
- Fix missing mocks in ScheduledTasksModal test
2026-04-15 08:58:21 -07:00
gsxdsm
03f3629a47 fix(FN-1854): add changeset for stale triage processing eviction fix 2026-04-15 08:35:24 -07:00
Fusion
bc0c484cd8 feat(FN-1873): replace model provider/ID inputs with standard model selector in schedule steps
- Replace manual provider/modelId text inputs in schedule step forms with the standard CustomModelDropdown component
- Add model loading state (loading, error) in StepEditor with graceful error handling
- Fetch available models via fetchModels() API on mount for model selection dropdown
- Add comprehensive tests for model selector integration in schedule steps editor
- Add ScheduleForm tests covering multi-step mode with model selector validation
2026-04-15 08:31:55 -07:00
Fusion
2b4c95bcc0 feat(FN-1854): send tasks back to in-progress when verification fails
- Add sendTaskBackForFix() method that encapsulates the 'verification failed
  — send back to in-progress' pattern
- Replace all 4 hard failure locations with sendTaskBackForFix() calls
- Update failure feedback template to mention 'sent back to in-progress'
- Update test assertions for workflow step failure cases
- Rename test that verifies passing workflow step behavior
- Add new test for verification failure send-back flow
- Add addTaskComment mock to store factories for testing

The task executor now sends tasks back to in-progress (instead of 'in-review'
with 'failed' status) when workflow step verification fails and retries are
exhausted. This allows the executor to attempt to fix the issues on the
next pass, mirroring the existing deterministic verification failure behavior
in project-engine.ts.
2026-04-15 08:28:51 -07:00
Fusion
647a10b161 feat(FN-1634): promote mailbox to first-class navigation view
- Add MailboxView as a full-page navigation view replacing the modal-based approach
- Migrate MessageStore from filesystem to SQLite backend for message persistence
- Implement conversation grouping for inbox display with unread badge state
- Remove modal plumbing (useModalManager, AppModals exports) and simplify App.tsx
- Add evictStaleProcessing() to TriageProcessor for self-healing hung triage sessions
- Add comprehensive MailboxView tests and Header mailbox tests
- Update README documentation with MailboxView features
- Add CSS styles for MailboxView component
- Fix MobileNavBar tests for mailbox tab visibility
2026-04-15 08:04:02 -07:00
Fusion
cb54000fe5 feat(FN-1662): fix project overview stats for non-first projects
- Always compute live task counts from the project-scoped store via getOrCreateProjectStore()
- Remove broken path-comparison logic that only worked for the default project
- Endpoint /api/projects/:id/health now returns accurate stats for all projects
- Add tests covering multi-project health endpoint scenarios
2026-04-15 07:19:41 -07:00
Fusion
bff2efa2be docs(FN-1867): add Dashboard UI Styling Guide to AGENTS.md
- Document design tokens (colors, spacing, shadows, transitions)
- Define component CSS classes (buttons, modals, forms, cards)
- Document theme system (dark/light modes + 54 color themes)
- Add mobile responsive guidelines and breakpoints
- Include common pitfalls and accessibility requirements
2026-04-15 07:08:54 -07:00