Commit Graph

35 Commits

Author SHA1 Message Date
gsxdsm
d80a5765cf feat(FN-671): preserve quick entry disclosure and normalize comment migration
- Keep QuickEntryBox disclosure state persisted and covered by updated UI tests
- Add normalized legacy comment migration logic to unify steering comments without duplication
- Update database migration tests to verify schema v5 comment handling behavior
- Carry merged dashboard, engine, and routing changes into the squash commit
2026-04-01 13:07:26 -07:00
gsxdsm
65b4620656 feat(KB-313): add task comments and merge details
- Add TaskComment and TaskCommentInput types to core
- Add MergeDetails type for tracking merge information
- Implement addTaskComment and list task comments in store
- Add comment API routes (/api/tasks/:id/comments)
- Add comment UI components in dashboard task modal
- Add CLI commands: kb task comment and kb task comments
- Include merge details display in task detail view
- Add tests for comment functionality
2026-03-31 14:44:48 -07:00
gsxdsm
e03bd1ae38 feat(KB-045): add scheduled tasks automation system
- Add AutomationStore and core automation types for cron-based scheduling
- Implement CronRunner engine for executing scheduled automations
- Add REST API routes for CRUD operations on automations
- Create UI components: ScheduleCard, ScheduleForm, and ScheduledTasksModal
- Integrate scheduled tasks into dashboard App.tsx and CLI dashboard command
- Add comprehensive tests for store, runner, API, and UI components
- Include changeset for the new scheduled tasks feature
2026-03-30 16:27:23 -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
0e61a45d72 feat(KB-141): fix workspace type resolution and add clean-checkout typecheck tests
- Remove dist-dependent workspace type resolution from all tsconfig files

- Add clean-checkout typecheck regression test to CI suite

- Update package.json type definitions for core, engine, dashboard, and cli packages

- Update README with typecheck testing documentation

