recordVerification in src/services/verifiers.ts (lines 207-238) checks for an existing (verifier_user_id, target_id) row and, if found with the same result, silently returns the existing row (return mapVerificationRow(existing), line 224) without checking whether evidenceHash or disputed differ from what's now being submitted — only a genuinely different result triggers the VerificationConflictError. A verifier who resubmits the same approve/reject decision but with different evidence (e.g. correcting a wrong evidence hash) has their new evidence silently discarded in favor of the original row, with no error or indication that the update was ignored, since the function returns success (the pre-existing record) rather than surfacing that the resubmission had no effect.
recordVerificationinsrc/services/verifiers.ts(lines 207-238) checks for an existing(verifier_user_id, target_id)row and, if found with the sameresult, silently returns the existing row (return mapVerificationRow(existing), line 224) without checking whetherevidenceHashordisputeddiffer from what's now being submitted — only a genuinely differentresulttriggers theVerificationConflictError. A verifier who resubmits the same approve/reject decision but with different evidence (e.g. correcting a wrong evidence hash) has their new evidence silently discarded in favor of the original row, with no error or indication that the update was ignored, since the function returns success (the pre-existing record) rather than surfacing that the resubmission had no effect.