Commit Graph

281 Commits

Author SHA1 Message Date
gsxdsm
0054aab4e5 test(KB-301): fix SubtaskBreakdownModal tests — add dataTransfer mocks for jsdom drag events 2026-03-31 11:20:33 -07:00
gsxdsm
f3e90ebfca fix(KB-309): add missing notification settings to form state
- Add ntfyEnabled and ntfyTopic to initial form state in SettingsModal
- Add comprehensive tests for notification settings persistence
- Ensure notification values are properly initialized from settings
2026-03-31 11:00:59 -07:00
gsxdsm
be63047d26 feat(KB-302): add onMouseDown blur protection to QuickEntryBox action buttons
- Add onMouseDown handler with preventDefault() to action buttons in QuickEntryBox
- Prevent focus blur when clicking Deps, Models, Plan, and Subtask buttons
- Add regression tests to verify button interactions maintain focus
- Fixes focus loss issue when using QuickEntryBox action buttons while typing
2026-03-31 10:42:02 -07:00
gsxdsm
4ad3fe240b feat(KB-280): add Save button to QuickEntryBox
- Add Save button to QuickEntryBox component for manual task creation
- Include loading state and disabled state during submission
- Add comprehensive tests for Save button functionality (114 lines)
- Add changeset for the new save button feature
2026-03-31 07:47:41 -07:00
gsxdsm
234d6f7b1d feat(KB-275): remove 500-character limit from planning mode textarea
- Remove maxLength restriction from PlanningModeModal textarea input
- Allow unlimited text input for AI-assisted task planning
- Add changeset documenting the character limit removal
2026-03-31 07:08:46 -07:00
gsxdsm
88ee7c2216 feat(KB-268): add workflow step templates
- Define 5 built-in workflow step templates (Documentation Review, QA Check, Security Audit, Performance Review, Accessibility Check)
- Add API endpoints GET /api/workflow-step-templates and POST /api/workflow-step-templates/:id/create
- Add templates tab to Workflow Step Manager with one-click add functionality
- Include high-quality agent prompts for each template category
- Add changeset for the new feature
2026-03-31 06:10:14 -07:00
gsxdsm
de094990a9 feat(KB-262): add Pull Requests tab to GitHub Import modal
- Add listPullRequests and getPullRequest methods to GitHubClient
- Add /github/pulls/fetch and /github/pulls/import API endpoints
- Add apiFetchGitHubPulls and apiImportGitHubPull frontend API functions
- Add tabbed UI for Issues and Pull Requests in GitHubImportModal
- Add comprehensive PR tab tests (14 new tests)
- Include changeset for the new PR tab feature
2026-03-31 06:03:45 -07:00
gsxdsm
dc1cdcd3aa feat(KB-270): add drag-and-drop reordering for subtasks
- Add drag-and-drop state management with mouse event handlers
- Add CSS styles for subtask drag states (dragging, drop-target, drop-before/after)
- Integrate drag-and-drop into SubtaskBreakdownModal with grip handles
- Add keyboard accessible reordering with up/down arrow buttons
- Add comprehensive tests for drag-and-drop interactions
- Update AGENTS.md with subtask dialog documentation
- Add changeset for subtask drag-reorder feature
2026-03-31 06:00:12 -07:00
gsxdsm
56a46092f7 fix(KB-259): update subtask button tooltip for live feature
- Update subtask button tooltip from "coming soon" to "Break down into AI-generated subtasks"

- Apply tooltip fix to both QuickEntryBox and InlineCreateCard components

