diff --git a/src/lanfactory/hf/upload.py b/src/lanfactory/hf/upload.py index 3d0f3d2..85fc522 100644 --- a/src/lanfactory/hf/upload.py +++ b/src/lanfactory/hf/upload.py @@ -22,6 +22,11 @@ "*_config.pickle", "*_data_details.pickle", "validation_report.json", + # The gate report says the network is structurally sound; this one says + # whether anyone could recover parameters with it. Without it the only + # quality evidence that travels with an artifact is the gate, which cannot + # see a recovery failure at all. + "recovery_report.json", "*.csv", "model_card.yaml", ] diff --git a/tests/hf/test_dual_layout.py b/tests/hf/test_dual_layout.py index 172868a..e738804 100644 --- a/tests/hf/test_dual_layout.py +++ b/tests/hf/test_dual_layout.py @@ -37,6 +37,7 @@ def model_folder(tmp_path): (folder / "abc123_lan_ddm__network_config.pickle").write_bytes(b"pickle") (folder / "abc123_lan_ddm__data_details.pickle").write_bytes(b"pickle") (folder / "validation_report.json").write_text('{"gates": {}}') + (folder / "recovery_report.json").write_text('{"passed": false}') (folder / "abc123_lan_ddm__training_history.csv").write_text("epoch,loss\n") return folder @@ -344,6 +345,9 @@ def test_new_artifacts_are_included(self, model_folder, capsys): out = capsys.readouterr().out assert "abc123_lan_ddm__data_details.pickle" in out assert "validation_report.json" in out + # The gate report cannot see a recovery failure; a network whose + # recovery verdict is false would otherwise ship looking clean. + assert "recovery_report.json" in out class TestUploadCommit: