Skip to content

fix(agents): TMPDIR must not be dot-led - #17

Merged
aicayzer merged 1 commit into
mainfrom
fix/undotted-runner-tmpdir
Aug 20, 2026
Merged

fix(agents): TMPDIR must not be dot-led#17
aicayzer merged 1 commit into
mainfrom
fix/undotted-runner-tmpdir

Conversation

@aicayzer

Copy link
Copy Markdown
Owner

Closes #16. Found by another session tracing why one repository's suite had failed every CI run for eight days.

The dot was never load-bearing. Redirecting TMPDIR away from the shared /var/folders temp is deliberate and stays, because a job that leaks into the shared temp cannot be swept safely. Naming the target .tmp rather than tmp was incidental tidiness, and it silently breaks any tool that applies dotfile-ignore rules to an absolute path rooted at os.tmpdir().

It fails by ignoring everything rather than erroring, which is why it survived both a machine-contention explanation and a timeout raised more than fourfold.

clean now sweeps both names so an install predating this does not orphan its old directory, and removes the legacy one once empty. On this machine that is about 1.4GB across four runners.

The package caches keep their dots. Only npm and pnpm read those and neither walks its own cache, so the hazard does not apply. The asymmetry is commented so it does not read as an oversight.

Applying it to a live install needs runpool rewrite-agents and a restart cycle, since the environment lives in the launch agent. Not done here.

Library code roots things at os.tmpdir() without knowing where it points,
and a dotted component in the absolute path silently disables anything
applying dotfile-ignore rules to it. A watcher rooted there ignored its
whole tree and failed every run of one repository's suite for eight days,
load independent, which is why raising its timeout fourfold changed
nothing.

Redirecting TMPDIR stays: the shared temp cannot be swept safely. Only the
dot goes. clean sweeps both names so an upgraded install does not orphan
its old directory, and retires the legacy one once empty. The package
caches keep their dots, since only npm and pnpm read them and neither
walks its own cache.

Closes #16
@aicayzer
aicayzer merged commit f6e588c into main Aug 20, 2026
2 checks passed
@aicayzer
aicayzer deleted the fix/undotted-runner-tmpdir branch August 20, 2026 18:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

TMPDIR points at a dot-led directory, which silently disables dotfile-ignore tooling

1 participant