- Add changeset for patch release
2026-03-31 05:52:29 -07:00
gsxdsm
34d47eddfd feat(KB-247): add subtask breakdown dialog for AI-assisted task creation
- Add backend subtask breakdown session management and API endpoints
- Create SubtaskBreakdownModal component for generating AI-suggested subtasks
- Integrate subtask breakdown into QuickEntryBox and NewTaskModal flows
- Add frontend API client functions for breakdown sessions and subtask creation
- Add tests for SubtaskBreakdownModal and backend routes
- Create changeset documenting the subtask breakdown feature
2026-03-31 05:48:30 -07:00
gsxdsm
243da605b1 fix(KB-241): use form values for ntfy test notifications
- Update frontend API client to accept config parameter for testNtfyNotification
- Modify SettingsModal to pass current form values when testing notifications
- Update SettingsModal test to expect config object in API call
- Add changeset documenting the test notification fix
2026-03-31 05:31:52 -07:00
gsxdsm
4be8306f7a feat(KB-229): add multi-step scheduled tasks
- Add Step types to core data model (command, validation, approval steps)
- Update AutomationStore CRUD operations for step management
- Refactor CronRunner for sequential step execution with per-step config
- Add Dashboard API routes for step CRUD and step-aware schedule updates
- Create ScheduleStepsEditor component for visual step configuration
- Add StepTypeBadge component for step type visualization
- Update ScheduleCard and ScheduleForm to display and manage steps
- Add comprehensive test coverage for stores, runner, and components
- Add changeset for patch release
2026-03-31 05:14:30 -07:00
gsxdsm
f1a849b6fa feat(KB-225): add AI text refinement feature to dashboard
- Add AI text refinement backend service with OpenAI/Anthropic integration
- Add /api/refine-text API endpoint with error handling
- Add QuickEntryBox AI refine button with style presets menu
- Add NewTaskModal AI refine feature for task description editing
- Add comprehensive tests for backend service, API, and components
- Add changeset for the new feature
2026-03-31 04:20:37 -07:00
gsxdsm
139fbb9f29 feat(KB-218): add workflow steps for post-implementation review
- Add core data model for workflow step definitions with AI-assisted prompt refinement
- Create API routes for CRUD operations and prompt refinement via /api/workflow-steps
- Add WorkflowStepManager dashboard UI for defining and managing workflow steps
- Integrate workflow step selection into NewTaskModal for per-task enablement
- Execute workflow steps sequentially in executor after task_done() with readonly tools
- Run workflow step agents before moving tasks to in-review, failing on step errors
- Add comprehensive tests for store, API routes, components, and executor integration
2026-03-31 03:55:01 -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
714f4bc415 feat(KB-184): add model presets for task creation
- Add model preset types and settings fields with API validation
- Create model preset utility helpers for size-based auto-selection
- Add settings UI for managing model presets (create, edit, delete)
- Integrate preset selection into NewTaskModal with custom override option
- Add inline preset selection to InlineCreateCard component
- Persist modelPresetId in task store and preserve through archive/unarchive
- Add changeset and update AGENTS.md with feature documentation
2026-03-31 02:04:45 -07:00
gsxdsm
82d8ebb82b feat(KB-266): overhaul GitManagerModal with new architecture and API
- Completely rewrite GitManagerModal with modern React architecture
- Add comprehensive CSS styling for git operations UI
- Implement new API endpoints for git management operations
- Add server-side routes for git command handling
- Fix shell injection vulnerability in git command execution
- Update tests with complete API mocking coverage
- Add changeset documenting the overhaul
2026-03-31 02:00:53 -07:00
gsxdsm
9e03c47b91 feat(KB-175): move file browser to header with workspace support
- Add workspace file APIs and hooks for session-scoped file browsing
- Create WorkspaceSelector component for switching between workspaces
- Update FileBrowserModal with workspace mode and improved UX
- Add files button to header with workspace-aware file browsing
- Add session files indicator to task cards for quick file access
- Include comprehensive tests for all new components and hooks
2026-03-31 01:26:57 -07:00
gsxdsm
18c4f0cb25 feat(KB-265): fix editor height layout and remove planning validator models
- Fix FileEditor height with flexbox constraints (flex-1/min-h-0 pattern)

- Add test for markdown preview scrollability (scrollable markdown body)

- Remove planning validator models feature from SettingsModal and engine

- Clean up related types in @kb/core and changeset files
2026-03-31 00:05:33 -07:00
gsxdsm
c71dba7908 feat(KB-147): add planning and validator model settings
- Extend core Settings types with planningProvider, planningModelId, validatorProvider, validatorModelId fields
- Add model selectors in Settings UI for planning and validator models
- Use planning model for triage task specification generation
- Use validator model for specification review in triage
- Use validator model for code reviews in executor agent
- Update AGENTS.md with model hierarchy documentation
2026-03-31 00:02:16 -07:00
gsxdsm
7eb9bddfd4 feat(KB-264): add word wrap toggle and fix markdown preview scrolling
- Add word wrap toggle button with WrapText icon to FileEditor

- Fix markdown preview scrolling with height: 100% CSS

- Add comprehensive tests for word wrap toggle and scrollability
2026-03-30 23:39:40 -07:00
gsxdsm
2a222a2be6 fix(KB-263): fix text not being passed into Planning Mode from quick entry
- Fix stale closure bug in PlanningModeModal auto-start useEffect
- Move handleStartPlanning definition before the effect that references it
- Remove redundant handleStartPlanningWithPlan callback
- Add planOverride parameter to handleStartPlanning for proper prop passing
- Fix hasAutoStartedRef timing to prevent early triggering
2026-03-30 23:39:20 -07:00
gsxdsm
748f9440b9 feat(KB-251): complete Step 2 — engine title generator module 2026-03-30 23:30:39 -07:00
gsxdsm
25119673f3 feat(KB-261): complete Step 1 — add Git button to Header 2026-03-30 23:27:50 -07:00
gsxdsm
42375d2f4c feat(KB-257): add localStorage persistence for QuickEntryBox draft input
- Persist draft task input in localStorage to prevent data loss on refresh
- Restore saved draft when component mounts
- Clear localStorage entry when task is successfully created
- Add comprehensive tests for persistence behavior
- Remove fixed positioning styles from ListView component
2026-03-30 23:20:04 -07:00
gsxdsm
b139876e98 feat(KB-256): reposition QuickEntryBox above table headers in ListView
- Move QuickEntryBox from below headers to above the table in ListView
- Update CSS to support new positioning with sticky header layout
- Adjust ListView component structure for better visual hierarchy
- Update ListView tests to reflect new component ordering
2026-03-30 23:18:59 -07:00
gsxdsm
fb123f289d feat(KB-255): remove 60-character truncation from task descriptions in dashboard
- Remove 60-character truncation from ListView component task descriptions
- Remove 60-character truncation from TaskCard component task descriptions
- Update ListView tests to verify full description display
- Add TaskCard tests for description rendering without truncation
- Remove unused CSS styles related to description truncation
2026-03-30 21:40:25 -07:00
gsxdsm
d070d13414 feat(KB-252): implement collapse-on-blur behavior for QuickEntryBox
- Collapse QuickEntryBox on blur regardless of content (only check dropdowns open state)
- Change expanded controls to show only when focused (isExpanded), not when content exists
- Remove dependency on text content for determining expanded state
- Update all QuickEntryBox tests to reflect new blur behavior and focus requirements
- Fix test async handling with act() for timer advancement
2026-03-30 20:18:06 -07:00
gsxdsm
c4ea1cdb24 feat(KB-253): reorder size badge to far right in done column cards
- Move size badge to the rightmost position in TaskCard for done column cards\n- Maintain left-side placement for other columns (todo, in-progress)\n- Add unit tests to verify badge positioning based on column\n- Update badge order logic to use flex row-reverse for done cards
2026-03-30 20:17:13 -07:00
gsxdsm
153885705d feat(KB-248): replace checkbox with Plan and Subtask buttons in task creation UI
- Replace 'break into subtasks' checkbox with explicit Plan and Subtask buttons

- Update InlineCreateCard (Board view) and QuickEntryBox (List view) with new button layout

- Wire up button callbacks in App.tsx, Board, and ListView components

- Update and add tests for disabled button behavior when no description entered

- Document new Plan and Subtask button behavior in AGENTS.md
2026-03-30 19:53:45 -07:00
gsxdsm
168b5f4daf feat(KB-246): add mobile support to FileBrowserModal
- Add mobile view state and screen size detection in FileBrowserModal

- Add back button and conditional layout with CSS classes for mobile/desktop

- Add mobile CSS for two-state layout (file list and editor views)

- Add comprehensive tests for mobile view interactions and navigation

- Add changeset for release notes
2026-03-30 19:50:35 -07:00
gsxdsm
ef73616f9d feat(KB-244): add GitHub logo icon for import button
- Add custom GitHubLogo SVG component with Octocat mark
- Replace Download icon with GitHubLogo in desktop import button
- Replace Download icon with GitHubLogo in mobile overflow menu
- Use currentColor for automatic light/dark theme compatibility
2026-03-30 19:33:44 -07:00
gsxdsm
762b8d1107 feat(KB-243): fix loading state text and ensure thinking container visibility in PlanningModeModal
- Fix loading state text rendering in PlanningModeModal

- Ensure thinking container is always visible during planning operations

- Add comprehensive tests for loading state behavior and thinking container visibility
2026-03-30 19:26:38 -07:00
gsxdsm
aa488c613e feat(KB-240): move spec edit button to top of task detail modal
- Relocate Edit button from bottom to top of spec section
- Improves discoverability by showing edit action before prompt content
- Adjust margin from marginTop to marginBottom for proper spacing
2026-03-30 19:20:07 -07:00
gsxdsm
17baebe0fa feat(KB-238): remove "Using" prefix from pace indicator messages
- Remove "Using " prefix from pace calculation messages in usage.ts

