Commit Graph

3430 Commits

Author SHA1 Message Date
gsxdsm
0dacda88db feat(KB-633): add Mission REST API routes for real-time steering
- Create mission-routes.ts with comprehensive REST API for task steering
- Add GET/PUT /api/tasks/:id/mission endpoints for mission state management
- Add POST endpoints for steering comments, pause/unpause, retry, and cancel
- Mount mission routes in dashboard API server
- Update core store with mission-related functionality
- Refactor executor: remove old mission logic, update tests
2026-03-31 18:53:10 -07:00
gsxdsm
2cfd211871 fix(KB-600): remove duplicate mockedGenerateWorktreeName declaration in executor tests
- Remove redundant const mockedGenerateWorktreeName declaration
- Duplicate was causing potential confusion in worktree naming tests
- No functional changes, test cleanup only
2026-03-31 18:42:24 -07:00
gsxdsm
80f4d9db62 feat(KB-326): implement real-time steering comment injection
- Add real-time steering comment injection mechanism for active tasks
- Improve steering injection logging and simplify trigger conditions
- Add comprehensive tests for steering injection functionality
- Add documentation for the real-time steering mechanism
2026-03-31 18:36:59 -07:00
gsxdsm
234581e85a feat(KB-630): inherit parent task models in subtasks
- Subtasks now inherit parent task's executor and validator model settings
- When triage creates subtasks, modelProvider/modelId and validatorModelProvider/validatorModelId are copied from parent
- Clean up legacy mission-store code (mission-store.ts, mission-types.ts, and related tests)
- Add comprehensive tests for subtask model inheritance in triage, routes, and db
- Remove obsolete changeset for missions-database-schema
2026-03-31 18:31:57 -07:00
gsxdsm
27c789512c feat(KB-632): add MissionStore with missions database schema
- Add database schema v3 with missions, objectives, rewards, progress tables
- Implement MissionStore with full CRUD, event emission, and progress tracking
- Add comprehensive mission types (MissionDefinition, MissionInstance, Objective, Reward)
- Include 900+ lines of MissionStore unit tests covering all operations
- Export mission types and store from core package index
2026-03-31 18:28:23 -07:00
gsxdsm
0867490c01 fix(KB-629): add Task type import and fix type error in batch update 2026-03-31 18:26:49 -07:00
gsxdsm
8e04dcca7d feat(KB-629): complete Step 6 — add documentation and changeset for bulk model editing 2026-03-31 18:26:14 -07:00
gsxdsm
90a223083c fix(KB-629): add batchUpdateTaskModels to API mock in ListView tests 2026-03-31 18:25:19 -07:00
gsxdsm
bdf89ed830 feat(KB-629): complete Step 5 — add comprehensive tests for API client and ListView bulk selection 2026-03-31 18:21:00 -07:00
gsxdsm
a97103d6a6 feat(KB-629): complete Step 5 — add ListView bulk selection tests and fix dependency order 2026-03-31 18:19:05 -07:00
gsxdsm
7dd1f4cf2c feat(KB-629): complete Step 4 — add bulk edit toolbar with model dropdowns 2026-03-31 18:14:07 -07:00
gsxdsm
2b671bf433 feat(KB-629): complete Step 3 — add selection UI to list view 2026-03-31 18:12:07 -07:00
gsxdsm
c88daf9742 feat(KB-629): complete Step 2 — add batchUpdateTaskModels API client function 2026-03-31 18:10:14 -07:00
gsxdsm
cd601f121d feat(KB-629): complete Step 1 — add batch update API endpoint with tests 2026-03-31 18:09:16 -07:00
gsxdsm
c5165bc04d feat(KB-626): add mobile responsive styles for model dropdown
- Add media query for tablet screens (max-width: 768px) with 70vh max-height
- Add media query for mobile screens (max-width: 640px) with 60vh max-height
- Center dropdown horizontally using transform translateX
- Set responsive width with viewport calculation and min-width unset
2026-03-31 18:05:11 -07:00
gsxdsm
993656822a feat(KB-624): add settings export and import functionality
- Add core settings export/import module with comprehensive tests
- Add CLI commands: kb settings --export and kb settings --import
- Add dashboard API endpoints for settings export/import
- Add dashboard UI for exporting and importing settings in SettingsModal
- Add changeset for @gsxdsm/fusion package release
2026-03-31 18:04:48 -07:00
gsxdsm
fbedd0dd8b test(KB-627): add ModelSelectionModal tests and update QuickEntryBox tests for modal integration 2026-03-31 18:00:26 -07:00
gsxdsm
50d65c36b9 feat(KB-623): add mobile tab overflow scrolling for detail tabs
- Add horizontal overflow scrolling to .detail-tabs for mobile viewports
- Add -webkit-overflow-scrolling: touch for smooth momentum scrolling
- Hide scrollbars with scrollbar-width: none and ::-webkit-scrollbar
- Change .detail-tab from flex:1 to flex-shrink:0 to prevent tab compression
2026-03-31 17:52:01 -07:00
gsxdsm
fdbc6a15e8 feat(KB-627): Steps 1-2 — Create ModelSelectionModal and integrate with QuickEntryBox 2026-03-31 17:51:20 -07:00
gsxdsm
2b49b30aef feat(KB-608): complete integration testing and fix terminal race condition
- Add comprehensive TerminalModal tests covering initialization race condition
- Update SettingsModal tests for new behavior
- Fix terminal initialization race condition in TerminalModal
- Remove obsolete test files (board.test.ts, useToast.test.tsx, modelFilter.test.ts, agent-heartbeat.test.ts)
- Clean up old changeset files for resolved issues
- Add changeset for dashboard terminal fix
- Minor CLI command and store improvements
2026-03-31 17:50:16 -07:00
gsxdsm
c806236495 feat(KB-614): reduce CLI tool call logging noise
- Remove tool call logging from dashboard.ts CLI command
- Remove tool call logging from task.ts CLI command
- Add changeset documenting the reduced logging behavior
2026-03-31 17:47:45 -07:00
gsxdsm
38bb30de68 fix(KB-613): resolve status update race condition and fix stuck timeout units
- Add timestamp comparison logic in handleUpdated to prevent stale websocket data from overwriting newer task state
- Rename stuck timeout setting from minutes to milliseconds for finer control
- Add comprehensive tests for status update race condition scenarios
- Add changeset for status update race condition fix
2026-03-31 17:37:31 -07:00
gsxdsm
b77abd1c4b feat(KB-612): convert stuck task timeout from milliseconds to minutes
- Convert stuck task timeout input from milliseconds to minutes for better UX\n- Add changeset documenting the UX improvement\n- Update SettingsModal with minutes-to-ms conversion logic\n- Fix nav item count test to include Backups section\n- Update timeout tests for minutes input format
2026-03-31 17:34:11 -07:00
gsxdsm
0982ab74e3 fix(KB-602): harden file operations for database-backed storage
- Create task directories on-demand when file operations need them\n- Handle missing directories gracefully for writes (PROMPT.md, task.json, agent.log, attachments)\n- Handle missing files gracefully for reads (empty string returns)\n- Add comprehensive tests for storage resilience (161 new assertions)\n- Add changeset for the patch release
2026-03-31 17:30:36 -07:00
gsxdsm
789cc519da test(KB-606): add comprehensive test coverage across packages
- Add tests for core board logic (board.test.ts)
- Add tests for dashboard useToast hook (useToast.test.tsx)
- Add tests for dashboard model filter utility (modelFilter.test.ts)
- Add tests for agent heartbeat monitor (agent-heartbeat.test.ts)
2026-03-31 17:27:28 -07:00
gsxdsm
21d2649574 fix(KB-605): add CSS variables for agent badges and AgentListModal tests
- Add missing CSS variables for agent state badges in AgentListModal
- Add comprehensive test suite for AgentListModal component (754 lines)
- Include changeset documenting the CSS fix
2026-03-31 17:17:19 -07:00
gsxdsm
109bfb97b1 feat(KB-604): include task context in notifications with description fallback
- Add formatTaskIdentifier helper to format task references with title or description fallback
- Update notification messages to include task identifier context
- Show truncated description (200 chars) prefixed with task ID when no title
- Add comprehensive tests for formatTaskIdentifier function
- Add changeset for notification improvements and update AGENTS.md
2026-03-31 17:08:05 -07:00
gsxdsm
a75b743808 feat(KB-335): rename environment variables from KB_* to FUSION_*
- Rename all KB_* environment variables to FUSION_* prefix across CLI and dashboard
- Update CLI runtime files (native-patch.ts) and build configuration
- Update dashboard server, badge-pubsub, GitHub webhooks, and terminal service
- Update test files to use new FUSION_API_KEY and related env vars
- Update documentation in README, AGENTS.md, STANDALONE.md, and dashboard README
- Update changeset files with new environment variable names
2026-03-31 17:03:23 -07:00
gsxdsm
3f6dc342d7 feat(KB-603): improve task creation UX with draft persistence and save-to-create
- Change QuickEntryBox Save button to immediately create task instead of just saving
- Add draft persistence to InlineCreateCard via localStorage for recovery
- Add comprehensive tests for InlineCreateCard draft persistence
- Update QuickEntryBox tests for new save-and-create behavior
2026-03-31 17:02:11 -07:00
gsxdsm
44eb39819e fix(KB-601): fix atomicWriteTaskJson missing directory error
- Fix atomicWriteTaskJson to ensure parent directory exists before writing
- Add changeset for unpause missing directory fix
- Remove deprecated backup commands and related code
- Clean up unused settings fields and API routes
- Remove task comments and merge details components
- Update store tests to reflect directory fix behavior
2026-03-31 16:38:19 -07:00
gsxdsm
4211c20b31 fix(KB-338): wrap allocateId in configLock to prevent race condition
- Add configLock mutex protection around allocateId to prevent concurrent ID allocation race condition

