Repository navigation
Replies: 1 comment
|
Second data point from another macOS machine, for scope:
So the rewrite itself looks intended; what looks fragile is the drop path: an entry that lives only in Two asks, both cheap:
|
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
What happens
Running
dsh plugin --profile <name> add <package>can leave a profile with fewer bundles than it had before, and with entries that no longer resolve on disk.Observed shape:
package.json→dsh.profile.bundleslists N bundles, including an out-of-tree plugin that is symlinked into the profile'snode_modules(installed by hand, not a dependency of the profile manifest)dsh plugin --profile <name> add <some-package>dsh.profile.bundles(the package is still present innode_modules), some other listed entry points at a package that is not innode_modules, and one newly named entry appears — all in one write, with the manifest mtime matching the installMechanism (from reading the shipped app)
The manifest sync rebuilds the list from
package.jsondependencies; for each dependency that declaresdsh.bundleand is not disabled and not already listed, it appends the name, and writes the manifest back if the array changed:That accounts for the write-back, and for dropping anything that is in
node_modulesbut not independencies(out-of-tree / symlinked / alias installs). It does not by itself explain entries that name packages absent fromnode_modules.Suggested fix
dsh.profile.bundles.skippedBundlesalready exists) instead of rewriting the list around it, so failures stay visible and reversible.Rewriting the whole ordered load table as a side effect of installing one plugin is the dangerous part: a single install can change what the next launch loads.
All reactions