| Age | Commit message (Collapse) | Author |
|
restartTask() was POSTing to /api/tasks/{id}/restart (405) instead
of the existing /api/tasks/{id}/run endpoint.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
|
- READY state task cards show Accept + Reject buttons
- Accept POSTs to /api/tasks/{id}/accept (→ COMPLETED)
- Reject POSTs to /api/tasks/{id}/reject (→ PENDING)
- "Start Next" button in toolbar POSTs to /api/scripts/start-next-task
- CSS for .btn-accept and .btn-reject
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
|
Merges features developed in /site/doot.terst.org/claudomator-work (a
stale clone) into the canonical repo:
- executor: QuestionRegistry for human-in-the-loop answers, rate limit
detection and exponential backoff retry (ratelimit.go, question.go)
- executor/claude.go: process group isolation (SIGKILL orphans on cancel),
os.Pipe for reliable stdout drain, backoff retry on rate limits
- api/scripts.go: POST /api/scripts/start-next-task handler
- api/server.go: startNextTaskScript field, answer-question route,
BroadcastQuestion for WebSocket question events
- web: Cancel/Restart buttons, question banner UI, log viewer, validate
section, WebSocket auto-connect
All tests pass.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
|
- Tab bar to switch between Tasks and Templates views
- New Task modal with elaborate section ("Draft with AI") that calls
POST /api/tasks/elaborate and pre-fills form fields
- Templates panel listing saved configs with create/edit/delete
- base-path meta tag for sub-path deployments
- filter.test.mjs: contract tests for filterTasks function
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
|
Replace the static "N hidden tasks" label with a toggle button that
expands an inline fold showing the hidden task cards dimmed at 0.6
opacity. Fold state is module-level so it survives poll cycles within
a session but resets on reload.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
|
Serves a lightweight dashboard (HTML/CSS/JS) from an embedded FS at
GET /. The JS polls the REST API to display tasks and stream logs
via WebSocket. Static files are embedded at build time via web/embed.go.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|