Commit Graph

71 Commits

Author SHA1 Message Date
gsxdsm
5b0f0d2943 fix(FN-820): fix activity log data source selection in project view
- Fix ActivityLogModal to correctly select between project and central activity logs based on project context
- Add regression tests verifying data source selection logic for single-project and multi-project scenarios
- Update README documentation with activity log data source rules and selection behavior
2026-04-04 00:13:37 -07:00
gsxdsm
9d2c055f32 fix(FN-819): remove stale tests and add regression coverage for new-task surfaces
- Replace obsolete test files (SettingsModal, TaskCard, App, dashboard-footer-mobile-layout) with targeted tests for NewTaskModal and TaskForm
- Fix SettingsModal component reference and update TaskCard preset badge logic
- Clean up dead code in engine pi.ts and its test
- Add preset indicator styles in dashboard CSS
- Update dashboard README to clarify preset availability across all new-task surfaces
2026-04-04 00:04:16 -07:00
gsxdsm
98bcb5df5c feat(FN-818): use merge commit diff for done-task Changes tab
- Refactor TaskChangesTab to use merge commit diff for done/archived tasks instead of branch diff
- Add CommitDiffTab component integration for displaying merge commit changes
- Remove legacy API endpoints and tests for branch-based diff on completed tasks
- Add comprehensive test suite for TaskChangesTab covering all task lifecycle states
- Document merge commit diff behavior in dashboard README
2026-04-03 23:04:13 -07:00
gsxdsm
16e8feebd3 feat(FN-817): add expand button and swipe-friendly touch behavior for board cards
- Add expand button to TaskCard for opening task detail modal on mobile
- Implement CSS scroll-snap on board columns for swipe-friendly navigation
- Add touch-action and overscroll-behavior styles for smoother mobile scrolling
- Add comprehensive tests for mobile scroll snap behavior and expand button
- Document expand button and swipe-friendly board behavior in README
2026-04-03 22:40:00 -07:00
gsxdsm
d67290a7f4 feat(FN-816): improve mobile UI theme, navigation, and changed-files viewer
- Fix modal entry flow, navigation, and reset behavior for mobile
- Apply mobile theme fixes and navigation improvements across dashboard
- Enhance ChangedFilesModal with mobile-friendly behavior and responsive layout
- Add comprehensive tests for ChangedFilesModal mobile interactions
- Fix orphaned pause path in executor and remove unused code
- Update dashboard README with mobile changed-files viewer documentation
- Add mobile-specific CSS styles for improved responsiveness
- Remove stale changeset for orphaned pause path fix
2026-04-03 22:29:13 -07:00
gsxdsm
acfeea4fd3 feat(FN-803): add ahead/behind commit lists to Git Manager Remotes tab
- Add backend API routes for remote commit lists (local-ahead, remote-ahead, all commits by branch)
- Surface ahead/behind commit counts and expandable commit lists in Remotes tab UI
- Add expand/collapse rows showing commit hash, message, author, and relative date
- Style commit list rows with alternating backgrounds and monospace hashes
- Add comprehensive tests for API routes and GitManagerModal component
- Update README documentation for Git Manager Remotes tab
2026-04-03 22:02:57 -07:00
gsxdsm
f1f98ba718 feat(FN-815): consume deep-linked task modal state on dismiss
- Update App.tsx to handle deep-linked task modal dismissal by cleaning up the URL query parameter
- Add comprehensive tests for deep-linked modal dismissal and URL cleanup behavior
- Document one-time deep-link modal behavior in README
2026-04-03 21:52:26 -07:00
gsxdsm
9eb4e2c634 feat(FN-806): replace hardcoded border-radius with dashboard token in agent-create-form
- Replace hardcoded border-radius value in AgentsView agent create form with CSS variable token
- Update dashboard README styling description for the Agents View create-form
- Add unit test for agent create form border-radius token usage
2026-04-03 20:54:32 -07:00
gsxdsm
603a04e312 feat(FN-802): route script launches through TerminalModal instead of ScriptRunDialog
- Route saved script launches from App.tsx directly into TerminalModal, removing the ScriptRunDialog component entirely
- Add openGeneration handling and initialCommand support to TerminalModal for reliable script execution
- Add openGeneration to initialCommand effect dependencies to prevent stale closures
- Remove 114 lines of now-unused styles.css rules related to ScriptRunDialog
- Update tests: replace ScriptRunDialog tests with TerminalModal execution tests, update App routing tests
- Update README to document terminal-based script launch behavior
2026-04-03 20:47:41 -07:00
gsxdsm
ec8ba5d7ca feat(FN-807): add model preset selection to QuickEntryBox and InlineCreateCard
- Extend ModelSelectionModal with preset picker and apply-to-task wiring
- Wire preset state through QuickEntryBox and InlineCreateCard new-task flows
- Add regression tests for preset selection in ModelSelectionModal, QuickEntryBox, InlineCreateCard, and ListView
- Update dashboard README with preset-in-quick-add documentation
- Clean up unused footer-safe-layout test and adjust styles
2026-04-03 20:10:36 -07:00
gsxdsm
fb9f92a0ca feat(FN-799): align file-diffs route with session-files merge-base strategy
- Switch /api/tasks/:id/file-diffs to use merge-base (three-dot) diff instead of two-dot diff, matching session-files behavior
- Rewrite file-diffs route tests with comprehensive coverage and add count/detail consistency regression tests
- Update mission-types to export MissionSummary and fix MissionManager imports
- Remove obsolete MissionManager.test.tsx and mission-e2e.test.ts
- Update README docs to clarify board card count matches changed-files viewer
2026-04-03 19:31:13 -07:00
gsxdsm
7030a3730e feat(FN-798): move edit Save/Cancel buttons into modal footer
- Relocate Save/Cancel action buttons from inline position to TaskDetailModal footer
- Add regression tests for footer button placement and visibility
- Remove unused file-service tests and FileBrowserModal test code
- Clean up dead CSS rules from styles.css
- Update dashboard README to reflect current architecture
2026-04-03 19:00:35 -07:00
gsxdsm
c7e3403753 feat(FN-797): reposition refinement modal primary action near textarea
- Move 'Create Refinement Task' button from modal footer into input group adjacent to feedback textarea
- Wrap char count and submit button in new .detail-refine-input-group flex container
- Add CSS for input group with space-between layout and gap
- Add 3 tests verifying button placement, disabled/enabled rules, and sibling structure
- Update dashboard README with refinement modal UX documentation
2026-04-03 18:40:26 -07:00
gsxdsm
0c87c6ce9e feat(FN-796): convert compact Terminal overflow to split action with script submenu
- Replace single overflow terminal button with split-action dropdown showing quick-run scripts
- Add script submenu in header for launching predefined commands from compact view
- Add comprehensive regression tests for split-button behavior and quick-run script actions
- Update dashboard README to document the new split-action terminal overflow UI
- Adjust title summarization threshold and clean up related test/store changes
2026-04-03 18:29:09 -07:00
gsxdsm
4b7b65b1a6 feat(FN-795): add mobile responsive layout for Activity Log modal
- Add mobile responsive CSS for Activity Log modal with adaptive breakpoints
- Add regression test coverage for mobile activity log layout
- Add tests for ActivityLogModal responsive behavior
- Update README with responsive layout documentation note
2026-04-03 17:52:36 -07:00
gsxdsm
339a69d5f8 fix(FN-789): fix activity log data loading and restore modal styling
- Fix useActivityLog hook to properly load activity log entries from the store
- Add comprehensive test coverage for useActivityLog hook with 243 lines of tests
- Restore missing ActivityLogModal CSS styles (modal overlay, list, animations)
- Add ActivityLogModal component tests for empty state, loading, and error handling
- Register activity log route in App.tsx
- Update README with activity log data source documentation
- Add changeset for patch release
2026-04-03 14:05:40 -07:00
gsxdsm
ece4a667f9 feat(FN-788): nest Scripts under Terminal in compact overflow menu
- Restructure Header.tsx to render Scripts as a submenu of Terminal in compact/tablet overflow menus
- Add submenu toggle state, keyboard navigation, and click-outside-to-close behavior
- Add CSS for nested submenu styling with slide-in animation and depth indicators
- Update Header tests to verify Scripts nested under Terminal with toggle interaction
- Update mobile-header-controls and tablet-header-controls tests for new menu hierarchy
- Update README documentation to reflect the Terminal > Scripts submenu structure
2026-04-03 13:26:02 -07:00
gsxdsm
ec4cf15223 feat(FN-787): replace project-switch icon with Building2 for visual distinction
- Replace Folder icon with Building2 in Header project-switch overflow button
- Add Header test for distinct project-switch icon rendering
- Update dashboard README docs for responsive header icon change
2026-04-03 13:09:34 -07:00
gsxdsm
c1425b0d8f feat(FN-785): style Agents view state selector and document controls
- Replace plain <select> dropdown with styled agent-state-filter container featuring Filter icon, hover/focus states, and consistent dashboard theming
- Add aria-label for accessibility on the state filter dropdown
- Add CSS styles for .agent-state-filter wrapper with border, color transitions, and focus ring
- Add unit test for styled filter container rendering and aria-label presence
- Document Agents view features (state filter, view modes, CRUD, health monitoring) in README
2026-04-03 13:02:36 -07:00
gsxdsm
5afa6e301a fix(FN-784): close Scripts modal before async API call to prevent handoff race
- Close the Scripts modal immediately before making the async script-run API call, preventing the modal from interfering with the terminal handoff
- Add regression tests covering script-to-terminal handoff behavior (modal close timing, API call sequencing, error handling)
- Document the script-run modal handoff behavior in the dashboard README
2026-04-03 12:50:40 -07:00
gsxdsm
db2924549e feat(FN-783): make agent log fill full modal body height
- Add CSS classes for full-height agent log layout with flex-based stretching
- Update AgentLogViewer and TaskDetailModal to use full-height container classes
- Add regression tests for AgentLogViewer full-height behavior
- Add regression tests for TaskDetailModal agent log panel height
- Update dashboard README with agent log layout documentation
2026-04-03 12:38:01 -07:00
gsxdsm
d4feee0999 feat(FN-781): reposition AI-assisted creation controls adjacent to description field
- Move Plan and Subtask buttons next to the description input in QuickEntryBox, InlineCreateCard, and TaskForm
- Improve action button layout with consistent icon+label pattern and disabled states
- Add CSS styles for new action button group and description-adjacent controls
- Add regression tests for all three task creation surfaces ensuring buttons appear next to description
- Document the description-adjacent AI controls pattern in dashboard README
2026-04-03 11:58:49 -07:00
gsxdsm
18335ab2a5 feat(FN-779): make inline editor taller with 4-row default and mount-time resize
- Increase inline editor textarea default rows from 1 to 4 for better multi-line editing
- Add mount-time auto-resize to fit content on initial render
- Add regression tests for taller inline editor behavior
- Update documentation to reflect the new taller editor defaults
2026-04-03 11:23:53 -07:00
gsxdsm
d55e6a4431 feat(FN-778): reserve layout space for executor footer
- Add CSS rules for executor status bar footer with safe-area padding
- Update App.tsx and AgentsView.tsx layout to accommodate footer space
- Add regression tests for footer-safe project layout (App.test.tsx)
- Add unit tests for ExecutorStatusBar component
- Document footer-safe dashboard layout behavior in README
2026-04-03 11:14:37 -07:00
gsxdsm
ca75d1e705 feat(FN-776): rework changed-files modal into mobile-friendly navigation flow
- Redesign ChangedFilesModal as a two-view navigation flow (file list → file detail) with back navigation
- Fix theming and loading/reading ergonomics for the diff viewer
- Enhance useChangedFiles hook with improved loading and error states
- Add comprehensive tests for modal navigation, diff rendering, and edge cases
- Update styles with mobile-friendly layout and diff viewer improvements
- Update dashboard README with mobile navigation description
2026-04-03 10:47:44 -07:00
gsxdsm
41adcda408 feat(FN-773): add dedicated ScriptRunDialog for saved script output
- Add ScriptRunDialog component with xterm.js terminal emulation and real-time streaming
- Align saved-script launches with backend contract (POST /api/scripts/:id/run)
- Wire dialog into App.tsx with open/close state management
- Add comprehensive styles for dialog overlay, terminal area, and action buttons
- Add unit tests for ScriptRunDialog and App integration
- Document ScriptRunDialog usage in dashboard README
2026-04-03 10:31:30 -07:00
gsxdsm
2b5ae95fde fix(FN-782): fix footer status bar count derivation and sync with board view
- Share task list data between footer ExecutorStatusBar and board view to ensure consistent counts
- Refactor MissionManager component with improved structure and readability
- Refactor useExecutorStats hook and simplify test coverage
- Update ExecutorStatusBar component and tests for accurate count display
- Consolidate and clean up dashboard styles.css
- Update footer status bar documentation in README
2026-04-03 09:40:26 -07:00
gsxdsm
057bd30645 feat(FN-772): fix terminal startup and prompt delivery reliability
- Fix terminal service to ensure prompt is reliably delivered on startup and reconnect
- Add regression tests for terminal reconnect and first-paint behavior
- Remove dead code: unused global-settings tests, styles.css, Header/MissionManager tests
- Update terminal README with reliable prompt delivery guarantee documentation
- Add useTerminal hook tests and TerminalModal component tests
2026-04-03 09:16:34 -07:00
gsxdsm
aa71687bb6 feat(FN-770): add quick-add favorite models to task creation surfaces
- Wire favorite model state into QuickEntryBox with star toggle and dropdown integration
- Add favorite model selector to Board and Column quick-add components
- Pass favorite models through ListView and App context to entry surfaces
- Add regression tests for QuickEntryBox, Board, Column, and ListView favorite behavior
- Update dashboard README to document quick-add favorite model support
- Remove unused recovery-policy module and dead code from executor/triage/scheduler
- Clean up unused types from core and simplify store methods
2026-04-03 08:14:16 -07:00
gsxdsm
ee8f19fc93 feat(FN-766): add three-tier responsive header with tablet compact mode
- Add tablet compact-header breakpoint (769px–1024px) with condensed layout
- Implement responsive Header component with mobile/tablet/desktop modes
- Add tablet-header-controls test suite (373 lines) for compact mode behavior
- Update existing Header and mobile-header-controls tests for new responsive tiers
- Refactor server routes and styles.css for three-tier responsive support
- Document responsive header architecture in README
2026-04-03 07:39:11 -07:00
gsxdsm
5148d4670b refactor(FN-761): make card inline editing description-only and remove terminal features
- Simplify TaskCard inline editing to support description-only editing
- Remove terminal/PTY features: useTerminal hook, TerminalModal, xterm integration
- Remove project store resolver caching and session file route handling
- Simplify executor worktree pool and remove terminal-related code
- Clean up dead code from dashboard server, styles, and engine
- Update QuickEntryBox and all related tests for the simplified editing model
- Remove unused .gitignore entries and update dashboard README
2026-04-03 07:13:07 -07:00
gsxdsm
2f68eba278 feat(FN-768): resolve effective executor/validator models in Agent Log header
- Display resolved executor and validator model names in the Agent Log header of TaskDetailModal
- Add comprehensive UI tests for model resolution in TaskDetailModal
- Add missing fetchSettings mock to PlanningModeModal test
- Remove unused project-store-resolver module, UsageIndicator tests, and usage tests
- Clean up unused styles and API references
2026-04-02 23:53:14 -07:00
gsxdsm
81cdd78bbe feat(FN-684): complete Step 8 — add Executor Status Bar documentation 2026-04-02 10:45:33 -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
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
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
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
fa37de1bed feat(KB-648): enable parallel test execution and optimize test performance
- Optimize backup tests using fake timers instead of real timeouts

