<feed xmlns='http://www.w3.org/2005/Atom'>
<title>claudomator.git/scripts/deploy, branch main</title>
<subtitle>claudomator — task automation server
</subtitle>
<id>https://git.terst.org/claudomator.git/atom?h=main</id>
<link rel='self' href='https://git.terst.org/claudomator.git/atom?h=main'/>
<link rel='alternate' type='text/html' href='https://git.terst.org/claudomator.git/'/>
<updated>2026-04-03T08:44:02+00:00</updated>
<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>fix: story tasks get Project field; elaborate reads worklog; deploy chmod scripts</title>
<updated>2026-03-26T04:10:35+00:00</updated>
<author>
<name>Peter Stone</name>
<email>thepeterstone@gmail.com</email>
</author>
<published>2026-03-26T04:10:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.terst.org/claudomator.git/commit/?id=b6e420a62a3e7e81a6f5d2819f12cca11b82e572'/>
<id>urn:sha1:b6e420a62a3e7e81a6f5d2819f12cca11b82e572</id>
<content type='text'>
- handleApproveStory: set Project = input.ProjectID on tasks and subtasks so
  the executor can resolve RepositoryURL from the project registry (was causing
  "task has no repository_url" on every story task)
- elaborate.go: read .agent/worklog.md instead of SESSION_STATE.md for project
  context injected into elaboration prompts
- deploy: explicitly chmod +x all scripts before restart (same root cause as
  the binary execute-bit loss — chown -R was stripping it)

Co-Authored-By: Claude Sonnet 4.6 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>fix: ensure claudomator binary is executable before service restart in deploy</title>
<updated>2026-03-26T02:51:46+00:00</updated>
<author>
<name>Peter Stone</name>
<email>thepeterstone@gmail.com</email>
</author>
<published>2026-03-26T02:51:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.terst.org/claudomator.git/commit/?id=5a54e108f743afd2a2bf6e0598e7db815b01ac11'/>
<id>urn:sha1:5a54e108f743afd2a2bf6e0598e7db815b01ac11</id>
<content type='text'>
chown -R in fix-permissions was stripping the execute bit on the binary,
causing the service to fail with 203/EXEC on next restart. Explicitly
chmod +x both bin paths as the final step before systemctl restart.

Co-Authored-By: Claude Sonnet 4.6 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>fix: update deploy script to pull from main instead of master</title>
<updated>2026-03-25T23:29:15+00:00</updated>
<author>
<name>Peter Stone</name>
<email>thepeterstone@gmail.com</email>
</author>
<published>2026-03-25T23:29:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.terst.org/claudomator.git/commit/?id=f88073c451988026b8cb36294f6ec4e33c38415c'/>
<id>urn:sha1:f88073c451988026b8cb36294f6ec4e33c38415c</id>
<content type='text'>
Co-Authored-By: Claude Sonnet 4.6 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>chore: delegate permissions and credential sync to scripts in deploy</title>
<updated>2026-03-21T20:54:37+00:00</updated>
<author>
<name>Peter Stone</name>
<email>thepeterstone@gmail.com</email>
</author>
<published>2026-03-21T20:54:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.terst.org/claudomator.git/commit/?id=c408c21c81d353d2f08c4b1c63118c6bd7b48061'/>
<id>urn:sha1:c408c21c81d353d2f08c4b1c63118c6bd7b48061</id>
<content type='text'>
Replace hardcoded chown/chmod lines with fix-permissions and
sync-credentials scripts, keeping deploy DRY and ensuring credentials
are always fresh after each deploy.

Co-Authored-By: Claude Sonnet 4.6 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>fix: prefix SW registration path with BASE_PATH</title>
<updated>2026-03-16T22:11:34+00:00</updated>
<author>
<name>Peter Stone</name>
<email>thepeterstone@gmail.com</email>
</author>
<published>2026-03-16T22:11:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.terst.org/claudomator.git/commit/?id=b0b79966e957bd5e4fc014978dbf7e9dbebeac61'/>
<id>urn:sha1:b0b79966e957bd5e4fc014978dbf7e9dbebeac61</id>
<content type='text'>
The app is served at /claudomator/ so the SW and scope must use
BASE_PATH + '/api/push/sw.js' and BASE_PATH + '/' respectively.

Co-Authored-By: Claude Sonnet 4.6 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>fix: deploy script skips scripts/hooks/ subdirectory when copying</title>
<updated>2026-03-16T19:50:42+00:00</updated>
<author>
<name>Peter Stone</name>
<email>thepeterstone@gmail.com</email>
</author>
<published>2026-03-16T19:50:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.terst.org/claudomator.git/commit/?id=20c66b4be2c0b922ae4927d3021c3f2a9e6d1e8c'/>
<id>urn:sha1:20c66b4be2c0b922ae4927d3021c3f2a9e6d1e8c</id>
<content type='text'>
cp without -r fails on directories. Use find -maxdepth 1 -type f to
copy only files, since hooks/ is for local dev only.

Co-Authored-By: Claude Sonnet 4.6 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>fix: repair test regressions and add pre-commit/pre-push verification gates</title>
<updated>2026-03-16T19:46:44+00:00</updated>
<author>
<name>Peter Stone</name>
<email>thepeterstone@gmail.com</email>
</author>
<published>2026-03-16T19:46:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.terst.org/claudomator.git/commit/?id=17a36cc83980d278a8cab5132bf14de731b352ca'/>
<id>urn:sha1:17a36cc83980d278a8cab5132bf14de731b352ca</id>
<content type='text'>
Fix four pre-existing bugs exposed after resolving a build failure:
- sandboxCloneSource: accept any URL scheme for origin remote (was filtering out https://)
- setupSandbox callers: fix := shadow variable so sandboxDir is set on BlockedError
- parseGeminiStream: parse result lines to return execution errors and cost
- TestElaborateTask_InvalidJSONFromClaude: stub Gemini fallback so test is hermetic

Add verification infrastructure:
- scripts/verify: runs go build + go test -race, used by hooks and deploy
- scripts/hooks/pre-commit: blocks commits that don't compile
- scripts/hooks/pre-push: blocks pushes where tests fail
- scripts/install-hooks: symlinks version-controlled hooks into .git/hooks/
- scripts/deploy: runs scripts/verify before building the binary

Co-Authored-By: Claude Sonnet 4.6 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>fix: permission denied and host key verification errors; add gemini elaboration fallback</title>
<updated>2026-03-16T01:46:20+00:00</updated>
<author>
<name>Peter Stone</name>
<email>thepeterstone@gmail.com</email>
</author>
<published>2026-03-16T01:46:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.terst.org/claudomator.git/commit/?id=0e37086ee468e6e3b697c32b7f02280ee06f5116'/>
<id>urn:sha1:0e37086ee468e6e3b697c32b7f02280ee06f5116</id>
<content type='text'>
</content>
</entry>
<entry>
<title>scripts: pull latest from bare repo before building in deploy</title>
<updated>2026-03-09T07:05:15+00:00</updated>
<author>
<name>Peter Stone</name>
<email>thepeterstone@gmail.com</email>
</author>
<published>2026-03-09T07:05:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.terst.org/claudomator.git/commit/?id=fabeb3265b11d7c9089e67f51e1c081b5977986f'/>
<id>urn:sha1:fabeb3265b11d7c9089e67f51e1c081b5977986f</id>
<content type='text'>
</content>
</entry>
</feed>
