Repository navigation
fix(tools): install zsh on Linux from the catalog - #2338
Conversation
Nothing installed zsh on Linux, so on a fresh ubuntu runner the zshrc and zsh-* deploy entries, all gated on requires: zsh, never deployed and nothing reported it. packages.json gains an apt-only system entry; macOS ships zsh. A manifest test now asserts every command an entry requires is installed by the catalog on each OS the entry deploys to, or is exempted with its reason, and that no exemption outlives its need.
|
Warning Review limit reachedYou've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. Next included review available in 23 minutes. View limit details
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
PR Reviewer Guide 🔍Here are some key observations to aid the review process:
⚙️ Agent run details
|
Review triageReviewers on 8855f10:
The |
Summary
On Linux nothing installed zsh:
packages.jsonhad no entry and no setup step installs it. Thezshrc,zsh-aliases,zsh-functionsandzsh-nvmdeploy entries are gated onrequires: zsh, so on a freshubuntu-latestrunner they never deployed, and the gate reported it as "not this machine's tool". Found by the from-zero job (#2013 X1, run 38110204139; ledger row in #2013 comment 6105288445).packages.json: asystementry for zsh, apt only. macOS ships zsh; on Windows the zsh configs do not apply.TestManifest_EveryRequiredCommandIsInstalledWhereTheEntryDeploys: every command anai/deploy.jsonentry requires is installed by the catalog on each OS the entry deploys to, or is named inrequiredButNotCatalogedwith the reason. An exemption that is no longer needed fails too, soclaude(PLAT-001: [EPIC] OS-agnostic from-zero bootstrap — macOS bring-up as the forcing function #2013 PR-B) andpi(Move the pi CLI install from the setup twins into packages.json #2278) must drop theirs when they reach the catalog.Test plan
go vet ./... && GOOS=windows go vet ./... && go test ./...: exit 0;golangci-lint run ./...: 0 issuespackages.json: exit 0packages.jsonfails the guard onzsh/linux; a stale exemption (lazygit) fails it as no longer neededSpec
Under 50 production LOC (9 lines of
packages.json). It is the P5b row of #2013's X1 ledger.Knowledge
requiresgate hides a command nothing installs)tool-installation.mddescribes system entries genericallyRefs #2013