<feed xmlns='http://www.w3.org/2005/Atom'>
<title>claudomator.git/internal/task/validator.go, branch story/task-project-fk</title>
<subtitle>claudomator — task automation server
</subtitle>
<id>https://git.terst.org/claudomator.git/atom?h=story%2Ftask-project-fk</id>
<link rel='self' href='https://git.terst.org/claudomator.git/atom?h=story%2Ftask-project-fk'/>
<link rel='alternate' type='text/html' href='https://git.terst.org/claudomator.git/'/>
<updated>2026-04-03T23:31:15+00:00</updated>
<entry>
<title>refactor: replace Task.Project+RepositoryURL+BranchName with ProjectID FK</title>
<updated>2026-04-03T23:31:15+00:00</updated>
<author>
<name>Claude Agent</name>
<email>agent@claudomator.local</email>
</author>
<published>2026-04-03T23:31:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.terst.org/claudomator.git/commit/?id=97eef0c964fb5d0dd53c66cec389831de8316fe0'/>
<id>urn:sha1:97eef0c964fb5d0dd53c66cec389831de8316fe0</id>
<content type='text'>
- Task.Project (human-readable name) replaced by Task.ProjectID (FK to Project.ID)
- Task.RepositoryURL changed to derived-only (yaml:"-"), computed at runtime from ProjectID
- Validator now accepts project_id OR repository_url (either satisfies the requirement)
- Update task_test.go and validator_test.go accordingly

Co-Authored-By: Claude Sonnet 4.6 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>feat: require repository_url on tasks; fix UpdateTask to persist it; fix cascade-retry test race</title>
<updated>2026-04-03T08:44:02+00:00</updated>
<author>
<name>Peter Stone</name>
<email>thepeterstone@gmail.com</email>
</author>
<published>2026-04-03T08:44:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.terst.org/claudomator.git/commit/?id=1271ba1d329c8b16062600dfafdec1d06c735c2e'/>
<id>urn:sha1:1271ba1d329c8b16062600dfafdec1d06c735c2e</id>
<content type='text'>
Co-Authored-By: Claude Sonnet 4.6 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>refactor(task): transition to generic agent architecture</title>
<updated>2026-03-08T06:31:50+00:00</updated>
<author>
<name>Peter Stone</name>
<email>thepeterstone@gmail.com</email>
</author>
<published>2026-03-08T03:34:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.terst.org/claudomator.git/commit/?id=306482ddc04c6bd6284f52727f396b19e6b8e867'/>
<id>urn:sha1:306482ddc04c6bd6284f52727f396b19e6b8e867</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Initial project: task model, executor, API server, CLI, storage, reporter</title>
<updated>2026-02-09T07:35:45+00:00</updated>
<author>
<name>Peter Stone</name>
<email>thepeterstone@gmail.com</email>
</author>
<published>2026-02-09T07:35:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.terst.org/claudomator.git/commit/?id=2e2b2187b957e9af78797a67ec5c6874615fae02'/>
<id>urn:sha1:2e2b2187b957e9af78797a67ec5c6874615fae02</id>
<content type='text'>
Claudomator automation toolkit for Claude Code with:
- Task model with YAML parsing, validation, state machine (49 tests, 0 races)
- SQLite storage for tasks and executions
- Executor pool with bounded concurrency, timeout, cancellation
- REST API + WebSocket for mobile PWA integration
- Webhook/multi-notifier system
- CLI: init, run, serve, list, status commands
- Console, JSON, HTML reporters with cost tracking

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