chore(deploy): deploy-to-nas.sh defaultte op een ongepinde latest #60

Merged
janpeter merged 1 commit from chore/deploy-to-nas-pin-default into master 2026-07-11 22:07:57 +02:00
Owner

Laatste plek waar CLAUDE_CODE_VERSION nog stil ongepind kon zijn.

bin/deploy-to-nas.sh:37 had : "${CLAUDE_CODE_VERSION:=latest}". Dat is exact dezelfde bug als de compose-default die #59 dichtzette: de versie-assert in de claude-stage is een case-guard die alleen grep -F draait bij een numerieke waarde. Bij latest controleert de build dus niets, en levert een NAS-cross-build zónder env ongemerkt een willekeurig nieuwe CLI op. Default is nu de Dockerfile-pin (2.1.197), te bumpen in lockstep met ARG CLAUDE_CODE_VERSION.

Hoe dit boven kwam

Bij het opruimen van de dode runtime-env-var CLAUDE_CODE_VERSION=latest in /srv/scrum4me/compose/worker-{idea,deploy,docs}.env:9 op 154. Die stond te liegen over de draaiende versie (containers draaiden aantoonbaar 2.1.197). Hij is live-only — er is geen worker-*.env-template in git — en inmiddels verwijderd, met backups.

De var bleek volledig inert, en dat is precies wat naar dit script wees: het enige dat CLAUDE_CODE_VERSION in de draaiende image leest, is deploy-to-nas.sh zelf — en dat script draait op die host helemaal niet (het is de Mac→QNAP cross-build). Geverifieerd met een grep over /opt/agent/ en /opt/scrum4me-mcp/src in de draaiende worker: nul andere consumenten, niets in de entrypoint of run-agent.sh.

Verificatie

  • bash -n bin/deploy-to-nas.sh → OK.
  • Repo-brede grep: geen ongepinde latest-defaults meer. De enige resterende treffer is de README-regel die het assert-gedrag uitlegt — documentatie, geen default.

🤖 Generated with Claude Code

Laatste plek waar `CLAUDE_CODE_VERSION` nog stil ongepind kon zijn. `bin/deploy-to-nas.sh:37` had `: "${CLAUDE_CODE_VERSION:=latest}"`. Dat is exact dezelfde bug als de compose-default die #59 dichtzette: de versie-assert in de `claude`-stage is een `case`-guard die alleen `grep -F` draait bij een **numerieke** waarde. Bij `latest` controleert de build dus niets, en levert een NAS-cross-build zónder env ongemerkt een willekeurig nieuwe CLI op. Default is nu de Dockerfile-pin (`2.1.197`), te bumpen in lockstep met `ARG CLAUDE_CODE_VERSION`. ## Hoe dit boven kwam Bij het opruimen van de dode runtime-env-var `CLAUDE_CODE_VERSION=latest` in `/srv/scrum4me/compose/worker-{idea,deploy,docs}.env:9` op 154. Die stond te liegen over de draaiende versie (containers draaiden aantoonbaar 2.1.197). Hij is **live-only** — er is geen `worker-*.env`-template in git — en inmiddels verwijderd, met backups. De var bleek volledig **inert**, en dat is precies wat naar dit script wees: het enige dat `CLAUDE_CODE_VERSION` in de draaiende image leest, is `deploy-to-nas.sh` zelf — en dat script draait op die host helemaal niet (het is de Mac→QNAP cross-build). Geverifieerd met een grep over `/opt/agent/` en `/opt/scrum4me-mcp/src` in de draaiende worker: nul andere consumenten, niets in de entrypoint of `run-agent.sh`. ## Verificatie - `bash -n bin/deploy-to-nas.sh` → OK. - Repo-brede grep: geen ongepinde `latest`-defaults meer. De enige resterende treffer is de README-regel die het assert-gedrag *uitlegt* — documentatie, geen default. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
chore(deploy): deploy-to-nas.sh defaultte op een ongepinde latest
All checks were successful
CI / Compose config (pull_request) Successful in 4s
CI / Docker build (pull_request) Successful in 38s
c9424251eb
Laatste plek waar CLAUDE_CODE_VERSION nog stil ongepind kon zijn. Zelfde bug als
de compose-default die PR #59 dichtzette: de versie-assert in de claude-stage is
een case-guard die alleen `grep -F` draait bij een numerieke waarde, dus bij
`latest` controleert de build niets en levert een NAS-cross-build zonder env
ongemerkt een willekeurig nieuwe CLI op.

Default is nu de Dockerfile-pin (2.1.197), te bumpen in lockstep met
ARG CLAUDE_CODE_VERSION.

Gevonden bij het opruimen van de dode runtime-env-var CLAUDE_CODE_VERSION=latest
in /srv/scrum4me/compose/worker-{idea,deploy,docs}.env op 154 (live-only, niet in
git, inmiddels weg). Die var bleek volledig inert: het ENIGE dat 'm in de
draaiende image leest is juist dit script, en dat draait niet op die host —
geverifieerd met een grep over /opt/agent/ en /opt/scrum4me-mcp/src in de
draaiende worker.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
janpeter merged commit 9345b18e45 into master 2026-07-11 22:07:57 +02:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
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
janpeter/scrum4me-docker!60
No description provided.