main-red: test_workflow_lint_prod_import_lockfile::test_live_tree_clean pins 7 live-tree WARNs, main emits 11 (dangling first-party import roots unreconciled)
Highlight text on any card (body, plan, or an event) to anchor a comment, or leave a whole-task comment here. Mention @claude to summon a reply.
No comments yet.
urgency: main-red
The defect
test_live_tree_clean pins the EXPECTED WARN roster of
workflow_lint.py::check_prod_import_lockfile on the live tree (assert at
tests/test_workflow_lint_prod_import_lockfile.py:545). On current main the check emits 11
WARN rows against the pinned 7 (assert 11 == 7), so the test fails on a pristine main
checkout — reproduced 2026-08-27 at the repo root (97.9 s, single node) AND classified by
step9c_baseline.py compare as a stripped pre-existing main-red on a workflow-invariant
test during #2620's Step 9c gate (compare rc=0, new: []).
The 11 realized WARN rows include dangling first-party import roots the pin does not
carry — observed in the gate log: issue2474_fit (9 sites), issue500_predictors (2),
issue541_personas, issue541_predictors, issue541_upload_lib, issue621_analyze,
issue_521_prep_turner_corpus, _issue506_common (4) — plus the two known extra/group
rows (liger_kernel via 'gpu', umap via 'viz'). New dangling roots evidently landed on
main after the pin was last reconciled.
The fix
Reconcile the pin with the live tree the right way per the test's own design: for each NEW dangling first-party root, either (a) the importing script is stale/needs its import fixed or its module landed under a different name — fix the import; or (b) the dangling state is legitimate latent breakage worth WARN-tracking — fold the row into the pinned expected set. Do NOT blanket-bump 7 → 11 without per-root disposition. Every Step 9c gate fleet-wide currently eats a ~98 s pre-existing red + a compare pristine-oracle run on this file until this lands.
Acceptance
uv run pytest tests/test_workflow_lint_prod_import_lockfile.py::test_live_tree_clean -qpasses at the repo root on main.- Each newly-pinned WARN row carries a one-line per-root disposition in the commit message (import fixed vs legitimately pinned).
Provenance
Auto-filed by the #2620 /issue session at its Step 9c compare (URGENT-PARK-REQUIRED: stripped pre-existing main-red on a workflow-invariant test; emit-or-verify routable 'urgency: main-red' workflow-fix-candidate, #1713/#1742). Compare artifacts: /tmp/step9c-compare-issue-2620.{json,err}; gate junit /tmp/step9c-junit-issue-2620.xml.