@vzn/vx 0.0.598 → 0.0.599
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.
|
|
3
|
+
"version": "0.0.599",
|
|
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.
|
|
25
|
-
"@vzn/vx-linux-arm64": "0.0.
|
|
26
|
-
"@vzn/vx-darwin-x64": "0.0.
|
|
27
|
-
"@vzn/vx-darwin-arm64": "0.0.
|
|
24
|
+
"@vzn/vx-linux-x64": "0.0.599",
|
|
25
|
+
"@vzn/vx-linux-arm64": "0.0.599",
|
|
26
|
+
"@vzn/vx-darwin-x64": "0.0.599",
|
|
27
|
+
"@vzn/vx-darwin-arm64": "0.0.599"
|
|
28
28
|
},
|
|
29
29
|
"dependencies": {
|
|
30
30
|
"@anthropic-ai/sandbox-runtime": "^0.0.76"
|
package/src/cache/archive.ts
CHANGED
|
@@ -209,6 +209,9 @@ interface PackArgs {
|
|
|
209
209
|
within?: string
|
|
210
210
|
}
|
|
211
211
|
|
|
212
|
+
/** The largest second count ustar's 12-byte mtime field holds: 11 octal digits. */
|
|
213
|
+
const USTAR_MTIME_MAX = 8 ** 11 - 1
|
|
214
|
+
|
|
212
215
|
/** At or below this many outputs, `planArtifact` stats them on the calling thread. */
|
|
213
216
|
const ON_THREAD_STATS = 32
|
|
214
217
|
|
|
@@ -309,10 +312,10 @@ export async function planArtifact(args: PackArgs): Promise<ArtifactPlan> {
|
|
|
309
312
|
size: st.size,
|
|
310
313
|
mode,
|
|
311
314
|
mtimeMs: Math.floor(st.mtimeMs),
|
|
312
|
-
// ustar's octal field holds no sign: an mtime before
|
|
313
|
-
// header unreadable and
|
|
314
|
-
// sidecar above carries the real value.
|
|
315
|
-
mtime: Math.max(0, Math.floor(st.mtimeMs / 1000)),
|
|
315
|
+
// ustar's octal field holds no sign and 11 digits: an mtime before
|
|
316
|
+
// 1970 made the header unreadable, and one past March 2242 failed
|
|
317
|
+
// every save of the task. The sidecar above carries the real value.
|
|
318
|
+
mtime: Math.min(USTAR_MTIME_MAX, Math.max(0, Math.floor(st.mtimeMs / 1000))),
|
|
316
319
|
}
|
|
317
320
|
}),
|
|
318
321
|
)
|
package/src/cache/cache.ts
CHANGED
|
@@ -1570,13 +1570,14 @@ export class Cache implements CacheLayer {
|
|
|
1570
1570
|
} catch (err) {
|
|
1571
1571
|
// A UserError here is the extractor naming the tree's fault (an
|
|
1572
1572
|
// output directory that links out of the project).
|
|
1573
|
-
if (
|
|
1574
|
-
|
|
1575
|
-
|
|
1576
|
-
|
|
1577
|
-
|
|
1578
|
-
|
|
1579
|
-
|
|
1573
|
+
if (err instanceof CorruptArtifactError || err instanceof UserError) throw err
|
|
1574
|
+
// The save and the ingest proved every name safe, so one that reads
|
|
1575
|
+
// unsafe now is damaged or tampered bytes: a long name's pax record
|
|
1576
|
+
// has no header checksum, and the name is judged before the CRC at
|
|
1577
|
+
// the end is read. Thrown as is, it failed the task on every run with
|
|
1578
|
+
// the entry kept (X-115).
|
|
1579
|
+
if (err instanceof ArchiveSecurityError)
|
|
1580
|
+
throw new CorruptArtifactError(hash, err.message, err)
|
|
1580
1581
|
// What is on disk, not what is in the archive: a directory standing
|
|
1581
1582
|
// where the entry holds a file, or a file where it needs a directory.
|
|
1582
1583
|
// The clean removes the FILES the output globs select and the
|
|
@@ -531,7 +531,12 @@ async function executePersistentTask(args: ExecuteArgs): Promise<TaskOutcome> {
|
|
|
531
531
|
return {
|
|
532
532
|
node,
|
|
533
533
|
status: 'failed',
|
|
534
|
-
|
|
534
|
+
// A server that traps the TERM and exits 0 still timed out, as a
|
|
535
|
+
// one-shot task that does so reports 143 (X-116).
|
|
536
|
+
exitCode:
|
|
537
|
+
ready?.reason === 'timeout'
|
|
538
|
+
? (await spawn.child.exited) || signalExitCode('SIGTERM')
|
|
539
|
+
: (ready?.exitCode ?? 1),
|
|
535
540
|
durationMs: spawn.readyMs(),
|
|
536
541
|
...(ready !== undefined ? { notReady: ready.reason } : {}),
|
|
537
542
|
wallclockStartNs,
|