T4.c2: rung S sweep md/main/shared: log

This commit is contained in:
Drew T
2026-10-02 04:56:56 -06:00
parent 2868587e23
commit 4fe2af2e95
+36
View File
@@ -0,0 +1,36 @@
# T4.c2 — rung S sweep: md_*, main, shared (Phase 3.39)
## Cycles
- md_*: `LABEL_PREFIX=t4_md_` (pid 1360696, launched by c1/expert), log `.run/P37/restruct/cycle_t4_md.log`; 5 batches t4_md_S1..S5, all `final N/N identical`, R22 218/218 each; S6 "nothing drawable", exit=0. Commits 3a259e019 ef3cab304 52b50095e 93260530b 773878d86. Sites → members: 692+1509+30+12+25 = 2268.
- main: `LABEL_PREFIX=t4_main_`, log `.run/P37/restruct/cycle_t4_main.log`; 1 batch t4_main_S1 (3 TUs drawable, 76 sites → members, written 1 file), R22 218/218, commit f6f4ae75d; S2 nothing drawable, exit=0.
- shared: `--plan --rung S --only "src/shared/*" --headers` → 0 drawable; skipped bases {type-not-canonical 3054, type-not-visible 1}. Non-headers plan → 0 bodies (src/shared/* holds only .h: ov 3148, slot_* 26, main 1). No t4_sh_/t4_shc_ cycle run (nothing to draw).
- Every cycle exit had X == Y (final identical); no `--restore` needed; `git status src` clean after each.
- Readability snapshot "refused (a stale census?)" on every batch: cycle continues; not gating.
## Residue (commit c2ea6e5428, ledger force-added)
- t4_res_md: 710 rows · 4847 sites · causes TYPE-NOT-CANONICAL 4815, NO-TYPE-IN-MAP 31, FILE-SCOPE 1
- t4_res_main: 265 rows · 1740 sites · TYPE-NOT-CANONICAL 1712, NO-TYPE-IN-MAP 19, FILE-SCOPE 9
- t4_res_sh: 1708 rows · 11452 sites · TYPE-NOT-CANONICAL 11353, NO-TYPE-IN-MAP 90, TYPE-NOT-VISIBLE 9
- `--check-residue` uncovered 0 sites / 0 bodies for md_*, main, src/shared/*, ov_*.
- harness: commit_task.sh re-runs plain `git add` on passed paths, which fails for the gitignored ledger even after `git add -f`; workaround: `git add -f` then commit_task.sh with NO path args (commits what is staged).
## P/X before → after (sites.jsonl after refresh; scratch .run/t4c2_scope_px.py)
- md 9047 → 6222
- top-level main 1755 → 1672
- resident 78 → 78
- shared/ov 11428 → 11428
- shared/slot_* 23 → 24 (+1; not investigated; no shared header was edited this task)
- Residual cause everywhere: overwhelmingly TYPE-NOT-CANONICAL (bases whose type is not the canonical header type); no head_types --add-pads fan-out attempted.
## Census / checks
- `type_census.py` refreshed; `--check-structs --quiet` → OK, rc 0 (twins_stale=0, dead_kept=2; no docs/struct-twins.md edit needed).
- `--check-casts --quiet` rc 1: `check-casts: raw P=257464 I=51505 X=13790 M=15130; macros CAST_ALIAS=1173 CAST_SIGN=8429 CAST_WIDTH=10410 CAST_MISALIGNED=624 CAST_NONSTRUCT=327 (unbacked 0); lying=229 (ledgered 0)` (T3 close P=260372 I=51514).
## R22
- Final: `.run/logs/t4_final_r22.log` (make clean && extract-all && check-all JOBS=16) → `check-all: 218 passed, 0 failed of 218`.
## gate_main finding
- tools/gate_main.py takes a slate.json `[{"fn","draft",binary?}]` from gate_lane: byte-verifies decompiled-function drafts substituted into main TUs (and git-checkouts them). restruct.py / restruct_cycle.sh never reference it; restruct judges via delever_oracle per-object equality, the cycle via clean fleet R22 (config/check.main.sha is one of the 218). gate_main does NOT apply to rung S slates; main's rung-S gate = per-object oracle + cycle R22. (Source: retriever-code read of gate_main.py:32-33,243-249; restruct_cycle.sh:29,59.)
## Tools edits
- none (no kit-corpus/tools-health needed).