BREAKING feat/t4-job-cancel-retry-validation #1 / 1
41 days ago · Jun 11, 2026 · Diff

Add T4 job cancellation retry and validation

sha256:ca1d0e687bff8686b37126eb8e4fb6d38b40e189352a4920d66ae89c7274e340 sha
+54 ~78 −2 symbols
21 changed · 48 in snapshot files
sha256:de50c4b0d9d7ff896272f8fa024ff3db4a4236f343dc773926a0db43016efc10 snapshot
+54
symbols added
~78
symbols modified
−2
symbols removed
21
files changed
48
files in snapshot
0
dead code introduced
Semantic Changes 134 symbols
~ src/scooling_lab/api.py .py 1 symbol modified
~ src/scooling_lab/dataset_review.py .py 11 symbols added, 5 symbols modified
+ ALLOWED_DATASET_REGISTRATION_KEYS variable variable ALLOWED_DATASET_REGISTRATION_KEYS L52–54
+ register_shape method method register_shape L289–305
+ FORBIDDEN_FIELD_TERMS variable variable FORBIDDEN_FIELD_TERMS L27–41
+ SYNTHETIC_DATASET_SCHEMA variable variable SYNTHETIC_DATASET_SCHEMA L44–51
+ SYNTHETIC_ROW_COUNT_MAX variable variable SYNTHETIC_ROW_COUNT_MAX L43–43
+ SYNTHETIC_ROW_COUNT_MIN variable variable SYNTHETIC_ROW_COUNT_MIN L42–42
+ SyntheticDatasetShape class class SyntheticDatasetShape L86–91
+ dataset_shape_from_registration function function dataset_shape_from_registration L144–182
+ default_dataset_shape function function default_dataset_shape L185–194
+ has_forbidden_field_term function function has_forbidden_field_term L214–220
+ validate_synthetic_dataset_shape function function validate_synthetic_dataset_shape L197–211
~ reject
~ src/scooling_lab/service.py .py 4 symbols added, 1 symbol removed, 7 symbols modified
RejectionReasonCode import import RejectionReasonCode L15–15
+ _run_if_configured method method _run_if_configured L169–187
+ retry_training_job method method retry_training_job L125–131
+ TrainingJobRecord import import TrainingJobRecord L22–22
+ dataset_shape_from_registration import import dataset_shape_from_registration L15–15
~ src/scooling_lab/state_machine.py .py 1 symbol modified
~ cancel
~ src/scooling_lab/store.py .py 6 symbols added, 7 symbols modified
+ _next_retry_id_locked method method _next_retry_id_locked L503–512
+ _promote_queued_locked method method _promote_queued_locked L488–501
+ cancel method method cancel L276–289
+ retry method method retry L291–314
+ cancel import import cancel L27–27
+ hashlib import import hashlib L5–5
~ tests/test_data_integrity.py .py 4 symbols added, 1 symbol modified
+ test_data_integrity_t4_cancelled_terminal_record_has_no_artifacts method method test_data_integrity_t4_cancelled_terminal_record_has_no_artifacts L119–129
+ test_data_integrity_t4_retry_lineage_and_original_immutability method method test_data_integrity_t4_retry_lineage_and_original_immutability L90–117
+ TrainingJobStatus import import TrainingJobStatus L12–12
+ validate_provenance_record import import validate_provenance_record L14–14
~ tests/test_e2e.py .py 3 symbols added, 1 symbol modified
+ test_e2e_t4_cancel_retry_to_success_and_success_retry_refusal method method test_e2e_t4_cancel_retry_to_success_and_success_retry_refusal L119–159
+ TrainingJobRequest import import TrainingJobRequest L15–15
+ TrainingJobStatus import import TrainingJobStatus L15–15
~ tests/test_integration.py .py 5 symbols added, 1 symbol modified
+ test_integration_t4_cancel_running_job_frees_slot_for_next_queued method method test_integration_t4_cancel_running_job_frees_slot_for_next_queued L90–105
+ test_integration_t4_failed_job_retries_to_new_successful_provenance method method test_integration_t4_failed_job_retries_to_new_successful_provenance L107–124
+ test_integration_t4_submit_validates_and_decides_dataset_status method method test_integration_t4_submit_validates_and_decides_dataset_status L54–88
+ TrainingJobRequest import import TrainingJobRequest L11–11
+ TrainingJobStatus import import TrainingJobStatus L11–11
~ tests/test_performance.py .py 1 symbol added, 1 symbol modified
+ test_performance_t4_cancel_retry_and_validation_are_bounded method method test_performance_t4_cancel_retry_and_validation_are_bounded L85–120
~ tests/test_security.py .py 3 symbols added, 2 symbols modified
+ test_security_t4_cancel_and_retry_reject_injection_shaped_ids method method test_security_t4_cancel_and_retry_reject_injection_shaped_ids L171–186
+ test_security_t4_dataset_shape_rejections_are_enum_only method method test_security_t4_dataset_shape_rejections_are_enum_only L128–169
+ ErrorCode import import ErrorCode L12–12
~ tests/test_stress.py .py 2 symbols added, 1 symbol modified
+ test_stress_t4_many_cancels_and_retries_preserve_slot_accounting method method test_stress_t4_many_cancels_and_retries_preserve_slot_accounting L100–130
+ TrainingJobStatus import import TrainingJobStatus L11–11
~ tests/test_t3_performance.py .py 1 symbol added, 4 symbols modified
~ tests/test_t3_security.py .py 2 symbols added, 1 symbol removed, 7 symbols modified
test_security_t3_pending_review_dataset_id_refused method method test_security_t3_pending_review_dataset_id_refused L153–169
+ test_security_t3_registered_dataset_id_refused_before_submission method method test_security_t3_registered_dataset_id_refused_before_submission L160–175
+ default_dataset_shape import import default_dataset_shape L9–9
~ tests/test_unit.py .py 7 symbols added, 2 symbols modified
+ test_unit_t4_cancel_transitions_and_terminal_noops method method test_unit_t4_cancel_transitions_and_terminal_noops L56–68
+ test_unit_t4_dataset_validation_maps_shapes_to_reason_codes method method test_unit_t4_dataset_validation_maps_shapes_to_reason_codes L85–133
+ test_unit_t4_retry_state_transitions_refuse_invalid_originals method method test_unit_t4_retry_state_transitions_refuse_invalid_originals L70–83
+ RejectionReasonCode import import RejectionReasonCode L11–11
+ cancel import import cancel L26–26
+ dataset_shape_from_registration import import dataset_shape_from_registration L11–11
+ validate_synthetic_dataset_shape import import validate_synthetic_dataset_shape L11–11
Files Changed
+1 ~20
48 in snapshot
← Older Oldest on feat/t4-job-cancel-retry-validation
All commits
Newer → Latest on feat/t4-job-cancel-retry-validation

0 comments

No comments yet. Be the first to start the discussion.

To add a comment, use the Muse CLI: muse hub commit comment sha256:ca1d0e687bff8686b37126eb8e4fb6d38b40e189352a4920d66ae89c7274e340 --body "your comment"