Repository navigation
fix(docs-lookup): remove the --out directory when a docs lookup ends - #12936
Conversation
The shared reading procedure makes its --out directory with mktemp -d and never removed it, so every docs lookup left a tmp.* directory (up to 1.2 MB with a changelog page) in the OS temp folder. Step 1 now tells the reader to remove it by its literal path when the lookup ends, and to go on if the permission rules refuse. lib/fetch-docs.test.sh case 28 asserts the step is present; it fails on the old procedure. Refs: #9571 Co-Authored-By: Claude Opus 5.5 <[email protected]> Claude-Session: https://claude.ai/code/session_01MWmASLb8hq2u1wgYpFAbZt
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
|
claude-security-review reviewed Security review: PR #12936I found no security issues. I read all 24 changed files. Where several files had the same change, I read the first one and checked that the others sit at the same kind of path:
Paths I checked:
critical-findings: 0 |
|
claude-review reviewed Code review: no findingsWhat changed. Step 1 of Checks
Not verified. I ran nothing. The test counts (222/222), the Scope. |
Refs: #9571
Summary
A fourth host run re-counted
/tmpand traced eachtmp.*,leak-scan*andwork*entry created since #12397 merged (2026-11-02 15:29:33Z). The one creator still on main is the shared docs lookup procedure: step 1 makes--outwithmktemp -d, and no step removed it. Each lookup left atmp.*directory (manifest.json,llms.txt, page files, up to 1.2 MB with a changelog page). The procedure now prints the path and has the reader remove it.Fix
lib/docs-lookup-procedure.mdstep 1: print$out, and remove it by that literal path when the lookup ends, at whatever step it stops. A later Bash call does not keep$out. The cache keeps the page, so nothing read by<ref>is lost. A refused removal (a CI lane's fixed allowlist) is reported, not a failure. The guardrails root-delete guard allowsrm -rf /tmp/x(plugins/guardrails/hooks/block-root-delete-target-b.test.sh:45).scripts/sync-shared-copies.sh; patch fragments for each carrier fromscripts/new-changelog-fragment.sh --carriers-of.lib/fetch-docs.test.shcase 28 asserts the procedure that makes--outwithmktempalso removes it. Main's procedure has no removal line, so the case fails there.Entries created since #12397 merged (times UTC)
leak-scan-*, 126leak-scan-out-*, 6workflow-go-*, 2026-11-03 16:14-16:15Zcallers.test.mjsfrom a stale checkout. 164 of the leakedpublish-gate.mjscopies match the blob main carried fromfc9bbba477(2026-10-21) untilabbc1c0ffc(2026-10-28); the other 36 are the suite's fixture gates. A baremkdtempSyncforworkflow-go-is the form before #10513TMPDIRat atempDir(callers.test.mjs:33, since #10513). Main cannot change an old checkout's copytmp.*withmanifest.json+llms.txt, 2026-11-02 21:01-21:17Z (11 in/tmpin all)--out(lib/docs-lookup-procedure.md:19)tmp.*withcommit-msg.txt+pr-body.md, 2026-11-03 02:20Zmktemp -dfor a ci-workflows commit; no skill on main writes that pairmktempfiles, 2026-11-02 15:29:48-56Z (6 empty, 2 holding a SHA, 2 holding a changelog-fragment path list)Verification
lib/fetch-docs.test.sh: 222 of 222 pass.scripts/check-affected.sh --testson the committed head: 14 passed, 2 skipped.scripts/sync-shared-copies.sh --check: all 596 copies match.scripts/check-changelog-fragments.sh --check: valid.HOME, and the misejqshim then refuses the user's mise config as untrusted, so a plain run fails 156 of 222. The runs above put the realjqfirst onPATH. That is host setup, not this change.Remaining on #9571
leak-scan*entries made at 16:14Z on 2026-11-03 came from a stale checkout, so any reading taken after that time includes them, though main does not create them.Related
harvest-clone-home-*), fix(test): remove every test temp directory, pass or fail #10513 (testtempDir), evals: claude plugin eval runs leave sealed sandboxes in /tmp #7431 (claude-eval-*), disk-hygiene: make clean model-invocable and audit a tmpfs /tmp #9572 (tmpfs audit).🤖 Generated with Claude Code
https://claude.ai/code/session_01MWmASLb8hq2u1wgYpFAbZt