T4.c1: ops note for restruct --only main; c1 log

This commit is contained in:
Drew T
2026-10-02 04:45:35 -06:00
parent 0c5418da56
commit 2868587e23
3 changed files with 29 additions and 0 deletions
+1
View File
@@ -54,3 +54,4 @@ wsl-disk-capped-75gb.md | wsl-disk-capped-75gb | 34
p38-t4-2026-09-29-restruct-head-fold-mode.md | §P38 T4 — 2026-09-29: restruct rung L head-fold mode | 9
p39-t1-2026-10-01-restruct-stale-supersede-timeline-check.md | §P39 T1 — 2026-10-01: restruct stale-row supersede; timeline --check | 5
p39-t3-2026-10-02-restruct-rung-s-residue-head-types-add-pads.md | §P39 T3 — 2026-10-02: restruct rung S residue/check-residue; head_types --add-pads | 6
p39-t4-2026-10-02-restruct-only-main.md | §P39 T4 — 2026-10-02: restruct --only main | 5
@@ -0,0 +1,5 @@
# §P39 T4 — 2026-10-02: restruct `--only main`
- `restruct.py --only main`: exact selector for the main executable's TUs: top-level `src/*.c` (`tu.count("/") == 1`) and `src/resident/**`; same test as the fallback-defs walk and the sample stratifier. Never matches `src/shared/main/*.h` (the substring rule is skipped for `main`).
- Works for `--apply --rung S`, `--residue`, `--check-residue`; with the cycle: `LABEL_PREFIX=t4_main_ TASK=T4 bash tools/restruct_cycle.sh 1 40 200 S main`.
- harness: `restruct_cycle.sh` expands ONLY unquoted, so `ONLY="src/shared/*"` is pathname-expanded by bash into the subdirs (which then match nothing); use `ONLY=shared` for the cycle (prefix `src/shared/`); call restruct directly with `--only "src/shared/*"`.
+23
View File
@@ -0,0 +1,23 @@
# T4.c1 — `--only main`; rung S sweep md_* / main (shared: nothing drawable)
## Changed
- tools/restruct.py matches_only: exact `main` selector (`tu.count("/")==1` or `src/resident/`), excluded from the substring fallthrough so it never matches `src/shared/main/*.h`; selftest +1 → 97/97 OK. Commit 95612c3097 (with kit-corpus copies of restruct.py, head_types.py).
- docs/ops/p39-t4-2026-10-02-restruct-only-main.md + docs/ops/INDEX.md line.
## Sweep (restruct_cycle.sh, detached, rung S, batch 200)
- md_* (`t4_md_`): S1 3a259e0198 (63 files, 692 members/8 kept), S2 ef3cab3047 (37 files, 1509/136), S3 52b50095e5 (9, 30/2), S4 93260530b5 (1, 12/3), S5 773878d86a (1, 25/2); S6 nothing drawable. Every batch final N/N identical, R22 218/218 (commit lines).
- main (`t4_main_`): S1 f6f4ae75d0 (3 files, 76 members/2 kept, final 3/3, R22 218/218); S2 nothing drawable. Plan: 533 bases type-not-canonical.
- shared: `restruct --plan --rung S --headers --only "src/shared/*"` (and `--only shared`) → 0 drawable files, skipped {type-not-canonical 3054, type-not-visible 1}; without --headers 0 (src/shared has only .h). Cycle not run (no-op).
- No looping files.
- harness: two main cycles were running (pids 1638943/1638947, same command, origin unknown — likely the T4.c2 coder started one too); the second was refused by restruct's apply.lock with no tree change. Never two cycles: the lock held.
## Census P/X (sites.jsonl; before = T3 final, after = census of t4_main_S1, 04:40)
- md: P 8955 → 6130, X 92 → 92. main: P 1755 → 1672, X 83 → 83. shared: P 11268 → 11268, X 184. ov unchanged (238399 / 13431).
## Residue
- My `--residue` runs (t4_res_md/main/shared) wrote 0 rows: T4.c2 (commit c2ea6e5428, labels t4_res_md/t4_res_main/t4_res_sh) had already ledgered them. `--check-residue` → uncovered 0 sites / 0 bodies for md_*, main, src/shared/*, ov_* (rc 0 each).
- Latest non-ov S verdicts (ledger): md MEMBERS 528, TYPE-NOT-CANONICAL 697, KEPT 39, S2 27, RESIDUAL 13, NO-SITE 6, KEPT-ALL 2; main MEMBERS 20, TYPE-NOT-CANONICAL 255, RESIDUAL 10, NO-SITE 2, S2 1; shared TYPE-NOT-CANONICAL 1671, RESIDUAL 37.
## Not run by c1
- Final check-structs, check-casts, clean R22: T4.c2 is running the census and the final steps concurrently (pid 1694196 at 04:45); running a `make clean` gate now would collide with it.
- Main's gate: gate_main.py only gates draft slates (it git-checkouts main TUs, R102 conflict); main was gated by the cycle's clean R22 (check-all 218 includes main).