Commit Graph

126 Commits

Author SHA1 Message Date
gsxdsm
824799fadd fix(KB-172): fix terminal session leak with activity tracking and stale eviction
- Add session activity tracking (lastActivityAt) to TerminalService
- Implement stale session eviction when approaching session limits
- Fix WebSocket close handler to properly kill PTY sessions on disconnect
- Add lastActivityAt to session listing endpoint for observability
- Add comprehensive tests for activity tracking, eviction, and terminal routes
- Add changeset for patch release
2026-03-30 12:11:12 -07:00
gsxdsm
f9596d9642 feat(KB-181): add kb task plan command with planning mode
- Add kb task plan CLI command for interactive planning mode
- Create planTask tool in extension for LLM-initiated planning sessions
- Add comprehensive tests for task plan command with edge cases
- Update QuickEntryBox UI with planning mode button
- Add changeset for planning mode CLI feature
2026-03-30 11:53:16 -07:00
gsxdsm
fba739e21f fix(KB-167): prevent task modal from opening on mobile scroll
- Implement touch gesture detection to distinguish tap from scroll gestures
- Add CSS touch-action property for proper mobile scroll handling
- Add comprehensive tests for touch gesture behavior in TaskCard
- Include changeset for patch release
2026-03-30 11:42:56 -07:00
gsxdsm
b4631032f6 feat(KB-149): add mobile touch gesture support to TaskCard
- Implement touch gesture detection for swipe and tap interactions in TaskCard
- Add comprehensive tests for touch event handling (209 lines of test coverage)
- Include changeset for mobile touch sensitivity fix
- Enable smooth card interactions on mobile devices
2026-03-30 11:40:09 -07:00
gsxdsm
467f724a1b feat(KB-178): add proactive triage subtask guidance
- Add proactive subtask breakdown prompts to triage agent
- Update dashboard routes to support triage subtask operations
- Add comprehensive tests for triage subtask guidance logic
- Include changeset for @dustinbyrne/kb package release
2026-03-30 11:33:07 -07:00
gsxdsm
a7de078fef feat(KB-129): dashboard performance optimizations
- Fix SSE hook cleanup to prevent memory leaks and stale connections
- Cap agent log memory and optimize batch log processing
- Memoize Board, Column, and TaskCard with custom comparator to reduce re-renders
- Stabilize column task arrays and preserve pagination across live updates
- Add TaskCardBadge component for PR/issue state display
- Remove deprecated GitHub polling code and archive functionality from core store
2026-03-30 11:26:55 -07:00
gsxdsm
d147428430 refactor(KB-067): migrate GitHub issue routes from fetch to gh CLI
- Replace fetch-based GitHub API calls with gh CLI in issues/fetch and issues/import routes
- Update tests to mock gh CLI instead of fetch with proper error handling
- Reduce code complexity by leveraging gh CLI's built-in JSON output
- Add changeset documenting the refactoring work
2026-03-30 11:19:02 -07:00
gsxdsm
15025c5b64 feat(KB-156): implement archive cleanup with restoration support
- Add ArchiveEntry type and archive.jsonl storage format for compact task archives
- Implement archiveTask() with optional cleanup and archiveTaskAndCleanup() convenience method
- Add restoreFromArchive() to reconstruct tasks from archive entries when directory is missing
- Implement cleanupArchivedTasks() for bulk cleanup of all archived task directories
- Add comprehensive tests for archive, cleanup, and restore operations (385+ lines)
- Add readArchiveLog(), findInArchive(), and unarchiveTask() API methods
- Document archive storage pattern and restoration behavior in AGENTS.md
- Include changeset for patch release noting archive cleanup feature
2026-03-30 11:01:48 -07:00
gsxdsm
d928a31bd4 feat(KB-066): add batch GitHub import with throttled request handling
- Add fetchThrottled utility to GitHubClient with 429 retry handling and exponential backoff
- Implement POST /api/github/batch-import endpoint for bulk GitHub resource imports
- Add frontend API client function for batch import operations
- Add comprehensive tests for throttled requests and batch import endpoint
- Add retryAfter field to batch import result types for rate limit handling
- Clean up unfinished UsageIndicator component and worktree retry cleanup code
- Add changeset documenting the new batch GitHub import feature
2026-03-30 10:56:33 -07:00
gsxdsm
702361eafc fix(KB-170): handle worktree cleanup after merge retries exhausted
- Add mergeRetries counter to track per-task retry attempts
- Auto-resolve lock files and generated files during retry attempts
- Clean up worktree when all 3 merge retry attempts are exhausted
- Add comprehensive tests for retry cleanup logic in executor
- Add changeset for the worktree retry cleanup fix
2026-03-30 10:50:43 -07:00
gsxdsm
4b919fb732 feat(KB-168): add usage pace indicator to dashboard
- Add pace calculation based on task velocity to UsageIndicator
- Display pace marker and progress bar with visual indicators
- Add view mode toggle for compact vs detailed display
- Include comprehensive tests for pace indicator behavior
- Add changeset for the new feature
2026-03-30 10:44:14 -07:00
gsxdsm
c3dc12bede fix(KB-165): resolve planning modal autostart in StrictMode
- Fix double-render bug by using ref for hasAutoStarted instead of state\n- Enable auto-start planning tests in App.test.tsx and ListView.test.tsx\n- Add changeset for the planning modal autostart fix\n- Add comprehensive tests for planning mode auto-start behavior
2026-03-30 09:13:10 -07:00
gsxdsm
f37b5d3fde docs(KB-159): add changeset for planning mode streaming feature 2026-03-30 09:02:08 -07:00
gsxdsm
28d86a3175 feat(KB-158): fix refresh button spacing and remove transient error detection
- Fix refresh button icon spacing in UsageIndicator component

- Remove transient error detection feature and related tests

- Clean up planning mode API routes and modal integration code

- Add changeset for refresh button spacing fix

- Remove obsolete handle-transient-errors changeset
2026-03-30 08:55:19 -07:00
gsxdsm
bff0c13d85 feat(KB-159): complete Step 4 — update frontend for streaming display 2026-03-30 08:55:07 -07:00
gsxdsm
7954c62201 feat(KB-153): add usage view mode toggle and provider icons
- Add 'used' vs 'remaining' view mode toggle with localStorage persistence
- Integrate ProviderIcon component for visual provider identification
- Add getProviderIconKey helper to map provider names to icon keys
- Update UsageWindowRow to display percentages based on selected view mode
- Add comprehensive tests for view mode toggle and icon rendering
2026-03-30 08:50:41 -07:00
gsxdsm
48429e3d45 fix(KB-151): lazy-load node-pty to fix packaged binary execution
- Convert static node-pty import to dynamic import in TerminalService\n- Only load native PTY module when terminal session is actually created\n- Fix Bun-compiled binary failures on commands like --help, task list\n- Add changeset documenting the lazy-loading fix
2026-03-30 08:37:31 -07:00
gsxdsm
870191c31a feat(KB-119): complete Step 6 — add changeset for styling fix 2026-03-30 08:10:01 -07:00
gsxdsm
723493ce29 feat(KB-119): complete Step 1 — fix model selector row alignment 2026-03-30 08:06:46 -07:00
gsxdsm
7c0a0ce1a7 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
4ca33625ed 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
36a7bbe18a 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
626e395202 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
0986a65895 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
0a718fc3ed 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
94685548c5 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
05fad4951e 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
580b997d4f 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
c9535023d1 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
ea084c0ff2 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
5f10e3aac7 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
89b2899935 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
bce16bd817 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
751d9c6cba feat(KB-058): complete Step 8 — documentation and changeset 2026-03-29 23:34:49 -07:00
gsxdsm
cd7b866daa 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
7d62a3abc2 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
331ad42b95 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
695a8e12db 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
58a4753d6c 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
44ac59c6a7 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
8c46ef3cc6 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
2e94b78bb9 fix(KB-095): make vitest worker count configurable 2026-03-29 22:32:15 -07:00
gsxdsm
ebdfe703d8 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
86efb14947 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
d63c11dc9c 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
f6c5e670a3 docs(KB-039): complete Step 8 — Documentation and changeset for usage indicator 2026-03-29 21:51:54 -07:00
gsxdsm
53df8d42eb test(KB-039): complete Step 7 — All tests passing (60 tests for usage feature) 2026-03-29 21:51:49 -07:00
gsxdsm
49f290da3c 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
fc3742582d feat(KB-039): complete Step 2 — frontend API client and hook for usage data 2026-03-29 21:46:09 -07:00
gsxdsm
89874b58c7 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