Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Install pinned Claude Code artifacts without resolving latest #2472

Copy link
Copy link

Description

@RaychevAngel
Issue body actions

Problem

When ClaudeCode is configured with an exact version, the non-Alpine installation path still downloads the mutable bootstrap.sh. That bootstrap resolves the latest installer binary before asking it to install the requested target version.

The requested semantic version is therefore pinned, but the installation path is not fully deterministic and cannot prove the exact executable bytes that reached the environment.

Required behavior

  • Resolve an explicitly requested Claude Code version from its versioned release artifact, without consulting /latest.
  • Accept an expected SHA-256 for the selected platform artifact and fail closed when it is missing or mismatched.
  • Preserve the existing bounded connection, transfer, retry, and total-attempt behavior.
  • Install atomically so a failed download or verification cannot replace a working executable.
  • Verify the installed version after installation.
  • Preserve the existing unpinned/default behavior for callers that do not request artifact verification.
  • Keep the Alpine npm path behavior explicit and covered.

Evidence

Retain non-secret installation evidence sufficient to identify:

  • requested version;
  • selected platform;
  • expected and observed artifact SHA-256;
  • bounded terminal failure phase.

Do not include credentials, machine paths, or download tokens.

Validation

  • Focused command-generation tests for pinned and legacy modes.
  • Execution-level tests with a local fake release endpoint proving exact-version resolution, checksum success, checksum rejection, bounded transient recovery, atomic replacement, and no request to /latest in pinned mode.
  • Installed-agent suite, formatting, lint, and type checks.

Non-goals

  • Changing the default Claude Code version.
  • Replacing Harbor's installed-agent abstraction.
  • Adding whole-trial retries.
  • Defining a general package registry or image-building system.
Reactions are currently unavailable

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

    Morty Proxy This is a proxified and sanitized view of the page, visit original site.