@mutmutco/cli 3.55.0 → 3.56.0
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/dist/main.cjs +1 -54
- package/package.json +1 -1
package/dist/main.cjs
CHANGED
|
@@ -24401,34 +24401,7 @@ async function runDoctorClean(opts, io, deps) {
|
|
|
24401
24401
|
const cli = checkCliVersion(cliInput, releasedNote);
|
|
24402
24402
|
if (cli) checks.push(cli);
|
|
24403
24403
|
}
|
|
24404
|
-
|
|
24405
|
-
const cacheStale = cacheProbe.stale.length > 0 || cacheProbe.staging.length > 0;
|
|
24406
|
-
if (applyEnv && deps.prunePluginCache && cacheStale) {
|
|
24407
|
-
const pruned = await deps.prunePluginCache();
|
|
24408
|
-
const removed = pruned.removed ?? [];
|
|
24409
|
-
const pruneEvidence = [
|
|
24410
|
-
`cached versions: ${cacheProbe.cached}`,
|
|
24411
|
-
`stale: ${cacheProbe.stale.length ? cacheProbe.stale.join(", ") : "(none)"}`,
|
|
24412
|
-
`orphaned staging dirs: ${cacheProbe.staging.length ? cacheProbe.staging.join(", ") : "(none)"}`,
|
|
24413
|
-
`prune: ${pruned.detail}`,
|
|
24414
|
-
...removed.map((r) => `removed: ${r}`)
|
|
24415
|
-
];
|
|
24416
|
-
checks.push(pruned.ok ? {
|
|
24417
|
-
ok: true,
|
|
24418
|
-
label: "plugin cache",
|
|
24419
|
-
detail: removed.length ? `pruned ${removed.length} stale entr${removed.length === 1 ? "y" : "ies"}` : "nothing to prune",
|
|
24420
|
-
verbose: pruneEvidence
|
|
24421
|
-
} : {
|
|
24422
|
-
ok: false,
|
|
24423
|
-
label: "plugin cache",
|
|
24424
|
-
// Same split as the other env heals (#3489): a contention skip is not this run's gap.
|
|
24425
|
-
...pruned.skipped ? { reportOnly: true } : {},
|
|
24426
|
-
fix: pruned.skipped ? `${pruned.detail} \u2014 another doctor on this machine is pruning it now; re-run once it finishes` : `prune failed (${pruned.detail}) \u2014 run \`mmi-cli plugin prune --apply\``,
|
|
24427
|
-
verbose: pruneEvidence
|
|
24428
|
-
});
|
|
24429
|
-
} else {
|
|
24430
|
-
checks.push(checkPluginCache(cacheProbe));
|
|
24431
|
-
}
|
|
24404
|
+
checks.push(checkPluginCache(deps.pluginCache()));
|
|
24432
24405
|
if (deps.sessionPayload) {
|
|
24433
24406
|
const payload = checkSessionPayload(deps.sessionPayload());
|
|
24434
24407
|
if (payload) checks.push(payload);
|
|
@@ -24847,32 +24820,6 @@ function mmiDoctorDeps(opts = {}) {
|
|
|
24847
24820
|
stagingBytes: plan.stagingBytes
|
|
24848
24821
|
};
|
|
24849
24822
|
},
|
|
24850
|
-
// #3485 wave 2 item 11: the --apply reap, through the SAME plan + reaper `plugin prune --apply` drives.
|
|
24851
|
-
// The plan's own keep-policy refuses the running and newest versions, so this cannot delete what is
|
|
24852
|
-
// loaded. Under the #3489 env-heal lock: deleting cache dirs while another doctor is mid-reinstall is
|
|
24853
|
-
// the same machine-global hazard the lock exists for.
|
|
24854
|
-
prunePluginCache: () => withEnvHealLock("plugin cache prune", async () => {
|
|
24855
|
-
const plan = buildPluginCachePlan(
|
|
24856
|
-
(0, import_node_os9.homedir)(),
|
|
24857
|
-
runningPluginVersion(process.env, resolveClientVersion()),
|
|
24858
|
-
pluginCacheFsDeps((0, import_node_os9.homedir)(), directoryBytes),
|
|
24859
|
-
{ withBytes: true }
|
|
24860
|
-
);
|
|
24861
|
-
const result = applyPluginCachePlan(
|
|
24862
|
-
plan,
|
|
24863
|
-
(p) => (0, import_node_fs32.rmSync)(p, { recursive: true, force: true }),
|
|
24864
|
-
stagingApplyFsGuard((0, import_node_os9.homedir)())
|
|
24865
|
-
);
|
|
24866
|
-
const removed = [...result.removed, ...result.removedStaging ?? []];
|
|
24867
|
-
if (result.failed.length) {
|
|
24868
|
-
return {
|
|
24869
|
-
ok: false,
|
|
24870
|
-
removed,
|
|
24871
|
-
detail: `${removed.length} removed, ${result.failed.length} failed \u2014 ${result.failed.map((f) => `${f.version}: ${f.error}`).join("; ")}`
|
|
24872
|
-
};
|
|
24873
|
-
}
|
|
24874
|
-
return { ok: true, removed, detail: removed.length ? `removed ${removed.join(", ")}` : "nothing to prune" };
|
|
24875
|
-
}),
|
|
24876
24823
|
// #3008: the schedules-notebook drift probe, compacted for the check. Full doctor only — the gather in
|
|
24877
24824
|
// runDoctorClean skips this dep entirely on fast/banner/preflight runs.
|
|
24878
24825
|
schedulesNotebook: async () => {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mutmutco/cli",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.56.0",
|
|
4
4
|
"description": "MMI Future CLI — the org dev toolbox (board, registry, keyless secrets, release train, bootstrap, doctor) and the cross-IDE engine the plugin's session-start hook drives.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "UNLICENSED",
|