When a worker dies mid-build, queue maintenance now updates both work_queue and build_audit tables when requeuing stale tasks. This prevents builds from showing "running" forever in the API. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add ListPipelines/GetPipeline to CIProvider port with Woodpecker adapter - Add DNS alias endpoints: GET/POST/DELETE /projects/{id}/domains - Implement worker executor daemon, build executor, and git operations - Add build service, worker service, and build audit tracking - Add worker registry with PostgreSQL adapter and migration - Add multi-provider code agent interface (Claude Code + OpenCode) - Add create-and-build combo endpoint - Update landing-page cookbook to reflect all gaps closed - Fix tech debt: unified validation, auth scopes, error wrapping, slog patterns Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>