ANTHROPIC_API_KEY takes priority over CLAUDE_CODE_OAUTH_TOKEN in
Claude Code's auth precedence. Must be unset for OAuth to work.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Publish Image / publish (push) Successful in 21sDetails
Pass CLAUDE_CODE_OAUTH_TOKEN to workspaces so they use the Max
subscription instead of pay-per-use API credits. Falls back to
ANTHROPIC_API_KEY if OAuth token not set.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
These stages only read code and post comments — no need for npm install,
frontend build, Playwright, or migrations. Saves several minutes.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Uses ERR/EXIT trap to ensure the orchestrator is notified when the
startup script fails (e.g. clone error, missing command file). Prevents
orphaned workspaces that never get cleaned up.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Workspaces are now fully immutable like GH Actions runners — no
persistent volume, no init container, no stale state between runs.
Fresh emptyDir on every workspace creation.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Always rm -rf ~/project before cloning to avoid stale state from
previous workspace runs on the same PVC. Made setup steps generic
(detect frontend, playwright, migrations) instead of babble-specific.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Publish Image / publish (push) Successful in 15sDetails
The startup script already writes to stdout which the Coder agent
captures. No need for a separate HTTP log server or coder_app button.
Logs are visible via the Coder web terminal or agent log viewer.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Publish Workspace Image / publish (push) Successful in 3m51sDetails
- Add coder/workspace.Dockerfile with Node.js 22, wrangler, claude-code,
and Playwright deps pre-installed. Eliminates ~3 min of installs on
every workspace startup.
- Add CI workflow to build and push to registry.samson.media/coder-workspace
- Fix slash command: -p mode doesn't support /commands, so read the .md
file directly, strip frontmatter, substitute $ARGUMENTS, pass as prompt
- Switch workspace image from codercom/enterprise-base to custom image
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The project: prefix is not valid Claude Code syntax. Slash commands
in .claude/commands/ are invoked as /$TASK_TYPE directly.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Publish Image / publish (push) Successful in 20sDetails
When the orchestrator restarts, it loses in-memory queue state. If a
stale workspace still exists, createWorkspace now auto-deletes it and
retries instead of failing with 409. Also adds --verbose to Claude Code
invocation for better task log debugging.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The tag `ubuntu-arm64` doesn't exist on Docker Hub. Switch to `latest`
which includes arm64 in its multi-arch manifest.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Publish Image / publish (push) Successful in 20sDetails
- Workspaces curl POST /webhook/task-complete/{name} when done
- Orchestrator deletes the workspace via Coder API on callback
- Active workspaces count toward concurrency limit
- GET /queue now shows active workspaces with elapsed time
- Coder template gains callback_url parameter
- TTL becomes a safety net, not the primary shutdown mechanism
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Lightweight Hono webhook router that receives Gitea events and creates
Coder workspaces for each SDLC stage (analyse, architect, develop,
review, test, rework, release, maintenance). Includes k8s manifests
for deployment and the Coder workspace template moved from babble.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>