Skip to content

fix(claude-dev, mistral-dev): persist credentials via a named volume, fixing GitHub Codespaces - #67

Merged
baxyz merged 2 commits into
mainfrom
docs/claude-mistral-dev-codespaces-incompatibility
Aug 30, 2026
Merged

fix(claude-dev, mistral-dev): persist credentials via a named volume, fixing GitHub Codespaces#67
baxyz merged 2 commits into
mainfrom
docs/claude-mistral-dev-codespaces-incompatibility

Conversation

@baxyz

@baxyz baxyz commented Aug 30, 2026

Copy link
Copy Markdown
Contributor

Summary

Fixes #66. GitHub Codespaces doesn't support host bind-mounts at all — confirmed in VS Code's docs. ${localEnv:HOME} can resolve to an empty string there, turning claude-dev's ${localEnv:HOME}/.claude mount source into the literal path /.claude, which doesn't exist, failing the whole codespace build. mistral-dev has the same mount shape and hits the same failure.

Fix

Switched both features from a host bind-mount to a Docker named volume, scoped by ${localEnv:USER} (e.g. helpers4-claude-credentials-${localEnv:USER}):

  • Docker creates a missing volume automatically, so there's no crash risk on Codespaces, and no initializeCommand is needed anymore.
  • Scoping by ${localEnv:USER} rather than ${devcontainerId} (the pattern pnpm-store/playwright-dev use) keeps credentials shared across every local devcontainer for the same OS user — matching the old bind-mount's behavior — instead of isolating per project like a cache would.

install.sh and the generated setup-credentials.sh needed no changes — they only check whether /mnt/h4claude//mnt/h4vibe is a mounted directory, not how.

Bumped claude-dev to 1.0.6 and mistral-dev to 1.0.4, and documented the new ${localEnv:USER}-scoped volume pattern in AGENTS.md alongside the existing ${devcontainerId} one.

Test plan

  • Both devcontainer-feature.json files are valid JSON
  • install.sh/setup-credentials.sh confirmed mount-type-agnostic (only checks [ -d "$STAGED" ])
  • No automated regression coverage possible — this is Codespaces-specific runtime behavior the existing devcontainer features test matrix (local Docker, plain Linux GH Actions runners) can't reproduce

🤖 Generated with Claude Code

@github-actions

Copy link
Copy Markdown

✅ PR Validation Passed

All checks passed!


📋 Pipeline Status

Job Status
🧾 Conventional Commits passing
🔖 Version Bump passing
🧪 Feature Tests passing
🐚 ShellCheck passing

🤖 Generated by @helpers4 CI • 2026-08-30

@baxyz baxyz changed the title fix(claude-dev, mistral-dev): document GitHub Codespaces incompatibility fix(claude-dev, mistral-dev): switch to named-volume persistence, fixing GitHub Codespaces Aug 30, 2026
@baxyz
baxyz force-pushed the docs/claude-mistral-dev-codespaces-incompatibility branch from 86a14aa to 7934a7b Compare August 30, 2026 21:24
baxyz added 2 commits August 30, 2026 21:31
…bind-mount

GitHub Codespaces doesn't support host bind-mounts at all, so the
${localEnv:HOME}/.claude bind-mount failed the whole container build
there. Docker named volumes don't have that failure mode and need no
initializeCommand, so this switches to one, scoped by ${localEnv:USER}
to keep credentials shared across every local devcontainer for the
same OS user, matching the previous behavior.

Fixes #66
…ind-mount

Same fix as claude-dev: GitHub Codespaces doesn't support host
bind-mounts, so the ${localEnv:HOME}/.vibe bind-mount failed the whole
container build there. Switched to a Docker named volume scoped by
${localEnv:USER}, matching claude-dev's approach.

Fixes #66
@baxyz
baxyz force-pushed the docs/claude-mistral-dev-codespaces-incompatibility branch from 7934a7b to e44fac1 Compare August 30, 2026 21:32
@baxyz baxyz changed the title fix(claude-dev, mistral-dev): switch to named-volume persistence, fixing GitHub Codespaces fix(claude-dev, mistral-dev): persist credentials via a named volume, fixing GitHub Codespaces Aug 30, 2026
@baxyz
baxyz merged commit 4fd3b6b into main Aug 30, 2026
34 checks passed
@baxyz
baxyz deleted the docs/claude-mistral-dev-codespaces-incompatibility branch August 30, 2026 21:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

claude-dev / mistral-dev: host bind-mount fails container creation on GitHub Codespaces

1 participant