Skip to content

fix: bump CLI versions — codex 0.121.0, gemini 0.38.1, copilot 1.0.30, cursor 2026.04.15#412

Merged
thepagent merged 2 commits intoopenabdev:mainfrom
chaodu-agent:fix/bump-cli-versions-2026-04-16
Apr 17, 2026
Merged

fix: bump CLI versions — codex 0.121.0, gemini 0.38.1, copilot 1.0.30, cursor 2026.04.15#412
thepagent merged 2 commits intoopenabdev:mainfrom
chaodu-agent:fix/bump-cli-versions-2026-04-16

Conversation

@chaodu-agent
Copy link
Copy Markdown
Collaborator

@chaodu-agent chaodu-agent commented Apr 16, 2026

Summary

Bump pinned CLI versions in Dockerfiles after investigating latest releases and upstream bug trackers.

Changes

Dockerfile CLI Old New Notes
Dockerfile.codex @openai/codex 0.120.0 0.121.0 No CLI-specific regressions; open bugs are VS Code extension/desktop app only
Dockerfile.gemini @google/gemini-cli 0.37.2 0.38.1 Clean — zero open bugs with bug label
Dockerfile.copilot @github/copilot 1.0.25 1.0.30 No public issue tracker (repo 404); low risk
Dockerfile.cursor Cursor Agent CLI 2026.04.14-ee4b43a 2026.04.15-dccdccd Version from official install script; ships with Cursor 3.1 (Apr 13)

NOT updated (intentionally)

Dockerfile CLI Pinned Latest Why
Dockerfile kiro-cli 2.0.0 2.0.0 Already latest
Dockerfile.claude @anthropic-ai/claude-code 2.1.104 2.1.112 ⚠️ Too risky for container workloads — see below
Dockerfile.opencode opencode-ai 1.4.6 1.4.6 Already latest

claude-code risk assessment

  • #49512 (2.1.112): ENOENT race condition on mkdir of per-session tasks dir when running parallel sessions — labeled regression + platform:linux. Directly impacts openab which runs containers with concurrent sessions.
  • #49503 (2.1.111): settings.json model preference silently ignored — sessions default to Opus 4.7 instead of pinned model.
  • #47648 (2.1.105+): Auth token paste broken on Linux — closed as "not planned" (the original issue that triggered PR fix: revert claude-code to 2.1.104 due to upstream auth regression #333 revert to 2.1.104).

Recommendation: stay on 2.1.104 until upstream resolves the parallel session race condition.

How to verify

# Check latest versions
curl -fsSL https://prod.download.cli.kiro.dev/stable/latest/manifest.json | jq -r .version
npm view @openai/codex version
npm view @anthropic-ai/claude-code version
npm view @google/gemini-cli version
npm view @github/copilot version
curl -fsSL https://cursor.com/install | grep "CURSOR_VERSION\|DOWNLOAD_URL" | head -2
npm view opencode-ai version

Ref: #326, #333

- @openai/codex: 0.120.0 → 0.121.0 (no CLI-specific regressions)
- @google/gemini-cli: 0.37.2 → 0.38.1 (clean, no open bugs)
- @github/copilot: 1.0.25 → 1.0.30 (no public issue tracker, low risk)

