From b1dbfcb5727fec11e353b29c5d507c71a6af1d0e Mon Sep 17 00:00:00 2001 From: Drew T <50529377+Druthulu@users.noreply.github.com> Date: Thu, 6 Aug 2026 12:43:19 -0600 Subject: [PATCH] fix(phase-30 S45): family_sweep --hseq stub map derives ov_*+md_*+resident (R32) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - the .run/sig.ov_*.jsonl glob had no md_ entries, so every module member fell into an empty stubs.get() and booked a silent 'not-stub' skip — the I.1d glob-widening class, missed because family_sweep sat on the audit's 'auto-OK' list - negative control: --only 0x80165b28 --stage-only staged 0 md members before, 32/32 after --- tools/family_sweep.py | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/tools/family_sweep.py b/tools/family_sweep.py index f52b7db0cf..873be8ab90 100644 --- a/tools/family_sweep.py +++ b/tools/family_sweep.py @@ -448,9 +448,15 @@ def hseq_sweep(a): pre-filter, so a chunk never bisects on a hopeless draft. Pin-free templates only (§42e): a matched exemplar carrying hard-reg pins would cc1-crash a sibling TU → that group fails+reverts at the gate.""" manifest = json.load(open(os.path.join(REPO, a.hseq))) - stubs = {ov: stub_map(ov) for ov in - [os.path.basename(p).split("sig.")[1][:-6] for p in - sorted(glob.glob(os.path.join(REPO, ".run/sig.ov_*.jsonl")))]} + # Binary set DERIVED from src/ dirs (ov_* + md_* + resident), mirroring family_hseq (P30 S45): + # the old `.run/sig.ov_*.jsonl` glob had no md_ entries, so every module member fell into + # `stubs.get(ov, {})` = {} -> counted "not-stub" -> silently skipped (the R32 class again). + _bins = [os.path.basename(d) for d in + sorted(glob.glob(os.path.join(REPO, "src/ov_*"))) + + sorted(glob.glob(os.path.join(REPO, "src/md_*")))] + if os.path.isdir(os.path.join(REPO, "src/resident")): + _bins.append("resident") + stubs = {ov: stub_map(ov) for ov in _bins} only = set(int(x, 16) for x in a.only.split(",")) if a.only else None bands = None if a.band == "all" else set(a.band.split(","))