| Age | Commit message (Collapse) | Author |
|
- Running tab in nav with live SSE log streams per running task
- Execution history table (last 24h) with duration, cost, exit code, view logs
- Poll loop refreshes running view when tab is active
- Smart diff: only full re-render when task set changes; elapsed updated in place
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
|
/workspace/claudomator
- Moved working directory to first field, renamed to "Project"
- Replaced text input with a select populated from GET /api/workspaces
(lists subdirs of /workspace dynamically)
- "Create new project…" option reveals a custom path input
- elaborate result handler sets select or falls back to new-project input
- Added GET /api/workspaces endpoint in server.go
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
|
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
|
Recovered files with no Claude→Agent contamination:
- docs/adr/002-task-state-machine.md
- internal/api/logs.go/logs_test.go: task-level log streaming endpoint
- internal/api/validate.go/validate_test.go: POST /api/tasks/validate
- internal/api/server_test.go, storage/db_test.go: expanded test coverage
- scripts/reset-failed-tasks, reset-running-tasks
- web/app.js, index.html, style.css: frontend improvements
- web/test/: active-tasks-tab, delete-button, filter-tabs, sort-tasks tests
Manually applied from server.go diff (skipping Claude→Agent rename):
- taskLogStore field + validateCmdPath field
- DELETE /api/tasks/{id} route + handleDeleteTask
- GET /api/tasks/{id}/logs/stream route
- POST /api/tasks/{id}/resume route + handleResumeTimedOutTask
- handleCancelTask: allow cancelling PENDING/QUEUED tasks directly
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
|
When the most recently completed task had no remaining PENDING siblings
(series fully done), the script returned empty and start-next-task
reported "No task to start." Fix by falling through to the
priority+age fallback whenever the sibling search yields nothing.
Also add header comment documenting the selection logic, and suppress
browser favicon 404s with <link rel="icon" href="data:,">.
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>
|
|
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>
|