Commit Graph

490 Commits

Author SHA1 Message Date
gsxdsm
1d45cdb82b feat(FN-830): add mobile keyboard-aware terminal positioning
- Implement visual viewport API to reposition terminal above on-screen keyboard
- Add smooth CSS transition for terminal modal height changes on mobile
- Add comprehensive regression tests for keyboard overlap and resize behavior
- Remove stale test files (NewTaskModal, TaskForm) and clean up ActivityLogModal tests
- Document mobile keyboard handling approach in dashboard README
2026-04-04 00:19:40 -07:00
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
383f2789e7 fix(FN-859): fix settings export filename prefix to fusion-settings
- Change export filename from 'kb-settings' to 'fusion-settings' in SettingsModal
- Add comprehensive tests for settings export functionality including filename branding
- Remove stale dashboard-footer-mobile-layout test and unused App test
- Fix minor CSS and README cleanup
2026-04-03 23:38:56 -07:00
gsxdsm
84eacbd8d5 fix(FN-824): replace mobile board viewport-height with percentage fill
- Replace viewport-height CSS with percentage-based fill to prevent mobile footer overlap
- Add regression tests for mobile footer-safe layout in dashboard-footer-mobile-layout.test.ts
- Add App.test.tsx coverage for viewport height behavior
- Document mobile layout fix in README
2026-04-03 23:38:00 -07:00
gsxdsm
2c861e3f75 feat(FN-814): add awaiting-approval board highlight with distinct visuals
- Add amber/orange highlight styling for tasks with awaiting-approval status on the board
- Update TaskCard component to render awaiting-approval status badge and border styling
- Add comprehensive unit tests for awaiting-approval card rendering scenarios
- Document awaiting-approval board highlight behavior in README
2026-04-03 23:21:06 -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
448762d1f6 feat(FN-813): add project-aware ntfy deep links
- Thread real project context (projectName, projectId) into ntfy notification deep links
- Dashboard deep-link URL now honors project context with /project/:name/task/:id pattern
- Update App.tsx routing to handle project-scoped deep link navigation
- Add project info to NtfyNotifier types and wire through notification payload
- Add changeset for published @gsxdsm/fusion package
- Add tests for notifier project context and dashboard routing
2026-04-03 21:34:39 -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
1da1fa5341 refactor(FN-811): make project workspace footer-safe and simplify file diff routes
- Fix layout so AgentsView and workspace pages don't overflow behind the footer
- Add footer-safe-layout tests covering sidebar + content layout behavior
- Simplify /api/tasks/:id/diffs route by removing redundant session-file handling
- Remove 22 unused lines from session-files test and consolidate file-diffs tests
- Update styles.css with layout adjustments for consistent footer-safe spacing
- Minor README clarification for dashboard package
2026-04-03 19:34:46 -07:00
gsxdsm
b8ccd55e12 feat(FN-804): align mission IDs with generated format and add validation
- Update mission route ID validation to accept generated ID format (mission-types.ts, mission-routes.ts)
- Add MissionManager component tests for generated ID handling
- Add mission E2E tests covering ID generation and validation flows
- Update TaskDetailModal to work with new mission ID format
- Update documentation (README, dashboard README) with generated ID examples
2026-04-03 19:19:05 -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
10a6443483 feat(FN-801): show hidden files in workspace file listings
- Remove dotfile filtering from file-service so hidden files appear in workspace browser
- Update FileBrowserModal and TaskDetailModal UI to display hidden file entries
- Add UI/hook tests for hidden file entries in FileBrowserModal and useWorkspaceFileBrowser
- Add file-service unit tests for listing, reading, and filtering hidden files
- Update dashboard styles for hidden file display
- Document Files feature section in README
2026-04-03 18:50:05 -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
af41f4424c feat(FN-800): auto-generate model preset IDs and remove manual ID editing
- Add slugify and generatePresetId utilities with collision handling for unique preset IDs
- Remove manual ID input field from preset editor UI in SettingsModal
- Auto-generate preset IDs server-side from name on creation
- Simplify Header tests by removing ID-related test cases
- Deduplicate tablet header controls tests by importing from shared Header tests
- Remove unused CSS rules for removed ID input field
- Update reviewer to pass through preset ID generation logic
2026-04-03 18:33:23 -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
6382370549 feat(FN-794): raise auto-summarization threshold from 140 to 200 characters
- Change MIN_DESCRIPTION_LENGTH threshold from 140 to 200 in ai-summarize.ts
- Update shouldAutoSummarize logic and tests for new 200-char threshold
- Update UI copy in SettingsModal and API/routes references
- Update store tests to reflect the new threshold value
- Remove obsolete dashboard activity-log mobile layout test files and unused CSS
- Add changeset for patch bump
2026-04-03 17:58:07 -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
b15816e7ef feat(FN-792): rebuild Mission Manager modal shell and list view
- Rebuild MissionManager component with updated modal shell and list view layout
- Refactor and reorganize dashboard CSS styles (551 lines changed)
- Remove terminal-related test files and simplify terminal service/useTerminal hook
- Clean up global settings: remove unused global-settings test and simplify settings types
- Remove dead code from App.tsx, SettingsModal.tsx, and dashboard README
2026-04-03 09:29:51 -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
6ab7f24bba fix: restore ntfyDashboardHost setting and add schema protection for global settings
The ntfyDashboardHost field was incorrectly removed in 3eeac0a0 as part of
an unrelated FN-672 commit. This restores the setting to GlobalSettings (moved
from ProjectSettings where it was misplaced), re-adds the UI field and deep
link handling, and adds schema protection so unknown keys in settings.json
survive code-level schema changes.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-03 09:02:41 -07:00
gsxdsm
549f1aa362 feat(FN-786): move Settings to last position in overflow menu
- Reorder Header overflow menu items so Settings always appears last
- Update Header.tsx to position SettingsMenuItem as the final menu entry
- Add regression tests in Header.test.tsx verifying Settings is last in all overflow states
- Add ordering tests in tablet-header-controls.test.tsx for tablet layout
2026-04-03 08:49:01 -07:00
gsxdsm
d67437a5a2 feat(FN-777): redesign Mission Manager interaction shell and update styles
- Redesign MissionManager component with improved interaction patterns and shell layout
- Refactor Board, Column, and QuickEntryBox components for consistency
- Add comprehensive CSS styles (742 lines) for mission manager and related components
- Add MissionManager test suite (324 lines) covering new interaction behavior
- Update Board, Column tests; remove obsolete ListView and QuickEntryBox tests
- Clean up unused code in App.tsx and ListView.tsx
- Update Missions section in README and dashboard README to reflect actual UI behavior
2026-04-03 08:37:33 -07:00
gsxdsm
6603844857 fix(FN-780): collapse QuickEntryBox by default on board view
- Pass autoExpand={false} to QuickEntryBox in Column.tsx so the board view starts collapsed
- Add test verifying autoExpand prop is false for board columns
- Update QuickEntryBox mock in Column tests to capture autoExpand prop
2026-04-03 08:26:40 -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
df73a82917 fix(FN-771): reset disclosure state on task creation and preserve terminal sessions across reconnects
- Reset isDisclosureExpanded in QuickEntryBox resetForm so disclosure collapses after task creation
- Remove sticky disclosure persistence from QuickEntryBox component
- Preserve terminal sessions across transient WebSocket disconnects with buffer/replay
- Buffer and replay initial terminal state for prompt visibility on reconnect
- Update tests for non-persistent disclosure, terminal reconnect, and server routes
- Remove unused UsageIndicator tests and TaskDetailModal test cleanup
2026-04-03 06:47:40 -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
3697bd0d71 feat(FN-767): add Claude session reset time to usage modal
- Preserve Claude reset timestamps in the usage data model (usage.ts)
- Display session reset time in the UsageIndicator dashboard component
- Add component comments explaining reset-time rendering logic
- Add styles for the reset time display in the usage modal
- Add tests for usage data model and UsageIndicator component
2026-04-02 23:32:22 -07:00
gsxdsm
be89cb3581 fix(FN-759): restructure terminal header for mobile and add regression tests
- Restructure TerminalModal header layout to support mobile viewports with proper flex sizing
- Add CSS styles for responsive terminal header with title truncation and icon wrapping
- Add inline comment documenting mobile header layout contract
- Add comprehensive TerminalModal test suite covering mobile layout, resize behavior, and header interactions
- Clean up unrelated store test and changeset remnants from prior work
2026-04-02 22:59:37 -07:00
gsxdsm
89b780e90f feat(FN-757): harden mobile viewport positioning and add regression tests
- Fix mobile visual viewport positioning to handle dynamic viewport changes (address bar, keyboard)
- Improve CustomModelDropdown with better mobile scroll/resize handling
- Add comprehensive visual viewport regression tests for CustomModelDropdown
- Refactor build-exe tests for cleaner structure and coverage
2026-04-02 22:43:57 -07:00