Record sitting-create failure class and allow retry.

Auth returned clean at 20:27Z but the child left a preflight receipt
with no error. Named failures, refuse public bao.coulomb.social, and
overwrite a failed receipt. Wrapper is executable for attended-exec.

Assistant: grok
Assistant-Session: 01a09dc1-b21e-77e1-919e-fcad2f82b267
This commit is contained in:
tegwick 2026-09-15 22:31:42 +02:00
parent 1cac74aa35
commit a911eaf816
4 changed files with 77 additions and 33 deletions

View file

@ -22,10 +22,19 @@ def test_dry_run_lists_seven_and_skips_c01():
def test_require_attended_refuses_this_shell():
with pytest.raises(ValueError, match="attended_reader_required"):
with pytest.raises(create.Refused, match="attended_reader_required"):
create.require_attended()
def test_failed_receipt_does_not_block_retry(tmp_path, monkeypatch):
receipt = tmp_path / "r.json"
monkeypatch.setattr(create, "RECEIPT", receipt)
receipt.write_text('{"status": "failed", "phase": "preflight"}\n')
assert create.existing_receipt_blocks() is False
receipt.write_text('{"status": "created", "phase": "seven_unapproved_requests_created"}\n')
assert create.existing_receipt_blocks() is True
@pytest.mark.parametrize(
"origin,ok",
[