From 2868587e2340feac04aa83c7a7bbc15593fd5afe Mon Sep 17 00:00:00 2001 From: Drew T <50529377+Druthulu@users.noreply.github.com> Date: Fri, 2 Oct 2026 04:45:35 -0600 Subject: [PATCH] T4.c1: ops note for restruct --only main; c1 log --- docs/ops/INDEX.md | 1 + .../p39-t4-2026-10-02-restruct-only-main.md | 5 ++++ phase-ends/current/logs/T4.c1.md | 23 +++++++++++++++++++ 3 files changed, 29 insertions(+) create mode 100644 docs/ops/p39-t4-2026-10-02-restruct-only-main.md create mode 100644 phase-ends/current/logs/T4.c1.md diff --git a/docs/ops/INDEX.md b/docs/ops/INDEX.md index 13e8a6bc3d..602a884782 100644 --- a/docs/ops/INDEX.md +++ b/docs/ops/INDEX.md @@ -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 diff --git a/docs/ops/p39-t4-2026-10-02-restruct-only-main.md b/docs/ops/p39-t4-2026-10-02-restruct-only-main.md new file mode 100644 index 0000000000..46de69d551 --- /dev/null +++ b/docs/ops/p39-t4-2026-10-02-restruct-only-main.md @@ -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/*"`. diff --git a/phase-ends/current/logs/T4.c1.md b/phase-ends/current/logs/T4.c1.md new file mode 100644 index 0000000000..15debc0d45 --- /dev/null +++ b/phase-ends/current/logs/T4.c1.md @@ -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).