Commit Graph

1802 Commits

Author SHA1 Message Date
gsxdsm
cda352c428 test(KB-208): fix EventSource mock cleanup in useTasks tests
- Fix EventSource mock cleanup to prevent test pollution between cases
- Improve test isolation for SSE event handling
- Refactor test setup and teardown for better reliability
2026-03-30 16:07:35 -07:00
gsxdsm
b071b05228 feat(KB-207): reverse pace indicator colors
- Swap pace indicator colors in dashboard styles.css

- Add changeset for the pace color reversal

- Update pace color scheme for better visual clarity
2026-03-30 16:00:29 -07:00
gsxdsm
e058564438 fix(KB-195): fix theme-aware styling for UsageIndicator toggle buttons
- Update UsageIndicator toggle active state to use var(--todo) and var(--bg)

- Add hover state styling for active toggle button

- Ensure consistent styling with Header view toggle across all themes

- Add changeset for patch release
2026-03-30 15:57:32 -07:00
gsxdsm
533571d82e feat(KB-189): prevent mobile zoom on all quick entry inputs
- Extend mobile font size fix from textarea to all quick entry inputs (input, select)

- Update CSS selector to cover all quick entry form elements

- Add changeset for mobile zoom fix
2026-03-30 15:55:36 -07:00
gsxdsm
23692e1fa3 fix(KB-186): add pace indicators for Gemini provider
- Add windowDurationMs (24h) to Gemini usage windows for daily rate limits
- Track resetMs in Gemini usage data for pace calculation
- Update applyPaceToWindow to apply pace to any window with timing data
- Fix pace indicators not showing for Gemini provider
2026-03-30 15:52:21 -07:00
gsxdsm
43663adc38 chore(KB-205): increase Vitest maxWorkers default from 8 to 16
- Update default VITEST_MAX_WORKERS from 8 to 16 in all packages
- Affects CLI, Core, Dashboard, and Engine vitest configs
- Improves test execution parallelism on multi-core machines
- Environment variable override still supported via VITEST_MAX_WORKERS
2026-03-30 15:40:45 -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
7e1fdfeaf2 feat(KB-152): add Minimax and Zai providers with usage pace indicators
- Add Minimax provider backend with full test coverage
- Add Zai (Zhipu AI) provider backend for additional model options
- Implement pace calculation in UsageWindow with ahead/behind/on-pace detection
- Update UsageIndicator frontend component to consume backend pace data
- Fix pace indicator colors and icons to match design specification
- Resolve ListView QuickEntryBox type error for type safety
2026-03-30 13:45:52 -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
297013000f feat(KB-199): add retry CLI command and extension tool
- Add kb task retry command to CLI with --force and --all flags
- Implement runTaskRetry() to re-run failed or completed tasks
- Add kb_task_retry extension tool for Pi agent integration
- Update CLI help text and command registration
- Add comprehensive tests for retry command and extension tool
- Include changeset for patch release
2026-03-30 13:37:09 -07:00
gsxdsm
80e9575cbc feat(KB-198): add task delete CLI command with --force flag
- Add `kb task delete` CLI command with required --force flag for safety
- Implement runTaskDelete function with task existence validation
- Register kb_task_delete tool in Pi extension for chat agent access
- Add comprehensive unit tests for runTaskDelete and extension registration
- Wire delete command in CLI bin.ts with proper argument parsing
2026-03-30 13:27:59 -07:00
gsxdsm
01faf8cb89 test(KB-197): fix Pencil mock in TaskCard tests 2026-03-30 13:19:53 -07:00
gsxdsm
56d2dbb357 test(KB-197): complete Step 2 — add regression tests for size badge positioning 2026-03-30 13:17:36 -07:00
gsxdsm
d59d81f079 feat(KB-197): complete Step 1 — fix card header layout with actions wrapper 2026-03-30 13:17:00 -07:00
gsxdsm
cc31967d65 feat(KB-194): add collapsible sections to ListView with localStorage persistence
- Add collapse state management with localStorage persistence per section
- Update section headers with chevron icon and click handler
- Conditionally render task rows based on collapsed state
- Add aria-expanded attribute for accessibility
- Add comprehensive tests for collapsible section behavior
2026-03-30 13:15:59 -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
gsxdsm
fc0ce7cf95 feat(KB-193): auto-expand steps for in-progress task cards
- Auto-expand steps disclosure when task is in-progress
- Keep steps collapsed for todo/done/archived states
- Add comprehensive tests for auto-expand behavior in TaskCard
- Update TaskCard component with expanded state logic
2026-03-30 12:49:25 -07:00
gsxdsm
b0f1de4eb1 feat(KB-192): move progress bars to top of definition tab
- Reposition progress indicator bars to the top of the definition tab in TaskDetailModal
- Add changeset for the UI improvement
2026-03-30 12:42:44 -07:00
gsxdsm
a833b7e455 feat(KB-191): change request refinement button to 'Refine'
- Update TaskDetailModal button text to 'Refine'

- Update test assertions in TaskDetailModal.test.tsx

- Add changeset for the UI text change

- Remove stale kb-100-header-test-branding changeset file
2026-03-30 12:39:38 -07:00
gsxdsm
b1bd60a94d fix(KB-190): prevent mobile zoom in dashboard
- Add user-scalable=no to viewport meta tag in index.html
- Include changeset for the mobile zoom prevention fix
2026-03-30 12:29:55 -07:00
gsxdsm
c6774d8162 feat(KB-188): reorganize header button layout for mobile
- Reorganize Header component button layout for mobile view

- Update Header tests with mobile layout coverage

- Improve responsive button arrangement in mobile breakpoint
2026-03-30 12:26:33 -07:00
gsxdsm
cdeaa48432 feat(KB-183): replace native select with CustomModelDropdown in SettingsModal
- Replace native <select> with CustomModelDropdown for model selection
- Remove legacy option filtering and selection logic from SettingsModal
- Update SettingsModal tests to work with new dropdown component
- Add comprehensive test coverage for CustomModelDropdown interactions
2026-03-30 12:16:59 -07:00
gsxdsm
576ddb07a0 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
6631148ea9 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
b372200949 feat(KB-097): clean up type errors and remove obsolete code
- Remove stale changeset files (mobile touch fixes, subtask breakdown)
- Fix type errors in QuickEntryBox and TaskCard components
- Remove obsolete test files (TaskCard.test.tsx, triage.test.ts)
- Fix import issues in planning.ts
- Clean up triage.ts and useAgentLogs.ts
2026-03-30 11:47:37 -07:00
gsxdsm
75821418ee 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
ba69864707 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
7b18926a7b 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
a06a2cff27 fix(KB-090): improve refinement route validation with trimmed feedback
- Trim whitespace from feedback before length validation
- Catch whitespace-only input at route level before store call
- Update test to verify route-level validation blocks empty feedback
- Use trimmed feedback for store operations and logging
2026-03-30 11:27:06 -07:00
gsxdsm
50cd478f2e 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
753bec19df 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
904a95f7c0 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
e02356b836 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
b5ce4d2f0a 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
66b2aac57f 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
519c792e00 test(KB-120): add search filter tests for Header and Board
- Add Header search tests for filter functionality (48 lines)

- Add Board search filter tests for task filtering (203 lines)

- Remove unused code from TaskDetailModal component

- Cover search input rendering and filter behavior for both components
2026-03-30 09:17:29 -07:00
gsxdsm
2e163a37df feat(KB-166): fix search reset bug in dependency dropdown
- Fix search input resetting when selecting dependencies in PlanningModeModal
- Remove obsolete changeset file fix-planning-modal-autostart.md
- Update PlanningModeModal tests for the fixed behavior
- Add focus management improvements in TaskDetailModal
2026-03-30 09:15:29 -07:00
gsxdsm
8debaec941 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
4784b4bc8d feat(KB-164): unify list view task creation with board view modal
- Replace inline QuickEntryBox with NewTaskModal trigger in list view
- Wire ListView to open NewTaskModal via onCreateTask prop
- Remove standalone task creation logic from QuickEntryBox
- Update App component to pass modal handlers to ListView
- Simplify QuickEntryBox to pure quick-entry without inline creation
- Update tests to verify unified modal-based creation flow
2026-03-30 09:12:23 -07:00
gsxdsm
168618efb1 feat(KB-160): implement expandable textarea in QuickEntryBox
- Add expandable textarea with auto-resize functionality to QuickEntryBox
- Update QuickEntryBox tests for new expandable behavior
- Refactor PlanningModeModal tests for improved consistency
- Remove obsolete changeset for planning-mode-streaming fix
- Add CSS transitions for smooth textarea expansion
2026-03-30 09:06:57 -07:00
gsxdsm
9823849346 test(KB-159): skip timing-sensitive auto-start tests 2026-03-30 09:02:00 -07:00
gsxdsm
63106cf449 test(KB-159): update PlanningModeModal tests for streaming 2026-03-30 08:59:21 -07:00
gsxdsm
a749d206d3 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
c12428e996 feat(KB-159): complete Step 4 — update frontend for streaming display 2026-03-30 08:55:07 -07:00
gsxdsm
9085e8d867 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
dbb9791504 feat(KB-159): complete Step 2 — implement planning session SSE infrastructure 2026-03-30 08:49:54 -07:00
gsxdsm
cd5fb2806b feat(KB-144): add mobile-safe planning mode text inputs
- Set planning mode text inputs to 16px font size to prevent iOS auto-zoom on focus

- Update TaskDetailModal component with mobile-safe input styling

- Add CSS styles for mobile-safe planning mode inputs

- Add unit tests for mobile planning input font size behavior

- Document mobile-safe planning mode input behavior and rationale
2026-03-30 08:42:01 -07:00
gsxdsm
fb0846fc17 feat(KB-155): fix dropdown search reset in TaskDetailModal
- Fix search input state not resetting when task detail modal reopens
- Remove obsolete mobile input font size test file
- Clean up stale changeset for PTY loading fix
- Update terminal service error handling
- Remove test artifacts and temporary KB-* directories
2026-03-30 08:40:13 -07:00
gsxdsm
c1c38aa7df Remove unused files 2026-03-30 08:39:47 -07:00
gsxdsm
62a63a4964 feat(KB-131): add mobile-safe task entry input with regression tests
- Apply 16px font size to mobile task entry inputs to prevent iOS auto-zoom
- Add regression tests for mobile input font sizing behavior
- Document mobile-safe task-entry requirements in dashboard README
- Update terminal service PTY loading logic
2026-03-30 08:38:27 -07:00