Skip to content

Please publish a release: firewall removal merged a year ago (#21) but ghcr.io still serves v1.0.5 with the old behavior #42

Description

@dheavy

PR #21 ("Remove firewall feature from claude-code") merged on 2025-06-13, removing all firewall logic from the claude-code feature. A year later, the published artifact ghcr.io/anthropics/devcontainer-features/claude-code:1.0 is still v1.0.5 and still contains the pre-#21 behavior. Could you cut a release (e.g. v1.0.6 or v1.1.0) so the artifact matches main?

The stale artifact is the root cause of at least two open issues:

One more failure mode we hit (not yet covered by those issues): the bundled script hard-fails the whole container setup (exit 1) when any domain in its allowlist fails to resolve — including statsig.anthropic.com and statsig.com. Enterprise networks commonly block telemetry domains at DNS level, even though Claude Code works fine there with CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1. Combined with the silent overwrite, the sequence is nasty to debug: a user writes their own firewall script that tolerates blocked telemetry domains, the feature silently replaces it, and postCreateCommand then aborts on a domain the user never asked to allowlist.

The divergence makes this hard to troubleshoot from source: src/claude-code/install.sh on main contains no firewall logic at all, yet devcontainer-feature.json on main also says 1.0.5 — the same version string as the published artifact that does contain it. Inspecting the repo tells you the bug shouldn't exist.

Verified today (2026-06-12) by pulling the OCI layer for claude-code:1.0 from ghcr.io: manifest reports v1.0.5, install.sh contains setup_firewall_script(), bundled init-firewall.sh is the 119-line version.

Asks

  1. Publish a release from current main so the artifact no longer installs/overwrites /usr/local/bin/init-firewall.sh (this alone resolves Claude Code devcontainer feature silently overwrites custom /usr/local/bin/init-firewall.sh #38 and claude-code feature v1.0.5 bundles outdated init-firewall.sh without DNS restoration #30).
  2. Bump the version in devcontainer-feature.json as part of that release, so the source and published artifact can't share a version string while differing in behavior.
  3. If a firewall script ever returns to this feature: namespace it (e.g. claude-init-firewall.sh), never overwrite an existing file, gate it behind a feature option, and make it warn-and-continue on unresolvable domains rather than aborting container setup.

Happy to send a PR for the version bump if that helps.

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