- Update message format from "Using X% over/under pace" to "X% over/under pace"

- Update all UsageIndicator tests to match new message format

- Add changeset for patch release of @dustinbyrne/kb
2026-03-30 19:16:48 -07:00
gsxdsm
6e5befb73d feat(KB-234): add double-click edit and Escape key handling to SpecEditor
- Add double-click handler to SpecEditor for quick edit mode entry

- Implement Escape key handler to exit edit mode

- Add comprehensive double-click interaction tests

- Add CSS styles for improved editor UX
2026-03-30 19:09:52 -07:00
gsxdsm
dafced6e23 feat(KB-176): complete Step 2 — add Summary section to Definition tab 2026-03-30 18:59:57 -07:00
gsxdsm
99f99ca401 feat(KB-227): allow viewing binary files as read-only in file browser
- Remove binary file restrictions from file service backend

- Add visual read-only indicator for binary files in FileBrowserModal

- Add CSS styles for binary file indicators

- Update tests to expect binary files to be readable
2026-03-30 18:55:57 -07:00
gsxdsm
97aa415378 feat(KB-232): swap pace indicator colors and icons in UsageIndicator
- Swap CSS color assignments for slow/fast pace indicators in styles.css
- Swap CheckCircle2 and AlertCircle icons in UsageIndicator component
- Add changeset for the pace indicator color/icon swap
- Remove 2 lines from dashboard README
2026-03-30 18:51:14 -07:00
gsxdsm
6036633490 feat(KB-231): add light mode support for dashboard UI
- Add CSS variables for light/dark theme support in global styles
- Remove hardcoded dark fallback colors from AgentLogViewer component
- Remove hardcoded dark fallback colors from SteeringTab comment bubbles and textarea
- Add changeset for patch release tracking
- Update ProviderIcon and NewTaskModal with proper theme-aware styling
- Clean up unused dashboard routes and tests
2026-03-30 18:47:07 -07:00
gsxdsm
bc12e690b6 feat(KB-230): add ProviderIcon with real icons and update NewTaskModal trigger
- Add ProviderIcon component using real provider brand icons
- Update NewTaskModal trigger button styling and behavior
- Refactor automation.ts for cleaner provider handling
- Remove deprecated ScheduleCard and ScheduleForm components
- Clean up orphaned test files (ScheduleForm.test.tsx, routes.test.ts)
- Update dashboard routes configuration
2026-03-30 18:45:39 -07:00
gsxdsm
7fca1f7010 feat(KB-228): add schedule time presets
- Add morning, afternoon, evening, and night preset schedules to core automation types
- Update ScheduleForm with preset selection dropdown and time handling
- Add color coding for different schedule types in ScheduleCard
- Add tests for new schedule preset functionality
- Include changeset for release tracking
2026-03-30 18:42:04 -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
3a66e2d22c feat(KB-220): rebrand dashboard to Fusion with compact toolbar and mobile layout
- Redesign dashboard header with compact toolbar layout and simplified navigation
- Add mobile responsive view with back button for task detail modal
- Rebrand documentation from KB to Fusion across README and CLI docs
- Remove legacy ActivityLogModal and consolidate settings UI
- Update GitHub import modal styling and improve test coverage
- Add visually-hidden utility class for accessibility
- Remove deprecated App.tsx and api.ts dashboard entry points
2026-03-30 18:36:41 -07:00
gsxdsm
bd83ee6d9c test(KB-086): complete Step 8 — add ActivityLogModal component tests 2026-03-30 18:36:26 -07:00
gsxdsm
eb659a8877 test(KB-224): update tests for combined definition/spec tab 2026-03-30 18:35:34 -07:00
gsxdsm
581d33cec1 feat(KB-086): complete Step 7 — integrate ActivityLogModal with Header and App 2026-03-30 18:31:38 -07:00
gsxdsm
5c02600bc8 feat(KB-086): complete Step 6 — create ActivityLogModal component with styles 2026-03-30 18:31:07 -07:00
gsxdsm
b36244f5a7 feat(KB-086): complete Step 4 — add activity log API endpoints 2026-03-30 18:30:12 -07:00
gsxdsm
8a09889116 feat(KB-223): add taskStuckTimeoutMs field to SettingsModal
- Add taskStuckTimeoutMs input field to SettingsModal UI

- Add comprehensive tests for the new setting field
2026-03-30 18:25:24 -07:00