Commit Graph

25 Commits

Author SHA1 Message Date
gsxdsm
697814d9e0 feat(FN-1260): add full-text search for tasks and comments
- Add FTS5 virtual table with v21 database migration for task search
- Add searchTasks() method to TaskStore with FTS5 query support
- Add q= search parameter to GET /api/tasks route for server-side search
- Update useTasks hook and frontend API to support searchQuery prop
- Update Board.tsx and App.tsx to pass searchQuery through component hierarchy
- Add comprehensive tests for FTS5 index and searchTasks functionality
2026-04-09 10:17:02 -07:00
gsxdsm
e6c397a80e feat(FN-831): make board search bypass column pagination
- When board search is active, all matching tasks are shown regardless of column page settings
- Board.tsx passes search query down to Column; Column skips pagination when query is present
- Add Board and Column test coverage for search-bypasses-pagination behavior
- Update README to document the search pagination bypass
2026-04-04 00:50:55 -07:00
gsxdsm
87cb28c7b6 feat(FN-770): add quick-add favorite models to task creation surfaces
- Wire favorite model state into QuickEntryBox with star toggle and dropdown integration
- Add favorite model selector to Board and Column quick-add components
- Pass favorite models through ListView and App context to entry surfaces
- Add regression tests for QuickEntryBox, Board, Column, and ListView favorite behavior
- Update dashboard README to document quick-add favorite model support
- Remove unused recovery-policy module and dead code from executor/triage/scheduler
- Clean up unused types from core and simplify store methods
2026-04-03 08:14:16 -07:00
gsxdsm
75bcffe0fb feat(FN-699): remove project badge from Board and ListView components
- Remove projectId/projectName props from Board and ListView components
- Remove Folder icon import and project context badge JSX from both views
- Remove projectId/projectName prop passing from App.tsx
- Add Board test asserting .board-project-context badge is not rendered
2026-04-01 09:50:54 -07:00
gsxdsm
c671beae96 feat(KB-503): add multi-project CLI support with project subcommands
- Add project subcommands: list, add, remove, show, set-default, detect
- Add --project flag support for all task commands
- Create project-context.ts utilities for project resolution
- Add defaultProjectId to GlobalSettings type
- Implement project auto-detection from cwd
- Update CLI argument parsing for global --project flag
- Add multi-project CLI documentation to AGENTS.md
2026-04-01 07:02:15 -07:00
gsxdsm
54767f60eb feat(KB-648): enable parallel test execution and optimize test performance
- Optimize backup tests using fake timers instead of real timeouts

- Enable parallel file execution in core, engine, CLI, and dashboard packages

- Add inline test helpers to reduce dependencies in dashboard routes tests

- Update executor tests with exact command matching and improved assertions

- Update AGENTS.md with test optimization patterns (fake timers, unique temp dirs)
2026-04-01 06:54:50 -07:00
gsxdsm
1840f17ebf feat(KB-503): add multi-project CLI support
- Add project context utilities for multi-project operations

- Add project subcommands (list, add, remove, set-default, detect)

- Update CLI argument parsing with --project flag support

- Add multi-project documentation and changeset
2026-03-31 23:28:43 -07:00
gsxdsm
4b39bf1f4c feat(KB-618): add multi-project support to dashboard
- Add project API methods and types (fetchProjects, registerProject, fetchProjectHealth, etc.)
- Add ProjectCard component with health metrics, status badges, and pause/resume actions
- Add server-side project management routes for multi-project orchestration
- Add ActivityFeed component with grouped entries and project badges
- Add SetupWizard component with 5-step project creation flow
- Fix TypeScript errors in server routes for listProjects and getGlobalConcurrencyState
2026-03-31 23:19:03 -07:00
gsxdsm
e3055f8d93 fix(KB-503): address code review feedback for Step 1
- Add optional globalDir parameter to resolveProject(), getDefaultProject(),
  setDefaultProject(), and clearDefaultProject() for test isolation
- Remove ESLint suppression by using void operator for intentionally unused var
- Update all tests to use isolated globalDir parameter
- Complete tests for default project resolution
2026-03-31 22:38:56 -07:00
gsxdsm
5647e500cf 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
fc0411713c 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
7cfce83479 feat(KB-171): propagate availableModels prop through dashboard component tree
- Update App.tsx to fetch and pass availableModels to Board
- Update Board component to accept and pass availableModels to Column
- Update Column component to receive availableModels prop
- Update ListView to handle availableModels prop
- Update Board test mock to include availableModels prop
2026-03-30 18:00:17 -07:00
gsxdsm
a7de078fef feat(KB-129): dashboard performance optimizations
- Fix SSE hook cleanup to prevent memory leaks and stale connections
- Cap agent log memory and optimize batch log processing
- Memoize Board, Column, and TaskCard with custom comparator to reduce re-renders
- Stabilize column task arrays and preserve pagination across live updates
- Add TaskCardBadge component for PR/issue state display
- Remove deprecated GitHub polling code and archive functionality from core store
2026-03-30 11:26:55 -07:00
gsxdsm
2e05980a3b test(KB-120): add search filter tests for Header and Board
- Add Header search tests for filter functionality (48 lines)

