Commit Graph

1374 Commits

Author SHA1 Message Date
gsxdsm
584b793811 fix(FN-668): add macOS keychain support for Claude credentials
- Implement readClaudeKeychainCredentials() to read from macOS keychain\n- Add fallback to keychain when legacy credential files don't exist\n- Add tests for keychain credential reading success and failure paths\n- Create changeset for usage dropdown credential detection fix
2026-03-31 23:29:05 -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
07e471db5c feat(KB-648): enable parallel test execution and optimize test performance
- Enable parallel file execution in vitest configs for core, engine, CLI, and dashboard packages
- Optimize backup tests with fake timers for faster, deterministic execution
- Fix SettingsModal temporal dead zone by moving declaration before useCallback
- Fix engine tests with missing git branch delete mock and correct branch names
- Fix git worktree list mock and mission store mock in CLI tests
- Add changeset documenting test optimization patterns
- Update AGENTS.md with test optimization best practices
2026-03-31 23:19:52 -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
fc37015f79 feat(FN-666): implement retry logic with exponential backoff for Claude usage API
- Add retry logic with exponential backoff to fetchClaudeUsage()

- Add unit tests for retry behavior with mocked fetch

- Add inline documentation explaining retry behavior

- Handle transient network failures and 5xx errors gracefully
2026-03-31 22:58:53 -07:00
gsxdsm
4ff25d800e feat(KB-617): add Changes tab to task detail modal for viewing file diffs
- Add baseCommitSha field to tasks for diff computation baseline
- Track modified files in executor and store in database
- Add /api/tasks/:id/diff endpoint to serve unified diffs
- Add getTaskDiff() API client function in dashboard
- Create TaskChangesTab component with file list and diff viewer
- Integrate Changes tab into TaskDetailModal with proper styling
- Add changeset for the new diff viewer feature
2026-03-31 22:58:38 -07:00
gsxdsm
d42ee113f8 feat(KB-648): optimize test execution speed across all packages
- Enable parallel file execution in core, engine, CLI, and dashboard packages via vitest.config.ts

- Optimize backup tests using fake timers instead of real setTimeout delays

- Add test optimization patterns to AGENTS.md documentation (fake timers, parallel execution)

- Add changeset documenting the test speed improvements

