<feed xmlns='http://www.w3.org/2005/Atom'>
<title>claudomator.git/scripts/start-next-task, branch story/ui-dark-glass-theme</title>
<subtitle>claudomator — task automation server
</subtitle>
<id>https://git.terst.org/claudomator.git/atom?h=story%2Fui-dark-glass-theme</id>
<link rel='self' href='https://git.terst.org/claudomator.git/atom?h=story%2Fui-dark-glass-theme'/>
<link rel='alternate' type='text/html' href='https://git.terst.org/claudomator.git/'/>
<updated>2026-03-14T00:39:22+00:00</updated>
<entry>
<title>feat: add agent selector to UI and support direct agent assignment</title>
<updated>2026-03-14T00:39:22+00:00</updated>
<author>
<name>Peter Stone</name>
<email>thepeterstone@gmail.com</email>
</author>
<published>2026-03-14T00:39:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.terst.org/claudomator.git/commit/?id=2ee988ccc04c09ceb6de7cdb75c94114e85d01b9'/>
<id>urn:sha1:2ee988ccc04c09ceb6de7cdb75c94114e85d01b9</id>
<content type='text'>
- Added an agent selector (Auto, Claude, Gemini) to the Start Next Task button.
- Updated the backend to pass query parameters as environment variables to scripts.
- Modified the executor pool to skip classification when a specific agent is requested.
- Added --agent flag to claudomator start command.
- Updated tests to cover the new functionality.
</content>
</entry>
<entry>
<title>feat: blocked task state for agent questions via session resume</title>
<updated>2026-03-06T00:07:18+00:00</updated>
<author>
<name>Peter Stone</name>
<email>thepeterstone@gmail.com</email>
</author>
<published>2026-03-06T00:07:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.terst.org/claudomator.git/commit/?id=7466b1751c4126735769a3304e1db80dab166a9e'/>
<id>urn:sha1:7466b1751c4126735769a3304e1db80dab166a9e</id>
<content type='text'>
When an agent needs user input it writes a question to
$CLAUDOMATOR_QUESTION_FILE and exits. The runner detects the file and
returns BlockedError; the pool transitions the task to BLOCKED and
stores the question JSON on the task record.

The user answers via POST /api/tasks/{id}/answer. The server looks up
the claude session_id from the most recent execution and submits a
resume execution (claude --resume &lt;session-id&gt; "&lt;answer&gt;"), freeing the
executor slot entirely while waiting.

Changes:
- task: add StateBlocked, transitions RUNNING→BLOCKED, BLOCKED→QUEUED
- storage: add session_id to executions, question_json to tasks;
  add GetLatestExecution and UpdateTaskQuestion methods
- executor: BlockedError type; ClaudeRunner pre-assigns --session-id,
  sets CLAUDOMATOR_QUESTION_FILE env var, detects question file on exit;
  buildArgs handles --resume mode; Pool.SubmitResume for resume path
- api: handleAnswerQuestion rewritten to create resume execution
- preamble: add question protocol instructions for agents
- web: BLOCKED state badge (indigo), question text + option buttons or
  free-text input with Submit on the task card footer

Co-Authored-By: Claude Sonnet 4.6 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>scripts: make next-task machine-readable, simplify start-next-task</title>
<updated>2026-03-05T17:41:09+00:00</updated>
<author>
<name>Peter Stone</name>
<email>thepeterstone@gmail.com</email>
</author>
<published>2026-03-05T17:41:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.terst.org/claudomator.git/commit/?id=ddfb922584dd990481f44aad1a989e5bdf188823'/>
<id>urn:sha1:ddfb922584dd990481f44aad1a989e5bdf188823</id>
<content type='text'>
next-task now outputs only the task ID (or nothing), removing prose
prefixes that made downstream parsing fragile. start-next-task
simplifies to a direct empty-check with no awk required.

Co-Authored-By: Claude Sonnet 4.6 &lt;noreply@anthropic.com&gt;
</content>
</entry>
</feed>
