fix(dotfiles-sync): document real Codespaces/Gitpod/DevPod mount risk + nub roadmap - #54
Merged
Merged
Conversation
No groups configured at all — every update (patch, minor, or major) got its own individual PR. Groups everything into one "actions" PR per run. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
PR#52's manifest was correctly bumped 1.0.0 → 1.0.1 → 1.0.2 across three commits on the branch (confirmed: the pre-merge commits still exist in the object store with the right version and compact JSON formatting), but what actually landed on main after merge had version reverted to 1.0.0, with keywords/enum/extensions arrays reformatted from compact to multi-line. Root cause unconfirmed. Practical effect: release.yml only ever saw a single 'new feature at 1.0.0' diff for the whole PR, so GHCR now holds a v1.0.0 tag whose content actually matches the bug-fixed code (harmless) but no version bump for the fixes was ever recorded (not harmless — no changelog signal, no re-triggered downstream publish). Restores the correct manifest content and bumps to 1.0.1 — the next version that was never actually published (verified: no playwright-dev v1.0.1 or v1.0.2 tag exists on origin). Also documented the incident in AGENTS.md so post-merge state gets checked, not just pre-merge. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Nub (nubjs.com) is explicitly not a new runtime — it wraps the existing node+package-manager setup for speed, never replaces it. Strategy is additive/opt-in at every step: dependsOn the official node feature (never nub's own node-version-management, to avoid two competing version-selection mechanisms), package-auto-install gains an optional nub delegate, pnpm-store compatibility gets verified before recommending the pairing, pilot in typescript before wider rollout, CI adoption kept as an explicitly separate decision. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
The Codespaces/Gitpod/DevPod platform notes only ever covered what gets
merged there (protected keys, GPG skip) — never whether the mount
succeeds at all. ${localEnv:HOME} resolves against the cloud VM
GitHub/Gitpod provisions, never the user's actual laptop, so the exact
same missing-mount-source crash risk documented for local/Windows
applies there too, and needs the same initializeCommand fix. Even with
that fix, there is nothing real to sync on Codespaces unless the user
has separately configured GitHub's own dotfiles-repository
personalization to seed the VM's home first — the docs previously gave
no indication of this.
Also references the open, unmerged upstream proposal for optional
mounts (devcontainers/spec#132) confirmed via research: 16 comments,
several other projects hitting the identical .aws/.kube-style problem
with the same initializeCommand workaround, no maintainer commitment
yet — so this is a real, currently-unfixable-upstream limitation, not
something we're missing a trick for. Added a matching note to AGENTS.md
so this isn't relearned per-feature.
Docs only, no sync-files.sh behavior change.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
✅ PR Validation Passed
📋 Pipeline Status
🤖 Generated by @helpers4 CI • 2026-08-07 |
Verified against actual history (commit beb0dcb): pnpm-store's volume name was originally a fixed 'helpers4-pnpm-store' and got the ${devcontainerId} suffix specifically to avoid cross-project store collisions on the same Docker daemon, not because volumes have the same missing-source crash risk as bind mounts (they don't — Docker auto-creates a named volume regardless). playwright-dev already follows this correctly (checked). Documenting so the next feature that adds a shared volume doesn't have to rediscover this from a commit message. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Two things, requested together:
dotfiles-synccloud-environment docs were incomplete. The Codespaces/Gitpod/DevPod sections only ever documented what gets merged on those platforms (protected keys, GPG skip) — never whether the mounts succeed at all.${localEnv:HOME}resolves against the cloud VM GitHub/Gitpod provisions, not the user's actual machine, so the exact same missing-mount-source crash risk documented for local/Windows applies there too, and needs the sameinitializeCommandfix. Confirmed via research that this is a known, currently-unfixable-upstream limitation —devcontainers/spec#132("Proposal: enable optional bind mounts") is open with 16 comments, several other projects hitting the identical.aws/.kube-style problem with the sameinitializeCommandworkaround, no maintainer commitment yet.nubroadmap entry into a concrete migration strategy — additive/opt-in at every step (dependsOn the officialnodefeature, nevernub's own node-version management),package-auto-installintegration,pnpm-storecompatibility verification before recommending the pairing, pilot-first rollout.Type of Change
Related Issues
References
devcontainers/spec#132(upstream, not fixed by this PR — documented as a known limitation).How Has This Been Tested?
jq emptyon the manifestsync-files.shbehavior change — docs and version bump onlyChecklist
Screenshots (if applicable)
N/A.
Additional Context
None.
🤖 Generated with Claude Code