Skip to content

B3c: one @2 freeze rule, warm-start combined total, fit acceptance check (companion of autofit_inference#7) - #28

Merged
Jammy2211 merged 5 commits into
mainfrom
feature/search-ext-b3-postmerge-fixes
Oct 14, 2026
Merged

Jammy2211 merged 5 commits into
mainfrom
feature/search-ext-b3-postmerge-fixes

Conversation

@Jammy2211

Copy link
Copy Markdown
Contributor

Summary

This is the companion of PyAutoLabs/autofit_inference#7. Merge it after that PR. It is the Insight side of the B3c fixes from astra review 06 (autofit_inference#6). There are no scientific libraries, no compute and no contract version change.

Per item: finding, fix, test

1. Freeze rule (review finding 2). The next field in campaigns.yaml told the next session to run the 297 deferred cells and then freeze. That contradicted the no-restart ruling and the rule that the freeze comes before any scored run.

  • Fix: the campaign gaussian-x3-search-benchmark and the task gaussian_x3_search_wave1 (in both campaigns.yaml and tasks/gaussian_x3_search_wave1.md) now state the same rule as autofit_inference protocol §7:
    • gaussian_x3@2 is frozen from the existing 17-row calibration before any scored run;
    • the pilot is not restarted, and its deferred runs move to scored wave 2;
    • scored wave 2 keeps the A2 + A4 gate.
  • The blockers line now names A4 as well. The updated field is set to 2026-10-14.

4. Combined warm-start cost on the board (review finding 4). The producer now exports warm_start, provider_wall_s and consumer_total_s as additive fields. For warm-start rows, total_s is the combined attempt cost. The producer does the adding, so the reader still sums no clocks.

  • Fix: board.total_value() shows that total and adds the provider's share, e.g. 1150.158048399997 (incl. nautilus warm-start provider 1076.4696579999982). This appears in both the markdown and HTML tables. Producers without these fields render exactly as before. REFERENCE.md documents the additive fields.
  • Test: test_warm_start_total_shows_combined_cost_and_names_the_provider. It failed before the fix.
  • Contract decision: stays inference-summary@1. The contract allows additive fields, and the meaning of total_s is set by each record's own definition text. @2 already names the setups and prepared-problems contract, which the fit producer does not emit. The reader validates the producer's regenerated branch summary (223 records) as ('ok', []).

6. Snapshot refresh and acceptance check (review finding 6).

  • Finding: at the review's pinned merge, the fit capture was the zero-record B2 capture ec35be4. This does not reproduce on current main. The push-triggered refresh f2810fe (2026-10-08 19:54) had already captured autofit_inference 900648b5c665 with 223 records, and the board reads 35/223 accepted.
  • Fix: new tests/test_fit_acceptance.py. It requires that:
    • the committed receipt and snapshot agree on the producer commit;
    • the capture is never the pre-pilot B2 one;
    • the capture holds exactly 223 records flagged pilot.
      For the known B3 producer revision (0c87bf1) and the B3c one (162644e), it also pins the 35 accepted / 110 rejected / 78 not assessed counts. A later producer revision keeps only the 223-pilot-records invariant, so routine refreshes do not turn it red.
  • Verified that the new test fails on the B2 capture (8eaea76, 0 records) and passes on the current capture.
  • Refresh steps:
    • pyauto-insight fetch --instance fit --mind ../PyAutoMind --out . resolved autofit_inference main to 900648b5c665, with 223 records and status ok. Only refreshed_at changed in the receipt.
    • pyauto-insight board --offline --mind ../PyAutoMind --out . re-rendered the dashboard, and the generated files are committed.
  • The refresh must be repeated after autofit_inference#7 merges. Ingest always resolves the producer's main (registry.BRANCH), and the receipt-writing path cannot be pointed at a branch commit. Until that PR merges, the snapshot cannot carry the new warm-start fields or producer revision 162644e5c41a. The scheduled or dispatched dashboard refresh picks it up, and the acceptance check already covers that revision.

Findings that did not reproduce

  • Finding 6 (board shows zero pilot records): fixed on main by the 2026-10-08 refresh, before this task. The acceptance check is added anyway, and it fails on the old capture.

Tests and gates

  • python -m pytest tests -q: 186 passed (main had 183; 3 new tests).
  • ruff check . and ruff format --check .: clean.
  • bin/pyauto-insight check --offline --mind ../PyAutoMind: check: OK. Lens is 56 records at de37acfe; fit is 223 records at 900648b5c665; the dashboard is current and the state is valid.

Commits

  • 6a8c689 campaigns: one gaussian_x3@2 freeze rule
  • 418d6b5 board: combined warm-start total with the provider share named
  • f5f69ab tests: B3 acceptance check on the fit capture
  • 04c8026 insight: refresh fit receipt and re-render the dashboard

🤖 Generated with Claude Code

Jammy2211 and others added 5 commits October 14, 2026 09:36
…un, no pilot restart

The campaign and wave-1 task now match autofit_inference protocol §7:
freeze @2 from the existing 17-row calibration before any scored run,
never restart the pilot (its deferred runs move to scored wave 2), and
keep the A2+A4 gate on scored wave 2.

Refs PyAutoLabs/autofit_inference#6 (astra review 06 finding 2).

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…r share

autofit_inference exports warm_start, provider_wall_s and
consumer_total_s as additive inference-summary@1 fields, with total_s
the producer's combined attempt cost. The board (markdown and HTML)
shows that total and appends the provider's share; the reader still
sums no clocks. REFERENCE.md documents the additive fields.

Refs PyAutoLabs/autofit_inference#6 (astra review 06 finding 4).

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…3 pilot records)

Schema validity alone passed on the zero-record B2 capture. The new
check requires the committed fit receipt and snapshot to agree on the
producer commit, never be the pre-pilot B2 capture, and hold exactly
223 pilot-flagged records; for the known B3/B3c producer revisions the
35/110/78 acceptance counts are pinned. Fails on the B2 capture
(8eaea76), passes on the current one.

Refs PyAutoLabs/autofit_inference#6 (astra review 06 finding 6).

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
fetch --instance fit resolves autofit_inference main at 900648b5c665
(223 records, unchanged snapshot); board --offline re-renders the
dashboard for the campaign freeze-rule and warm-start display changes.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…df69441b

Generated dashboard/receipt conflicts resolved by re-fetching the fit
instance from producer main (223 records) and re-rendering offline.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@Jammy2211
Jammy2211 merged commit 30cf007 into main Oct 14, 2026
2 checks passed
@Jammy2211
Jammy2211 deleted the feature/search-ext-b3-postmerge-fixes branch October 14, 2026 09:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant