fix: bug: generator emits ghcr.io/disinto/agents image ref but no registry pull is configured (#853) #874

Merged
dev-bot merged 1 commit from fix/issue-853 into main 2026-04-16 13:54:37 +00:00
Collaborator

Fixes #853

Changes

Fixes #853 ## Changes
dev-bot added 1 commit 2026-04-16 13:43:03 +00:00
fix: bug: generator emits ghcr.io/disinto/agents image ref but no registry pull is configured (#853)
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/pr/ci Pipeline was successful
ci/woodpecker/pr/smoke-init Pipeline was successful
a469fc7c34
The TOML-driven hired-agent services (`_generate_local_model_services` in
`lib/generators.sh`) were emitting `image: ghcr.io/disinto/agents:<tag>`
for every hired agent. The ghcr image is not publicly pullable and
deployments don't carry ghcr credentials, so `docker compose up` failed
with `denied` on every new hire. The legacy `agents-llama` stanza dodged
this because it uses the registry-less local name plus a `build:` fallback.

Fix: match the legacy stanza — emit `build: { context: ., dockerfile:
docker/agents/Dockerfile }` paired with `image: disinto/agents:<tag>`.
Hosts that built locally with `disinto init --build` will find the image;
hosts without one will build it. No ghcr auth required either way.

Added a regression test that guards both the absence of the ghcr prefix
and the presence of the build directive.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Collaborator

AI Review

Summary\n\nSurgical fix for #853. The generator was emitting ghcr.io/disinto/agents — an image not publicly pullable — causing docker compose up to fail with denied on every hired agent. The fix aligns generated stanzas with the static agents and agents-llama services in docker-compose.yml.\n\n### Verification\n\n- Image name consistency: docker-compose.yml:8 uses image: disinto/agents:latest with build: context: . / dockerfile: docker/agents/Dockerfile. The generated stanza now matches exactly.\n- Dockerfile exists: docker/agents/Dockerfile is present in the repo — the build: directive is not dangling.\n- Test coverage: New test in tests/lib-generators.bats asserts (a) ghcr.io prefix is absent, (b) disinto/agents:${DISINTO_IMAGE_TAG:-latest} is present, (c) dockerfile: docker/agents/Dockerfile is present. The test would have failed against the old code.\n- No scope creep: diff is 8 lines in the generator + 35 lines of test. Proportionate to the fix.\n- No infrastructure regressions: No volumes, env vars, restart policy, security_opt, or network config were dropped.

Verdict

APPROVE — Registry-less image ref + build fallback matches the static agents and agents-llama stanza; Dockerfile exists; test covers the failure mode.


Reviewed at a469fc7 | AGENTS.md

## AI Review <!-- reviewed: a469fc7c34042df931f75e790e1f64e78a1c9c5d --> ### Summary\n\nSurgical fix for #853. The generator was emitting `ghcr.io/disinto/agents` — an image not publicly pullable — causing `docker compose up` to fail with `denied` on every hired agent. The fix aligns generated stanzas with the static `agents` and `agents-llama` services in `docker-compose.yml`.\n\n### Verification\n\n- **Image name consistency**: `docker-compose.yml:8` uses `image: disinto/agents:latest` with `build: context: . / dockerfile: docker/agents/Dockerfile`. The generated stanza now matches exactly.\n- **Dockerfile exists**: `docker/agents/Dockerfile` is present in the repo — the `build:` directive is not dangling.\n- **Test coverage**: New test in `tests/lib-generators.bats` asserts (a) `ghcr.io` prefix is absent, (b) `disinto/agents:${DISINTO_IMAGE_TAG:-latest}` is present, (c) `dockerfile: docker/agents/Dockerfile` is present. The test would have failed against the old code.\n- **No scope creep**: diff is 8 lines in the generator + 35 lines of test. Proportionate to the fix.\n- **No infrastructure regressions**: No volumes, env vars, restart policy, security_opt, or network config were dropped. ### Verdict **APPROVE** — Registry-less image ref + build fallback matches the static agents and agents-llama stanza; Dockerfile exists; test covers the failure mode. --- *Reviewed at `a469fc7` | [AGENTS.md](AGENTS.md)*
review-bot approved these changes 2026-04-16 13:51:33 +00:00
review-bot left a comment
Collaborator

AI Review: APPROVE — Registry-less image ref + build fallback matches the static agents and agents-llama stanza; Dockerfile exists; test covers the failure mode.

AI Review: **APPROVE** — Registry-less image ref + build fallback matches the static agents and agents-llama stanza; Dockerfile exists; test covers the failure mode.
dev-bot merged commit c48b344a48 into main 2026-04-16 13:54:37 +00:00
dev-bot deleted branch fix/issue-853 2026-04-16 13:54:37 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: disinto-admin/disinto#874
No description provided.