- Include test fixes for SettingsModal, engine tests, and git worktree mocks from KB-637
2026-03-31 22:52:55 -07:00
gsxdsm
10829e41d9 feat(KB-618): add multi-project dashboard support
- Add project API methods and types for multi-project support
- Add server-side project management routes for multi-project support
- Update test coverage for dashboard API and routes
2026-03-31 22:45:55 -07:00
gsxdsm
4a3fe64758 fix(KB-503): remove duplicate getDefaultProject function
- Import getDefaultProject from project-context.js instead of duplicating
- Remove local getDefaultProject implementation in project.ts
- All 6 tests still passing
2026-03-31 22:43:59 -07:00
gsxdsm
15e451cd74 fix(KB-637): test fixes and code cleanup
- Fix executor test worktree recovery assertions to use exact command matching
- Fix routes.test.ts mission store mock and git worktree list mock
- Fix SettingsModal temporal dead zone by moving activeSectionScope declaration
- Remove incomplete project-context feature from CLI
- Clean up AGENTS.md and README documentation
2026-03-31 22:41:38 -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
31a7a7ceea feat(KB-337): execute KB-335 — rename environment variables KB_* to FUSION_* 2026-03-31 20:01:54 -07:00
gsxdsm
57f34d1937 feat(KB-336): rename data directory from .kb to .fusion
- Rename data directory from .kb to .fusion across core, CLI, dashboard, and engine
- Update all path references in source files, tests, and CLI output
- Remove deprecated central-core infrastructure (central-core, central-db, central-integration)
- Remove obsolete test files (PlanningModeModal.test.tsx, ScheduleForm.test.tsx)
- Add changeset for the directory rename breaking change
2026-03-31 20:00:25 -07:00
gsxdsm
e8e5b6c854 feat(KB-640): add role editing UI and restore KB task prefix
- Add inline role editing to AgentListModal with clickable role icons
- Add handleRoleChange and handleRoleKeyDown handlers for role updates
- Persist view toggle (board/list) with localStorage alongside role editing
- Restore task prefix from FN back to KB for generated task IDs
- Restore branch naming from fusion/ back to kb/ for task branches
- Update branch name references in executor, merger, scheduler, and CLI
- Add touch gesture detection support to TaskCard component
- Update worktree grouping labels to use KB prefix
2026-03-31 19:44:36 -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
9490792afd feat(KB-621): add AI title summarization feature
- Add core AI summarization service with model selection hierarchy
- Modify task store to support title generation callback pattern
- Add POST /api/ai/summarize-title endpoint with rate limiting
- Wire up summarization in dashboard task creation flow
- Add AI Summarization settings UI section in dashboard
- Add comprehensive tests for summarization service and API
- Document auto-summarization settings in AGENTS.md
2026-03-31 18:59:02 -07:00
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
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
0867490c01 fix(KB-629): add Task type import and fix type error in batch update 2026-03-31 18:26:49 -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
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
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
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
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
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
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
gsxdsm
30b3f11450 test(KB-301): fix server.test.ts — update error response assertion to match implementation 2026-03-31 11:22:38 -07:00
gsxdsm
d948b2a57c test(KB-301): fix routes.test.ts — update retry count expectation and git error response format 2026-03-31 11:22:20 -07:00
gsxdsm
00d4a71d17 test(KB-301): fix ai-refine.test.ts — mock @kb/engine to prevent dynamic import timeout 2026-03-31 11:21:13 -07:00
gsxdsm
29674fcf95 feat(KB-268): add workflow step templates
- Define 5 built-in workflow step templates (Documentation Review, QA Check, Security Audit, Performance Review, Accessibility Check)
- Add API endpoints GET /api/workflow-step-templates and POST /api/workflow-step-templates/:id/create
- Add templates tab to Workflow Step Manager with one-click add functionality
- Include high-quality agent prompts for each template category
- Add changeset for the new feature
2026-03-31 06:10:14 -07:00
gsxdsm
3f828553e6 feat(KB-262): add Pull Requests tab to GitHub Import modal
- Add listPullRequests and getPullRequest methods to GitHubClient
- Add /github/pulls/fetch and /github/pulls/import API endpoints
- Add apiFetchGitHubPulls and apiImportGitHubPull frontend API functions
- Add tabbed UI for Issues and Pull Requests in GitHubImportModal
- Add comprehensive PR tab tests (14 new tests)
- Include changeset for the new PR tab feature
2026-03-31 06:03:45 -07:00
gsxdsm
0e95ba359c feat(KB-247): add subtask breakdown dialog for AI-assisted task creation
- Add backend subtask breakdown session management and API endpoints
- Create SubtaskBreakdownModal component for generating AI-suggested subtasks
- Integrate subtask breakdown into QuickEntryBox and NewTaskModal flows
- Add frontend API client functions for breakdown sessions and subtask creation
- Add tests for SubtaskBreakdownModal and backend routes
- Create changeset documenting the subtask breakdown feature
2026-03-31 05:48:30 -07:00
gsxdsm
7569af8a93 feat(KB-229): add multi-step scheduled tasks
- Add Step types to core data model (command, validation, approval steps)
- Update AutomationStore CRUD operations for step management
- Refactor CronRunner for sequential step execution with per-step config
- Add Dashboard API routes for step CRUD and step-aware schedule updates
- Create ScheduleStepsEditor component for visual step configuration
- Add StepTypeBadge component for step type visualization
- Update ScheduleCard and ScheduleForm to display and manage steps
- Add comprehensive test coverage for stores, runner, and components
- Add changeset for patch release
2026-03-31 05:14:30 -07:00
gsxdsm
62f87947f6 feat(KB-225): add AI text refinement feature to dashboard
- Add AI text refinement backend service with OpenAI/Anthropic integration
- Add /api/refine-text API endpoint with error handling
- Add QuickEntryBox AI refine button with style presets menu
- Add NewTaskModal AI refine feature for task description editing
- Add comprehensive tests for backend service, API, and components
- Add changeset for the new feature
2026-03-31 04:20:37 -07:00
gsxdsm
23964bf0c0 feat(KB-218): add workflow steps for post-implementation review
- Add core data model for workflow step definitions with AI-assisted prompt refinement
- Create API routes for CRUD operations and prompt refinement via /api/workflow-steps
- Add WorkflowStepManager dashboard UI for defining and managing workflow steps
- Integrate workflow step selection into NewTaskModal for per-task enablement
- Execute workflow steps sequentially in executor after task_done() with readonly tools
- Run workflow step agents before moving tasks to in-review, failing on step errors
- Add comprehensive tests for store, API routes, components, and executor integration
2026-03-31 03:55:01 -07:00
gsxdsm
ab12b30751 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
dac4705761 feat(KB-185): add global/project settings hierarchy with scope-aware UI
- Add GlobalSettingsStore with file-based storage in ~/.pi/kb/settings.json
- Implement two-tier hierarchy: global (user prefs) and project (.kb/config.json)
- Update TaskStore to merge settings with project overriding global
- Add API endpoints: GET/PUT /api/settings/global and GET /api/settings/scopes
- Add scope indicators (🌐 global, 📁 project) to settings modal sidebar
- Implement scope-aware save: only save active scope, reject global-only fields
- Add frontend API functions for global settings operations
- Add tests for GlobalSettingsStore, settings routes, and SettingsModal scopes
- Create changeset for the new settings hierarchy feature
- Update AGENTS.md with settings hierarchy documentation
2026-03-31 03:12:33 -07:00
gsxdsm
dfe5601622 feat(KB-184): add model presets for task creation
- Add model preset types and settings fields with API validation
- Create model preset utility helpers for size-based auto-selection
- Add settings UI for managing model presets (create, edit, delete)
- Integrate preset selection into NewTaskModal with custom override option
- Add inline preset selection to InlineCreateCard component
- Persist modelPresetId in task store and preserve through archive/unarchive
- Add changeset and update AGENTS.md with feature documentation
2026-03-31 02:04:45 -07:00
gsxdsm
501dc588db feat(KB-266): overhaul GitManagerModal with new architecture and API
- Completely rewrite GitManagerModal with modern React architecture
- Add comprehensive CSS styling for git operations UI
- Implement new API endpoints for git management operations
- Add server-side routes for git command handling
- Fix shell injection vulnerability in git command execution
- Update tests with complete API mocking coverage
- Add changeset documenting the overhaul
2026-03-31 02:00:53 -07:00
gsxdsm
a021b36360 feat(KB-180): add planning route diagnostics and harden JSON error handling
- Add API diagnostics to planning routes for better debugging
- Harden API JSON error handling with improved validation
- Add comprehensive tests for planning route JSON responses
- Update server routes and API layer for robustness
2026-03-31 01:38:43 -07:00
gsxdsm
f2c00ad147 feat(KB-175): move file browser to header with workspace support
- Add workspace file APIs and hooks for session-scoped file browsing
- Create WorkspaceSelector component for switching between workspaces
- Update FileBrowserModal with workspace mode and improved UX
- Add files button to header with workspace-aware file browsing
- Add session files indicator to task cards for quick file access
- Include comprehensive tests for all new components and hooks
2026-03-31 01:26:57 -07:00
gsxdsm
f2f2062dfb feat(KB-142): fix CLI native module packaging with lazy loading
- Implement lazy native module loading with graceful degradation for standalone CLI

