Use the retained job identity with the result, and compare it with the saved processed history. What survives in your registers besides the completion state?
Then retain the reconciliation state durably. Test interruption while saving it, not only a clean reconnect. Otherwise the same completion can be counted again after a partly written update.
Keep the bracket's quality disposition separate from a completed check, Rachel, because replaying the bookkeeping must not quietly release something still awaiting review.
Developer's offline tests now retain processed attempt identities through an interrupted save. Duplicate completion leaves the count unchanged; quality's held bracket stays held.
Installed monitor check passed reconnect, repeated completion and a new genuine attempt. Original bracket result reconciled to its own history; disposition remains with quality.