test_approval_binding_detects_changed_expiry (test_workflow.WorkflowChecks.test_approval_binding_detects_changed_expiry) ... ok
test_approval_callback_is_idempotent_and_cannot_extend_expiry (test_workflow.WorkflowChecks.test_approval_callback_is_idempotent_and_cannot_extend_expiry) ... ok
test_audit_trace_is_durable_and_contains_one_external_effect (test_workflow.WorkflowChecks.test_audit_trace_is_durable_and_contains_one_external_effect) ... ok
test_caller_request_ids_and_keys_cannot_duplicate_business_credit (test_workflow.WorkflowChecks.test_caller_request_ids_and_keys_cannot_duplicate_business_credit) ... ok
test_changed_payload_after_approval_fails_closed (test_workflow.WorkflowChecks.test_changed_payload_after_approval_fails_closed) ... ok
test_concurrent_duplicate_proposals_share_one_action (test_workflow.WorkflowChecks.test_concurrent_duplicate_proposals_share_one_action) ... ok
test_cross_tenant_and_wrong_object_are_denied (test_workflow.WorkflowChecks.test_cross_tenant_and_wrong_object_are_denied) ... ok
test_current_permissions_of_all_three_roles_are_checked_at_execution (test_workflow.WorkflowChecks.test_current_permissions_of_all_three_roles_are_checked_at_execution) ... ok
test_current_requester_permission_is_checked_at_approval (test_workflow.WorkflowChecks.test_current_requester_permission_is_checked_at_approval) ... ok
test_duplicate_tool_calls_and_restart_reuse_saved_result (test_workflow.WorkflowChecks.test_duplicate_tool_calls_and_restart_reuse_saved_result) ... ok
test_exact_expiry_boundary_denies_new_dispatch (test_workflow.WorkflowChecks.test_exact_expiry_boundary_denies_new_dispatch) ... ok
test_expiry_between_preparation_and_dispatch_prevents_provider_call (test_workflow.WorkflowChecks.test_expiry_between_preparation_and_dispatch_prevents_provider_call) ... ok
test_model_confidence_does_not_grant_request_or_approval (test_workflow.WorkflowChecks.test_model_confidence_does_not_grant_request_or_approval) ... ok
test_nonhuman_approver_is_denied_even_with_approve_grant (test_workflow.WorkflowChecks.test_nonhuman_approver_is_denied_even_with_approve_grant) ... ok
test_not_found_after_expiry_cannot_authorize_another_dispatch (test_workflow.WorkflowChecks.test_not_found_after_expiry_cannot_authorize_another_dispatch) ... ok
test_one_second_before_expiry_can_execute (test_workflow.WorkflowChecks.test_one_second_before_expiry_can_execute) ... ok
test_permanent_failure_is_not_retried (test_workflow.WorkflowChecks.test_permanent_failure_is_not_retried) ... ok
test_permission_revocation_between_preparation_and_dispatch_prevents_call (test_workflow.WorkflowChecks.test_permission_revocation_between_preparation_and_dispatch_prevents_call) ... ok
test_provider_idempotency_guarantee_is_required (test_workflow.WorkflowChecks.test_provider_idempotency_guarantee_is_required) ... ok
test_provider_same_key_different_parameters_is_rejected (test_workflow.WorkflowChecks.test_provider_same_key_different_parameters_is_rejected) ... ok
test_read_only_reconciliation_after_expiry_and_read_revocation (test_workflow.WorkflowChecks.test_read_only_reconciliation_after_expiry_and_read_revocation) ... ok
test_required_fields_integer_bounds_currency_and_unknown_fields (test_workflow.WorkflowChecks.test_required_fields_integer_bounds_currency_and_unknown_fields) ... ok
test_retry_budget_is_bounded (test_workflow.WorkflowChecks.test_retry_budget_is_bounded) ... ok
test_revocation_does_not_prevent_authorized_read_of_existing_effect (test_workflow.WorkflowChecks.test_revocation_does_not_prevent_authorized_read_of_existing_effect) ... ok
test_revoked_approval_and_changed_policy_deny_dispatch (test_workflow.WorkflowChecks.test_revoked_approval_and_changed_policy_deny_dispatch) ... ok
test_self_approval_is_denied_even_with_overlapping_roles (test_workflow.WorkflowChecks.test_self_approval_is_denied_even_with_overlapping_roles) ... ok
test_stop_after_preparation_reopens_reconciles_and_retries_same_action (test_workflow.WorkflowChecks.test_stop_after_preparation_reopens_reconciles_and_retries_same_action) ... ok
test_stop_after_provider_commit_reopens_and_recovers_one_credit (test_workflow.WorkflowChecks.test_stop_after_provider_commit_reopens_and_recovers_one_credit) ... ok
test_timeout_after_commit_requires_reconciliation_and_never_duplicates (test_workflow.WorkflowChecks.test_timeout_after_commit_requires_reconciliation_and_never_duplicates) ... ok
test_transient_before_effect_obeys_backoff_and_reuses_same_key (test_workflow.WorkflowChecks.test_transient_before_effect_obeys_backoff_and_reuses_same_key) ... ok
test_unclassified_provider_exception_requires_manual_review (test_workflow.WorkflowChecks.test_unclassified_provider_exception_requires_manual_review) ... ok
test_unknown_actor_and_action_are_denied_without_raw_audit_identifiers (test_workflow.WorkflowChecks.test_unknown_actor_and_action_are_denied_without_raw_audit_identifiers) ... ok

----------------------------------------------------------------------
Ran 32 tests in 0.107s

OK
