Commit Graph

3634 Commits

Author SHA1 Message Date
gsxdsm
d1f4eff9db feat(FN-686): persist mission linkage on linked tasks
- Store missionId alongside sliceId when MissionStore links a feature to a task
- Clear both linkage fields together when features are unlinked from tasks
- Preserve mission linkage fields through TaskStore reads, writes, and updates
- Expand mission and task store coverage for mission linkage persistence and cleanup
2026-04-01 14:42:06 -07:00
gsxdsm
4e297104b3 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
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
ce0bf248b1 feat(FN-681): add openai-codex provider support
- Add openai-codex provider mapping with matching label and OpenAI icon rendering
- Extend ProviderIcon coverage to verify the new provider displays correctly
- Strengthen CentralCore cleanupOldActivity tests for cutoff boundary retention
2026-04-01 14:24:01 -07:00
gsxdsm
a463670852 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
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
614c710de8 fix(FN-680): restore TaskStore project resolution and fresh schema writes
- fix TaskStore.getOrCreateForProject to resolve projects through BackwardCompat and support legacy .fusion/.kb detection
- add regression tests for exact-name project lookup, legacy cwd fallback, and fresh-schema task create/update persistence
- sync the tasks schema definition with missionId support so fresh databases match runtime migrations
- add project overview and selector styles for the multi-project dashboard UI
2026-04-01 13:48:01 -07:00
gsxdsm
27d2f25b42 feat(KB-635): integrate mission workflows across CLI, extension, and engine
- Add mission CLI commands and pi extension tools for creating missions, milestones, slices, features, and task links
- Extend core mission storage and schema migrations with auto-advance support, task slice linkage, and comment normalization coverage
- Wire mission-aware scheduler and executor behavior so linked features progress with task execution and completed slices can auto-activate follow-on work
- Add regression tests for mission CLI parsing, extension behaviors, scheduler mission semantics, and executor integration
2026-04-01 13:45:56 -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
b8db80b5d6 fix(FN-679): sync task prompts when task metadata changes
- Regenerate PROMPT.md when task titles or descriptions are updated in the store
- Add regression tests covering prompt regeneration for title and description changes
- Tighten central activity cleanup coverage to preserve entries at the cutoff boundary
- Add a changeset for the published CLI package fix
2026-04-01 13:33:53 -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
826a495679 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
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
6a69e83e90 feat(KB-619): add multi-project CLI resolution and commands
- Add CLI project resolution with --project targeting and project subcommands
- Implement project list/add/remove/info flows with central registry integration
- Expand resolver and command test coverage, including cancellation and explicit selection paths
- Include published CLI changeset metadata for the multi-project command feature
2026-04-01 13:00:03 -07:00
gsxdsm
a8d05fab7a feat(FN-673): complete Step 4 — document dashboard resync safeguards 2026-04-01 12:50:35 -07:00
gsxdsm
88534e1827 fix(FN-673): resync tasks after dashboard stream reconnect 2026-04-01 12:49:32 -07:00
gsxdsm
3279da3db8 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
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
be974fa1ea test(FN-673): complete Step 1 — reproduce stale board reconnect bug 2026-04-01 12:41:50 -07:00
gsxdsm
83ab5b0fda feat(KB-662): refresh tasks when the dashboard regains focus
- Add a debounced visibilitychange refresh path to useTasks
- Reuse task normalization when refreshing task data from the API
- Preserve project-scoped fetching during initial and visibility-triggered reloads
- Add hook tests covering visibility refresh, normalization, debounce, and cleanup
2026-04-01 12:37:06 -07:00
gsxdsm
13cea76e25 feat(KB-662): complete Step 1 — refresh tasks on visibility 2026-04-01 12:31:38 -07:00
gsxdsm
3122cbfa1c fix(KB-660): keep Git Manager modal within the viewport
- Constrain the Git Manager modal with a flex column layout and overflow containment
- Prevent the modal header from shrinking and let the content area resize within available space
- Adjust small-screen sizing to use auto height with a 90vh cap so overlay padding is respected
- Add changeset entries documenting the Git Manager modal viewport rendering fix
2026-04-01 12:27:26 -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
5e257adbc9 feat(KB-658): tighten dashboard list view column sizing
- Reduce the list view ID column to a fixed 70px width
- Preserve full-width title cells so task titles use the remaining space
- Resolve the styles.css merge conflict by combining both list layout adjustments
- Verify the workspace build succeeds with pnpm build
2026-04-01 11:38:27 -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
83cbced678 test(FN-704): add comprehensive AgentStore test suite
- Add 62 tests covering all AgentStore public methods (init, CRUD, state transitions, heartbeats, assignments)
- Test event emissions (agent:created, agent:updated, agent:deleted, agent:heartbeat, agent:stateChanged)
- Test error paths, state transition validation, and concurrency locking
- Verify filesystem persistence across store re-initialization
- Update coverage gaps doc to mark agent-store.ts as covered
2026-04-01 10:00:41 -07:00
gsxdsm
0ec0dab300 test(FN-705): add comprehensive unit tests for IpcHost and IpcWorker
- Add IpcHost tests: constructor, sendCommand correlation, ping, event forwarding, malformed message handling, disconnection cascade, explicit cleanup
- Add IpcWorker tests: constructor validation, PING auto-response, command handler registration/dispatch, OK/ERROR responses, sendEvent/sendErrorEvent, shutdown idempotency
- Fix TypeScript type mismatch in mock ChildProcess.send signature
- Mock logger and process IPC to enable isolated unit testing without real child processes
- Cover edge cases: timeouts, disconnected sends, unknown commands, malformed messages
2026-04-01 10:00:17 -07:00
gsxdsm
fd13f0c5d5 docs(FN-688): add comprehensive board view design audit
- Add DESIGN_AUDIT.md with 49 categorized UI issues (6 P0, 18 P1, 25 P2)
- Cover Board, List, Agents views, Header, Modals, Project Overview, and responsive behavior
- Document missing CSS classes, styling inconsistencies, and interaction state gaps
- Identify actionable fixes with file locations and specific recommendations
- Serve as foundation for child tasks to implement P0/P1 priority fixes
2026-04-01 09:54:19 -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
1654c91fb5 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
185368aac7 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
50dc682dea docs(FN-689): add comprehensive code coverage analysis report
- Add coverage-report/ with summary, gap analysis, and README documentation
- Add per-package coverage scripts (test:coverage:core, :engine, :cli, :dashboard)
- Document files lacking test coverage with priority ratings across all packages
- Identify key coverage gaps: agent-store, IPC host/worker, and dashboard components
- Note engine OOM issue with coverage and provide workaround
2026-04-01 09:33:52 -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
57d996fb9b feat(FN-692): add setupScript setting for automatic worktree initialization
- Add `setupScript` property to ProjectSettings to reference a named script
- Execute the referenced setup script after worktreeInitCommand on fresh worktrees
- Log success/failure of setup script execution; warn and skip if script name not found
- Skip setup script for pooled/recycled worktrees (fresh only)
- Add changeset (minor) for the new setting
2026-04-01 09:26:20 -07:00
gsxdsm
5e949ff4aa 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
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
25e25cfecd docs(FN-684): update AGENTS.md with mobile project selector behavior 2026-04-01 09:03:10 -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
f98f9d3456 feat(FN-682): fix setup wizard race condition and view mode restoration
- Fix setup wizard auto-open race condition in App.tsx\n- Add view mode restoration logic for dashboard navigation\n- Remove 145 lines of unused styles from styles.css\n- Ensure setup wizard opens correctly on fresh installs
2026-04-01 08:58:03 -07:00
gsxdsm
389ac3fb88 feat(FN-683): complete Step 2 — add mobile header layout styles 2026-04-01 08:55:59 -07:00
gsxdsm
5cdcb78dd0 feat(FN-672): add ProjectSelector component for multi-project support
- Add ProjectSelector component with search and status indicators
- Integrate ProjectSelector into Header with mobile responsive layout
- Update App.tsx with project selection handlers and view mode switching
- Add ProjectSelector CSS styles with status color coding
2026-04-01 08:33:16 -07:00
gsxdsm
7cacce000b 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
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