Commit Graph

37 Commits

Author SHA1 Message Date
gsxdsm
1f8465342c fix(FN-000): scope dashboard project flows 2026-04-02 17:51:04 -07:00
gsxdsm
5654d2e230 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
681dc48ebf feat(FN-691): merge Steering and Comments tabs into unified Comments tab
- Remove SteeringTab component and merge steering comments into TaskComments
- Consolidate both steering comments (pinned) and regular comments in one tab
- Update TaskDetailModal to render single Comments tab instead of separate Steering/Comments tabs
- Migrate SteeringTab tests into TaskComments test suite with full coverage
- Update TaskDetailModal tests for new 6-tab layout (Definition, Activity, Agent Log, Changes, Comments, Model)
2026-04-01 09:18:59 -07:00
gsxdsm
efc49dee29 test(FN-686): fix pre-existing dashboard test failures
- App.test.tsx: Add mocks for useProjects/useCurrentProject, update localStorage keys for view-mode
- SetupWizard.test.tsx: Remove tests for non-existent features (auto-detect, review step), match simple wizard
- TaskDetailModal.test.tsx: Update tab count to 7, change 'Steering Comments' to 'Comments', add Changes tab
- WorkspaceSelector.test.tsx: Fix task prefix from KB- to FN-
2026-04-01 09:08:23 -07:00
gsxdsm
348c21544b feat(KB-341): unify steeringComments and comments into single comments system
- Consolidate steeringComments and comments into unified comments field using TaskComment type

- Remove SteeringComment type, migrate all comments to TaskComment format

- Update addComment to delegate to addTaskComment with auto-refinement for done tasks

- Merge legacy steeringComments data into comments during database migration

- Update dashboard API endpoint from /steer to /comments

- Update executor to use unified comments field for real-time injection

- Update PR comment handler to use addTaskComment method
2026-04-01 07:44:04 -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
ace0732a1d test(KB-601): add test for pause/unpause with missing directory 2026-03-31 14:43:55 -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
927f6f16dd test(KB-224): update tests for combined definition/spec tab 2026-03-30 18:35:34 -07:00
gsxdsm
c8abd6275f feat(KB-086): complete Step 7 — integrate ActivityLogModal with Header and App 2026-03-30 18:31:38 -07:00
gsxdsm
5facec46e1 feat(KB-191): change request refinement button to 'Refine'
- Update TaskDetailModal button text to 'Refine'

- Update test assertions in TaskDetailModal.test.tsx

- Add changeset for the UI text change

- Remove stale kb-100-header-test-branding changeset file
2026-03-30 12:39:38 -07:00
gsxdsm
7c0a0ce1a7 feat(KB-145): add inline editing to task detail modal
- Add edit state and handlers to TaskDetailModal component
- Add edit button and inline editing UI with save/cancel actions
- Add CSS styles for inline editing form elements
- Add comprehensive tests for inline editing functionality
- Update README and add changeset for the feature
2026-03-30 08:05:58 -07:00
gsxdsm
7d62a3abc2 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
49f290da3c feat(KB-088): clear failed status when moving tasks and improve error display
- Fix moveTask to clear status/error/worktree/blockedBy when moving from in-progress to todo/triage
- Add error message display in TaskCard for failed tasks with truncation
- Add prominent error alert in TaskDetailModal for failed tasks
- Refactor usage tracking: move from app/components to dashboard/src/
- Add usage.ts and usage.test.ts for centralized usage tracking
- Remove UsageIndicator and useUsageData from app/ directory
- Update styles.css for error display components
- Update executor tests for error handling
- Add changeset for patch release
2026-03-29 21:48:44 -07:00
gsxdsm
26416d4919 test(KB-082): complete Step 6 — Add/update tests for error field and retry 2026-03-29 21:44:44 -07:00
gsxdsm
c2f4f61d47 feat(KB-041): add task refine capability across core, API, UI, and CLI
- Add refineTask() to TaskStore with validation for feedback and requirements
- Add POST /tasks/:id/refine API endpoint with tests
- Add refine UI to TaskDetailModal for submitting feedback
- Add kb_task_refine tool to pi extension for AI-driven refinement
- Add 'kb task refine' CLI command for manual task refinement
- Include validation constraints: max 2000 chars feedback, max 5000 chars requirements
2026-03-29 21:05:57 -07:00
gsxdsm
d6a69d8c41 feat(KB-051): add duplicate task button in task detail modal
- Add duplicateTask action to useTasks hook for creating task copies

- Add Duplicate button to TaskDetailModal with visual styling

- Wire up duplicateTask action through App.tsx task handlers

- Add comprehensive tests for duplicate button functionality

- Include changeset for the new duplicate task feature
2026-03-29 19:56:07 -07:00
gsxdsm
a53e4c1420 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
ac4166902d fix(KB-186): add ID-based tiebreaker to sort comparators for stable ordering
- Add numeric ID tiebreaker to TaskStore.listTasks() when createdAt timestamps match
- Add same tiebreaker to InlineCreateCard and TaskDetailModal dependency dropdown sorts
- Add store-sort integration test verifying ascending ID order with identical timestamps
- Add InlineCreateCard tests for identical-timestamp dropdown ordering and search filtering
- Add TaskDetailModal test for identical-timestamp dependency dropdown ordering
2026-03-28 19:40:17 -04:00
Dustin Byrne
db86fcb78f feat(KB-162): add mobile responsive layout for task detail modal
- Add mobile-first CSS with full-screen modal, wrapped actions, and reduced spacing at ≤768px
- Extract inline tab styles from TaskDetailModal.tsx into CSS classes (.detail-tabs, .detail-tab, .detail-tab-active)
- Add @media query for modal, header, body, actions, and tabs responsive adjustments
- Add tests verifying modal structure, CSS class usage, and action button presence for mobile layout
2026-03-28 16:30:23 -04:00
Dustin Byrne
b0d361cc3c feat(KB-156): add search input to dependency dropdowns
- Add searchable text input to TaskDetailModal dependency dropdown with filtering by id, title, and description
- Add matching search input to InlineCreateCard dependency dropdown
- Add sticky .dep-dropdown-search CSS with focus styling
- Reset search term when dropdown closes and reopens
- Add tests for search filtering, case-insensitive matching, empty state, and reset behavior
2026-03-28 16:30:23 -04:00
Dustin Byrne
e20134a474 feat(KB-155): sort dependency dropdown newest-first by createdAt
- Sort availableTasks in TaskDetailModal by createdAt descending (newest first)
- Add test verifying dropdown items appear in newest-first order
- Exclude current task from dropdown list as before
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
20264a854d feat(HAI-072): add agent log viewer with persistence, streaming, and UI
- Add agent log persistence layer with JSONL append/read and event emission in core store
- Add server-side SSE log streaming endpoint and REST route for fetching logs
- Create AgentLogViewer component and useAgentLogs hook for real-time log display
- Integrate log viewer into TaskDetailModal
- Fix pre-existing build and test errors
2026-03-26 00:36:48 -04:00
Dustin Byrne
efda541713 feat(HAI-057): add task dependency editing to dashboard UI
- Add dependencies field support to store updateTask method
- Wire dependencies through PATCH route and client API
- Add dependency editing UI (add/remove) to TaskDetailModal
- Pass tasks prop from App to TaskDetailModal for dependency picker
- Add tests for dependency CRUD in modal and API layer
2026-03-26 00:15:29 -04:00
Dustin Byrne
c8143a18b3 feat(HAI-068): add paste and drag-drop image upload to TaskDetailModal
- Extract uploadFile helper from file input handler for reuse
- Add clipboard paste listener to upload pasted images automatically
- Add drag-over and drop handlers on modal for drag-and-drop image upload
- Add comprehensive tests for paste upload, non-image paste skip, uploading state, and drop upload
2026-03-26 00:11:15 -04:00
Dustin Byrne
2296b36487 fix(HAI-060): remove nested scrollbar from activity in card detail view
- Remove overflow CSS rules causing nested scrollbar in activity section
- Add TaskDetailModal test asserting activity list scroll behavior
- Clean up merger test formatting
2026-03-25 23:57:45 -04:00
Dustin Byrne
f1c1f9e11a feat(HAI-043): fix title fallback to show description instead of duplicate ID
- Update TaskCard and TaskDetailModal to display description as fallback instead of repeating the task ID
- Remove unused hooks (useFlashOnIncrease), routes, assets, and dead CSS
- Clean up engine modules (executor, scheduler, triage, worktree-names) removing unused code
- Update and add tests for title fallback behavior in TaskDetailModal
- Fix pre-existing type error in test helper (types.ts)
2026-03-25 23:52:43 -04:00
Dustin Byrne
35177f448f feat(HAI-055): add failed task status handling with retry support
- Set task status to 'failed' on execution failure in engine executor
- Add failed indicator styling on TaskCard component
- Add POST /tasks/:id/retry API endpoint and client function
- Add retry button in TaskDetailModal for failed tasks
- Add tests for failed indicator, retry endpoint, and modal behavior
2026-03-25 23:50:11 -04:00
Dustin Byrne
397716f370 fix(HAI-039): eliminate duplicate description in prompts and modal heading
- Fix prompt heading to use only task ID when title is absent, preventing description duplication
- Strip leading markdown heading from TaskDetailModal since the modal has its own header
- Add store tests covering prompt generation for tasks with and without titles
- Update TaskDetailModal tests to verify heading stripping and single description rendering
2026-03-25 22:58:09 -04:00
Dustin Byrne
27c8744c46 feat(HAI-024): complete Step 1 — remove PROMPT.md header from TaskDetailModal 2026-03-25 22:01:29 -04:00
Dustin Byrne
cf79ae52d4 test(HAI-013): complete Step 2 — add TaskDetailModal tests and vitest config 2026-03-25 21:10:05 -04:00