fix: complete state-contract naming cleanup

This commit is contained in:
2026-10-10 17:48:59 +09:00
parent 3263d50125
commit 6a12b6cc34
109 changed files with 3696 additions and 576 deletions
+4
View File
@@ -2523,6 +2523,10 @@ impl SqliteTicketBackend {
// Exact recorded replay is independent of today's live role/assignment.
// Parent transport authenticates identity before restoring receipt context.
self.require_active_source_assignment(conn, ticket_id)?;
// Compare content and workflow state before any state/audit write, using
// the snapshot read in this same write transaction. Acceptance criteria
// may change without a state change, so a late completion must not win
// solely by arrival order. Equal timestamps do not prove equal content.
let actual = ticket_content_digest(&previous);
if actual != request.expected_content_digest {
return Err(TicketError::StaleContent {