Commit Graph

2503 Commits

Author SHA1 Message Date
gsxdsm
c5e2de04ac fix(FN-1241): stabilize PlanningModeModal race-condition test
- Replace fragile real-timer setTimeout sequencing with fake timers to eliminate CI flakiness
- Refactor mocked planning stream/response flow to deterministically deliver the second question
- Add explicit timer advancement and intermediate assertions around Continue click and response dispatch
- Ensure timer state is always restored with try/finally and keep single-SSE-connection verification
2026-04-08 09:12:15 -07:00
gsxdsm
69bc0db44d fix(FN-1162): keep mobile file browser header controls accessible
- Update file browser header styles to wrap cleanly on small screens and preserve readable truncated labels
- Increase mobile close-button hit area and keep close action visible within header actions layout
- Add responsive WorkspaceSelector constraints to prevent menu/trigger overflow on narrow viewports
- Add a regression test that verifies the mobile close button remains visible and clickable
2026-04-08 09:07:34 -07:00
gsxdsm
e27e1fd5bf fix: include remaining local updates 2026-04-08 08:57:19 -07:00
gsxdsm
d1b4f5d417 fix: recover approved triage tasks stuck specifying 2026-04-08 08:57:09 -07:00
gsxdsm
537d1857a6 feat(FN-1141): improve dashboard mobile adaptations
- Extend mobile CSS for SettingsModal, AgentsView, ExecutorStatusBar, ActiveAgentsPanel, toast placement, and background task popovers
- Rename BackgroundTasksIndicator list/item class hooks to align with the updated responsive styling contract
- Add focused component tests covering settings, agents, and utility mobile adaptations plus key CSS media-rule assertions
- Document mobile component adaptation behavior and testing guidance in the dashboard README
2026-04-08 08:48:21 -07:00
gsxdsm
5d540f7c7e feat(FN-1147): rehydrate AI sessions across server restarts
- Add recoverable-session querying in AiSessionStore and cover it with targeted store tests
- Persist resume context (ip, initial plan, mission metadata) and rebuild planning/subtask/mission sessions from SQLite rows
- Rehydrate recoverable sessions at server startup and resume planning/mission interviews by recreating agents with replayed conversation context
- Update API flows to pass project root context and clean in-memory sessions when persisted sessions are deleted, with comprehensive regression tests
2026-04-08 08:26:57 -07:00
gsxdsm
1afa5938f9 feat(FN-1217): add mission observability events and APIs
- Add mission observability types and core exports for mission health snapshots and event records
- Extend SQLite schema and MissionStore with mission_events persistence plus health and staleness query helpers
- Emit mission start and autopilot lifecycle events from MissionAutopilot for richer runtime telemetry
- Add dashboard mission observability routes and end-to-end coverage for mission events and health APIs
- Expand unit tests across core and engine and include a changeset for mission observability updates
2026-04-08 08:22:33 -07:00
gsxdsm
b8672cf792 refactor(FN-1240): remove dashboard Capacitor coupling in favor of @fusion/mobile
- Remove legacy dashboard Capacitor config, scripts, and package dependencies now managed by @fusion/mobile
- Rewrite network, splash-screen, and status-bar plugin managers to use guarded global Capacitor plugin adapters without direct @capacitor imports
- Update plugin tests to stub Capacitor globals and drop obsolete capacitor config test coverage
- Simplify dashboard mobile README guidance and add a @gsxdsm/fusion patch changeset documenting the migration
2026-04-08 08:10:17 -07:00
gsxdsm
be204d6c52 feat(FN-1237): move AgentLogViewer timestamps into badge row
- Render timestamps only when an entry includes an agent badge
- Remove standalone timestamp prefixes from text and tool log rows
- Keep relative timestamp formatting while colocating it with agent identity
- Update AgentLogViewer tests for badge-scoped timestamps and legacy entries without agents
2026-04-08 07:44:38 -07:00
gsxdsm
83ba6f2b21 feat(FN-1140): add mobile list cards and viewport hook
- Extract useViewportMode into a reusable hook and update Header/ListView to use it
- Render mobile ListView cards with collapsible column sections, card metadata, and selection support
- Add mobile-first styles for card layout, touch targets, focus states, and quick-entry overflow handling
- Expand ListView and QuickEntryBox tests to cover mobile rendering and interaction behavior
2026-04-08 07:38:32 -07:00
gsxdsm
7935ebe939 fix(FN-1234): stabilize mobile terminal tab switching
- Add session-aware terminal fit/resize logic so deferred viewport callbacks only affect the active tab session
- Trigger a post-init re-fit when keyboard overlap is already present during async xterm initialization
- Guard data, scrollback, and exit handlers to prevent stale session output from writing into a newly active tab
- Add FN-1234 regression tests for mobile tab switching with keyboard overlap, resize propagation, and scrollback isolation
2026-04-08 07:30:32 -07:00
gsxdsm
17785b38bb feat(FN-1201): store workflow steps in dedicated SQLite table
- Add schema v16 migration that creates workflow_steps and backfills rows from legacy config.workflowSteps data
- Update legacy file-to-SQLite migration to insert workflow step definitions into workflow_steps while preserving nextWorkflowStepId
- Refactor TaskStore workflow step create/list/get/update/delete paths to read and write workflow_steps instead of config JSON
- Adjust db migration tests and AGENTS.md storage docs to reflect the new workflow_steps table model
2026-04-08 07:19:35 -07:00
gsxdsm
c1ccf92016 feat(FN-1189): add Agent Companies import support
- Expand fn agent import to accept directories, .tar.gz/.tgz/.zip archives, single .md manifests, and legacy .sh manifests
- Update /api/agents/import to handle agents array, source path, or manifest string inputs with dry-run previews and legacy fallback parsing
- Refresh AgentImportModal and dashboard API typing for new preview metadata, directory uploads, and improved error handling
- Add coverage for CLI import paths, dashboard import routes, modal behavior, and assignment route timeout stability
- Add a minor @gsxdsm/fusion changeset documenting Agent Companies import support
2026-04-08 07:13:38 -07:00
gsxdsm
44d0b400d4 feat(FN-1226): add production Docker workflow
- Add a root .dockerignore to reduce build context and exclude local runtime state
- Add a multi-stage Dockerfile that builds the workspace, runs as non-root, and includes health checks
- Document Docker build/run usage, env vars, persistence, and quick-start commands in README and docs/docker.md
- Add Docker configuration tests in packages/cli/src/docker.test.ts to validate required image and docs expectations
2026-04-08 06:55:35 -07:00
gsxdsm
75aa551949 feat(FN-1223): add remote node connection APIs to CentralCore
- Add a new NodeConnection utility that validates inputs, tests /api/health endpoints, normalizes URLs, and classifies connection failures
- Add CentralCore methods to test node connectivity and connect/register remote nodes, with duplicate-name checks and node:connection:test event emission
- Export NodeConnection types and APIs from @fusion/core for external consumers
- Add comprehensive unit coverage for NodeConnection and CentralCore connection flows, and increase dashboard assignment test setup timeout to reduce build/test flakiness
2026-04-08 06:53:36 -07:00
gsxdsm
a186866679 feat(FN-1139): improve mobile board touch experience
- Add mobile board overrides for smooth horizontal snap scrolling, hidden scrollbars, and fixed 280px centered columns
- Update task card mobile styles to keep key actions visible and enforce 44px touch targets for primary controls
- Adapt inline create UI for narrow columns with 16px input text, wrapped controls, and constrained dependency dropdown sizing
- Add board-mobile tests covering CSS mobile rules plus touch tap-vs-scroll behavior for TaskCard and InlineCreateCard
- Document the mobile board interaction model and touch target conventions in the dashboard README
2026-04-08 06:47:59 -07:00
gsxdsm
5f4bd9c4d2 feat(FN-1146): add configurable AI session cleanup lifecycle
- Add aiSessionTtlMs and aiSessionCleanupIntervalMs project settings with defaults and bounds for cleanup scheduling
- Extend AiSessionStore cleanup to expire stale in-progress sessions, emit deletion events, and support start/stop scheduled cleanup loops
- Wire server startup/shutdown to load cleanup settings and manage the scheduled ai_sessions sweep lifecycle
- Align planning, subtask breakdown, and mission interview in-memory session retention to a 7-day TTL with shared deletion-driven cleanup
- Update schema/tests/docs for migration v15 ai_sessions indexing and end-to-end cleanup/TTL behavior stability
2026-04-08 06:44:09 -07:00
gsxdsm
e3acec2019 feat(FN-1165): add agent org chart routes and API helpers
- Add dashboard routes for /agents/org-tree and /agents/resolve/:shortname with scoped store wiring and 404 handling
- Add /agents/:id/chain-of-command endpoint to return reporting hierarchy from self to top manager
- Extend dashboard app API with OrgTreeNode export plus fetchOrgTree, fetchChainOfCommand, and resolveAgent helpers
- Add route tests covering org-tree, resolve, and chain-of-command success and not-found scenarios
2026-04-08 06:23:36 -07:00
gsxdsm
16467dce1f feat(FN-1185): inject agent rating feedback into runtime instructions
- Extend agent instruction resolution to append a Performance Feedback section with average score, trend, category breakdown, and recent comments when ratings exist
- Add rating-aware instruction resolution with graceful fallback when no store is configured, agent IDs are missing, or rating lookup fails
- Wire executor custom instruction loading to fetch agent rating summaries and include them in resolved instructions
- Expand agent-instructions tests to cover feedback formatting, trend indicators, comment limits, and fallback/error paths
2026-04-08 06:18:47 -07:00
gsxdsm
7dc1f77826 feat(FN-1212): update header with circular Fusion logo
- Replace the header SVG mark with a circular outline and filled path-based glyph using currentColor
- Keep logo semantics and ordering intact while modernizing the visual treatment
- Update Header tests to assert currentColor-based geometry and verify the stroked outer circle
2026-04-08 06:16:18 -07:00
gsxdsm
90fbf3e398 feat(FN-1145): harden dashboard SSE streams with replay and reconnect
- Add a shared SSE event buffer utility and wire it into planning, subtask, mission interview, and task stream routes
- Support Last-Event-ID replay semantics and robust event serialization so clients can recover missed stream events
- Add a resilient client-side reconnect wrapper and surface reconnecting state in planning, subtask breakdown, and mission interview modals
- Expand test coverage across API routes, SSE buffering behavior, reconnect handling, and mission/planning stream flows
2026-04-08 06:02:28 -07:00
gsxdsm
af57015181 feat(FN-1137): improve mobile dropdown and file browser interactions
- Add viewport-aware positioning/clamping for Quick Scripts and Quick Entry dropdown menus
- Implement long-press context menu behavior in FileBrowser with iOS momentum scrolling support
- Expand dashboard CSS and component logic to stabilize mobile overlay behavior and remove unused inline WebKit style
- Add focused tests for FileBrowser, QuickScriptsDropdown, and mobile dropdown positioning plus README notes
2026-04-08 05:59:12 -07:00
gsxdsm
79d8c15925 feat(FN-1182): add agent reflection service and executor integration
- Extend project settings with reflection enablement, interval, and post-task trigger defaults
- Implement AgentReflectionService to gather agent/task history, generate structured AI reflections, and persist reflection metrics
- Add reflect_on_performance tool factory with optional focus area input and human-readable reflection output
- Wire reflection tool into TaskExecutor only when reflection is enabled and the task has an assigned agent
- Add comprehensive reflection service/tool tests and stabilize agent-store org tree expectation ordering
2026-04-08 05:55:36 -07:00
gsxdsm
321ec691bd feat(FN-1203): extract App orchestration into focused hooks
- Extract modal manager, app settings, deep-link handling, favorites, and auth onboarding into dedicated hooks
- Rewire App.tsx to consume the new hooks and reduce component-level state/effect complexity
- Preserve favorite-toggle error toast behavior in the updated favorites wiring
- Add hook-level test coverage for modal manager, app settings, deep links, favorites, and auth onboarding flows
2026-04-08 05:53:24 -07:00
gsxdsm
8675dc8e3a docs(FN-1205): document comprehensive system gap analysis
- Add docs/gap-analysis.md with a full end-to-end audit of the current system
- Capture findings across package completeness, test coverage, naming consistency, and error handling
- Document feature and architectural gap assessments plus verification and quality gate results
- Synthesize outcomes into actionable follow-up tasks and prioritized next steps
2026-04-08 05:35:00 -07:00
gsxdsm
31e49eb17d feat(FN-1208): reorder task form attachments above dependencies
- Move the Attachments form section to render before Dependencies in TaskForm
- Keep existing screenshot attach/remove interactions intact while changing layout order
- Add NewTaskModal test coverage asserting Attachments appears before Dependencies in DOM order
2026-04-08 05:21:07 -07:00
gsxdsm
25db947502 feat(FN-1184): add agent rating persistence and summary APIs
- Add AgentRating, AgentRatingSummary, and AgentRatingInput types and re-export them from @fusion/core
- Bump core schema to v14 with an agentRatings table plus agentId/createdAt indexes
- Implement AgentStore rating methods for add/list/filter/summary/delete with score validation and rating:added events
- Extend database and agent-store tests to cover migration, rating CRUD behavior, filtering, limits, and trend calculation
2026-04-08 05:20:29 -07:00
gsxdsm
182e30d5e9 fix(FN-1136): tighten dashboard mobile header and mailbox layouts
- Move the overflow planning badge into a dedicated icon wrapper to prevent text overlap on mobile
- Add Header test coverage for active planning sessions in the mobile overflow menu
- Scope mailbox mobile CSS rules to .mailbox-modal to avoid global style bleed
- Refine mobile mailbox spacing, tab sizing, and minimum agent panel height for better small-screen usability
2026-04-08 04:59:00 -07:00
gsxdsm
07d50ee638 feat(FN-1181): add ReflectionStore with agent reflection models
- Add reflection core types for triggers, metrics, persisted reflections, and aggregated performance summaries
- Implement ReflectionStore with JSONL persistence, per-agent write locking, retrieval/latest helpers, summary aggregation, and cleanup APIs
- Emit typed reflection events for creation and summary computation and export the new store/types from @fusion/core
- Add comprehensive ReflectionStore tests covering persistence order, malformed JSONL handling, windowed summaries, events, deletion, and concurrent writes
2026-04-08 04:55:39 -07:00
gsxdsm
d608e5d543 fix(FN-1131): align planning confirm button content
- Update .planning-confirm-btn to use flex layout for consistent icon/text alignment
- Center button content vertically and horizontally in planning confirmation UI
- Add var(--space-sm) gap so button label and icon spacing matches dashboard controls
2026-04-08 04:42:50 -07:00
gsxdsm
29391994eb fix(FN-1123): correct branches panel flex sizing
- Make .gm-content a column flex container so nested panels can size correctly
- Let .gm-panel grow/shrink with flex: 1 and min-height: 0 to avoid layout clipping
- Replace fixed .gm-branches-list max-height with flex-based scrolling to use available height
2026-04-08 04:38:47 -07:00
gsxdsm
db2353a683 docs(FN-1204): publish comprehensive test effectiveness audit
- Add docs/test-audit-report.md with an end-to-end audit of core, engine, cli, and dashboard test effectiveness
- Document quantitative metrics, runtime snapshots, mock density, assertion quality, and edge-case coverage ratios
- Identify high-risk coverage gaps and flaky hotspots across runtime, CLI, and dashboard modules
- Capture prioritized recommendations and define follow-up tasks FN-1279 through FN-1283
2026-04-08 04:33:21 -07:00
gsxdsm
9fa033b1e9 feat(FN-1170): add instruction bundle support to AgentStore
- Add InstructionsBundleConfig to core agent types, inputs, snapshots, diffing, and package exports
- Extend AgentStore persistence and config snapshot cloning to include bundleConfig state
- Implement managed bundle directory APIs for listing, reading, writing, deleting, and validating markdown instruction files
- Add migrateLegacyInstructions to convert legacy instructionsText/instructionsPath data into managed bundle config
- Add comprehensive AgentStore tests for bundle CRUD, validation rules, config updates, and legacy migration behavior
2026-04-08 04:31:20 -07:00
gsxdsm
76e8ab61f0 feat(FN-1130): add project memory editing in settings
- Add GET /api/memory and PUT /api/memory routes with project-scoped file access and validation
- Add fetchMemory and saveMemory dashboard API helpers for memory file operations
- Extend the Settings modal Memory section with inline FileEditor loading, dirty tracking, save action, and read-only behavior when memory is disabled
- Add SettingsModal tests covering memory load, loading state, save flow, and empty-content handling
2026-04-08 04:30:10 -07:00
gsxdsm
3bb58cd9b8 feat(FN-1108): add mobile bottom navigation to dashboard
- Export viewport utilities and add a new MobileNavBar component for core mobile navigation actions
- Integrate the bottom nav into App layout and simplify Header rendering when mobile navigation is active
- Add comprehensive mobile bottom-nav styling and spacing updates in the shared dashboard stylesheet
- Add component and CSS regression tests for mobile nav behavior, including escape-key interaction coverage
- Document the mobile bottom navigation UX and behavior in the dashboard README
2026-04-08 04:20:31 -07:00
gsxdsm
f35a0d5991 feat(FN-1144): add planning model override support to planning mode
- Add planning model selection UI to PlanningModeModal initial view with model loading, favorites wiring, and default/custom badge state
- Extend startPlanningStreaming client API to send optional planningModelProvider/planningModelId overrides
- Propagate planning model overrides through /planning/start-streaming and createSessionWithAgent so agent creation uses selected model settings
- Add frontend and backend tests covering modal selection behavior, request forwarding, and end-to-end planning model flow
2026-04-08 04:10:10 -07:00
gsxdsm
4929e51b1f docs(FN-1202): add Fusion dashboard storage audit report
- Add docs/storage.md with a full audit of dashboard localStorage usage and persistence risks
- Catalog backend global/project setting keys, API endpoints, and project SQLite tables
- Document 9 findings with severity levels and concrete remediation recommendations
- Include a prioritized P0–P2 action plan and verification checklist for follow-up work
2026-04-08 03:59:56 -07:00
gsxdsm
71d9ae9d8b feat(FN-1098): add dashboard task-agent assignment flow
- Add task-agent assignment API helpers with coverage for assign, unassign, and list endpoints
- Show assigned agent badges on task cards and add assignment controls in TaskDetailModal
- Add agent task management tab plus agent selectors in quick and inline task creation UIs
- Expand component test coverage and include a changeset for the dashboard agent assignment feature
2026-04-08 03:19:09 -07:00
gsxdsm
fb22b474cc feat(FN-1168): include planning interview Q&A in breakdown outputs
- Add a shared interview Q&A formatter for planning history across question types
- Append formatted interview context to generated subtask descriptions when history exists
- Include the same interview context in multi-task planning log entries for created tasks
- Expand planning tests to cover formatter behavior and subtask description context handling
2026-04-08 02:30:50 -07:00
gsxdsm
84259a8f22 docs(FN-1200): document Paperclip-style agent runtime gap analysis
- Catalog implemented, partial, missing, and non-applicable Paperclip execution patterns in Fusion
- Analyze 25 capability areas with current state, key gaps, and recommended code-level follow-ups
- Identify impacted packages and relative implementation complexity for each gap
- Propose a phased implementation order and link related FN tasks to guide follow-on work
2026-04-08 02:23:20 -07:00
gsxdsm
ad1fad509e feat(FN-1164): add agent org hierarchy query APIs
- Add OrgTreeNode recursive type in core types and export it from the package index
- Add AgentStore.getChainOfCommand() with cycle protection and bounded traversal depth
- Add AgentStore.getOrgTree() to build sorted root/child hierarchies from reportsTo relationships
- Add AgentStore.resolveAgent() to resolve agents by exact ID or normalized shortname
- Add comprehensive AgentStore tests covering hierarchy traversal, tree construction, and shortname resolution
2026-04-08 02:19:06 -07:00
gsxdsm
f47d1c5c17 feat(FN-1132): support resuming completed planning sessions
- Include complete planning sessions in active session queries and background tracking
- Add create-task fallback to recover completed planning data from persisted ai session records
- Validate and reconstruct summary/initial plan data from stored JSON before creating tasks
- Expand tests for modal resume flow, session-store filtering, and route fallback behavior
2026-04-08 02:06:37 -07:00
gsxdsm
c1fee2bf29 feat(FN-1188): add Agent Companies parser and core exports
- Add Agent Companies manifest types for company, team, agent, project, task, and skill files
- Implement YAML frontmatter parsing, directory/tar.gz package parsing, and contextual parse errors
- Convert agent manifests to AgentCreateInput with role inference and skip-existing import support
- Export Agent Companies parser/type APIs from @fusion/core and add the yaml dependency
- Add comprehensive parser and type tests covering happy paths, archive handling, and validation failures
2026-04-08 02:01:49 -07:00
gsxdsm
e38e8fb6b1 feat(FN-1127): add awaiting-approval ntfy notifications
- Extend ntfy event types and default ntfyEvents to include awaiting-approval
- Send high-priority "Plan needs approval" notifications for awaiting-approval task updates with deep-link support
- Add Notifications settings checkbox handling for awaiting-approval event selection in Settings modal
- Expand notifier and settings modal tests for awaiting-approval defaults, toggles, filtering, and deduplication
- Update AGENTS.md ntfy documentation and sample config to include the new event
2026-04-08 02:00:39 -07:00
gsxdsm
0cdf456429 docs(FN-1194): expand architecture documentation for current system
- Rewrite docs/architecture.md as a comprehensive "Fusion Architecture" guide grounded in the actual repository structure
- Add package-level breakdowns, dependency graph, and runtime/data-flow diagrams across core, engine, dashboard, CLI, and desktop
- Document storage model, task lifecycle, agent/heartbeat behavior, multi-project orchestration, settings hierarchy, and git/merge integration
- Add a quick source-map section linking key implementation files for faster onboarding and navigation
2026-04-08 01:58:01 -07:00
gsxdsm
3af3adbc45 feat(FN-1107): establish dashboard mobile CSS foundation
- Add mobile breakpoint tokens and a reusable .touch-target utility with 44px minimum hit area
- Harden mobile styles with global 16px text-entry sizing, safe-area inset padding, and overflow guards for wide content
- Keep Capacitor viewport constraints in index.html and document the shared mobile CSS conventions in the dashboard README
- Add mobile CSS foundation coverage and update input font-size tests to validate the new global selectors
2026-04-08 01:46:07 -07:00
gsxdsm
ecf0eb6d84 feat(FN-1073): add desktop CLI workflow and packaging support
- Add new `fn desktop` CLI command with argument handling and comprehensive command/bin tests
- Implement desktop build and hot-reload dev scripts and wire package scripts/dependencies for Electron workflows
- Add electron-builder configuration and desktop main-process/integration test coverage to stabilize packaging behavior
- Document desktop development and usage in README files and include a changeset for the published CLI package
2026-04-08 01:40:05 -07:00
gsxdsm
1c17cfaa67 feat(FN-1122): add agent permission access APIs
- Define canonical agent permission types and export permission helpers from @fusion/core
- Add permission normalization and access-state computation with role defaults plus explicit grants
- Extend AgentStore with getAccessState and add unit tests for permission logic and store behavior
- Add dashboard routes for GET /api/agents/:id/access and PATCH /api/agents/:id/permissions with request validation and serialization
- Add a minor changeset for @gsxdsm/fusion documenting the new agent permission endpoints
2026-04-08 01:39:15 -07:00
gsxdsm
77a74ed5be docs(FN-1161): publish fragility hardening report
- Add improvements.md with a system-wide fragility and reliability assessment
- Prioritize 16 hardening recommendations by severity with estimated effort
- Document high-risk hotspots across persistence, migration, runtime lifecycle, and scoping
- Capture cross-cutting themes, test coverage gaps, and complexity metrics for follow-up
2026-04-08 01:24:16 -07:00
gsxdsm
132b2005c7 feat(FN-1191): hot-swap active executor sessions on model changes
- Show resolved default executor, validator, and planning models in the task Model tab
- Pass merged settings into the Model tab from TaskDetailModal so default badges reflect effective runtime resolution
- Hot-swap active single-session executor models when task overrides change, including fallback to project defaults when overrides are cleared
- Add dashboard and executor tests for default model display, hot-swap behavior, fallback logic, and failure logging
- Document hot-swap behavior and limitations in AGENTS.md and add a patch changeset for @gsxdsm/fusion
2026-04-08 01:18:01 -07:00