- Align release workflows with executable payload structure

- Update macOS signing script for single-executable bundles

- Add documentation for standalone CLI packaging (STANDALONE.md)

- Create changeset for patch release
2026-03-30 23:56:01 -07:00
gsxdsm
af1347861e fix(KB-140): fix standalone CLI native asset packaging for terminal support
- Stage node-pty native assets (pty.node, spawn-helper) alongside compiled binary

- Add runtime native-patch.ts to resolve native assets in Bun-compiled binaries

- Fix eager native module loading crash for non-terminal commands

- Enable terminal functionality in isolated standalone deployments

- Update release workflows and add STANDALONE.md documentation
2026-03-30 23:32:30 -07:00
gsxdsm
7e594b395e feat(KB-251): complete Step 1 — core types and store updates for AI title generation 2026-03-30 23:28:48 -07:00
gsxdsm
a07d83d615 feat(KB-238): remove "Using" prefix from pace indicator messages
- Remove "Using " prefix from pace calculation messages in usage.ts

- Update message format from "Using X% over/under pace" to "X% over/under pace"

- Update all UsageIndicator tests to match new message format

- Add changeset for patch release of @dustinbyrne/kb
2026-03-30 19:16:48 -07:00
gsxdsm
518de3970c feat(KB-227): allow viewing binary files as read-only in file browser
- Remove binary file restrictions from file service backend

- Add visual read-only indicator for binary files in FileBrowserModal

- Add CSS styles for binary file indicators

- Update tests to expect binary files to be readable
2026-03-30 18:55:57 -07:00
gsxdsm
bae36b54a0 fix(KB-130): complete Step 1 — repair settings API/load contract
- Strip server-owned fields (githubTokenConfigured) from PUT /settings request
- Add tests for GET /settings and PUT /settings endpoints
- Add tests for fetchSettings and updateSettings in api.ts
2026-03-30 18:43:34 -07:00
gsxdsm
876543e9d9 feat(KB-086): complete Step 4 — add activity log API endpoints 2026-03-30 18:30:12 -07:00