@haus-tech/haus-workflow 5.9.0 → 5.9.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +6 -0
- package/dist/cli.js +18 -2
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [5.9.1](https://github.com/WeAreHausTech/haus-workflow/compare/v5.9.0...v5.9.1) (2026-09-24)
|
|
4
|
+
|
|
5
|
+
### Bug Fixes
|
|
6
|
+
|
|
7
|
+
- **plugins:** read user-scope enabled state from settings.json, not the merged plugin list ([#594](https://github.com/WeAreHausTech/haus-workflow/issues/594)) ([7f93cb9](https://github.com/WeAreHausTech/haus-workflow/commit/7f93cb9c7d3bd01868f8fec4c73582b00e361561)), closes [#593](https://github.com/WeAreHausTech/haus-workflow/issues/593)
|
|
8
|
+
|
|
3
9
|
## [5.9.0](https://github.com/WeAreHausTech/haus-workflow/compare/v5.8.0...v5.9.0) (2026-09-24)
|
|
4
10
|
|
|
5
11
|
### Features
|
package/dist/cli.js
CHANGED
|
@@ -2754,6 +2754,9 @@ function findManagedInstall(state, pin) {
|
|
|
2754
2754
|
const id = pluginId(pin);
|
|
2755
2755
|
return state.installed.find((p) => p.id === id && (p.scope ?? MANAGED_SCOPE) === MANAGED_SCOPE);
|
|
2756
2756
|
}
|
|
2757
|
+
function isEnabledAtUserScope(state, pin) {
|
|
2758
|
+
return (state.userEnabledPlugins ?? {})[pluginId(pin)] !== false;
|
|
2759
|
+
}
|
|
2757
2760
|
function isPluginActive(state, pin) {
|
|
2758
2761
|
if (!state.available) return false;
|
|
2759
2762
|
const id = pluginId(pin);
|
|
@@ -2795,7 +2798,7 @@ function planBuiltin(pin, state) {
|
|
|
2795
2798
|
reason: `plugin ${id} is not installed at ${MANAGED_SCOPE} scope`
|
|
2796
2799
|
};
|
|
2797
2800
|
}
|
|
2798
|
-
const enabled =
|
|
2801
|
+
const enabled = isEnabledAtUserScope(state, pin);
|
|
2799
2802
|
if (wantEnabled && !enabled) {
|
|
2800
2803
|
return {
|
|
2801
2804
|
pin,
|
|
@@ -7276,6 +7279,18 @@ async function readMarketplaceRefs(configDir) {
|
|
|
7276
7279
|
}
|
|
7277
7280
|
return out;
|
|
7278
7281
|
}
|
|
7282
|
+
async function readUserEnabledPlugins(configDir) {
|
|
7283
|
+
const settings = await readJson(
|
|
7284
|
+
path37.join(configDir, "settings.json")
|
|
7285
|
+
);
|
|
7286
|
+
const raw = settings?.enabledPlugins;
|
|
7287
|
+
if (raw === null || typeof raw !== "object" || Array.isArray(raw)) return {};
|
|
7288
|
+
const out = {};
|
|
7289
|
+
for (const [id, value] of Object.entries(raw)) {
|
|
7290
|
+
if (typeof value === "boolean") out[id] = value;
|
|
7291
|
+
}
|
|
7292
|
+
return out;
|
|
7293
|
+
}
|
|
7279
7294
|
async function readClonedPluginVersion(installLocation) {
|
|
7280
7295
|
const manifest = await readJson(
|
|
7281
7296
|
path37.join(installLocation, ".claude-plugin", "plugin.json")
|
|
@@ -7351,7 +7366,8 @@ async function probePluginEnv(deps = {}) {
|
|
|
7351
7366
|
warn2("Claude Code returned unreadable plugin state \u2014 leaving global plugins untouched.");
|
|
7352
7367
|
return { available: false, installed: [], marketplaces: [] };
|
|
7353
7368
|
}
|
|
7354
|
-
|
|
7369
|
+
const userEnabledPlugins = await readUserEnabledPlugins(configDir);
|
|
7370
|
+
return { available: true, installed, marketplaces, userEnabledPlugins };
|
|
7355
7371
|
}
|
|
7356
7372
|
function stepArgs(step, pin) {
|
|
7357
7373
|
const id = pluginId(pin);
|