- Create changeset documenting the race condition fix

- Update line counts in existing changeset files
2026-03-31 16:32:01 -07:00
gsxdsm
9a52b35783 feat(KB-331): rename package to @gsxdsm/fusion
- Rename package from @gsxdsm/kb to @gsxdsm/fusion in package.json and metadata
- Update all documentation references (README, RELEASING, STANDALONE, AGENTS.md)
- Update root workspace scripts for new package name
- Update changeset files to reference @gsxdsm/fusion and @fusion/dashboard
- Update CHANGELOG.md with new package name references
2026-03-31 16:31:18 -07:00
gsxdsm
39368ed080 feat(KB-331): update remaining package references to @gsxdsm/fusion 2026-03-31 16:16:02 -07:00
gsxdsm
5c42ff40e8 feat(KB-331): update package metadata to @gsxdsm/fusion 2026-03-31 16:09:27 -07:00
gsxdsm
f7eadc1e1b feat(KB-611): change groupOverlappingFiles default to true
- Update DEFAULT_PROJECT_SETTINGS groupOverlappingFiles from false to true
- Update SettingsModal form default to match
- Add changeset for the default behavior change
2026-03-31 15:48:09 -07:00
gsxdsm
88a638104d fix(KB-610): fix race condition in allocateId and ensure config row exists
- Fix race condition in allocateId and ensure config row exists for reliable settings save
- Add comprehensive settings save tests in store.test.ts and SettingsModal.test.tsx
- Add changeset documenting the settings save fix
- Remove backup functionality from core and CLI (backup.ts, backup.test.ts, backup command)
- Update AGENTS.md to remove obsolete backup documentation
2026-03-31 15:47:12 -07:00
gsxdsm
1608efa7a2 feat(KB-327): add automatic database backup system
- Add backup settings to ProjectSettings with schedule, retention, and directory config
- Create BackupManager with create, list, cleanup, and restore operations
- Add CLI backup commands: --create, --list, --restore, --cleanup
- Implement backup validation and automation sync for scheduled backups
- Add dashboard backup settings UI with stats and 'Backup Now' button
- Add backup API routes for settings management and manual operations
- Include comprehensive backup tests and changeset for patch release
- Document backup configuration and recovery in AGENTS.md
2026-03-31 15:40:25 -07:00
gsxdsm
a4f80a743d feat(KB-607): add filesystem validation for tasks in scheduler
- Add filesystem-level validation to ensure task directories exist before scheduling
- Implement validateTaskFilesystem() to check PROMPT.md and task.json integrity
- Add comprehensive test coverage with 217 new test lines for validation scenarios
- Create changeset for patch release documenting the fix
- Prevent scheduler errors by validating task filesystem state upfront
2026-03-31 15:09:28 -07:00
gsxdsm
90ebb0ac27 feat(KB-313): add task comments and merge details
- Add TaskComment and TaskCommentInput types to core
- Add MergeDetails type for tracking merge information
- Implement addTaskComment and list task comments in store
- Add comment API routes (/api/tasks/:id/comments)
- Add comment UI components in dashboard task modal
- Add CLI commands: kb task comment and kb task comments
- Include merge details display in task detail view
- Add tests for comment functionality
2026-03-31 14:44:48 -07:00
gsxdsm
ace0732a1d test(KB-601): add test for pause/unpause with missing directory 2026-03-31 14:43:55 -07:00
gsxdsm
a6acf8a5f4 feat(KB-318): add missing autoUpdatePrStatus and autoCreatePr settings fields
- Add autoUpdatePrStatus boolean field to ProjectSettings type
- Add autoCreatePr boolean field to ProjectSettings type
- Include changeset for patch version bump of @dustinbyrne/kb package
2026-03-31 14:32:17 -07:00
gsxdsm
f3a3f78b75 feat(KB-340): implement robust worktree recovery with retry logic
- Add retry logic with exponential backoff for worktree creation failures
- Implement health checks to detect and recover corrupted worktrees
- Add comprehensive test coverage for worktree recovery scenarios
- Improve error handling and logging for worktree operations
- Refactor executor worktree management for better resilience
2026-03-31 13:41:20 -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
6a182c22e8 feat(KB-312): complete Step 4 — clear workflow results on task retry 2026-03-31 13:13:56 -07:00
gsxdsm
a68e6607f4 feat(KB-312): complete Step 3 — fix column movement on workflow step failure 2026-03-31 13:11:33 -07:00
gsxdsm
b49ff46c97 fix(KB-325): add cwd parameter to git helper functions and pass rootDir in route handlers
- Add optional cwd parameter to all git helper functions (getGitHubRemotes, isGitRepo, getGitStatus, getGitCommits, getCommitDiff)
- Pass rootDir from request context to git commands in dashboard route handlers
- Ensure git operations execute in correct working directory for multi-worktree setups
- Fix execSync options to consistently use encoding and timeout with cwd
2026-03-31 13:10:04 -07:00
gsxdsm
543313c7d3 feat(KB-312): complete Step 1 — add workflowStepResults to updateTask 2026-03-31 13:07:44 -07:00
gsxdsm
1c788455ff feat(KB-310): migrate storage layer to SQLite with WAL mode and auto-migration
- Add SQLite database foundation with WAL mode, transactions, and JSON column helpers
- Implement auto-migration system from legacy file-based storage with .bak backup strategy
- Migrate TaskStore to SQLite with full test coverage (256 tests)
- Migrate AutomationStore to SQLite with full test coverage (48 tests)
- Add SQLite Storage Architecture documentation to AGENTS.md
- Include changeset for patch release
2026-03-31 13:04:34 -07:00
gsxdsm
9af06c81dc test(KB-323): add end-to-end verification test for steering comments injection
- Add comprehensive e2e test for steering comments injection in executor
- Verify system prompt steering comments are correctly injected
- Test covers executor initialization and prompt construction
2026-03-31 12:51:06 -07:00
gsxdsm
782412d1fd test(KB-316): add comprehensive test coverage for dashboard services
- Add file service tests (680 lines) covering file operations and error handling
- Extend GitHub polling service tests with GitHubPollingService coverage
- Extend rate-limit tests with additional boundary and edge cases
- Total of 1405 new test lines across 3 test files
2026-03-31 12:01:55 -07:00