metheus-governance-mcp-cli 0.2.42 → 0.2.43

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.
Files changed (2) hide show
  1. package/cli.mjs +27 -3
  2. package/package.json +1 -1
package/cli.mjs CHANGED
@@ -683,12 +683,18 @@ function resolveWorkspaceDirForRequest(defaultWorkspaceDir, requestObj, toolArgs
683
683
  if (strongRequestResolved) {
684
684
  return strongRequestResolved;
685
685
  }
686
- if (strongEnvResolved) {
687
- return strongEnvResolved;
688
- }
689
686
  if (weakRequestResolved) {
687
+ // Prefer client-provided current workspace over fallback env, unless request resolves to home.
688
+ if (isHomeWorkspaceRoot(weakRequestResolved)) {
689
+ if (strongEnvResolved && !isHomeWorkspaceRoot(strongEnvResolved)) {
690
+ return strongEnvResolved;
691
+ }
692
+ }
690
693
  return weakRequestResolved;
691
694
  }
695
+ if (strongEnvResolved) {
696
+ return strongEnvResolved;
697
+ }
692
698
 
693
699
  const localPreferredCandidates = [
694
700
  defaultWorkspaceDir,
@@ -5266,10 +5272,21 @@ function runSelftest(flags = {}) {
5266
5272
  const originalWorkspaceEnv = process.env.METHEUS_WORKSPACE_DIR;
5267
5273
  const forcedEnvWorkspace = path.join(tempRoot, "forced-workspace");
5268
5274
  const defaultWorkspace = path.join(tempRoot, "default-workspace");
5275
+ const weakRequestWorkspace = path.join(tempRoot, "weak-request-workspace");
5269
5276
  fs.mkdirSync(forcedEnvWorkspace, { recursive: true });
5270
5277
  fs.mkdirSync(defaultWorkspace, { recursive: true });
5278
+ fs.mkdirSync(weakRequestWorkspace, { recursive: true });
5271
5279
  process.env.METHEUS_WORKSPACE_DIR = forcedEnvWorkspace;
5272
5280
  const resolvedByEnvPriority = resolveWorkspaceDirForRequest(defaultWorkspace, {}, {});
5281
+ const resolvedByWeakRequestPriority = resolveWorkspaceDirForRequest(
5282
+ defaultWorkspace,
5283
+ {
5284
+ params: {
5285
+ cwd: weakRequestWorkspace,
5286
+ },
5287
+ },
5288
+ {},
5289
+ );
5273
5290
  if (typeof originalWorkspaceEnv === "string") {
5274
5291
  process.env.METHEUS_WORKSPACE_DIR = originalWorkspaceEnv;
5275
5292
  } else {
@@ -5282,6 +5299,13 @@ function runSelftest(flags = {}) {
5282
5299
  envPriorityOk,
5283
5300
  `env=${forcedEnvWorkspace} default=${defaultWorkspace} resolved=${resolvedByEnvPriority || "(none)"}`,
5284
5301
  );
5302
+ const weakRequestPriorityOk =
5303
+ normalizedPathForCompare(resolvedByWeakRequestPriority) === normalizedPathForCompare(weakRequestWorkspace);
5304
+ push(
5305
+ "workspace_weak_request_priority_over_env",
5306
+ weakRequestPriorityOk,
5307
+ `request=${weakRequestWorkspace} env=${forcedEnvWorkspace} resolved=${resolvedByWeakRequestPriority || "(none)"}`,
5308
+ );
5285
5309
  } catch (err) {
5286
5310
  push("workspace_env_guard_test_setup", false, String(err?.message || err));
5287
5311
  } finally {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "metheus-governance-mcp-cli",
3
- "version": "0.2.42",
3
+ "version": "0.2.43",
4
4
  "description": "Metheus Governance MCP CLI (setup + stdio proxy)",
5
5
  "type": "module",
6
6
  "files": [