Commit Graph

187 Commits

Author SHA1 Message Date
gsxdsm
52c12f6b23 fix(FN-728): fix token refresh endpoint, content-type, and client_id
- Fix refresh token request to use correct endpoint URL
- Set proper content-type header for token refresh requests
- Include client_id in refresh token payload
- Add tests verifying correct endpoint, content-type, and client_id in refresh flow
2026-04-02 19:11:07 -07:00
gsxdsm
0bcbc22dfe fix(FN-724): implement OAuth token refresh for expired Claude tokens
- Add token expiry detection with 60-second buffer before API calls
- Implement refresh_token grant flow against Anthropic OAuth endpoint
- Cache refreshed access tokens in-memory only (never written to disk)
- Retry token refresh on 401/403 responses before failing
- Add comprehensive tests for token refresh, expiry, and error scenarios
2026-04-02 18:54:44 -07:00
gsxdsm
f9363513c6 fix(FN-714): increase Claude provider timeout to 75s and improve error diagnostics
- Increase Claude fetch timeout from 10s to 75s to accommodate retries and CLI fallback
- Include response body snippet in HTTP error messages for better debugging
- Improve Claude CLI timeout error message with actionable guidance
- Export withTimeout and CLAUDE_FETCH_TIMEOUT_MS for testability
- Add comprehensive tests for withTimeout, timeout constant, and error diagnostics
2026-04-02 18:40:24 -07:00
gsxdsm
1f8465342c fix(FN-000): scope dashboard project flows 2026-04-02 17:51:04 -07:00
gsxdsm
cba40636da fix(FN-708): remove unused multi-project UI code and usage-limit references
- Remove DirectoryPicker component and its tests (unused multi-project UI)
- Simplify SetupWizardModal by removing directory picker integration
- Remove unused multi-project API endpoints, SSE handlers, and route definitions
- Clean up usage-limit detector and related engine references (executor, scheduler, triage)
- Fix 6 merge conflicts in usage.test.ts and update tests for simplified usage tracking
2026-04-02 13:31:43 -07:00
gsxdsm
6b0ee4969f feat(FN-694): add DirectoryPicker component and redesign SetupWizardModal
- Add browse-directory API endpoint and client for native folder selection
- Create DirectoryPicker component with manual input, browse button, and validation
- Redesign SetupWizardModal to use DirectoryPicker for project path selection
- Add comprehensive tests for DirectoryPicker and SetupWizardModal
- Remove bundled fusion skill and related extension/sync code from CLI package
2026-04-02 13:30:08 -07:00
gsxdsm
e6dc02354b fix(FN-703): fix overly broad usage limit pattern and add transient error retry
- Narrow 'insufficient' usage-limit regex to require quota/credit/balance/fund context
- Add transient error detection in executor and triage to retry instead of failing
- Improve scheduler pause/resume logging with actionable messages and resume confirmation
- Add SSE active connection counter for observability
- Add duplicate usage-limit pause suppression logging
2026-04-02 13:29:48 -07:00
gsxdsm
92071e4c45 fix(FN-704): increase Claude CLI timeout to 60 seconds
- Increase Claude CLI usage fetch timeout from 30s to 60s
- Improve timeout error message with actionable context
2026-04-02 13:24:22 -07:00
gsxdsm
dcf18c32ee fix(FN-696): compute task counts from task store in health endpoint
- Compute live activeTaskCount, inFlightAgentCount, and totalTasksCompleted from the task store when the requested project matches the current dashboard
- Fall through to cached central DB health data for remote projects
- Add project existence check before health lookup, returning proper 404s
- Remove unused CSS styles (20 lines deleted from styles.css)
2026-04-02 13:19:24 -07:00
gsxdsm
bafd9499ca feat(FN-684): complete Step 5 — add /api/executor/stats endpoint 2026-04-02 10:43:47 -07:00
gsxdsm
f779d8285e fix(FN-679): use merge-base diff in modal changes tab
- Updated /tasks/:id/diff endpoint to use merge-base comparison
- Changed from HEAD~1..HEAD to ...HEAD syntax
- Added fallback to HEAD when merge-base fails
- Verified fix matches /tasks/:id/file-diffs endpoint pattern
2026-04-02 10:25:57 -07:00
gsxdsm
dda3a569ad feat(KB-643): add Dashboard Scripts UI feature
- Add scripts field to ProjectSettings type for custom dashboard scripts
- Update ScriptsModal with improved UI for script management
- Add QuickScriptsDropdown component for quick script access
- Implement scripts API routes for CRUD operations
- Update CLI with multi-project commands (project add/remove/list/show/set-default/detect)
- Various UI improvements and bug fixes across dashboard components
- Migration support for multi-project architecture
2026-04-02 09:31:57 -07:00
gsxdsm
7631c79c26 chore: resolve merge conflicts 2026-04-02 09:29:31 -07:00
gsxdsm
182fa8eeb2 feat(FN-675): align session-files endpoint with diff endpoint
- Add git diff for session-files using baseCommitSha with double-dot syntax
- Add merge-base fallback to find common ancestor when baseCommitSha is missing
- Add HEAD~1 fallback when merge-base fails (e.g., no remote main)
- Add 10-second in-memory cache for session-files computation
- Fix scheduler to immediately schedule tasks created via dashboard
- Add task:moved to done handler for immediate scheduling on status change
- Add comprehensive unit tests for scheduler immediate scheduling
- Add unit tests for session-files caching and base ref resolution
2026-04-02 09:22:50 -07:00
gsxdsm
18a2b3ec32 feat(KB-620): complete Step 7 — Migration and first-run experience
- Add fn init command for initializing new kb projects
- Add auto-migration check at CLI startup
- Add /api/setup-state and /api/complete-setup dashboard endpoints
- Add SetupState and CompleteSetupInput types to dashboard API
- Add migration and rollback documentation to AGENTS.md
- Create changeset for multi-project migration feature
2026-04-02 09:18:45 -07:00
gsxdsm
2c48ce0852 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
dd2c16bc58 refactor: improve mocking for GitHubClient and enhance SIGINT handling in tests 2026-04-01 22:55:16 -07:00
gsxdsm
d14697e33d 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
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
7f5905c9cb feat(FN-669): complete Step 2 — update /api/models endpoint to return favoriteModels 2026-04-01 22:18:38 -07:00
gsxdsm
5b8f83d966 feat(KB-662): add visibility-based refresh to dashboard hooks 2026-04-01 21:57:23 -07:00
gsxdsm
fa90b69f2f feat(KB-662): complete Step 2 — add visibility refresh tests for useProjects 2026-04-01 21:36:22 -07:00
gsxdsm
7fd5704a80 Removed unwanted files marked in .gitignore 2026-04-01 21:25:08 -07:00
gsxdsm
84a048e6c5 feat(KB-651): add task file diffs API
- Add API endpoint to fetch git diffs for tasks in review
- Implement file diff routes with support for changed files view
- Add comprehensive test suite for file diffs endpoint
- Update dashboard API client for diff fetching capabilities
2026-04-01 17:28:21 -07:00
gsxdsm
cd165f0bd3 feat(KB-502): implement dashboard multi-project UX
- Add project selector, health badge, and overview components to dashboard
- Add multi-project API functions (api.ts) for cross-project operations
- Update App.tsx with project context and navigation improvements
- Add script-store.ts for centralized project script management
- Extend types with multi-project support: SetupState, MigrationOptions, etc.
- Add project runtime fields: baseCommitSha, modifiedFiles, missionId, sliceId
- Add setupComplete to global settings for first-run wizard tracking
- Add project-level settings: scripts, setupScript, ntfyDashboardHost
- Add backward-compatible addSteeringComment method to TaskStore
2026-04-01 16:41:11 -07:00
gsxdsm
db18a5af6d feat(KB-641): merge kb/kb-641 (auto-resolved)
- feat(KB-641): complete Step 5 — add changeset
- feat(KB-641): complete Step 2 — update terminal route errors
2026-04-01 15:25:08 -07:00
gsxdsm
07adb42d64 feat(KB-503): merge kb/kb-503
- feat(KB-503): complete Step 5 other command project support
- fix(KB-503): align task resolution with shared project context
- fix(KB-503): preserve local task command fallback
- test(KB-503): complete Step 4 task command coverage
- test(KB-503): harden Step 3 CLI parser coverage
- fix(KB-503): keep settings set scope explicit
- fix(KB-503): allow implicit project resolution for project settings
- fix(KB-503): enforce explicit settings scope rules
- fix(KB-503): restore shared settings resolution behavior
- fix(KB-503): align settings scope and project flag behavior
- feat(KB-503): complete Step 5 — add project-aware settings, git, and backup behavior
- fix(KB-503): enforce settings scope for global and project modes
- fix(KB-503): preserve project-scoped settings and cwd-aware git helpers
- fix(KB-503): add scoped settings behavior and git project tests
- feat(KB-503): complete Step 5 — add project-aware git and backup coverage
- test(KB-503): cover remaining project-aware task command paths
- fix(KB-503): use shared resolution flow for all task commands
- fix(KB-503): restore legacy task fallback and correct task mocks
- fix(KB-503): align task resolution order and kb storage paths
- fix(KB-503): restore local task store fallback without project flag
- test(KB-503): cover remaining project-aware task handlers
- fix(KB-503): preserve branch naming and avoid duplicate log resolution
- test(KB-503): expand project-aware task command coverage
- fix(KB-503): restore cwd fallback for path-based task commands
- fix(KB-503): add project-aware task output and tests
- fix(KB-503): harden project command output and coverage
- fix(KB-503): preserve legacy task resolution without project flag
- test(KB-503): add bin routing coverage for project flag parsing
- feat(KB-503): complete Step 3 — CLI argument parsing updates
- fix(KB-503): add defaultProjectId to GlobalSettings type and fix TypeScript errors
- test(KB-503): fix resolveProject mock in task tests for runTaskLogs follow mode
- docs(KB-503): add multi-project CLI documentation and changeset
- test(KB-503): add project-context mock to task tests
- test(KB-503): update git tests for new cwd parameter
- feat(KB-503): Step 3 — CLI argument parsing updates with --project flag support
- feat(KB-503): Steps 1-2 — project context utilities and project subcommands
2026-04-01 15:06:58 -07:00
gsxdsm
c6acedb432 feat(KB-617): add task diff Changes tab and backend support
- Add core task fields for base commit and modified files to support diff computation
- Implement dashboard and API wiring for task changes, including Task Detail Changes tab integration
- Update executor flow to capture modified files during execution for accurate diff display
- Add tests and changeset covering the diff viewer feature
2026-04-01 15:04:30 -07:00
gsxdsm
a51a84db8d feat(KB-648): enable parallel test execution across packages
- Optimize backup tests with fake timers and deterministic timestamps
- Enable Vitest fileParallelism in core, engine, cli, and dashboard packages
- Fix SettingsModal scope initialization regression covered by merge resolution
- Update affected dashboard and engine tests for the new parallel-friendly behavior
- Add a changeset and document test optimization patterns in AGENTS.md
2026-04-01 15:00:07 -07:00
gsxdsm
3edd6ab1aa feat(KB-651): add changed files diff viewer
- Add task file diff API support with cached changed-file snapshots and robust diff generation for added, deleted, modified, and renamed files
- Integrate the dashboard changed files viewer into task flows without reintroducing removed board project context UI
- Expand route coverage for project-aware task listing and changed-file diff behavior, including rename diff regression cases
- Include the published package changeset for the new changed files diff viewer feature
2026-04-01 14:38:18 -07:00
gsxdsm
0529048fa6 test(KB-636): expand mission integration coverage
- Add deeper MissionStore integration tests for hierarchy integrity, rollups, reorders, and task link cleanup
- Extend mission API end-to-end coverage for feature patching, validation, and cascade scenarios
- Fix TaskStore task upsert placeholders to preserve mission slice linking fields after merge resolution
- Tidy mission CLI help text and include the published package changeset for the missions launch
2026-04-01 14:30:04 -07:00
gsxdsm
98a0e41db3 feat(KB-620): add multi-project first-run migration flow
- Add first-run migration detection and registration helpers for central project setup
- Wire CLI and dashboard setup routes to auto-migrate existing projects and complete setup
- Harden path resolution, overlap checks, and backward-compat project selection behavior
- Add regression tests for migration, nested project detection, and single-project compatibility
2026-04-01 14:18:57 -07:00
gsxdsm
e5b1644ba2 feat(KB-643): add dashboard scripts management and execution
- Add project settings support and dashboard API helpers for custom scripts
- Add scripts CRUD and run routes backed by terminal sessions with validation and duplicate checks
- Add Scripts modal and header integration for managing and launching project scripts
- Add regression coverage for scripts routes and API client helpers
2026-04-01 13:52:18 -07:00
gsxdsm
1b3729a70b feat(FN-670): enforce merge build verification and activity feed fallback
- Add activity feed fallback to the local project log when central activity is empty or unavailable
- Pass configured build commands into executor and merger prompts with hard-gate instructions
- Add merger build-failure reporting via report_build_failure and stop commits when verification fails
- Expand engine and dashboard regression coverage for activity feed fallback and merge build verification
2026-04-01 13:24:57 -07:00
gsxdsm
0da3fea13c feat(FN-671): preserve quick entry disclosure and normalize comment migration
- Keep QuickEntryBox disclosure state persisted and covered by updated UI tests
- Add normalized legacy comment migration logic to unify steering comments without duplication
- Update database migration tests to verify schema v5 comment handling behavior
- Carry merged dashboard, engine, and routing changes into the squash commit
2026-04-01 13:07:26 -07:00
gsxdsm
1ccaf34d9b fix(FN-673): harden dashboard task resync and Claude usage handling
- resync dashboard tasks after stream reconnects and when the tab becomes visible again
- add regression coverage for stale board recovery and usage-fetch edge cases
- replace direct Claude usage API calls with the CLI-based usage command
- document the dashboard resync safeguards and include a published package changeset
2026-04-01 13:01:52 -07:00
gsxdsm
6478fe1365 feat(FN-676): fix mission route typing and add regression coverage
- Tighten mission route status validation with generic typing to preserve exact status unions
- Expand mission API end-to-end coverage for feature patching, invalid statuses, and task unlink support in the mock store
- Point dashboard Vitest core alias at the package index so mission route tests resolve the full mission store API
- Add a changeset for the sticky New Task modal action button position fix
2026-04-01 12:44:48 -07:00
gsxdsm
4998b8db78 feat(FN-698): add per-project fallback for /api/activity-feed route
- Add dual-source fallback: try CentralCore first, fall back to store.getActivityLog()
- Adapt per-project ActivityLogEntry[] to ActivityFeedEntry[] format with projectId="local"
- Handle CentralCore init failures gracefully without returning 500
- Add comprehensive tests covering central data, empty state, init failure, and query params
- Add JSDoc documenting the fallback strategy and data source priority
2026-04-01 09:41:48 -07:00
gsxdsm
0cacd85e2f fix(FN-696): replace Claude HTTPS API calls with CLI subprocess for usage fetching
- Replace direct HTTPS requests to api.anthropic.com with `claude usage --json` CLI subprocess call, eliminating 429 rate-limit errors
- Remove retry/backoff logic (_sleep, CLAUDE_MAX_RETRIES, exponential delay) that is no longer needed
- Add specific error handling for CLI-not-found (ENOENT) and timeout scenarios
- Update tests to use setupClaudeMocks helper that handles both keychain and CLI mocking
- Add changeset for the patch fix
2026-04-01 09:37:43 -07:00
gsxdsm
805e15eb8a fix(FN-690): fix migration schema, dashboard type guards, and test stability
- Fix SQL parameter mismatch in db-migrate task INSERT (add baseCommitSha, modifiedFiles, sliceId columns)
- Fix dashboard routes type predicate to guard against null entries from git diff parsing
- Stabilize central-core activity cleanup test with fake timers
- Align executor test assertions with updated steering comment log messages
- Align store test comment log assertion with new action/outcome format
2026-04-01 09:19:50 -07:00
gsxdsm
da4fc74e71 feat(FN-675): align session-files endpoint with diff endpoint
- Align session-files API endpoint behavior and response structure with diff endpoint

