Commit Graph

19 Commits

Author SHA1 Message Date
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
507c0d6b67 feat(HAI-023): complete Step 2 — dashboard API upload/download/delete routes 2026-03-25 22:00:51 -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
7f3cf51c19 fix(HAI-005): fix pre-existing build errors in types, executor, and dashboard server 2026-03-25 20:41:06 -04:00
Dustin Byrne
0e18987a70 feat(HAI-001): add API rate limiting and replace emojis with Lucide icons
- Add rate limiting middleware to dashboard API endpoints
- Install lucide-react and replace emoji usage with Lucide icons across dashboard components
- Add rate limiter unit tests
- Document API rate limiting in README
- Refactor engine executor/triage and remove unused reviewer module
2026-03-25 20:33:37 -04:00
Dustin Byrne
6fbf3519b5 feat(HAI-002): add maxWorktrees setting to limit total git worktrees
- Add maxWorktrees field to Settings interface with default of 4
- Enforce worktree limit in Scheduler.schedule() alongside maxConcurrent
- Wire setting through dashboard startup from persisted settings
- Include maxWorktrees in /api/config response
- Add Max Worktrees input to Settings Modal UI
- Backward compatible: existing configs without maxWorktrees use default
2026-03-25 20:32:07 -04:00
Dustin Byrne
669dc3d1da test(HAI-001): add rate limiter unit tests 2026-03-25 20:15:51 -04:00
Dustin Byrne
a1397d9eb7 feat(HAI-001): add rate limiting middleware to API endpoints 2026-03-25 20:15:11 -04:00
Dustin Byrne
e112a6bad1 feat(HAI-004): add GET/PUT /settings REST API endpoints 2026-03-25 20:02:50 -04:00
Dustin Byrne
8e84832505 feat(HAI-001): make task title optional and description required
- Make Task.title optional and description required in types and TaskCreateInput
- Update CLI task create to prompt for description instead of title, with updated help text
- Update REST API and dashboard CreateTaskModal to require description instead of title
- Handle optional/missing title across TaskCard, TaskDetailModal, and engine components
- Add description validation in TaskStore and update generateSpecifiedPrompt
2026-03-25 19:16:20 -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
20b7b8e562 feat(HAI-001): update REST API to require description instead of title 2026-03-25 19:04:19 -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
16e9043aee feat: AI-powered merge via pi agent 2026-03-25 18:43:49 -04:00
Dustin Byrne
918941a555 feat: merge HAI-002 React dashboard + add merge flow 2026-03-25 18:38:34 -04:00
Dustin Byrne
961203692d feat: hai board — core, dashboard, cli, engine 2026-03-25 18:32:10 -04:00
Dustin Byrne
6a754cf199 feat(HAI-002): complete React conversion with build fixes and project setup
- Fix Vite alias to resolve @hai/core to types-only module (avoids Node.js deps in browser bundle)
- Add tsconfig.app.json for client-side typecheck
- Fix server.ts return type annotation
- Update imports to use @hai/core (resolved via Vite alias)
- Add base project files needed for workspace
2026-03-25 18:29:50 -04:00
Dustin Byrne
e0746fb387 feat(HAI-002): update Express server to serve Vite build output 2026-03-25 18:26:37 -04:00