Commit Graph

31 Commits

Author SHA1 Message Date
gsxdsm
375f431f69 feat(FN-1468): wire plugin backend into dashboard and serve startup
- Add plugin backend wiring to fn dashboard startup
- Add plugin backend wiring to fn serve (headless node) startup
- Document plugin wiring pattern in project memory
- Add comprehensive tests for plugin initialization in dashboard and serve commands
- Include changeset for @gsxdsm/fusion package
2026-04-09 21:22:46 -07:00
gsxdsm
d4b1e8fdb1 fix(FN-1348): fix test mocks for HeartbeatMonitor wiring in dashboard
- Update dashboard command tests to properly mock HeartbeatMonitor dependencies
- Ensure test suite passes with correct wiring expectations
2026-04-09 10:20:39 -07:00
gsxdsm
9ac5b19646 fix(FN-1285): harden async listener error guards
- Wrap TaskExecutor task:updated async listener logic in a top-level guard and log uncaught listener failures
- Add explicit catch handling for ProjectManager activity logging and dashboard stuck-detector settings-triggered checkNow calls
- Document async EventEmitter guard conventions in scheduler and hybrid executor listener wiring
- Add regression tests for executor and dashboard listener guards and include a patch changeset for @gsxdsm/fusion
2026-04-08 11:49:33 -07:00
gsxdsm
9314b9a8a4 fix(FN-1252): add dashboard dispose lifecycle to prevent listener leaks
- Track runDashboard event handlers through a centralized register helper
- Add an idempotent dispose() that unregisters store/process listeners and clears merge retry timers
- Guard periodic merge retry scheduling against disposed state and invoke cleanup on shutdown paths
- Add lifecycle regression tests covering listener cleanup, idempotent dispose, and MaxListeners warnings
2026-04-08 11:27:42 -07:00
gsxdsm
468b0070c5 fix: include remaining local updates 2026-04-08 08:57:19 -07:00
gsxdsm
880f29115c feat(FN-1044): add thinkingLevel and planning model support to task creation
- Add thinkingLevel field to createTask and updateTask in core store
- Accept thinkingLevel and planningModel fields in dashboard task routes
- Send thinkingLevel and planningModel in frontend API calls from task forms
- Add ThinkingLevel selector to ModelSelectorTab component with tests
- Wire up planning model and thinking level in QuickEntryBox, TaskForm, and NewTaskModal
- Add unit tests for store, routes, and ModelSelectorTab coverage
- Add changeset and update AGENTS.md documentation
2026-04-07 12:18:49 -07:00
gsxdsm
7a01995465 feat(FN-1051): wire MissionAutopilot into dashboard startup
- Instantiate MissionAutopilot with TaskStore and MissionStore before Scheduler creation
- Pass missionAutopilot and missionStore to Scheduler constructor options
- Break circular dependency via setScheduler() after Scheduler construction
- Start autopilot in engine startup sequence, stop on graceful shutdown
- Add comprehensive tests verifying MissionAutopilot wiring in both test files
2026-04-07 10:40:05 -07:00
gsxdsm
11dfcaf7e2 feat(FN-987): wire AgentStore to TaskExecutor in dashboard command
- Wire AgentStore into TaskExecutor initialization within dashboard.ts startup
- Add AgentStore mock to dashboard command tests for proper test coverage
- Update test mocks to reflect new AgentStore dependency injection
2026-04-05 15:55:05 -07:00
gsxdsm
f4012fc5f2 fix: recover completed tasks stuck in progress 2026-04-05 15:24:32 -07:00
gsxdsm
0c31127169 fix(FN-850): harden merge readiness and reopen done tasks 2026-04-04 08:35:19 -07:00
gsxdsm
574d1793fc feat(FN-840): add closed/merged PR feedback contract and clean up unused code
- Add closed/merged PR feedback contract to pr-monitor for post-merge follow-up behavior
- Fix PR monitor drainComments + consume/drain behavior with comprehensive tests
- Add PR feedback follow-up tests and scheduler follow-up logic
- Remove unused activity log, agent log viewer, and multi-agent log code from dashboard
- Remove unused store methods, types, API endpoints, and route handlers
- Update README docs to document manual-merge PR follow-up behavior and fix auth wording
- Add dashboard CLI test coverage for new commands
2026-04-04 02:01:58 -07:00
gsxdsm
566f531361 feat: rename data directory, add global project settings, multi-project CLI commands, and provider badge in model selector
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-02 09:10:42 -07:00
gsxdsm
1fa8837c6b refactor: improve mocking for GitHubClient and enhance SIGINT handling in tests 2026-04-01 22:55:16 -07:00
gsxdsm
dc442cf391 feat: refactor tests and improve mocking for file-service and GitHub polling
- Updated mocking strategy for node:fs and node:fs/promises in file-service tests.
- Removed redundant test files and improved test implementations for better clarity.
- Enhanced GitHub polling service tests with rate limiter integration.
2026-04-01 22:44:44 -07:00
gsxdsm
04b194982d feat: add per-provider timeout for usage panel to prevent blocking on slow responses
fix: update scheduler filesystem path from .kb to .fusion for task validation

