Files
BFM-decomp/phase-ends/current/logs/T1.md
T

4.7 KiB

T1 log — phase-start health, carry cleanup and baselines (Phase 3.39)

Timeline:

  • Read card slice, plan Context/Interfaces/Cookbook/Research, T1 entry, phase-3.38 T6/T7 summaries.
  • timeline.py --check STALE → timeline.py + progress.py --readme (README block unchanged, Levers 3,729 live) → --check fresh → commit 3feb64acd2.
  • research_add.py adopt --task T1 → R3.39-001 (cast instruments).
  • R22 on src == start commit 7c28c1b8af (git diff --quiet 7c28c1b8af HEAD -- src include config): make clean && make extract-all JOBS=16 && make check-all JOBS=16 → 217/0/217 extracted, 218 passed 0 failed (.run/logs/t1_r22.log).
  • restruct --check-ledger already clean before any change (it checks MEMBER sites, not stale rows); the 18 rows were census conflicting_types=18. No restruct path drew them (--redraw only re-draws TUs argcheck still flags) → coder T1.c1.
  • Coder T1.c1 (6ea94447d7): restruct --rung D --redraw KEY supersedes lifted rows with no argcheck lying row (DECL-NONE, cause "already canonical: no lying declaration left (stale … superseded)"); argcheck rows factored to argcheck_rows(); selftest 77/77; --plan reported 16 .c + 2 .h. Log logs/T1.c1.md.
  • Parallel: lever_census -j 8 --out-dir .run/P39/levers --sites (.run/logs/t1_lcensus.log, 51.9 s); type_census -j 16 --out-dir .run/P39/census --no-cache --sites failed first (FileNotFoundError parked.tsv: out-dir not created) → mkdir -p → rerun OK (.run/logs/t1_tcensus2.log, 214.8 s, at 6ea94447d7, src stamp 287e6f521d908e6d).
  • delever_oracle --snapshot-baseline -j 16 + --calibrate ov_SC04_011 ov_SC03_015 md_SC07_004 main -j 16 → 7428 objects; 146/146 identical, twin 32/0, positive control DIFFERS OK (.run/logs/t1_snap.log). restruct --selftest --real 82/82 (.run/logs/t1_selftest_real.log).
  • Real supersede: restruct --apply --rung D --redraw DECL-KEPT:conflicting --label t1_stale → 16; same --headers --label t1_stale_h → 2; ledger 173441 → 173459 rows; no src touched.
  • Verify part 1 (.run/logs/t1_verify_a.log): tools-health FAIL in tool_census --check: 9 gaps (tools/expert_ttl.py no dictionary row + missing corpus copy; corpus copies stale for launch.py, phaseend_index.py, plan_edit.py, restruct.py; PhaseEnd_Phase3.38 record copy missing). Fix: PROJECT-ONLY row for expert_ttl.py in config/tool_dictionary.tsv + make kit-corpus → tool_census --check OK. Commit 5f8a490f98 (with tracked .run census/ledger/calibration via git add -f; first commit_task attempt refused the ignored paths).
  • Verify part 2 (t1_verify_b): timeline STALE again (progress.json moved) → regenerated, commit cadda579cb → t1_verify_c STALE again: Commits column of 2026-10-01 counts that day's commits, the timeline's own commit bumps it (5 vs 6). Never fresh after a same-day commit → coder T1.c2 (0cb2b6b522): --check masks only the latest row's Commits cell; negative control (historic cell 93→94 → STALE) passed. Log logs/T1.c2.md.
  • make kit-corpus again (timeline.py corpus copy) + census outputs → commit b5e18e5f83.
  • type_census --check-structs --quiet → OK, conflicting_types=0 tu_conflict=0 types_floor_lying=229 (.run/logs/t1_checkstructs.log).
  • t1_verify_d: timeline --check fresh (81 rows), make tools-health OK, --check-ledger 0 violations, rc=0.
  • Re-snapshot + calibrate + restruct --selftest --real at b5e18e5f83 → 7428 objects, 146/146, 82/82 (.run/logs/t1_snap2.log).
  • Aggregations: .run/P39/t1/agg.py (sites.jsonl per form/binary/bclass/base; .run/logs/t1_agg.log), .run/P39/t1/lying.py (restruct argcheck_cache rows, filter as type_census.py:1358-1360).
  • docs/ops/p39-t1-2026-10-01-restruct-stale-supersede-timeline-check.md + INDEX line (H7).

Hypotheses rejected:

  • "--check-ledger flags the stale rows": it reported 0 before the change; the rows are visible only in check-structs conflicting_types.
  • "a redraw clears them": plan_D draws only TUs in argcheck's lying set; these units are not in it.

Coder briefs: T1.c1 (restruct supersede, tools/restruct.py only, no real apply), T1.c2 (timeline --check mask, tools/timeline.py only). Retrievers: none. Reports: R3.39-001 adopted (pending retriever-code-p39-cast-instruments.md).

Per-binary raw deref (P+I+X+M), top 30: shared/ov 12832, ov_SC06_032 6897, ov_SC06_018 6867, ov_SC06_033 6637, ov_SC06_024 6109, ov_SC06_022 5698, ov_SC02_011 5476, ov_SC02_005 5275, ov_SC03_028 5240, ov_SC04_011 5170, ov_SC02_027 4857, ov_SC02_028 4808, ov_SC03_006 4790, ov_SC03_094 4678, ov_SC03_091 4559, ov_SC03_090 4474, ov_SC06_010 4464, ov_SC02_017 4402, ov_SC02_026 4379, ov_SC03_118 4375, ov_SC06_029 4367, ov_SC05_010 4365, ov_SC03_105 4313, ov_SC03_007 4297, ov_SC02_000 4291, ov_SC03_104 4212, ov_SC03_014 4176, ov_SC01_077 4146, ov_SC06_008 4092, ov_SC03_093 4086. Full Counter: rerun .run/P39/t1/agg.py.