- Enable parallel file execution in core, engine, CLI, and dashboard packages

- Add inline test helpers to reduce dependencies in dashboard routes tests

- Update executor tests with exact command matching and improved assertions

- Update AGENTS.md with test optimization patterns (fake timers, unique temp dirs)
2026-04-01 06:54:50 -07:00
gsxdsm
e21ea42d45 feat(KB-651): add changed files diff viewer for tasks
- Add backend API endpoint to get changed files and diffs for a task worktree
- Add useChangedFiles hook for fetching and managing diff data
- Create ChangedFilesModal component with file list and diff viewer
- Integrate modal into TaskCard with click handler to view changes
- Add frontend API integration and type definitions
- Include unit tests for hook and modal components
- Add changeset for the new feature
- Remove deprecated mission-related test files
2026-04-01 02:01:31 -07:00
gsxdsm
19a06670dd docs(KB-337): update README.md, RELEASING.md and dashboard README with fusion branding 2026-03-31 20:07:24 -07:00
gsxdsm
209bc10b99 feat(KB-629): complete Step 6 — add documentation and changeset for bulk model editing 2026-03-31 18:26:14 -07:00
gsxdsm
ab3dff2100 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
2554904421 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
ef4a74aa4c feat(KB-261): complete Step 3 — update README with Git Manager button placement 2026-03-30 23:30:09 -07:00
gsxdsm
d4c4b5dadc docs(KB-130): document settings loading fix and API contract 2026-03-30 18:48:50 -07:00
gsxdsm
cd8a1e9779 feat(KB-226): add markdown preview to FileEditor
- Add markdown preview toggle to FileEditor with live preview pane
- Implement syntax-highlighted code blocks and responsive layout
- Add comprehensive tests for preview toggle and content rendering
- Update dashboard README with FileEditor usage documentation
- Add changeset for markdown preview feature
- Clean up obsolete changeset files
2026-03-30 18:41:12 -07:00
gsxdsm
0b422d854d docs(KB-086): complete Step 9 — add Activity Log documentation and changeset 2026-03-30 18:36:58 -07:00
gsxdsm
53b5cdd5d8 feat(KB-139): remove legacy terminal test and update README
- Remove skipped legacy useTerminal hook test file (498 lines)

- Update README theme count from 8 to 12 color themes

- Add contributor verification requirements section

- Document that terminal hook tests must remain active
2026-03-30 14:10:03 -07:00
gsxdsm
f78f01ac5b feat(KB-137): add GitHub App webhooks for real-time badge updates
- Add verified POST /api/github/webhooks endpoint with signature verification
- Implement GitHub App installation token authentication for API calls
- Add webhook handlers for pull_request, issues, and issue_comment events
- Support multi-task resource matching by parsed badge URL
- Retire live GitHub polling service in favor of push-based updates
- Add comprehensive webhook integration and unit tests
- Keep 5-minute REST refresh endpoints as fallback
2026-03-30 13:37:33 -07:00
gsxdsm
2dbcf2433e feat(KB-136): add shared badge pub/sub for multi-instance deployments
- Add BadgePubSub interface with Redis and in-memory adapters

- Implement cross-instance badge snapshot delivery via Redis pub/sub

- Add message validation, echo loop prevention, and structured caching

- Support graceful fallback to in-memory mode when Redis unavailable

- Update ServerOptions for dependency injection and add documentation
2026-03-30 12:52:07 -07:00