style: clean up TaskDetailModal styling with reusable CSS classes

test: add comprehensive tests for file-service operations with mocked filesystem
2026-04-01 22:38:18 -07:00
gsxdsm
64295637f2 feat: enhance dashboard styling and functionality for task changes and package extensions 2026-04-01 22:06:12 -07:00
gsxdsm
e4579728ba feat(KB-332): rename task prefix from KB to FN and branches from kb/ to fusion/
- Change default task prefix from KB to FN across all packages

- Rename branch naming pattern from kb/{id} to fusion/{id}

- Update all test assertions and fixtures to use new prefixes

- Add changeset for the breaking change

- Resolve merge conflicts in TaskCard.test.tsx touch gesture tests
2026-03-31 19:29:47 -07:00
gsxdsm
3f77d80096 feat(KB-330): rename internal packages from @kb/* to @fusion/*
- Rename @kb/core, @kb/dashboard, @kb/engine to @fusion/* namespace
- Update all import statements across 143+ files to use new package names
- Update workspace dependencies and root package.json references
- Fix bundler configurations (tsup, vite) for new package names
- Update test files and fix typecheck issues
- Add changeset file documenting the package rename
2026-03-31 13:33:44 -07:00
gsxdsm
d34951a913 feat(KB-196): load extension providers for dashboard model selector
- Load pi extensions on dashboard startup to register custom model providers
- Include extension-provided models in the dashboard model selector
- Add comprehensive tests for extension model loading and error handling
- Create changeset for patch release fixing model selector extensions
2026-03-31 03:21:16 -07:00
gsxdsm
e03bd1ae38 feat(KB-045): add scheduled tasks automation system
- Add AutomationStore and core automation types for cron-based scheduling
- Implement CronRunner engine for executing scheduled automations
- Add REST API routes for CRUD operations on automations
- Create UI components: ScheduleCard, ScheduleForm, and ScheduledTasksModal
- Integrate scheduled tasks into dashboard App.tsx and CLI dashboard command
- Add comprehensive tests for store, runner, API, and UI components
- Include changeset for the new scheduled tasks feature
2026-03-30 16:27:23 -07:00
gsxdsm
fd9a1b186a feat(KB-093): add PR-first merge mode with configurable merge strategies
- Add mergeStrategy setting (fast-forward, squash, merge-commit) to config
- Implement PR-first auto-completion flow that monitors PR merge status
- Wire PR monitoring service to detect merge completion and trigger auto-close
- Add PR status UI to dashboard with merge progress indicator
- Update settings modal with merge strategy selector
- Add changeset for PR-first merge mode feature
2026-03-29 23:13:24 -07:00
gsxdsm
03424127e7 feat(KB-073): add interactive port selection for dashboard command
- Add --interactive flag to CLI parser for kb dashboard\n- Implement promptForPort helper with port availability validation\n- Add comprehensive tests for interactive port prompting\n- Update help text, README, and STANDALONE.md documentation\n- Add changeset for the interactive port feature
2026-03-29 21:36:10 -07:00
gsxdsm
3b71d032a6 feat(KB-048): add collapsible list sections to dashboard
- Add section expansion state management with localStorage persistence
- Update section headers with chevron toggle controls
- Implement conditional task row rendering based on section state
- Add Expand All / Collapse All toolbar controls
- Add CSS styles for chevron rotation animation and section headers
- Add comprehensive tests for collapsible section behavior
2026-03-29 19:51:41 -07:00
Dustin Byrne
ceb379d3c9 feat(KB-161): terminate active agent sessions on engine pause
- Add enginePaused agent termination to executor (kills sessions, moves tasks back to todo)
- Add enginePaused agent termination to triage processor (kills sessions, clears specifying status)
- Update enginePaused JSDoc to reflect new termination behavior vs old graceful drain
- Add unit tests for executor/triage pause termination and integration tests for restart flow
- Include changeset for engine pause behavior change
2026-03-28 16:30:23 -04:00
Dustin Byrne
cac10af5e1 feat(KB-157): add soft-pause (enginePaused) alongside hard-stop (globalPause)
- Add enginePaused field to Settings type with soft-pause semantics (drain queue, don't kill agents)
- Gate scheduler, triage, auto-merge, and periodic merge retry on enginePaused
- Add Pause and Stop buttons to dashboard Header replacing single toggle
- Wire enginePaused state through App with optimistic toggle and unpause resume logic
- Add tests for scheduler, triage, dashboard CLI, Header, and App covering pause behavior
2026-03-28 16:30:23 -04:00
Dustin Byrne
3aa2ec743d feat(KB-151): immediately resume agentic activity on global unpause
- Add settings:updated listener in Scheduler to trigger schedule() on globalPause true→false transition
- Add settings:updated listener in TriageProcessor to trigger poll() on globalPause true→false transition
- Add unpause handler in dashboard to resume orphaned executor tasks and sweep merge queue
- Guard all resume paths against no-op transitions (false→false, true→true) and stopped state
- Add tests for all three resume paths covering transition edge cases
2026-03-28 16:30:23 -04:00
Dustin Byrne
d19b51f7fa feat(KB-137): add automatic port fallback when dashboard port is in use
- Handle EADDRINUSE by retrying with port 0 (OS-assigned random port)
- Print warning message showing original and fallback port
- Update banner and browser-open to use the actual bound port
- Add tests for successful listen, fallback, and warning behavior
- Add changeset for patch release
2026-03-28 16:30:23 -04:00
Dustin Byrne
c802108a02 refactor(HAI-116): rename kb to hai across all packages, CLI, and docs
- Rename npm packages from @kb/* to @hai/* and update all workspace references
- Rename CLI binary from kb to hai and config directory from .kb to .hai
- Update dashboard UI branding, titles, and references from kb to hai
- Update all test files, CI workflows, and documentation to reflect new naming
- Run comprehensive grep verification to ensure no stale kb references remain
2026-03-26 22:44:11 -04:00
Dustin Byrne
323ce09c1b feat(HAI-114): remove --engine CLI flag and make engine always-on
- Remove --engine flag from dashboard command CLI options
- Make AI engine start automatically with the dashboard
- Update dashboard tests to reflect always-on engine behavior
- Update README.md to remove --engine references and examples
2026-03-26 22:44:11 -04:00
Dustin Byrne
615f31c777 feat(HAI-096): add task pause/unpause functionality
- Add paused field to Task data model and store with pauseTask method
- Update triage, scheduler, and executor to respect paused flag and terminate paused tasks
- Add REST API endpoints and CLI commands for pause/unpause operations
- Add dashboard UI visual indicator and toggle for paused state
- Update README with pause/unpause CLI command documentation
2026-03-26 22:44:11 -04:00
Dustin Byrne
5b4abf4271 feat(HAI-041): wire WorktreePool through dashboard and add tests
- Wire WorktreePool instance through dashboard.ts command setup
- Add comprehensive WorktreePool wiring tests in dashboard.test.ts
- Refactor engine executor, scheduler, and merger to use WorktreePool
- Remove legacy worktree-names module and unused dashboard routes/hooks
- Clean up dashboard UI components and simplify task card/modal logic
2026-03-25 23:54:56 -04:00