impel-cli 0.20.12 → 0.20.13

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/RELEASE_NOTES.md CHANGED
@@ -1,5 +1,13 @@
1
1
  # Release notes
2
2
 
3
+ ## 0.20.13 — Allocation publication race
4
+
5
+ - Retries allocation when a competing process moves the published lock between
6
+ the expected create collision and inspection.
7
+ - Prevents a harmless `ENOENT` publication race from escaping as an MCP error
8
+ or consuming an agent inference turn.
9
+ - Adds a deterministic regression test for the exact production interleaving.
10
+
3
11
  ## 0.20.12 — Internal admission retry
4
12
 
5
13
  - Absorbs brief local run-allocation lock contention inside the transport
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "impel-cli",
3
- "version": "0.20.12",
3
+ "version": "0.20.13",
4
4
  "description": "Prepare isolated Claude and Codex workspaces for every accessible Impel tenant",
5
5
  "type": "module",
6
6
  "bin": {
@@ -1388,7 +1388,13 @@ export class NativeAgentCompositeTransport {
1388
1388
  throw error;
1389
1389
  }
1390
1390
  fs.rmSync(generationPath, { recursive: true, force: true });
1391
- const stat = fs.lstatSync(lockPath);
1391
+ let stat;
1392
+ try {
1393
+ stat = fs.lstatSync(lockPath);
1394
+ } catch (statError) {
1395
+ if (statError?.code === "ENOENT") continue;
1396
+ throw statError;
1397
+ }
1392
1398
  if (stat.isSymbolicLink()) throw new Error("refusing to use symlinked native-agent run lock");
1393
1399
  let current = null;
1394
1400
  let legacy = null;