Prepare definitive SMTP rejection proof and builder mail handoff
Some checks failed
Use-case regression gate / usecase-regressions (push) Has been cancelled

Assistant: codex
Assistant-Model: gpt-6.1-sol
Assistant-Session: 01a198ed-70cc-7362-a569-d5dbef39b86a
This commit is contained in:
tegwick 2026-11-02 01:32:57 +01:00
parent a36276395a
commit caf866d66e
8 changed files with 645 additions and 31 deletions

View file

@ -102,6 +102,8 @@ elif action=='list':
elif action=='prepare':
raw=base64.b64decode(r['raw_base64'],validate=True)
result=m.prepare(ledger,raw,r['recipient'],policy,r['review'],invitation_payload=r.get('invitation_payload'))
elif action=='prepare-rejection':
result=m.prepare_rejection(ledger,r['recipient'],r['username'],policy,r['review'])
elif action=='release-untracked':
result=m.prepare_untracked_release(ledger, audit if audit.exists() else None,
r['recipient'], r['reason'], r['created_at'], r['review'])
@ -353,6 +355,7 @@ def main(argv=None):
"observe",
"list",
"prepare",
"prepare-rejection",
"release",
"release-untracked",
"apply",
@ -364,6 +367,7 @@ def main(argv=None):
parser.add_argument("--packet", type=Path)
parser.add_argument("--message", type=Path)
parser.add_argument("--recipient")
parser.add_argument("--username")
parser.add_argument("--reason")
parser.add_argument("--created-at")
parser.add_argument("--review")
@ -378,10 +382,17 @@ def main(argv=None):
return 0
require(args.packet is not None and args.packet.is_absolute(), "private_packet_required")
operation.private_directory(args.packet.parent)
if args.action in {"prepare", "release", "release-untracked", "prepare-expiry"}:
if args.action in {
"prepare",
"prepare-rejection",
"release",
"release-untracked",
"prepare-expiry",
}:
require(not args.packet.exists(), "new_packet_required")
request.update(
recipient=args.recipient,
username=args.username,
reason=args.reason,
created_at=args.created_at,
review=args.review,
@ -452,7 +463,10 @@ def main(argv=None):
if args.action == "apply":
if packet["plan"].get("action") == "expire-raw":
request["action"] = "apply-expiry"
elif packet["plan"]["action"] == "suppress":
elif (
packet["plan"]["action"] == "suppress"
and packet["plan"].get("evidence_kind") != "permanent-smtp-rejection"
):
require(
args.message is not None
and args.message.is_file()