Repository navigation
feat(t27os): DOCTOR watches agent litter, in-use folders and low disk; CLAUDE.md where t27 work lives - #12188
Conversation
…; CLAUDE.md "Where t27 work lives" Found in the 2026-10-25 disk cleanup (2.8 GiB free, the app refused to make a worktree): agent clones and worktrees piled up in the home folder and /tmp. - doctor.t27: agent roots (~/t27-lanes, ~/t27-lane-*, ~/t27-wt-*, /private/tmp, /tmp, .codex, .gemini), an in-use guard (lsof, fails closed, leftovers only, F_IN_USE / F_IN_USE_CHECKED), a low-disk word under 6 GiB and a "to free" total; 13 tests, 0 vacuous. - glass_window.t27: plumbing only (the sixth repo job, the flags, the panel line); compiles with t27b --macho, no error. - CLAUDE.md: one section holds the rules where t27 work lives; the other homes point at it. Non-repo scratch trees and loose lane files are the follow-up #12184. Closes #12183 Refs #12184 Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
Night tick 155, lab gate on head fd10d9a: T27 OS lab run https://github.com/Trinity-S-AI-DNA/t27os/actions/runs/40157835044 (challenge 9fe77612).
|
Summary by t27-beesChecked by the t27 compilert27c parse, parse-complete and typecheck on each changed .t27 file at
Read by the modelThe PR teaches the T27 OS DOCTOR to recognize agent litter roots (new Worth a look
Read: 4 files, +214 -31, the whole diff. Head |
|
Lab receipt (correction: an earlier tick said no receipt; the night loop's local t27os checkout was on a feature branch, and the receipt is on t27os master): https://github.com/Trinity-S-AI-DNA/t27os/blob/master/runs/fd10d9a39241ad43190077f86727fca9e7a07a70.f4459697.json reader: T27 OS lab t27c built at fd10d9a + t27b leg (arm64), spec specs/t27os/doctor.t27 |
…ts state the prefix match and the anchored roots (Refs #12183) Review of #12188 (tri-claw): lsof exits 1 whether it printed a pid or failed, so an error with empty stdout read as "idle". The host now joins stderr to stdout for JOB_LIVE only: a failed lsof prints text, which counts as "in use". A normal run prints nothing on stderr (measured: 0 bytes), so no row is kept by noise. Also measured on lsof 4.91: the exact-name exclusion "-c ^/re/" is ignored, so "-c ^git -c ^du" stays a prefix match; the JOB_LIVE and AGENT_ROOTS comments now say so, and that every root begins with "/" (a folder name must start with it). doctor.t27 13/13 tests, 0 vacuous; glass_window.t27 compiles with t27b --macho. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
Addressed in 79e814f (review of fd10d9a):
doctor.t27: 13/13 tests, 0 vacuous. glass_window.t27 compiles with 🤖 Addressed by Claude Code |
PR DashboardGenerated at: 2026-10-25 04:04:58 UTC
Summary
Seal Status
|
|
Lab receipt for head 79e814f (night tick 159):
|
What this adds
The T27 OS DOCTOR now watches the problems found in the 2026-10-25 disk cleanup (2.8 GiB free, the app refused to make a worktree, about 38 GiB of agent litter removed by hand).
~/t27-lanes/,~/t27-lane-*,~/t27-wt-*,/private/tmp/,/tmp/,.claude/worktrees/,.codex/and.gemini/classify a repo as agent litter.lsofcheck found no process with a working directory or open file below it. The check runs only for leftovers (job_wanted), is repeated synchronously at confirm time, and fails closed: not checked, or an answer above exit code 1, means not removable. New flagsF_IN_USEandF_IN_USE_CHECKED; new keep reason "keep: a process is using it".CLAUDE.mdsection "Where t27 work lives" holds them;AGENTS.mdpoints at it.Decisions live in
specs/t27os/doctor.t27as pure functions with tests;specs/t27os/glass_window.t27only does plumbing (the sixth repo job, two flags, one panel line).Checks run
t27c test-report specs/t27os/doctor.t27on the rebased branch: 13 tests, 13 pass, 0 fail, 0 vacuous (new:a_folder_a_process_is_using_is_never_offered,the_panel_counts_only_what_can_go,the_disk_floor_is_the_apps_floor,the_in_use_check_runs_only_for_leftovers).t27b build specs/t27os/glass_window.t27 --machoon the rebased branch: compiles, no error line (the existing t27b: AAPCS64 for aggregates and stack parameters, so those functions are exported too #8972 notes only).F_LIVEalready comes fromt27os::release), so the flags are namedF_IN_USEandF_IN_USE_CHECKED.Not done / trade-offs
lsof +Dre-check is synchronous and can block the window for a few seconds on a huge tree. That is deliberate: a stale answer could remove a live folder.Closes #12183
Refs #12184
🤖 Generated with Claude Code