Repository navigation
feat(pi): let pi packages track their latest release - #87
Merged
worldofgeese merged 1 commit intoNov 1, 2026
Merged
Conversation
The user's decision: pi packages track their latest release, not a pin. - modules/pi.nix accepts `npm:name` next to `npm:name@version`. An entry without a version tracks the latest release: each switch runs `pi update` for it, because pi does not update packages on its own. The package name drops a trailing @Version only when that version has no slash, so `npm:@scope/name` stays unpinned. Moving an entry between forms removes the old entry and installs the new one through pi, as before. - ponytail, context-mode and pi-beads-extension are unpinned. - chorus-pi stays at chorusVersion. The Chorus client, chorus-pi and the team server move together. INTERFACES, ARCHITECTURE and OPERATIONS describe the new rule. The billion-context follow-up (bead home-manager-hfq) now only needs the unpinned entry once a release includes billion-context#4898.
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
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.
What
The user's decision (2026-11-01): pi packages track their latest release.
modules/pi.nixacceptsnpm:namenext tonpm:name@version.pi updatefor it, because pi does not update packages on its own.@versiononly when that version has no/, sonpm:@scope/namestays unpinned.modules/M-02877/token-toolchain.nix,modules/M-02877/agent-integrations.nix).chorusVersion. The Chorus client, chorus-pi and the team server move together. I proposed this to the user, and they didn't object.INTERFACES, ARCHITECTURE and OPERATIONS describe the new rule. With this change, the billion-context follow-up (bead
home-manager-hfq) only needsnpm:billion-contextonce a release includes ranxianglei/billion-context#4898.Proof
The activation loop ran against a sample
settings.jsonwith every kind of entry:settings.jsonnpm:@dietrichgebert/ponytail@5.3.3pi removeit, thenpi install npm:@dietrichgebert/ponytailnpm:context-mode@1.0.169pi removeit, thenpi install npm:context-mode@0.23.0npm:pi-beads-extensionpi updatenpm:billion-context(declared, not yet installed)pi install{source: ...}object entrypi updatenix evalofpiAgent.packagesand a build of the M-02877 Home Manager generation both pass. The generatedactivatescript (bash 5.3) contains the new loop.Pre-commit
just checkpassed.CI-local
decapod validate --refresh-specspassed (171 pass, 0 fail), and the drift check is clean.Full local
decapod validateis still blocked by the three older done TODOs (beadhome-manager-350), as in feat(M-02877): send pi through Caveman's compat mount and Headroom #84. The user confirmed that PRs may proceed on the CI-local proof.Deploy
Run
just deploy-darwin. The first switch replaces the three pinned entries with unpinned ones. After that, each switch runspi updatefor them. If an update fails (for example, no network), activation warns and continues, and the next switch retries.