@vzn/vx 0.0.553 → 0.0.554

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.553",
3
+ "version": "0.0.554",
4
4
  "description": "The fastest task runner and build cache for JavaScript monorepos.",
5
5
  "type": "module",
6
6
  "exports": {
@@ -21,10 +21,10 @@
21
21
  "node": ">=18"
22
22
  },
23
23
  "optionalDependencies": {
24
- "@vzn/vx-linux-x64": "0.0.553",
25
- "@vzn/vx-linux-arm64": "0.0.553",
26
- "@vzn/vx-darwin-x64": "0.0.553",
27
- "@vzn/vx-darwin-arm64": "0.0.553"
24
+ "@vzn/vx-linux-x64": "0.0.554",
25
+ "@vzn/vx-linux-arm64": "0.0.554",
26
+ "@vzn/vx-darwin-x64": "0.0.554",
27
+ "@vzn/vx-darwin-arm64": "0.0.554"
28
28
  },
29
29
  "dependencies": {
30
30
  "@anthropic-ai/sandbox-runtime": "^0.0.76"
@@ -329,7 +329,8 @@ export interface PruneResult {
329
329
  * the full `workspace-outputs/<rel-to-root>` tar entry name as the
330
330
  * discriminator — least-invasive row format, no schema change. A
331
331
  * project output dir literally named `workspace-outputs/` would
332
- * collide with the namespace; the name is reserved.
332
+ * collide with the namespace; the name is reserved, and a project
333
+ * output glob under it is refused at load (config-schema.ts).
333
334
  */
334
335
  export const WORKSPACE_OUTPUT_PREFIX = 'workspace-outputs/'
335
336
 
@@ -650,6 +650,15 @@ export function validateProjectConfig(config: ProjectConfig, configPath: string)
650
650
  `name the directory the task writes, such as "dist/**"`,
651
651
  )
652
652
  }
653
+ // An artifact stores workspace outputs under `workspace-outputs/`,
654
+ // and its index read a project output there as one: every hit was
655
+ // a "corrupt artifact", dropped and run again.
656
+ if (!g.startsWith('!') && normalizeGlob(g).split('/')[0] === 'workspace-outputs') {
657
+ throw new UserError(
658
+ `${where}.cache.outputs.files: "${g}" is under workspace-outputs/, a name vx's ` +
659
+ `artifacts reserve for outputs.workspaceFiles — write the task's files to another directory`,
660
+ )
661
+ }
653
662
  // A `!` entry takes a path back from the outputs (A-44): it is not
654
663
  // cleaned, saved or restored, and it stays an input.
655
664
  assertNotDoubleNegated(g, `${where}.cache.outputs.files`)