Skip to content

#437 dropped the release H5 write; smoke gate scored a stale artifact (attempts 13/14) #443

Description

@MaxGhenis

What happened

#437 (batched pre-export terminal gates) accidentally deleted the release H5 write while inserting the batched raise:

release_engine.write_dataset(export_frame, dataset_path, period=PERIOD)

was collapsed into the bare dataset_path = artifact_root / DATASET_FILENAME assignment. Since #437 merged, no release run has written its export H5.

Observed blast radius (Build M attempts 13/14)

The gate did its job; the write restoration is the fix (see the PR closing this issue).

The structural hole

CI passed on #437 because no test runs main() to completion: the only main()-level test (test_main_writes_diagnostics_before_post_calibration_gate_failure) deliberately stops at the batched gate failure, so a deletion on the green path after the raise is invisible to the suite.

Remedy (follow-up, not the hotfix):

  1. Extract the ~1,100-line monkeypatch fixture of the gate-failure test into a reusable harness that can also drive main() PAST the gates (fake engine with a recording write_dataset, passing coverage/parity gate stubs, sentinel-checking smoke factory) to a designed stop.
  2. Green-path assertions: write_dataset called exactly once with artifact_root/DATASET_FILENAME, strictly after the batched raise point and before the smoke factory reads the path; the smoke factory must observe the just-written file, not a pre-existing one.
  3. Until then, the hotfix PR pins the ordering contract with an AST-level test (write between batched raise and smoke) that fails when the call is absent.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions