Commit Graph

33 Commits

Author SHA1 Message Date
gsxdsm
f24d28207a fix(KB-098): auto-save task model overrides
- Auto-save executor and validator model selections immediately from the model selector tab
- Send explicit null override fields when users switch a task back to default models
- Keep saved badges stable while requests are pending and restore the previous selection on save failures
- Expand ModelSelectorTab tests to cover auto-save requests, status feedback, success toasts, and clear-to-default flows
2026-03-30 06:00:58 -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
b64b94be1f fix(KB-058): resolve API naming conflict and TypeScript errors 2026-03-29 23:35:32 -07:00
gsxdsm
bca679e960 feat(KB-058): complete Step 6 — add PTY terminal API client functions 2026-03-29 23:28:08 -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
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
a242b04117 feat(KB-039): restore deleted files — UsageIndicator, useUsageData hook and tests 2026-03-29 21:49:46 -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
26416d4919 test(KB-082): complete Step 6 — Add/update tests for error field and retry 2026-03-29 21:44:44 -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
gsxdsm
8b15437124 feat(KB-029): merge kb/kb-029 (auto-resolved)
- chore(KB-029): add changeset for file browser feature
- docs(KB-029): complete Step 13 — add file browser documentation to README
- feat(KB-029): complete Step 10 — add file browser and editor styles
- feat(KB-029): complete Steps 5-11 — hooks, components, styles, and integration
- feat(KB-029): complete Step 10 — integrate Files tab with TaskDetailModal
- fix(KB-029): restore file-service.test.ts
- feat(KB-029): complete Steps 7-9 — create FileBrowser, FileEditor, and FileBrowserModal components
- feat(KB-029): complete Steps 5-6 — create file browser and editor hooks
- feat(KB-029): complete Step 4 — add client-side file API functions
- fix(KB-029): restore accidentally deleted file-service.test.ts
- feat(KB-029): complete Step 3 — add file API routes with tests
- feat(KB-029): complete Step 3 — add file API routes with fixed tests
- feat(KB-029): complete Step 3 — add file API routes to routes.ts
- feat(KB-029): complete Step 2 — create server-side file service with tests
- feat(KB-029): complete Step 2 — create server-side file service (revised API)
- feat(KB-029): complete Step 2 — create server-side file service
- feat(KB-029): complete Step 1 — add CodeMirror 6 dependencies
2026-03-29 21:18:25 -07:00
gsxdsm
4b83c13ff7 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
c6f4c2d243 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
c2f4f61d47 feat(KB-041): add task refine capability across core, API, UI, and CLI
- Add refineTask() to TaskStore with validation for feedback and requirements
- Add POST /tasks/:id/refine API endpoint with tests
- Add refine UI to TaskDetailModal for submitting feedback
- Add kb_task_refine tool to pi extension for AI-driven refinement
- Add 'kb task refine' CLI command for manual task refinement
- Include validation constraints: max 2000 chars feedback, max 5000 chars requirements
2026-03-29 21:05:57 -07:00
gsxdsm
5e59c0419e feat(KB-057): complete Step 0 and 1 — backend API and frontend client for interactive terminal 2026-03-29 20:48:39 -07:00
gsxdsm
6c59560a0a 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
52b8205220 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
a53e4c1420 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
Dustin Byrne
c802108a02 refactor(HAI-116): rename kb to hai across all packages, CLI, and docs
- Rename npm packages from @kb/* to @hai/* and update all workspace references
- Rename CLI binary from kb to hai and config directory from .kb to .hai
- Update dashboard UI branding, titles, and references from kb to hai
- Update all test files, CI workflows, and documentation to reflect new naming
- Run comprehensive grep verification to ensure no stale kb references remain
2026-03-26 22:44:11 -04:00
Dustin Byrne
a8b767d6fc feat(HAI-098): add model selection and configuration support
- Extend Settings type with model provider and model name fields
- Add backend API endpoint to list available models
- Add frontend API client for fetching models
- Add model settings section to SettingsModal with provider/model dropdowns
- Update engine executor to use the selected model from settings
2026-03-26 22:44:11 -04:00
Dustin Byrne
615f31c777 feat(HAI-096): add task pause/unpause functionality
- Add paused field to Task data model and store with pauseTask method
- Update triage, scheduler, and executor to respect paused flag and terminate paused tasks
- Add REST API endpoints and CLI commands for pause/unpause operations
- Add dashboard UI visual indicator and toggle for paused state
- Update README with pause/unpause CLI command documentation
2026-03-26 22:44:11 -04:00
Dustin Byrne
7955897013 feat(HAI-095): add authentication settings UI with backend API
- Add backend auth API endpoints (GET/PUT) with validation in routes.ts
- Create frontend API client functions for fetching and updating auth config
- Add Authentication Settings section to SettingsModal with token input form
- Add comprehensive tests for routes, API client, and SettingsModal components
- Wire up auth settings routes in dashboard server
2026-03-26 19:39:31 -04:00
Dustin Byrne
20264a854d feat(HAI-072): add agent log viewer with persistence, streaming, and UI
- Add agent log persistence layer with JSONL append/read and event emission in core store
- Add server-side SSE log streaming endpoint and REST route for fetching logs
- Create AgentLogViewer component and useAgentLogs hook for real-time log display
- Integrate log viewer into TaskDetailModal
- Fix pre-existing build and test errors
2026-03-26 00:36:48 -04:00
Dustin Byrne
efda541713 feat(HAI-057): add task dependency editing to dashboard UI
- Add dependencies field support to store updateTask method
- Wire dependencies through PATCH route and client API
- Add dependency editing UI (add/remove) to TaskDetailModal
- Pass tasks prop from App to TaskDetailModal for dependency picker
- Add tests for dependency CRUD in modal and API layer
2026-03-26 00:15:29 -04:00
Dustin Byrne
35177f448f feat(HAI-055): add failed task status handling with retry support
- Set task status to 'failed' on execution failure in engine executor
- Add failed indicator styling on TaskCard component
- Add POST /tasks/:id/retry API endpoint and client function
- Add retry button in TaskDetailModal for failed tasks
- Add tests for failed indicator, retry endpoint, and modal behavior
2026-03-25 23:50:11 -04:00
Dustin Byrne
2fc6cba0b5 fix(HAI-036): add retry logic to fetchTaskDetail
- Convert fetchTaskDetail to async with explicit fetch call
- Add single retry attempt on failure (2 max attempts)
- Parse and throw server error message on final failure
2026-03-25 22:45:11 -04:00
Dustin Byrne
2750d4b262 feat(HAI-023): complete Step 3 — dashboard UI view and upload screenshots 2026-03-25 22:03:42 -04:00
Dustin Byrne
2488e1c9d2 feat(HAI-020): complete Step 3 — remove withRetry workaround from fetchTaskDetail 2026-03-25 21:38:16 -04:00
Dustin Byrne
6f1cc2cb48 fix(HAI-018): complete Step 2 — add client-side retry for fetchTaskDetail
- Added withRetry wrapper in api.ts (1 retry, 200ms delay)
- fetchTaskDetail now retries transient 500s transparently
- TaskCard shows 'Failed to load task details' instead of raw error
- Added api.test.ts with success, retry-success, and exhaustion tests
2026-03-25 21:32:11 -04:00
Dustin Byrne
6ab434ccaf feat(HAI-004): add frontend API functions for settings 2026-03-25 20:03:01 -04:00
Dustin Byrne
f5dbcd5c81 feat(HAI-002): add scheduler config endpoint to dashboard API 2026-03-25 18:52:08 -04:00
Dustin Byrne
918941a555 feat: merge HAI-002 React dashboard + add merge flow 2026-03-25 18:38:34 -04:00
Dustin Byrne
57a8015ee3 feat(HAI-002): implement shared hooks and API layer 2026-03-25 18:25:13 -04:00