Commit 8bf9618
fix(local-ci): per-leg TMPDIR so concurrent legs cannot fail each other's temp-root hygiene scans (#112)
* fix(local-ci): #110 — per-leg TMPDIR so concurrent legs cannot fail each other's temp-root hygiene scans
Four concurrent legs shared the system /tmp, so cli.test.ts's hygiene
assertion (snapshot agent-bundle-artifact-* under os.tmpdir(), fail on new
ones) could see a sibling leg's legitimate in-flight artifact-inspection
directory and fail. Each leg now gets a private TMPDIR under the run's
scratch root (.worktrees/local-ci/tmp/<leg>), recreated every run, so every
leg's temp traffic — and the test's scan — is naturally scoped. The
assertion keeps its strictness: a directory leaked by the leg's own process
tree still lands in the leg's temp root and still fails its scan.
Co-authored-by: Zack Jackson <ScriptedAlchemy@users.noreply.github.com>
* fix: relocate per-leg TMPDIR to short system-temp path (AF_UNIX 108-byte limit)
Chrome creates AF_UNIX sockets inside TMPDIR; the repo-nested
.worktrees/local-ci/tmp/<leg> path overflowed the kernel's 108-byte
sun_path limit (126 chars measured) and crashed every browser
integration test at launch on all three verify legs. Keep the per-leg
private TMPDIR (#110 isolation unchanged) but place it at
os.tmpdir()/abci-<hash8>-<leg>, where <hash8> is SHA-256 of the repo
root — stable per repo so reruns reuse (and rm -rf + mkdir reset) it,
and concurrent runs from different checkouts cannot collide. Longest
leg path is 32 chars, leaving ~35 bytes of socket-name headroom.
---------
Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: Zack Jackson <ScriptedAlchemy@users.noreply.github.com>1 parent 9f61396 commit 8bf9618
2 files changed
Lines changed: 42 additions & 6 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
20 | 20 | | |
21 | 21 | | |
22 | 22 | | |
23 | | - | |
24 | | - | |
25 | | - | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
26 | 37 | | |
27 | 38 | | |
28 | 39 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
24 | 24 | | |
25 | 25 | | |
26 | 26 | | |
27 | | - | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
28 | 37 | | |
| 38 | + | |
29 | 39 | | |
30 | 40 | | |
31 | 41 | | |
32 | 42 | | |
33 | | - | |
| 43 | + | |
34 | 44 | | |
35 | 45 | | |
36 | 46 | | |
| |||
380 | 390 | | |
381 | 391 | | |
382 | 392 | | |
| 393 | + | |
| 394 | + | |
| 395 | + | |
| 396 | + | |
| 397 | + | |
| 398 | + | |
| 399 | + | |
| 400 | + | |
| 401 | + | |
| 402 | + | |
| 403 | + | |
| 404 | + | |
383 | 405 | | |
384 | 406 | | |
385 | 407 | | |
386 | 408 | | |
387 | | - | |
| 409 | + | |
| 410 | + | |
| 411 | + | |
| 412 | + | |
388 | 413 | | |
389 | 414 | | |
390 | 415 | | |
| |||
0 commit comments