- Add Board search filter tests for task filtering (203 lines)

- Remove unused code from TaskDetailModal component

- Cover search input rendering and filter behavior for both components
2026-03-30 09:17:29 -07:00
gsxdsm
8c46ef3cc6 feat(KB-074): add quick task creation with QuickEntryBox and NewTaskModal
- Add QuickEntryBox component for inline quick task entry in columns
- Add NewTaskModal component with full-featured task creation UI
- Integrate quick create flow through Column → Board → App component hierarchy
- Add comprehensive tests for both new components and updated existing tests
- Add CSS styles for modal, form inputs, and quick entry UI
- Include changeset for @dustinbyrne/kb package release
2026-03-29 22:40:04 -07:00
gsxdsm
52b8205220 feat(KB-034): add task archive/unarchive functionality
- Add 'archived' column to task store with archiveTask and unarchiveTask methods
- Add CLI commands: kb task archive <id> and kb task unarchive <id>
- Add pi extension tools for archive and unarchive operations
- Add dashboard API endpoints POST /api/tasks/:id/archive and /unarchive
- Add Archived column to board UI with archive/unarchive buttons
- Prevent drag-drop into archived column, add visual distinction
- Include duplicateTask from concurrent branch in merge resolution
2026-03-29 20:03:43 -07:00
Dustin Byrne
3f85f28c23 feat(KB-184): change autoMerge default from false to true
- Update DEFAULT_SETTINGS in core types to set autoMerge: true
- Update initial state defaults in App and SettingsModal components
- Update test fixtures in App, Board, and SettingsModal tests
- Update kb-board skill docs to reflect new default
- Add minor changeset for the default change
2026-03-28 18:14:16 -04:00
Dustin Byrne
864bf6ca78 fix(KB-181): preserve active-agent glow during soft-pause
- Replace combined engineStopped prop with globalPaused to decouple hard stop from soft pause
- Thread globalPaused through Board, Column, WorktreeGroup, and TaskCard components
- Active-agent glow now only suppressed on hard pause (globalPaused), not soft pause (enginePaused)
- Update tests to verify soft-pause preserves glow and hard-pause suppresses it
- Add changeset for patch release
2026-03-28 17:26:49 -04:00
Dustin Byrne
8f4aab43ce Revert "fix(KB-166): revert mobile board flex layout from KB-164"
This reverts commit 042cddcb7a281e9886be21ee47b42d50d75a7706.
2026-03-28 16:30:23 -04:00
Dustin Byrne
de21f68f30 fix(KB-166): revert mobile board flex layout from KB-164
- Remove mobile board flex/snap-scroll CSS overrides from styles.css
- Remove Board tests asserting direct-child column structure and semantic tag
- Delete fix-mobile-board-double-scrollbar changeset
- Retain mobile modal full-screen overrides
2026-03-28 16:30:23 -04:00
Dustin Byrne
0a08c11937 feat(KB-164): fix mobile board double scrollbar with flex layout
- Switch board from 5-column grid to horizontally-scrollable flex layout on viewports ≤768px
- Add snap-scrolling and fixed min-width columns for polished mobile swipe
- Prevent ancestor elements (html, body, #root) from producing a second scrollbar
- Add board structure tests verifying columns are direct children of main element
- Add changeset for the mobile board fix (patch)
2026-03-28 16:30:23 -04:00
Dustin Byrne
d42b98a2ab feat(KB-160): thread engineStopped prop to suppress agent-active indicator
- Derive engineStopped from globalPaused/enginePaused in App and pass through Board → Column → WorktreeGroup → TaskCard
- Guard isAgentActive in TaskCard with !engineStopped so the pulse animation stops when the engine is paused
- Update Board test to supply the new engineStopped prop
- Add TaskCard tests covering engineStopped=true, false, and undefined (backward compat)
- Add engineStopped to all intermediate component interfaces
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
637254ed2f feat(HAI-059): add horizontal scroll support for board columns
- Update board grid to use minmax(260px, 1fr) for minimum column widths
- Replace overflow: hidden with overflow-x: auto for horizontal scrolling
- Add min-width: 260px to column class for consistent sizing
- Add Board test verifying id='board' attribute for scroll targeting
2026-03-25 23:56:18 -04:00
Dustin Byrne
1dfd70757a feat(HAI-053): add responsive mobile horizontal scroll for board
- Add responsive horizontal scroll CSS styles for mobile viewports
- Ensure board columns scroll horizontally on smaller screens
- Add Board component tests verifying responsive scroll behavior
2026-03-25 23:36:55 -04:00