@nurix/etna 0.19.80 → 0.19.81

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,5 +1,5 @@
1
1
  {
2
- "fingerprint": "f0d6766a263f",
2
+ "fingerprint": "798dd0b4e94c",
3
3
  "harnesses": {
4
4
  "code": {
5
5
  "plugin": "code",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "harness": "code",
3
3
  "name": "code",
4
- "version": "3.10.6",
4
+ "version": "3.10.7",
5
5
  "files": [
6
6
  ".prettierignore",
7
7
  ".prettierrc.json",
@@ -15,5 +15,5 @@
15
15
  "docs/memory/main.md",
16
16
  ".mcp.json"
17
17
  ],
18
- "digest": "9198a225596a"
18
+ "digest": "3e27328dde24"
19
19
  }
@@ -323,15 +323,18 @@ function packageGate(projectDir, command, sessionId) {
323
323
  // The repo a Bash command acts on: an explicit `cd <dir>` in the command wins, then the
324
324
  // payload's cwd, then the session's home project — a session may operate across repos
325
325
  // (forge + consumer), and gating a commit against the wrong repo blocks or passes falsely.
326
+ // A candidate is normalized to its git toplevel: a cwd inside the repo (packages/studio)
327
+ // still gates — and writes the session log — against the repo root, not the subdirectory.
326
328
  function commandRoot(projectDir, payload, command) {
327
329
  const cdMatch = /(?:^|&&|;)\s*cd\s+"?([^"\s;&]+)"?/.exec(command || "");
328
330
  for (const candidate of [cdMatch && cdMatch[1], payload.cwd]) {
329
331
  if (!candidate || !path.isAbsolute(candidate)) continue;
330
332
  try {
331
- if (fs.statSync(candidate).isDirectory()) return candidate;
333
+ if (!fs.statSync(candidate).isDirectory()) continue;
332
334
  } catch (e) {
333
- /* fall through */
335
+ continue;
334
336
  }
337
+ return git(candidate, ["rev-parse", "--show-toplevel"]) || candidate;
335
338
  }
336
339
  return projectDir;
337
340
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nurix/etna",
3
- "version": "0.19.80",
3
+ "version": "0.19.81",
4
4
  "description": "Bootstrap a project with a Nurix harness — copies the harness's CLAUDE.md, skills, agents, rules, and hooks directly into the project from a bundled payload (no marketplace fetch, no network).",
5
5
  "type": "module",
6
6
  "bin": {
@@ -42,5 +42,5 @@
42
42
  "agent",
43
43
  "plugin"
44
44
  ],
45
- "etnaFingerprint": "f0d6766a263f"
45
+ "etnaFingerprint": "798dd0b4e94c"
46
46
  }