fix(flake): parenthesise the pointer activation script - #50
Merged
Conversation
#49 made the ~/.agents/skills link in the pointer entry conditional by appending a lib.optionalString to the activation script — but appended it to the RESULT of lib.hm.dag.entryAfter, which is the DAG entry set, not the script. Any consumer with mutablePointer on then failed to evaluate: error: cannot coerce a set to a string: { after = «thunk»; before = [ ]; data = «thunk»; } The two string literals now compose inside the entryAfter call. Caught by evaluating home.activation from a real Home Manager configuration; `nix flake check` cannot see it, since this flake has no Home Manager to instantiate the module against. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01M94JK8t6zguGCTDP7udiUv
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.
#49 made the
~/.agents/skillslink in thespacecraft-construct-skill-pointeractivation entry conditional onperSkillLinks, by appending alib.optionalStringto the script. It appended it to the result oflib.hm.dag.entryAfter— a DAG entry set — rather than to the string inside it. Any consumer withmutablePointer.enable = truethen fails to evaluate:The two string literals now compose inside the
entryAftercall.Why CI did not catch it
This flake has no Home Manager input, so
nix flake checknever instantiates the module — it only checks thepackagesderivations and warnsunknown flake output 'homeManagerModules'. The bug surfaced on the first real evaluation, from Bravais:Both activation entries render correctly with this fix: the pointer entry stops at
…/construct/current(no~/.agents/skillslink, as intended underperSkillLinks), and the per-skill entry emits the link/prune loop withsrc=$HOME/.local/state/construct/current.