@vzn/vx 0.0.566 → 0.0.568

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.566",
3
+ "version": "0.0.568",
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.566",
25
- "@vzn/vx-linux-arm64": "0.0.566",
26
- "@vzn/vx-darwin-x64": "0.0.566",
27
- "@vzn/vx-darwin-arm64": "0.0.566"
24
+ "@vzn/vx-linux-x64": "0.0.568",
25
+ "@vzn/vx-linux-arm64": "0.0.568",
26
+ "@vzn/vx-darwin-x64": "0.0.568",
27
+ "@vzn/vx-darwin-arm64": "0.0.568"
28
28
  },
29
29
  "dependencies": {
30
30
  "@anthropic-ai/sandbox-runtime": "^0.0.76"
@@ -573,7 +573,7 @@ export const FOREIGN_VERBS: Readonly<Record<string, string>> = {
573
573
  query:
574
574
  '`turbo query` has no vx form: `vx run <task> --dry=json` prints the planned graph as JSON',
575
575
  reset:
576
- '`nx reset` is `vx cache prune --older-than <age>` here, or remove the cache directory `vx info` names to drop it all',
576
+ '`nx reset` is `vx cache prune --older-than <age>` here, or delete the cache store `vx info` names to drop it all',
577
577
  daemon: 'vx has no daemon: there is nothing to start or stop',
578
578
  login: TURBO_LOGIN,
579
579
  logout: TURBO_LOGIN,
@@ -59,6 +59,8 @@ export interface JudgeContext {
59
59
  held(): boolean
60
60
  /** Projects whose uncached task may read a git-ignored file. */
61
61
  uncached(): ReadonlySet<string>
62
+ /** Whether `abs`, under the project at `ownDir`, lies in a project nested there (`makeFence`). */
63
+ fenced?(ownDir: string, abs: string): boolean
62
64
  /** The files git listed at the arm; absent when git could not answer. */
63
65
  existedAtArm?: ReadonlySet<string>
64
66
  }
@@ -176,10 +178,12 @@ export class ChangeJudge {
176
178
  // it reads what it likes, and its `.env.local` edit re-ran nothing
177
179
  // (item 947). Under such a project an ignored path is judged when the
178
180
  // user wrote it; one the last cycle wrote (the pid file an uncached
179
- // task rewrites every run, the loop the filter exists for) stays out.
181
+ // task rewrites every run, the loop the filter exists for) stays out,
182
+ // as does one in a project nested under it, which it does not own.
180
183
  const editForUncached = (p: string): boolean =>
181
- [...this.ctx.uncached()].some((dir) => p.startsWith(dir + path.sep)) &&
182
- !this.writtenDuringLastCycle(p)
184
+ [...this.ctx.uncached()].some(
185
+ (dir) => p.startsWith(dir + path.sep) && this.ctx.fenced?.(dir, p) !== true,
186
+ ) && !this.writtenDuringLastCycle(p)
183
187
  // A path still there names the cycle before a gone one: an editor or
184
188
  // `sed -i` saving through a temporary file fires that file first, and
185
189
  // the cycle was announced by a name already renamed away.
package/src/cli/watch.ts CHANGED
@@ -462,6 +462,7 @@ async function runWatchLoop(args: WatchLoopArgs): Promise<number> {
462
462
  armedAt,
463
463
  held: () => held !== undefined,
464
464
  uncached: () => uncached,
465
+ fenced: (ownDir, abs) => fenced(ownDir, abs),
465
466
  ...(existedAtArm !== undefined ? { existedAtArm } : {}),
466
467
  })
467
468
  /** Per-project arms by directory, so `rearm` can add and drop them. */