- Clean up unused test files and component dependencies
2026-03-30 08:24:16 -07:00
gsxdsm
04711205fb feat(KB-134): remove planning mode checkbox and repair strict typecheck gate
- Remove PlanningModeModal checkbox functionality and related tests
- Delete NewTaskModal.test.tsx and PlanningModeModal.test.tsx
- Repair strict typecheck gate in typecheck.test.ts
- Update engine dependencies (add execa)
- Add development note about strict typecheck to dashboard README
- Clean up App.tsx and NewTaskModal.tsx planning mode code
2026-03-30 08:00:41 -07:00
gsxdsm
4a2315934f feat(KB-058): complete Step 1 — add node-pty and xterm.js dependencies 2026-03-29 23:24:08 -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
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
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
Dustin Byrne
2d13b82d7c feat: pi extension 2026-03-28 22:14:40 -04:00
Dustin Byrne
ae90be05e9 feat(KB-131): bundle workspace dependencies into CLI for npm publish
- Replace tsc with tsup (esbuild) to inline @kb/* workspace code into a single dist/bin.js
- Move @kb/core, @kb/dashboard, @kb/engine from dependencies to devDependencies
- Add tsup.config.ts that copies dashboard client assets into dist/client/
- Add bundle output tests verifying shebang, inlined code, and no bare @kb/* imports
- Add changeset for the bundled CLI build fix
2026-03-27 20:10:41 -04: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
5e76a03287 feat(HAI-103): wire AuthStorage and ModelRegistry into dashboard server
- Integrate AuthStorage and ModelRegistry from pi-coding-agent into createServer
- Pass authStorage and modelRegistry options to enable auth tab and model selector
- Add comprehensive unit tests for AuthStorage/ModelRegistry wiring in dashboard
- Add pi-coding-agent dependency to cli package
2026-03-26 22:44:11 -04:00
Dustin Byrne
a12550d625 feat(HAI-088): add @types/node to dashboard and typecheck regression test
- Add @types/node ^22.0.0 to @hai/dashboard devDependencies
- Add typecheck regression test that runs tsc --noEmit --skipLibCheck false
- Update pnpm-lock.yaml with resolved dependencies
2026-03-26 01:00:50 -04:00
Dustin Byrne
cab27b5096 fix(HAI-085): resolve TS2307/TS2339 build errors in engine package
- Add @types/node dev dependency to fix TS2307 module resolution errors
- Sort dependencies alphabetically in engine package.json
- Update pnpm-lock.yaml with new type definitions
2026-03-26 00:55:16 -04:00
Dustin Byrne
b12d34010c feat(HAI-081): add changesets-based automated versioning and release workflow
- Install and configure @changesets/cli with commit/access settings
- Create version PR workflow (.github/workflows/version.yml) for automated version bumps
- Update existing release and test-release workflows with version validation
- Add example changeset and version tests for CI verification
- Add RELEASING.md guide and update README with versioning documentation
2026-03-26 00:53:13 -04:00
Dustin Byrne
0b7e8e874a feat(HAI-077): add CI/CD workflows for PRs, releases, and manual testing
- Add CI workflow for pull requests and pushes with lint, test, and build steps
- Add release workflow for tagged versions with automated publishing
- Add manual test-release workflow for on-demand validation
- Add workflow validation tests and remove obsolete build/test files
- Update README with CI/CD documentation and badge references
2026-03-26 00:41:05 -04:00
Dustin Byrne
e9d30c8697 test(HAI-029): add tests for runTaskShow output 2026-03-25 22:20:12 -04:00
Dustin Byrne
507c0d6b67 feat(HAI-023): complete Step 2 — dashboard API upload/download/delete routes 2026-03-25 22:00:51 -04:00
Dustin Byrne
0e023c7b2b fix(HAI-018): improve error handling for task detail fetching
- Fix server-side error handling in GET /tasks/:id with retry on transient failures
- Add client-side retry logic for fetchTaskDetail in dashboard
- Add unit tests for routes and API error/retry behavior
- Remove outdated core store tests and vitest config
- Update documentation for error handling improvements
2026-03-25 21:33:39 -04:00
Dustin Byrne
d452aeb0c1 fix(HAI-018): complete Step 1 — fix server-side error handling in GET /tasks/:id
- Route now returns 404 only for ENOENT, 500 for transient errors
- store.getTask() retries once after 50ms on non-ENOENT failures
- Added route tests for success, 404, and 500 cases
- Updated vitest config to include src/**/*.test.* files
2026-03-25 21:30:18 -04:00
Dustin Byrne
01752d5d6a feat(HAI-017): add per-task write lock, atomic writes, and defensive JSON parsing to TaskStore
- Add per-task write lock in TaskStore to prevent concurrent write corruption
- Implement defensive JSON parsing with recovery for task.json files
- Use atomic writes (write-to-temp + rename) for task.json updates
- Add vitest config and tests for lock, parsing, and atomic write behavior
- Remove concurrency module from engine, consolidating store safety in core
2026-03-25 21:29:10 -04:00
Dustin Byrne
ea2a9399c7 feat(HAI-017): complete Step 5 — documentation and delivery 2026-03-25 21:28:52 -04:00
Dustin Byrne
60be31927f feat(HAI-016): add shared AgentSemaphore for concurrent agent limiting
- Create AgentSemaphore class in engine/src/concurrency.ts with configurable maxConcurrent
- Integrate semaphore into TriageProcessor and TaskExecutor to gate agent spawning
- Wire semaphore into merge path and dashboard engine components
- Add comprehensive tests for concurrency, executor, and triage integration
- Update JSDoc and types for maxConcurrent configuration option
2026-03-25 21:27:29 -04:00
Dustin Byrne
6379008a88 feat(HAI-016): complete Step 1 — create shared AgentSemaphore 2026-03-25 21:14:13 -04:00
Dustin Byrne
19b12a4770 test(HAI-014): complete Step 2 — add TaskCard tests and vitest config 2026-03-25 21:10:51 -04:00
Dustin Byrne
e946a34c59 feat(HAI-003): render task descriptions as markdown in dashboard
- Add react-markdown and remark-gfm dependencies
- Replace pre element with ReactMarkdown in TaskDetailModal
- Add markdown prose styles optimized for dark theme
- Regenerate pnpm-lock.yaml to resolve merge conflicts
2026-03-25 20:34:49 -04:00
Dustin Byrne
5e796383e0 feat(HAI-003): complete Step 1 — add react-markdown and remark-gfm dependencies 2026-03-25 20:33:05 -04:00
Dustin Byrne
db2b84c231 feat(HAI-001): complete Step 1 — install lucide-react 2026-03-25 20:30:51 -04:00
Dustin Byrne
669dc3d1da test(HAI-001): add rate limiter unit tests 2026-03-25 20:15:51 -04:00
Dustin Byrne
87f9cee792 revert: drop vite middleware, add watch build instead 2026-03-25 19:08:04 -04:00
Dustin Byrne
4a7a9041c1 feat: vite dev server with HMR for dashboard 2026-03-25 19:06:14 -04:00
Dustin Byrne
b7f2f1a3e6 feat(HAI-003): add file-system watcher to TaskStore for live dashboard updates
- Add watch() method using Node's built-in fs.watch with recursive option
- Detect task.json changes and emit appropriate SSE events (created/moved/updated/deleted)
- Debounce per-file changes (150ms) to coalesce rapid writes
- Suppress duplicate events for in-process mutations via recentlyWritten set
- Integrate watcher into dashboard server startup with clean SIGINT shutdown
- Add @types/node to core package for proper TypeScript support
2026-03-25 18:56:16 -04:00
Dustin Byrne
ae0801bb17 feat(HAI-002): add Vite + React dependencies and build configuration 2026-03-25 18:24:26 -04:00