@arjunkhera/atlas 0.3.3 → 0.3.4

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.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "atlas",
3
- "version": "0.3.3",
3
+ "version": "0.3.4",
4
4
  "description": "Atlas: the delivery lifecycle, its crews and the Atlas tools, for any repository.",
5
5
  "author": {
6
6
  "name": "Arjun Khera"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@arjunkhera/atlas",
3
- "version": "0.3.3",
3
+ "version": "0.3.4",
4
4
  "description": "Atlas: the delivery lifecycle, its crews and the Atlas tools, as a Claude Code plugin for any repository.",
5
5
  "type": "module",
6
6
  "license": "UNLICENSED",
package/work/mcp.mjs CHANGED
@@ -140,8 +140,16 @@ export function readConnection(env, { allowLoopbackHttp = false, now = Date.now(
140
140
  // so the server refuses to start when one is set. The plugin's .mcp.json sets
141
141
  // NODE_OPTIONS to empty.
142
142
  export const HOSTILE_NODE_VARIABLES = Object.freeze(['NODE_TLS_REJECT_UNAUTHORIZED', 'NODE_EXTRA_CA_CERTS', 'NODE_USE_ENV_PROXY', 'NODE_PATH']);
143
+ // A Claude cloud session reaches the network only through Claude's own proxy,
144
+ // which opens HTTPS. The cloud sets two of these variables to fixed values for
145
+ // that proxy. The owner accepted that proxy on 7 October 2026 ("Narrow
146
+ // exception"): the server accepts exactly these values, and only when the
147
+ // cloud's own marker is set. Any other value stays hostile, in the cloud too.
148
+ export const CLOUD_NODE_VARIABLES = Object.freeze({ NODE_EXTRA_CA_CERTS: '/root/.ccr/ca-bundle.crt', NODE_PATH: '/usr/local/lib/node_modules_global' });
149
+ export const inClaudeCloud = (env) => env.CLAUDE_CODE_REMOTE === 'true';
143
150
  export function hostileVariables(env) {
144
- const found = HOSTILE_NODE_VARIABLES.filter((name) => env[name] !== undefined && env[name] !== '');
151
+ const cloud = inClaudeCloud(env);
152
+ const found = HOSTILE_NODE_VARIABLES.filter((name) => env[name] !== undefined && env[name] !== '' && !(cloud && CLOUD_NODE_VARIABLES[name] === env[name]));
145
153
  if (env.NODE_OPTIONS !== undefined && env.NODE_OPTIONS !== '') found.push('NODE_OPTIONS');
146
154
  return found;
147
155
  }