aws-samples / aws-samples/sample-autonomous-cloud-coding-agents
RFC: Automated toolchain version monitoring and upgrade workflow
Nadie ha tomado este issue todavía.
- Lenguaje dominante
- TypeScript
- Estrellas
- 146
- Forks
- 46
- Merge medio
- 3 d 10 h
- PR fusionados (30 d)
- 24
Descripción
Problem
Several runtime dependencies in the agent Dockerfile and pyproject.toml are manually pinned with no automated notification when new versions are available:
| Dependency | Current Pin | Update Frequency | Risk of Stale |
|---|---|---|---|
| Node.js | setup_24.x (LTS) |
~6 months (LTS cycle) | Medium |
| Claude Code CLI | @anthropic-ai/claude-code@2.1.142 |
Weekly+ | High |
| claude-agent-sdk | claude-agent-sdk==0.2.82 |
Weekly+ (bundles CLI) | High |
| boto3 | boto3==1.43.6 |
Weekly (AWS SDK releases) | High |
| Go (gh builder) | golang:1.26.3-bookworm |
~6 months | Low |
| gh CLI | GH_VERSION=2.92.0 |
Monthly | Low |
| Python base | python:3.13-slim |
~12 months | Low |
| uv | ghcr.io/astral-sh/uv:0.11.14 |
Multiple times/week | Medium |
Key coupling: claude-agent-sdk ↔ Claude Code CLI
The claude-agent-sdk Python package bundles the Claude Code CLI binary inside its wheel. The Dockerfile also installs the CLI separately via npm. These versions must stay in sync:
pyproject.toml:claude-agent-sdk==0.2.82→ bundles CLI 2.1.142Dockerfile:@anthropic-ai/claude-code@2.1.142
When upgrading either, check the SDK release notes to find which CLI version it bundles, then update both.
boto3 releases frequently
AWS releases boto3 multiple times per week. Each release adds new service APIs and bug fixes. Falling behind risks missing security patches and new features needed for AgentCore/Bedrock.
Proposal
Option A: Dependabot (recommended)
Dependabot is GitHub-native (no license concerns) and covers the ecosystems that matter most:
| Ecosystem | Directory | What it monitors | Value |
|---|---|---|---|
github-actions |
/.github/workflows/ |
SHA-pinned action versions (7 actions) | Highest — nothing else does this |
docker |
/agent/ |
FROM image tags (golang, python) |
High — Trivy flags CVEs but doesn't propose base-image bumps |
npm |
/ |
Yarn workspace dependencies | Moderate — osv-scanner/Retire cover CVEs but not freshness |
pip |
/agent/ |
pyproject.toml + uv.lock (supported) | High — covers boto3, claude-agent-sdk, fastapi, etc. |
Option B: Scheduled GitHub Action (for Dockerfile pin gaps)
Dependabot cannot parse version strings inside RUN commands or ARG values. A weekly Action would cover:
- Claude Code CLI: compare
@anthropic-ai/claude-code@Xvsnpm view @anthropic-ai/claude-code version - claude-agent-sdk: compare pinned vs latest SDK release and extract bundled CLI version
- gh CLI: compare
GH_VERSIONARG vs latestcli/clirelease - uv: compare pinned COPY tag vs latest
astral-sh/uvrelease - Opens an issue when versions drift, noting the coupling between SDK and CLI
What each tool covers
| Dependency | Dependabot? | Custom Action? | Notes |
|---|---|---|---|
| claude-agent-sdk | Yes (pip) | Yes (coupling check) | Dependabot bumps the pin; Action verifies CLI alignment |
| Claude Code CLI (Dockerfile) | No | Yes | Inside RUN command, not parseable |
| boto3 | Yes (pip) | No | Standard Dependabot pip coverage |
| Node.js (Dockerfile) | No | Possible | Inside curl command, not parseable |
| Go builder image | Yes (docker) | No | FROM golang:X tag |
| Python base image | Yes (docker) | No | FROM python:X tag |
| gh CLI (ARG) | No | Yes | ARG GH_VERSION=X not parseable |
| uv (COPY --from) | Yes (docker) | No | COPY --from=ghcr.io/astral-sh/uv:X is a docker ref |
| GitHub Actions | Yes (github-actions) | No | SHA pins auto-bumped |
| npm deps (CDK, CLI, docs) | Yes (npm) | No | Yarn workspace coverage |
Implementation Plan
- Add
.github/dependabot.ymlwithgithub-actions,docker,npm, andpipecosystems - Configure grouping (e.g., group minor/patch boto3 updates, group AWS SDK updates)
- Set
open-pull-requests-limitper ecosystem to manage PR noise - Create scheduled Action for Dockerfile pin monitoring (Claude Code CLI ↔ SDK coupling, gh, Node)
- Document the SDK ↔ CLI coupling in AGENTS.md or CONTRIBUTING.md
Related Issues
- #105 — Upgrade Python 3.13 → 3.14
- #106 — Upgrade Debian bookworm → trixie
- PR #103 — Node.js 20→24, Claude Code 2.1.142, pin uv 0.11.14, claude-agent-sdk 0.2.82
References
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Línea de trabajo
Comienza inspeccionando el agent Dockerfile, pyproject.toml, los workflows existentes en /.github/workflows/ y la estructura de dependencias en /agent/. Revisa la cobertura de los ecosistemas de Dependabot y la Action programada prevista, especialmente el acoplamiento entre claude-agent-sdk y Claude Code CLI. Se considera terminado cuando la configuración de Dependabot, el workflow de monitorización y la documentación del acoplamiento estén implementados como se describe en la checklist.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- aws, docker, github-actions, node.js, python
- Área
- ci-cd, devops, security, tooling
- Tipo de issue
- Nueva funcionalidad
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Estado de actividad
- Tranquilo
- Claridad
- Bastante claro
- Aptitud para principiantes
- 35/100