- Add comprehensive test suite for session-files routes (241 lines)

- Update route handlers to match diff endpoint patterns and file counting

- Include changeset for the file count alignment fix
2026-04-01 08:30:46 -07:00
gsxdsm
1fd4dc372a feat(KB-651): add changed files diff viewer to dashboard
- Add backend API endpoint /api/tasks/:id/diff for file diffs
- Add useChangedFiles hook for fetching and managing diff state
- Create ChangedFilesModal component with file list and diff viewer
- Integrate modal with TaskCard via files changed badge click
- Add CSS styling for changed files layout and diff display
- Add keyboard navigation (Escape to close)
- Include unit tests for ChangedFilesModal component
2026-04-01 08:26:46 -07:00
gsxdsm
a7354946cd feat(KB-504): add migration and first-run experience for multi-project support
- Add MigrationOrchestrator with filesystem scanning and auto-registration

- Add FirstRunExperience with setup wizard state management

- CLI integration with automatic migration hook on first run

- Backward-compatible single-project mode support

- \"--project\" flag support for CLI multi-project targeting

- KB_SKIP_MIGRATION environment variable for recovery

- Graceful fallback when central database unavailable

- New fn init command to initialize kb projects

- Interactive first-run setup wizard API in dashboard
2026-04-01 08:17:30 -07:00
gsxdsm
cab119e9dd feat(KB-643): add project scripts management to dashboard
- Add scripts field to ProjectSettings type for storing custom scripts\n- Add API endpoints for scripts CRUD operations and execution\n- Add client-side API functions for script management\n- Create ScriptsModal component for managing and running scripts\n- Integrate Scripts modal into dashboard header\n- Add comprehensive tests for ScriptsModal component\n- Include changeset documenting the new dashboard scripts UI feature\n- Fix duplicate terminalInitialCommand declaration
2026-04-01 08:06:03 -07:00
gsxdsm
6009ebaf06 feat(KB-636): add Missions system for large-scale project planning
- Fix TaskStore sliceId persistence and bidirectional linking between tasks and features
- Add comprehensive mission integration tests for hierarchy, status rollup, and events
- Enhance E2E tests with reorder, cascade delete, and error handling coverage
- Add scheduler integration tests for mission slice activation
- Fix duplicate mission commands in CLI help text
- Add changeset for missions launch
2026-04-01 08:04:51 -07:00
gsxdsm
df63396830 feat(KB-502): add dashboard multi-project UX with overview, drill-down, and setup wizard
- Add Project Overview page with responsive grid and health metrics

- Add Project selector dropdown for quick context switching

- Add Project drill-down with back navigation to overview

- Add Setup wizard with auto-detection and manual entry flows

- Add Global activity feed with project attribution badges

- Add Project health polling (active tasks, agents, completion counts)

- Add Empty states and loading skeletons for better UX

- Add Keyboard navigation support (arrow keys, enter, escape)

- Add LocalStorage persistence for wizard state and view preferences
2026-04-01 08:04:02 -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
b9584da06c feat(FN-674): add multi-project dashboard support
- Add Project Overview page with responsive grid and health status cards
- Add Project Selector dropdown in header for quick context switching
- Add project drill-down navigation with task board/list views
- Add Setup Wizard components for first-run project registration
- Add global activity feed with project attribution and filtering
- Add project-aware task fetching to backend API
- Add project health polling and status badges
- Update ActivityLogModal with project filter and useActivityLog hook
2026-04-01 07:27:29 -07:00
gsxdsm
590df1185f feat(KB-620): add multi-project migration and first-run experience
- Add FirstRunDetector for fresh-install and migration state detection
- Implement MigrationOrchestrator for auto-registering existing projects
- Create BackwardCompat layer to maintain single-project CLI workflows
- Add fn init command for manual project registration
- Add dashboard first-run wizard API endpoints (/api/setup-state, /api/complete-setup)
- Add runtimeLog, ipcLog, projectManagerLog, hybridExecutorLog to engine logger
- Include changeset documenting migration features and rollback procedure
2026-04-01 07:19:44 -07:00
gsxdsm
247e68d6f8 feat(KB-641): improve terminal session handling and multi-project UX
- Update terminal session result flow for better async handling
- Enhance QuickEntryBox and InlineCreateCard with improved UX
- Refactor CLI project commands with better multi-project support
- Update terminal service tests for new result flow patterns
- Add changeset documentation for tracking changes
- Clean up legacy multi-project migration components
- Improve project detection and settings management
2026-04-01 07:11:13 -07:00