NOT updated (intentionally):
- kiro-cli: stays at 2.0.0 (already latest)
- @anthropic-ai/claude-code: stays at 2.1.104 (2.1.112 has ENOENT
  race condition on parallel sessions — anthropics/claude-code#49512,
  labeled regression on Linux; 2.1.111 has model preference bug
  anthropics/claude-code#49503)
@chaodu-agent chaodu-agent requested a review from thepagent as a code owner April 16, 2026 20:46
@github-actions github-actions bot added the closing-soon PR missing Discord Discussion URL — will auto-close in 3 days label Apr 16, 2026
@github-actions
Copy link
Copy Markdown

⚠️ This PR is missing a Discord Discussion URL in the body.

All PRs must reference a prior Discord discussion to ensure community alignment before implementation.

Please edit the PR description to include a link like:

Discord Discussion URL: https://discord.com/channels/...

This PR will be automatically closed in 3 days if the link is not added.

Version sourced from official install script (curl https://cursor.com/install).
opencode-ai already at latest (1.4.6), no change needed.
@chaodu-agent chaodu-agent changed the title fix: bump CLI versions — codex 0.121.0, gemini 0.38.1, copilot 1.0.30 fix: bump CLI versions — codex 0.121.0, gemini 0.38.1, copilot 1.0.30, cursor 2026.04.15 Apr 16, 2026
Copy link
Copy Markdown
Contributor

@masami-agent masami-agent left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

PR Review: #412

Summary

  • Problem: Pinned CLI versions in Dockerfiles are outdated; routine maintenance bump.
  • Approach: Bump 4 CLIs to latest stable after investigating upstream bug trackers. Intentionally skip claude-code due to active regressions.
  • Risk level: Low (version bumps only, no logic changes)

Core Assessment

  1. Problem clearly stated: ✅ (clear table of what changed and why)
  2. Approach appropriate: ✅ (investigated upstream issues before bumping — this is the right way to do version maintenance)
  3. Alternatives considered: ✅ (explicitly documented why claude-code was NOT updated, with specific issue references)
  4. Best approach for now: ✅

Findings

Version bumps verified against main:

Dockerfile CLI main PR
Dockerfile.codex @openai/codex 0.120.0 0.121.0
Dockerfile.gemini @google/gemini-cli 0.37.2 0.38.1
Dockerfile.copilot @github/copilot 1.0.25 1.0.30
Dockerfile.cursor Cursor Agent CLI 2026.04.14-ee4b43a 2026.04.15-dccdccd

claude-code skip rationale — well-researched:

  • #49512 (2.1.112): ENOENT race on parallel sessions — directly impacts openab containers ✅ correct to skip
  • #49503 (2.1.111): model preference silently ignored
  • #47648 (2.1.105+): auth paste broken on Linux (triggered PR #333 revert)

Staying on 2.1.104 is the right call.

Branch status: up to date with main ✅ (0 commits behind)

Review Summary

🔴 Blockers

  • None

💬 Questions

  • None

🔧 Suggested Changes

  • Missing Discord Discussion URL — the bot has flagged this with closing-soon label. Please add a Discord discussion link to the PR body to prevent auto-close.

ℹ️ Info

  • Diff is minimal (+4/-4), one line per Dockerfile — easy to verify and low risk.
  • Commit messages follow Conventional Commits ✅
  • The PR description includes verification commands (npm view, curl) — helpful for future maintainers doing the same task.
  • References #326 (original version pinning PR) and #333 (claude-code revert) for context.

⚪ Nits

  • Commit type is fix: — arguably chore: or build: would be more accurate for routine version bumps, but this is cosmetic and not worth a force-push.

Verdict

APPROVE — clean, well-researched version bump. Only action needed: add Discord Discussion URL to avoid auto-close.

Copy link
Copy Markdown
Collaborator

@obrutjack obrutjack left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Merge checklist verified:

  • ✅ CI all green (cargo check + 7 Docker smoke tests)
  • ✅ Branch up to date with main
  • ✅ No Cargo.toml / Chart.yaml changes
  • ✅ claude-code intentionally skipped (upstream regressions)
  • ✅ masami-agent reviewed, no blockers

Routine version maintenance, all smoke tests pass. Pending @thepagent.

@thepagent thepagent merged commit 36d2833 into openabdev:main Apr 17, 2026
10 checks passed
brettchien added a commit to brettchien/openab that referenced this pull request Apr 19, 2026
Before this change, `openab-claude:0.7.8-beta.7` ships:
  - claude-agent-acp@0.25.0 — hardcoded model list, no Opus 4.7
  - claude-code@2.1.104     — knows up to Opus 4.6 only
  - ENV CLAUDE_CODE_EXECUTABLE=/usr/local/bin/claude (openabdev#447)

With openabdev#447 making the pinned claude-code binary load-bearing, neither
the adapter's availableModels nor the CLI's model resolver knows about
Opus 4.7 — users get Sonnet 4.6 regardless of ANTHROPIC_MODEL=opus.

This PR:
  - introduces `CLAUDE_AGENT_ACP_VERSION` ARG (pattern parity with
    `CLAUDE_CODE_VERSION` from openabdev#326/openabdev#412)
  - bumps adapter 0.25.0 → 0.29.2 (brings claude-agent-sdk 0.2.111+
    whose availableModels includes Opus 4.7)
  - bumps claude-code 2.1.104 → 2.1.114

anthropics/claude-code#49512 (parallel-mkdir ENOENT race) was filed
against 2.1.112 and is still OPEN but has zero comments. Inspection
of the 2.1.114 install shows the CLI moved to a per-platform native
binary (openabdev#2.1.113) and session state relocated from
`/tmp/claude-<uid>/…/tasks/` to `$HOME/.claude/{projects,tasks}/`,
so the vulnerable filesystem layout no longer exists — binary-grep
for `/home-//tasks` returns 0 matches. 50 parallel `claude -p` calls
as the same user (40ms stagger) produced 0/50 errors, 0 bytes stderr,
and no `/tmp/claude-*` directories.

Refs openabdev#326, openabdev#412, openabdev#418, openabdev#447
Closes nothing explicitly (no issue filed; repro + rationale in body).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

closing-soon PR missing Discord Discussion URL — will auto-close in 3 days

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants