fix(nix): make the materialized .claude/ writable so the skills hook can write - #138
Merged
Conversation
…can write rsync -a preserves the read-only mode of nix store paths, so after the first materialization .claude/ was mode 555 and the agent-skills hook could not mkdir .claude/skills/holochain. Every nix shell entry and every CI job logged 'rsync: mkdir failed: Permission denied (13)' three times. Non-fatal but noisy, and a red herring when diagnosing real e2e failures: in PR #130's failing run the error appears immediately before the launcher timeout, though the two are unrelated. .cursor/ already had this exact chmod; .claude/ was missing it.
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.
Intent
Every
nix developentry and every CI job logs this, three times:It is non-fatal, but it is noise on every run and an active red herring when diagnosing real failures: in PR #130's failing e2e run the error appears immediately before
launch-happ.mjs exited before ready, which invites the conclusion that they are related. They are not, and confirming that costs time each round.Root cause
The shellHook materializes
.claude/out of the nix store:rsync -apreserves permissions, and nix store paths are read-only, so.claude/lands as mode555. The agent-skills hook that runs a few lines later then cannotmkdir .claude/skills/holochaininside it..cursor/is materialized the same way and already carrieschmod -R u+w .cursorfor exactly this reason..claude/was simply missing the equivalent line.Change
One line, mirroring the
.cursor/treatment, placed after the rsync and before the skills hook, with a comment recording why it is load-bearing.How to test
Verified locally:
.claudeis nowdrwxr-xr-x,.claude/skills/holochainis created, and the second run produces no rsync output at all. Before the fix the second run reproduced the error every time.Related
Clears one of the two prerequisites listed for reviewing #130 (the other being the 0.7 launcher timeout, which is genuinely unrelated and remains open).