feat: pin Pi packages and manage resource directories - #27
Merged
Conversation
Aviator-Coding
pushed a commit
to Aviator-Coding/dotfiles
that referenced
this pull request
Aug 1, 2026
* Configure pinned Pi packages and resource directories * no-mistakes(review): Recognize Home Manager links during Pi directory migration * no-mistakes(review): Canonicalize expected Pi migration test source * no-mistakes(document): Refresh Pi link documentation
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
Implement the public dotfiles Pi follow-up: declare exactly the audited npm codex-fast package at 0.2.6 and the captain-authorized immutable algal OpenAI server-compaction commit through Pi global settings without vendoring either; retain Pi runtime ownership of npm/git packages and document the clean-HOME Pi 0.82 startup auto-install behavior, immutable update process, experimental stale peer range, security implications, and privacy boundary. Change Home Manager from the two existing Pi child-file links to whole out-of-store themes and extensions directory links while retaining individual settings.json and models.json links, with a narrowly scoped migration that only removes the exact legacy managed links before collision checks. Add focused non-activating migration and configuration regression coverage. Do not manage auth, sessions, trust, caches, package trees, or any other Pi runtime state; do not modify private dotfiles, activate live configuration, vendor package sources, or create an upstream PR. The captain explicitly accepted the exact compaction commit on Pi 0.82 despite its upstream stale >=0.80.9 <0.81.0 peer bound after local load and remote-compaction proof; third-party packages execute with full user permissions.
What Changed
AGENTS.mdthrough aCLAUDE.mdsymlink.Risk Assessment
✅ Low: The change is well bounded, satisfies the stated Pi package and runtime ownership constraints, and the corrected migration precisely recognizes the prior Home Manager link shape with matching non-activating regression coverage.
Testing
The non-activating Home Manager build and disposable migration regression passed, including preservation of unrelated Pi state. An isolated clean-HOME Pi 0.82.0 startup automatically installed npm package 0.2.6 and detached the compaction repository at commit
c6d593087709e9481223dc6c6c2269b371b5e055into Pi-owned npm/git directories.Evidence: Focused Home Manager migration test
Evidence: Pi 0.82 isolated clean-HOME startup
Pipeline
Updates from git push no-mistakes
✅ **intent** - passed
✅ No issues found.
✅ **Rebase** - passed
✅ No issues found.
🔧 **Review** - 1 issue found → auto-fixed (2) ✅
home.nix:81- The migration compared each link's immediatereadlinkvalue with the repository source, but Home Manager links$HOMEentries to<nix-store-path>-home-manager-files/..., which only then resolves to the out-of-store source. A real upgrade would leave both child links and directories in place, causingcheckLinkTargetsto reject the new parent-directory links. The test originally created direct repository links. The fix matches the Home Manager-owned immediate target, verifies its fully resolved destination, and reproduces that two-hop shape in the test fixture.🔧 Fix: Recognize Home Manager links during Pi directory migration
tests/pi-home-manager.sh:67- The assertion expected canonicalization to preserve the~/.dotfilesalias, but bootstrap makes that path a symlink to the repository, so canonicalization returns the repository's physical path instead. The fix compares both sides after canonicalization and asserts that the expected source resolves successfully.🔧 Fix: Canonicalize expected Pi migration test source
✅ Re-checked - no issues remain.
✅ **Test** - passed
✅ No issues found.
✅ **Document** - passed
✅ No issues found.
✅ **Lint** - passed
✅ No issues found.
✅ **Push** - passed
✅ No issues found.