Commit Graph

757 Commits

Author SHA1 Message Date
gsxdsm
72ab0acdba fix(FN-676): expand section headers to full table width
- Fix section header colSpan to span entire table width (matching column count)
- Add test verifying colSpan attribute matches visible column count
- Refactor ScriptsModal for improved structure and maintainability
- Remove unused routes.ts entries (consolidated to API.ts)
- Remove unused terminal-service.ts functionality
2026-04-02 09:32:34 -07:00
gsxdsm
890c413b5a 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
5c43918425 feat(FN-673): add dashboard reconnect resync and model settings split
- Resync tasks after SSE stream reconnect with debounced visibility refresh
- Split Model settings into Default Model and Execution Model sections
- Add planning and validator model dropdowns in Execution Model section
- Remove beta header and add retry logic for Claude usage
- Add comprehensive tests for 429 rate limiting and retry behavior
- Add CLI fallback for Claude usage when OAuth API is rate limited
2026-04-02 09:31:24 -07:00
gsxdsm
6fd1fa3c2f chore: resolve merge conflicts 2026-04-02 09:29:31 -07:00
gsxdsm
ecabeac947 feat(KB-656): add autoExpand prop to QuickEntryBox
- Add autoExpand prop to QuickEntryBox (defaults to true for backward compatibility)
- When autoExpand is true, component auto-expands on focus
- List view passes autoExpand={false} to keep view collapsed by default
- Board view continues to auto-expand using default behavior
- Add tests for both autoExpand modes and verify focus behavior
2026-04-02 09:20:37 -07:00
gsxdsm
52b5fb7e0e test(FN-673): update SettingsModal tests for section split 2026-04-02 09:19:51 -07:00
gsxdsm
b05fbb7ecb feat(FN-671): complete mobile header layout and QuickEntryBox improvements
- Add project selector component with search and dropdown UI
- Add Task Changes tab styles for viewing diffs in task detail
- Implement QuickEntryBox disclosure pattern with collapsible controls panel
- Move Usage and Activity Log buttons to mobile overflow menu
- Add disclosure preference persistence via localStorage
- Complete legacy comment migration for unified comments system
- Update QuickEntryBox tests for disclosure behavior
2026-04-02 09:18:16 -07:00
gsxdsm
f8a4e0073c fix(FN-673): split Model settings into Default Model and Execution Model sections 2026-04-02 09:13:57 -07:00
gsxdsm
566f531361 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
e24250b399 feat(FN-673): fix planning/validator model settings save/restore
- Removed duplicate activeSectionScope declaration (lines 83 and 171)
- Modified handleSave to always save both global and project settings
- Backend now filters appropriately (updateSettings ignores global keys, updateGlobalSettings ignores project keys)
- This fixes planningProvider, planningModelId, validatorProvider, and validatorModelId not persisting when saved from the Model section
2026-04-01 22:56:18 -07:00
gsxdsm
dc442cf391 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
04b194982d 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
3ecc64a62d fix(FN-669): fix failing tests for model favorites 2026-04-01 22:33:19 -07:00
gsxdsm
0c532b23f8 feat(FN-669): complete Step 8 — add and update tests for model favorites 2026-04-01 22:30:51 -07:00
gsxdsm
b2b81e76b8 feat(FN-669): complete Step 6 — pass model favorites props to CustomModelDropdown 2026-04-01 22:25:58 -07:00
gsxdsm
f7b85afb85 feat(FN-669): complete Step 5 — manage model favorites in ModelSelectorTab 2026-04-01 22:24:23 -07:00
gsxdsm
e8daccefdc feat(FN-669): complete Step 4 — add model favorites support to CustomModelDropdown 2026-04-01 22:23:08 -07:00
gsxdsm
64295637f2 feat: enhance dashboard styling and functionality for task changes and package extensions 2026-04-01 22:06:12 -07:00
gsxdsm
74b7301b28 feat(KB-662): add visibility-based refresh to dashboard hooks 2026-04-01 21:57:23 -07:00
gsxdsm
a19912af9a feat(KB-662): complete Step 2 — add visibility refresh tests for useProjects 2026-04-01 21:36:22 -07:00
gsxdsm
2778027423 Removed unwanted files marked in .gitignore 2026-04-01 21:25:08 -07:00
gsxdsm
dac68ab2f7 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
193f83074d feat(KB-659): merge kb/kb-659 (auto-resolved)
- test(KB-659): add agents view integration tests to App.test.tsx and search visibility tests to Header.test.tsx
- fix(KB-659): resolve merge conflict in types.ts and duplicate declaration in SettingsModal
- feat(KB-659): add agents view toggle to view selector
2026-04-01 15:24:50 -07:00
gsxdsm
51e0883708 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
c597f5519f 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
03c3743300 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
d943616cb3 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
79a711a8a2 fix(FN-678): preserve settings section state across reopen
- Add a shared settings section scope helper so the modal consistently resolves the active section
- Prevent the authentication auto-open flow from leaking into later general settings sessions
- Add regression coverage for reopening the settings modal after authentication and general entry points
2026-04-01 13:37:33 -07:00
gsxdsm
26df995f36 fix(FN-667): fix model dropdown layering in quick entry
- Render the custom model dropdown menu in a portal so it escapes clipped stacking contexts
- Update dashboard styles to give the floating model menu reliable overlay positioning above quick entry surfaces
- Refresh dropdown-focused tests to cover portal layering behavior in quick entry and model selector flows
- Document the layering behavior in the dashboard README for future UI maintenance
2026-04-01 13:32:29 -07:00
gsxdsm
3cc10b21eb feat(KB-657): add manual quick-add expand toggles
- Add chevron expand/collapse toggles to dashboard quick-add flows in list and board views
- Keep advanced quick-add controls hidden until expanded and collapse them after successful submission
- Tighten quick-add accessibility and blur behavior around overlays and empty drafts
- Add dashboard regression coverage and a published changeset for the quick-add interaction update
2026-04-01 13:22:49 -07:00
gsxdsm
d80a5765cf 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
7f47013d13 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
88534e1827 fix(FN-673): resync tasks after dashboard stream reconnect 2026-04-01 12:49:32 -07:00
gsxdsm
ebe36d1ad6 test(FN-673): refine stale board regression expectations 2026-04-01 12:44:27 -07:00
gsxdsm
91b3bbf564 feat(KB-659): add agents view toggle and merge dashboard updates
- Add the agents view toggle to the dashboard header and App view state
- Preserve multi-project dashboard behavior while resolving App merge conflicts
- Merge Header and App tests for agents view, search visibility, and deep-link handling
- Keep scripts, changed-files modal, and project overview integrations working together
2026-04-01 12:44:01 -07:00
gsxdsm
bbf910f8b5 test(FN-673): tighten stale board recovery regression coverage 2026-04-01 12:43:31 -07:00
gsxdsm
78f6a76fd2 feat(KB-656): keep list quick entry collapsed on focus
- Add an autoExpand prop to QuickEntryBox with default focus expansion behavior
- Preserve manual expand and blur persistence while allowing list view to opt out
- Add coverage for autoExpand={false} behavior in QuickEntryBox tests
- Include a published-package changeset describing the quick entry behavior change
2026-04-01 12:25:00 -07:00
gsxdsm
abe1ed757e feat(KB-655): merge dashboard multi-project and workflow improvements
- Add multi-project migration, CLI project selection, and dashboard overview/setup flows
- Introduce missions, quick scripts, comments unification, and changed-files/task detail enhancements
- Improve dashboard UX with mobile header fixes, quick entry behavior, title truncation, and modal rendering fixes
- Strengthen engine and storage behavior with build verification before merge, setup-script support, Claude usage/auth fixes, and expanded test coverage
2026-04-01 11:35:15 -07:00
gsxdsm
aa22d64b8a 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
8bd2fdf5e1 fix(FN-695): portalize QuickEntryBox model selection modal to fix z-index clipping
- Render ModelSelectionModal via createPortal to document.body so it is no longer clipped behind the board on mobile
- Add SSR guard (typeof document check) around the portal call
- Update QuickEntryBox test to assert the modal is portaled outside the component container
- Add changeset for the patch fix
2026-04-01 09:29:21 -07:00
gsxdsm
f6ba388536 feat(FN-687): relocate ProjectSelector to header-left group
- Move ProjectSelector from standalone header section into header-left div next to logo/title
- Change dropdown positioning from right-aligned to left-aligned with higher z-index
- Update CSS to use inline-flex and relative positioning for proper containment
- Adjust mobile styles for narrower max-width within header-left
- Add test verifying ProjectSelector renders inside header-left container
2026-04-01 09:26:44 -07:00
gsxdsm
5c367d2a97 feat(FN-685): add QuickScriptsDropdown component to dashboard header
- Create QuickScriptsDropdown component with script listing, one-click execution, and keyboard navigation (arrow keys, Enter, Escape)
- Replace static Scripts button in Header with dropdown menu showing all configured scripts
- Add loading, empty, and error states with 'Manage Scripts...' footer link
- Add full CSS styles with theme support, animations, and mobile responsiveness
- Add comprehensive tests (510 lines) covering rendering, interactions, keyboard nav, and edge cases
2026-04-01 09:19:28 -07:00
gsxdsm
04e93790b9 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
e016e16774 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
019ab30d41 feat(FN-683): fix mobile header layout
- Refactor header styles for responsive mobile layout
- Add comprehensive Header component tests for mobile breakpoints
- Include changeset for patch release
2026-04-01 09:02:13 -07:00
gsxdsm
fb204dd68c 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
9456bc2bff feat(FN-681): add openai-codex provider support with OpenAI icon and label mapping
- Add openai-codex AI provider with OpenAI icon and label support in ProviderIcon component

- Add comprehensive test coverage for provider icon mappings

- Extend SetupWizardModal with enhanced project setup workflow capabilities

- Update CLI bin, core types, and store interfaces for new provider support

- Remove obsolete multi-project migration changeset
2026-04-01 08:17:43 -07:00
gsxdsm
017c1bb8d5 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
5681c354e2 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
97ec4268a4 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