@cabane/companion 0.6.4 → 0.6.5

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/cli.js CHANGED
@@ -4980,6 +4980,7 @@ function buildConfig(req) {
4980
4980
  }
4981
4981
  const policy = codexToolPolicy(req.policy);
4982
4982
  const tmpDir = req.local.env?.TMPDIR;
4983
+ const gateLockDir = req.local.env?.CABANE_GATE_LOCK_DIR;
4983
4984
  return {
4984
4985
  mcp_servers,
4985
4986
  experimental_use_rmcp_client: true,
@@ -4997,7 +4998,9 @@ function buildConfig(req) {
4997
4998
  [policy.permissionProfile]: {
4998
4999
  filesystem: {
4999
5000
  ":root": "read",
5000
- ":workspace_roots": { ".": "write", ".git": "write" }
5001
+ ":workspace_roots": { ".": "write", ".git": "write" },
5002
+ // The one absolute-path grant — see the CT612-fallout note above.
5003
+ ...gateLockDir ? { [gateLockDir]: "write" } : {}
5001
5004
  },
5002
5005
  network: { enabled: policy.networkAccessEnabled, mode: "full" }
5003
5006
  }
@@ -7254,6 +7257,9 @@ ${reason}`,
7254
7257
  );
7255
7258
  }
7256
7259
  }
7260
+ if (turnContext.runtime === "codex" && process.env.CABANE_GATE_LOCK_DIR) {
7261
+ turnEnv = { ...turnEnv, CABANE_GATE_LOCK_DIR: process.env.CABANE_GATE_LOCK_DIR };
7262
+ }
7257
7263
  const key = runKey(payload.conversationId, payload.agentId);
7258
7264
  const abortController = new AbortController();
7259
7265
  this.aborts.set(key, abortController);
package/dist/runtime.js CHANGED
@@ -4633,6 +4633,7 @@ function buildConfig(req) {
4633
4633
  }
4634
4634
  const policy = codexToolPolicy(req.policy);
4635
4635
  const tmpDir = req.local.env?.TMPDIR;
4636
+ const gateLockDir = req.local.env?.CABANE_GATE_LOCK_DIR;
4636
4637
  return {
4637
4638
  mcp_servers,
4638
4639
  experimental_use_rmcp_client: true,
@@ -4650,7 +4651,9 @@ function buildConfig(req) {
4650
4651
  [policy.permissionProfile]: {
4651
4652
  filesystem: {
4652
4653
  ":root": "read",
4653
- ":workspace_roots": { ".": "write", ".git": "write" }
4654
+ ":workspace_roots": { ".": "write", ".git": "write" },
4655
+ // The one absolute-path grant — see the CT612-fallout note above.
4656
+ ...gateLockDir ? { [gateLockDir]: "write" } : {}
4654
4657
  },
4655
4658
  network: { enabled: policy.networkAccessEnabled, mode: "full" }
4656
4659
  }
@@ -6907,6 +6910,9 @@ ${reason}`,
6907
6910
  );
6908
6911
  }
6909
6912
  }
6913
+ if (turnContext.runtime === "codex" && process.env.CABANE_GATE_LOCK_DIR) {
6914
+ turnEnv = { ...turnEnv, CABANE_GATE_LOCK_DIR: process.env.CABANE_GATE_LOCK_DIR };
6915
+ }
6910
6916
  const key = runKey(payload.conversationId, payload.agentId);
6911
6917
  const abortController = new AbortController();
6912
6918
  this.aborts.set(key, abortController);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cabane/companion",
3
- "version": "0.6.4",
3
+ "version": "0.6.5",
4
4
  "type": "module",
5
5
  "description": "The Cabane Companion (headless): connect a coding agent on your machine to your Cabane workspace as a responder — drive work against your own codebase, files, and MCP servers without putting any of it in Cabane.",
6
6
  "license": "UNLICENSED",