Commit Graph

109 Commits

Author SHA1 Message Date
gsxdsm
9bcba4db49 feat(KB-119): complete Step 6 — add changeset for styling fix 2026-03-30 08:10:01 -07:00
gsxdsm
e9a7941ff1 feat(KB-119): complete Step 1 — fix model selector row alignment 2026-03-30 08:06:46 -07:00
gsxdsm
aad9a9256c feat(KB-145): add inline editing to task detail modal
- Add edit state and handlers to TaskDetailModal component
- Add edit button and inline editing UI with save/cancel actions
- Add CSS styles for inline editing form elements
- Add comprehensive tests for inline editing functionality
- Update README and add changeset for the feature
2026-03-30 08:05:58 -07:00
gsxdsm
3c9901b2cf feat(KB-125): add planning mode checkbox to new task flow
- Add planning mode checkbox to NewTaskModal with onPlanGenerated callback
- Wire up planning mode flow in App.tsx to open modal after task creation
- Add initialPlan prop to PlanningModeModal with auto-start logic
- Add comprehensive tests for planning mode checkbox flow in both modals
- Include changeset for the planning mode checkbox fix
2026-03-30 07:57:53 -07:00
gsxdsm
ea5a34f7cf fix(KB-124): resolve ntfy duplicate notifications and spec editor layout
- Fix duplicate ntfy.sh notifications on task merge events
- Fix spec editor layout overflow in TaskDetailModal
- Add regression test coverage for merge notifications
- Add changeset for notification fix
2026-03-30 07:49:44 -07:00
gsxdsm
054c9eab39 feat(KB-113): fix spec editor layout in task detail modal
- Add CSS for spec tab layout with proper overflow handling
- Update TaskDetailModal spec tab wrapper class for correct styling
- Add changeset for the layout fix
- Remove stale executor tests and unused transition logic
2026-03-30 07:43:37 -07:00
gsxdsm
2de1f8c419 fix(KB-111): implement invalid transition handling in executor
- Detect and handle invalid column transitions during task step updates
- Reorder error checks to catch invalid transitions before paused status
- Improve log messages with actual column names for better debugging
- Add comprehensive tests for invalid transition error scenarios
- Include changeset for the invalid transition fix
2026-03-30 07:40:41 -07:00
gsxdsm
863395b43c feat(KB-121): replace generic icons with brand SVG logos in ProviderIcon
- Replace Lucide icons with accurate brand SVG logos for AI providers (OpenAI, Anthropic, Google, Grok, XAI)\n- Update ProviderIcon tests with comprehensive coverage for new SVG icons\n- Add changeset for accurate provider icons feature\n- Remove obsolete FileEditor test file and related changeset\n- Clean up associated CSS styles
2026-03-30 07:40:28 -07:00
gsxdsm
7b58926894 fix(KB-109): fix FileEditor layout and add component tests
- Fix FileEditor to properly use full width with box-sizing and min-width constraints
- Add visible focus and selection states for the textarea-based editor
- Ensure FileEditor correctly responds to theme changes (dark/light mode)
- Add comprehensive FileEditor component tests (60 test lines)
- Include changeset for patch release of @dustinbyrne/kb
2026-03-30 07:39:07 -07:00
gsxdsm
8365986c1d feat(KB-106): remove duplicate ntfy notifications and add per-event-type deduplication
- Add per-event-type deduplication using Set to track recent notification hashes
- Remove auto browser-open behavior from dashboard command
- Add recentWindowMs configuration option for deduplication window timing
- Update notifier tests for new deduplication logic and error handling
- Add changeset for ntfy duplicate notifications fix
- Remove stale changeset for auto browser-open feature
2026-03-30 07:35:16 -07:00
gsxdsm
4eccd036a8 feat(KB-107): merge kb/kb-107
- feat(KB-107): complete Step 5 — add changeset for behavioral change
- test(KB-107): complete Step 4 — update tests to remove --no-open flag references
- feat(KB-107): complete Step 3 — remove --no-open from pi extension dashboard spawn
- feat(KB-107): complete Step 2 — simplify dashboard command, remove openBrowser function
- feat(KB-107): complete Step 1 — remove --no-open flag from CLI entry point
2026-03-30 07:34:10 -07:00
gsxdsm
fe91b082d1 feat(KB-094): redesign GitHub import modal
- Redesign GitHubImportModal layout with improved UI/UX\n- Add comprehensive tests covering all modal states\n- Update import modal documentation in README\n- Add CSS styling for polished modal appearance\n- Include changeset for patch release
2026-03-30 07:27:27 -07:00
gsxdsm
bf789f5c41 feat(KB-060): add model selection to task creation
- Extend task creation types, store persistence, and API payloads to accept executor and validator model overrides
- Add inline model selection to the dashboard create card with default normalization, retryable model loading, and focus-safe interactions
- Wire the list-view create flow through InlineCreateCard and style the dropdown to stay usable within the viewport on mobile and desktop
- Add store, route, app, list-view, and inline-create tests covering override submission, partial selections, and inline creation behavior
- Document the new creation-time model selection flow and include a published package changeset
2026-03-30 05:41:30 -07:00
gsxdsm
650b8ccfc3 fix(KB-096): restore usage button in dashboard header
- Add the optional usage action back to the dashboard Header component
- Preserve the existing board search UI while restoring the usage button wiring
- Add Header tests for usage button rendering and click behavior
- Add a patch changeset for the restored header usage action
2026-03-30 04:58:50 -07:00
gsxdsm
4e23716b7d feat(KB-063): add realtime GitHub badge updates
- Add a focused GitHub badge poller with shared rate-limit, freshness, and cleanup handling
- Wire a dedicated badge websocket server and routes to stream PR and issue badge snapshots
- Add a shared useBadgeWebSocket hook and update TaskCard to subscribe only when visible while preserving partial badge state
- Cover polling, websocket, and task card flows with tests and document the realtime badge channel
2026-03-30 03:19:51 -07:00
gsxdsm
93e0c12549 feat(KB-072): expand dashboard theme system with Factory tokens
- Add the Factory theme to shared theme types and the dashboard theme selector
- Validate persisted color themes against shared constants in useTheme and the pre-hydration init script
- Introduce reusable design tokens for typography, spacing, radius, shadows, and transitions in dashboard styles
- Add Factory-specific dark and light styling overrides for cards, buttons, columns, and theme swatches
- Strengthen theme tests to cover all supported themes, Factory previews, and stylesheet token contracts
2026-03-30 00:46:03 -07:00
gsxdsm
651c31fe1b feat(KB-058): complete Step 8 — documentation and changeset 2026-03-29 23:34:49 -07:00
gsxdsm
36cd94dbd5 feat(KB-070): add Ayu and One Dark themes to dashboard
- Add Ayu and One Dark to COLOR_THEMES and validThemes arrays
- Add CSS theme variables for both themes in styles.css
- Update ThemeSelector UI to include new theme options
- Extend Theme type to include ayu and one-dark values
- Update tests for ThemeSelector and useTheme hooks
- Add changeset for minor version bump
2026-03-29 23:26:16 -07:00
gsxdsm
fd9a1b186a feat(KB-093): add PR-first merge mode with configurable merge strategies
- Add mergeStrategy setting (fast-forward, squash, merge-commit) to config
- Implement PR-first auto-completion flow that monitors PR merge status
- Wire PR monitoring service to detect merge completion and trigger auto-close
- Add PR status UI to dashboard with merge progress indicator
- Update settings modal with merge strategy selector
- Add changeset for PR-first merge mode feature
2026-03-29 23:13:24 -07:00
gsxdsm
94f599a3df feat(KB-089): add board search functionality
- Add search state and filter logic to Board component (id, title, description)

