@vzn/vx 0.0.53 → 0.0.54

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vzn/vx",
3
- "version": "0.0.53",
3
+ "version": "0.0.54",
4
4
  "description": "An open, extensible monorepo task runner.",
5
5
  "type": "module",
6
6
  "exports": {
@@ -17,10 +17,10 @@
17
17
  "node": ">=18"
18
18
  },
19
19
  "optionalDependencies": {
20
- "@vzn/vx-linux-x64": "0.0.53",
21
- "@vzn/vx-linux-arm64": "0.0.53",
22
- "@vzn/vx-darwin-x64": "0.0.53",
23
- "@vzn/vx-darwin-arm64": "0.0.53"
20
+ "@vzn/vx-linux-x64": "0.0.54",
21
+ "@vzn/vx-linux-arm64": "0.0.54",
22
+ "@vzn/vx-darwin-x64": "0.0.54",
23
+ "@vzn/vx-darwin-arm64": "0.0.54"
24
24
  },
25
25
  "dependencies": {
26
26
  "@anthropic-ai/sandbox-runtime": "^0.0.76"
@@ -72,7 +72,7 @@ export interface VxPlugin {
72
72
 
73
73
  /**
74
74
  * The task graph, after `dependsOn` expansion and before scheduling. Add
75
- * or drop edges (`node.deps`), mark tasks requested, adjust resources. A
75
+ * or drop edges (`node.deps`), mark tasks requested. A
76
76
  * dep naming a task that is not in the graph, or a cycle, is refused with
77
77
  * the plugin's name.
78
78
  */
@@ -242,8 +242,9 @@ export async function prepareRun(options: RunOptions, log: Logger): Promise<Prep
242
242
  const workspaceFingerprint = fingerprints.unclaimed
243
243
  mark('open cache')
244
244
 
245
- // Frozen mode (--frozen, CI): configs load FROM vx-lock.json after a
246
- // content-hash tripwire — no evaluation; env-dependent configs keep
245
+ // Frozen mode (--frozen, CI): configs load FROM vx-lock.json with no
246
+ // evaluation and no check of the config bytes (`vx lock --check`
247
+ // compares `configHash`; a run does not); env-dependent configs keep
247
248
  // their locked values. Default (local) runs ALWAYS evaluate live:
248
249
  // a byte hash can't see a config's import closure (shared presets),
249
250
  // so consuming the lock by default would silently serve stale
@@ -333,7 +334,10 @@ export async function prepareRun(options: RunOptions, log: Logger): Promise<Prep
333
334
  })
334
335
  } catch (err) {
335
336
  // A cache plugin that throws or returns something off-contract is
336
- // refused by name; the local handle opened above must not leak with it.
337
+ // refused by name; the local handle opened above must not leak with it,
338
+ // nor what another plugin's factory opened: the factories have run
339
+ // (C-4, item 1029's contract).
340
+ await teardownPlugins(plugins, (m) => log.status(m))
337
341
  localCache.close()
338
342
  throw err
339
343
  }