Repository navigation
Conversation
Every fix doctor printed was `npx -y github:chhoumann/t3-pstack install`, whatever --source the run had. Following it on a home with no marketplace added chhoumann/t3-pstack instead of the source the user named. The fixes now carry the run's --source. A GitHub --source also names that repository as the installer to run, since the installer's version is what each home converges on, and a fork's marketplace has the fork's version. The install gates now ask trustedOnly() instead of reading marketplaceCheck's ok, so they don't build a fix text they never show.
The installer trusts chhoumann/t3-pstack and the run's --source, and it adds a marketplace only to a home that has none. So a home already on chhoumann/t3-pstack stayed there under `install --source owner/fork`, while the report's first line said "from owner/fork" and every check passed. Switching the home in place would also move the default homes to a local checkout on a test run with `--source ./t3-pstack`, and the next plain `update` would then refuse them. So the run still leaves the home's source alone, and the marketplace check warns that the home is not on --source, with the remove command and the rerun that move 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.
Two installer problems show up when a run passes
--sourcefor a fork.1. Doctor's fixes drop the run's
--sourceEvery fix doctor printed was
npx -y github:chhoumann/t3-pstack install, whatever--sourcethe run had. On a home with no marketplace, following it addschhoumann/t3-pstackinstead of the source the user named.Before, on
main(7a38564), in a throwawayHOME:After:
installHint(source)replaces theINSTALL_HINTconstant, and every fix ininstall.mjs, both doctors,marketplaceCheckanddoctorSheetuses it. With no--source, or--source chhoumann/t3-pstack, the text is unchanged. A GitHub--sourcealso names that repository as the package to run.install.mjsalready treats "this package" as "the marketplace's own repo", and each home is checked against the installer's version, which for a fork is the fork's. A local or non-GitHub--sourcekeepsgithub:chhoumann/t3-pstackand adds--source <arg>.The install gates in
installClaude,installCodexandtrustHooksnow call a newtrustedOnly(sources, trusted)instead of readingmarketplaceCheck(...).ok. They never showed the fix text. The condition is the same: at least one source, and every source trusted.2.
--sourcenever moves a home that is already onchhoumann/t3-pstackThe installer trusts both
chhoumann/t3-pstackand the run's--source, and adds a marketplace only to a home that has none. So a home installed earlier fromchhoumann/t3-pstackstays on it underinstall --source J0UH/t3-pstack. The report's first line says "from J0UH/t3-pstack" and every check passes.Before, on a real Claude Code home installed with no
--source:I didn't make the run switch the source. Every run also covers the default homes, so
install --source ./t3-pstack --claude-home /tmp/xwould move~/.claudeand~/.codexto the local checkout, and the next plainupdatewould then refuse them as a local--sourcefrom an earlier run. That is the case the trust rule exists to catch. Switching in place would also uninstall and reinstall the plugin as a side effect of a flag.Instead, the marketplace check warns when a home's sources are all trusted but none is this run's
--source, and prints the commands that move it. A warning doesn't fail the run, so a test run with a local--sourcestill exits 0. The install still converges the home on the source it has. After:Following both fixes with Claude Code 2.1.304 and codex-cli 0.163.0 moves both homes, and every check passes:
claude plugin marketplace removealso uninstalls the plugin and clears theextraKnownMarketplacesentry the installer wrote, so the rerun adds the new source cleanly.codex plugin marketplace removeleaves the installed copy in place. Here the version matched, so the Codex home kept it, and its next update comes from the new marketplace.The README's install paragraph and the header comment in
tools/install.mjsnow say that a run never switches a home's source.Tests
Two tests in
tests/install.test.mjs. Both failed onmainbefore the fix:--source > is in every fix doctor prints, and a GitHub --source runs that repository's installer: runstools/install.mjs doctorwith a fork source and with a local source, and checks every failing checkdoctorClaudereturns for a home with no marketplace.--source > leaves a home on chhoumann/t3-pstack where it is, and doctor warns with the commands that switch it: install still runs on that home, and the marketplace check is a warning with the commands above.I didn't bump
VERSIONor add aCHANGES.mdentry, so the release is yours. The installer runs frommainthroughnpx, so the fix takes effect without a release.