- Add search input to Header with search icon and clear button

- Wire search query state through App component

- Add CSS styles for search input and visual states

- Include changeset for patch release
2026-03-29 23:07:51 -07:00
gsxdsm
1a245b4f2b fix(KB-084): fix card glow theming across all color themes
- Add --in-progress-rgb CSS variables for all themes (default, ocean, forest, sunset, berry, monochrome, cyberpunk, solarized)
- Update card agent-active glow to use rgba(var(--in-progress-rgb)) instead of hardcoded values
- Update list view agent-glow animation to use CSS variables
- Remove redundant light theme override for card glow (now handled by CSS variable)
- Add changeset for the theme fix
2026-03-29 22:56:47 -07:00
gsxdsm
eb626f7581 fix(KB-083): fix SpecEditor layout with proper CSS and remove hardcoded rows
- Add comprehensive CSS styles for SpecEditor component layout
- Remove hardcoded rows prop from SpecEditor for flexible sizing
- Add layout tests for SpecEditor to verify responsive behavior
- Include changeset for patch release of @dustinbyrne/kb package
2026-03-29 22:54:13 -07:00
gsxdsm
c676a26854 feat(KB-081): add provider icons to model selector with custom dropdown
- Create ProviderIcon component with provider-to-icon mappings (OpenAI, Anthropic, Google, etc.)

- Build CustomModelDropdown with icon display, filtering, and keyboard navigation

- Integrate custom dropdown into ModelSelectorTab replacing native select element

- Add CSS styles for provider icons in dropdown items and model badges

- Add comprehensive tests for ProviderIcon, CustomModelDropdown, and ModelSelectorTab
2026-03-29 22:51:23 -07:00
gsxdsm
bdb4eb782d feat(KB-074): add quick task creation with QuickEntryBox and NewTaskModal
- Add QuickEntryBox component for inline quick task entry in columns
- Add NewTaskModal component with full-featured task creation UI
- Integrate quick create flow through Column → Board → App component hierarchy
- Add comprehensive tests for both new components and updated existing tests
- Add CSS styles for modal, form inputs, and quick entry UI
- Include changeset for @dustinbyrne/kb package release
2026-03-29 22:40:04 -07:00
gsxdsm
99fdc26760 fix(KB-095): make vitest worker count configurable 2026-03-29 22:32:15 -07:00
gsxdsm
bcbb22a6ca feat(KB-080): add combined model dropdown with combobox component
- Create new combobox component for model/provider selection
- Refactor ModelSelectorTab to use combined dropdown UI
- Add scrollIntoView null check for test environment compatibility
- Add changeset for combined model dropdown feature
- Clean up obsolete changeset and subtask-related code
2026-03-29 22:26:10 -07:00
gsxdsm
f99ae366f7 feat(KB-040): add break-into-subtasks toggle for task creation
- Add breakIntoSubtasks flag to core Task model and persist to store
- Plumb subtask flag through dashboard API routes with validation
- Add subtask toggle UI to inline task creation card
- Update triage agent to handle automatic subtask breakdown when enabled
- Add comprehensive tests for store, API routes, and UI components
- Include changeset for patch release documenting the new feature
2026-03-29 22:23:47 -07:00
gsxdsm
55ca4796e6 feat(KB-071): rebrand dashboard to Fusion
- Rename dashboard header to Fusion\n- Update page title to Fusion\n- Replace logo with geometric four-dot design\n- Update Header tests for new branding\n- Add changeset for dashboard rename
2026-03-29 21:58:04 -07:00
gsxdsm
98e2e5e3c6 docs(KB-039): complete Step 8 — Documentation and changeset for usage indicator 2026-03-29 21:51:54 -07:00
gsxdsm
0698697dea test(KB-039): complete Step 7 — All tests passing (60 tests for usage feature) 2026-03-29 21:51:49 -07:00
gsxdsm
cf1bdda87f feat(KB-088): clear failed status when moving tasks and improve error display
- Fix moveTask to clear status/error/worktree/blockedBy when moving from in-progress to todo/triage
- Add error message display in TaskCard for failed tasks with truncation
- Add prominent error alert in TaskDetailModal for failed tasks
- Refactor usage tracking: move from app/components to dashboard/src/
- Add usage.ts and usage.test.ts for centralized usage tracking
- Remove UsageIndicator and useUsageData from app/ directory
- Update styles.css for error display components
- Update executor tests for error handling
- Add changeset for patch release
2026-03-29 21:48:44 -07:00
gsxdsm
63f530aac3 feat(KB-039): complete Step 2 — frontend API client and hook for usage data 2026-03-29 21:46:09 -07:00
gsxdsm
385739ee2c feat(KB-032): add Planning Mode for AI-assisted task creation
- Add PlanningModeModal component with interactive task planning UI
- Implement backend planning API with /api/planning endpoints
- Add PlanningSession class for managing planning state
- Integrate planning mode into dashboard with header button
- Add comprehensive tests for planning components and API routes
- Include AI agent structure for future planning automation
- Update README with Planning Mode documentation
2026-03-29 21:40:14 -07:00
gsxdsm
25647b844d fix(KB-078): include skipped steps in TaskCard progress calculation
- Fix progress bar to count skipped steps toward completed total

- Add test coverage for skipped steps in progress calculation

- Create changeset for the progress bar fix
2026-03-29 21:38:53 -07:00
gsxdsm
03424127e7 feat(KB-073): add interactive port selection for dashboard command
- Add --interactive flag to CLI parser for kb dashboard\n- Implement promptForPort helper with port availability validation\n- Add comprehensive tests for interactive port prompting\n- Update help text, README, and STANDALONE.md documentation\n- Add changeset for the interactive port feature
2026-03-29 21:36:10 -07:00
gsxdsm
a299de8b0d feat(KB-029): add file browser for viewing and editing task files
- Add server-side file service with list, read, and write operations
- Add REST API endpoints for file operations with tests
- Add client-side API functions and React hooks for file browsing
- Create FileBrowser, FileEditor, and FileBrowserModal components
- Add CodeMirror 6 for syntax-highlighted file editing
- Integrate Files tab into TaskDetailModal
- Add comprehensive file browser styles and responsive design
2026-03-29 21:18:21 -07:00
gsxdsm
bfd3343be4 feat(KB-057): add interactive terminal to dashboard
- Add backend terminal API with SSE streaming for real-time output
- Create useTerminal hook with command history and navigation
- Refactor TerminalModal into interactive shell component
- Update App and Header for standalone terminal button
- Add CSS styles for terminal UI (prompts, output, spinner, welcome screen)
- Update tests for new terminal behavior
2026-03-29 21:09:57 -07:00
gsxdsm
5b575923b5 feat(KB-057): complete Step 7 - Documentation & Delivery 2026-03-29 21:09:30 -07:00
gsxdsm
61303f1438 docs(KB-041): complete Step 6 — add refine feature to README and create changeset 2026-03-29 21:05:19 -07:00
gsxdsm
c5b09e1cb1 feat(KB-061): add model filter search to model selectors
- Add search input with clear button and results count to ModelSelectorTab
- Extract filterModels utility for shared filtering logic across components
- Apply filtering to SettingsModal model section
- Add CSS styles for filter UI components
- Add comprehensive tests for ModelSelectorTab and SettingsModal filtering
2026-03-29 20:55:01 -07:00
gsxdsm
0e26d1df30 feat(KB-052): refactor GitHub integration to use gh CLI
- Create gh-cli utility module with auth detection and command execution
- Refactor GitHubClient to use gh CLI commands with REST API fallback
- Refactor PR Monitor to use gh CLI for PR operations
- Add listIssues() and getIssue() methods to GitHubClient
- Remove in-app GitHubRateLimiter (gh CLI handles rate limiting)
- Update all tests for gh CLI implementation
- Update AGENTS.md and extension docs for gh CLI auth preference
2026-03-29 20:52:07 -07:00
gsxdsm
6f43bdcdf4 feat(KB-036): add worktreeNaming setting for configurable worktree directory names
- Add worktreeNaming setting type with 'random' | 'task-id' | 'task-title' options
- Update executor to generate worktree names based on setting value
- Create worktree-names.ts utility module with generateWorktreeName function
- Add comprehensive executor tests for all naming strategies
- Update AGENTS.md documentation with setting description and usage
- Include changeset for patch release
2026-03-29 20:48:50 -07:00
gsxdsm
d288e158d5 feat(KB-024): add comprehensive theme system to dashboard
- Add ThemePreference type and useTheme hook for theme state management
- Create CSS theme architecture with 8 built-in color themes
- Build ThemeSelector component with live preview and keyboard navigation
- Add theme toggle to Header with quick-switch capability
- Integrate Appearance section into SettingsModal
- Wire theme system into App component with system preference detection
- Add comprehensive tests for useTheme, ThemeSelector, and Header
- Include theming documentation in dashboard README
- Add changeset for patch release
2026-03-29 20:22:00 -07:00
gsxdsm
b935f310ce feat(KB-022): add GitHub issue status badges to task cards
- Extend core types with GitHub issue tracking fields (issueNumber, issueStatus, lastIssueSync)
- Add TaskStore.getTaskGitHubIssueInfo() to fetch issue details from GitHub API
- Create server-side API endpoint for issue status lookup with caching
- Build GitHubBadge component with color-coded status indicators (open/closed)
- Integrate badges into TaskCard with hover state linking to GitHub issues
- Add CSS styles for badge positioning and visual polish
- Include comprehensive tests for GitHubBadge and TaskCard badge rendering
2026-03-29 20:12:13 -07:00
gsxdsm
37afb24d60 feat(KB-034): add task archive/unarchive functionality
- Add 'archived' column to task store with archiveTask and unarchiveTask methods
- Add CLI commands: kb task archive <id> and kb task unarchive <id>
- Add pi extension tools for archive and unarchive operations
- Add dashboard API endpoints POST /api/tasks/:id/archive and /unarchive
- Add Archived column to board UI with archive/unarchive buttons
- Prevent drag-drop into archived column, add visual distinction
- Include duplicateTask from concurrent branch in merge resolution
2026-03-29 20:03:43 -07:00
gsxdsm
6c151b6591 feat(KB-051): add duplicate task button in task detail modal
- Add duplicateTask action to useTasks hook for creating task copies

- Add Duplicate button to TaskDetailModal with visual styling

- Wire up duplicateTask action through App.tsx task handlers

- Add comprehensive tests for duplicate button functionality

- Include changeset for the new duplicate task feature
2026-03-29 19:56:07 -07:00
gsxdsm
ee6179b826 feat(KB-055): merge feat-github-int into main 2026-03-29 19:54:21 -07:00
gsxdsm
b7dfeb1b34 feat(KB-050): move progress bar to top of task card
- Move progress bar before task title for improved visual hierarchy

- Make task completion status more prominent at first glance

- Add changeset documenting the UI improvement
2026-03-29 19:53:26 -07:00
gsxdsm
3b71d032a6 feat(KB-048): add collapsible list sections to dashboard
- Add section expansion state management with localStorage persistence
- Update section headers with chevron toggle controls
- Implement conditional task row rendering based on section state
- Add Expand All / Collapse All toolbar controls
- Add CSS styles for chevron rotation animation and section headers
- Add comprehensive tests for collapsible section behavior
2026-03-29 19:51:41 -07:00
gsxdsm
0eb3315911 feat(KB-026): add ntfy.sh push notification support
- Add ntfy settings (ntfyEnabled, ntfyTopic) to core types and config storage
- Create NtfyNotifier service with event-based notifications for task completion/failure
- Add Notifications section to SettingsModal for configuring ntfy topic
- Wire up NtfyNotifier in engine to send notifications on task state changes
- Include ntfy topic in task templates for per-task notification override
- Add comprehensive tests for NtfyNotifier service
2026-03-29 19:46:35 -07:00