···5555- Remote `did:web` DID docs, conservative `resolveIdentity` handle validation, and external handle adoption all need explicit coverage because small resolver-policy drifts turn into visible interop bugs quickly.
5656- Remote `did:plc` DID docs should resolve through the PLC directory defaults even when `plc_url` is not explicitly configured; gating that path on local config silently breaks federated identity lookups.
5757- `com.atproto.repo.getRecord` must honor `cid` when present, and `putRecord` / `deleteRecord` must actually enforce `swapRecord`; those negative edges are now covered directly.
5858-- `com.atproto.repo.createRecord` follows the reference runtime by ignoring a stray `swapRecord` field, while `swapCommit` mismatches still need direct negative coverage on write paths instead of relying on indirect `applyWrites` behavior.
5858+- `com.atproto.repo.createRecord` follows the reference runtime by ignoring a stray `swapRecord` field, and direct reference coverage now pins `putRecord` / `deleteRecord` `swapCommit` and `swapRecord` mismatch semantics explicitly.
5959- `com.atproto.server.requestPasswordReset` and `com.atproto.server.deleteAccount` now follow the reference form-token flow, with focused regression coverage for missing-account and bearerless deletion semantics.
6060- `com.atproto.server.createAccount` with an explicit `did` must behave like an authenticated migration flow: require auth from that same DID, keep the existing DID document, and start the new account deactivated until activation catches the DID document up to the new PDS.
6161- `com.atproto.server.checkAccountStatus` must validate the stored DID document against the PDS service endpoint and signing key, and `com.atproto.repo.describeRepo` must derive `didDoc` / `handleIsCorrect` from that document instead of hardcoding success.
···6363 die {
6464 status => 400,
6565 error => 'InvalidSwap',
6666- message => 'swapCommit did not match the current repo head',
6666+ message => 'Commit was at ' . (defined($current) ? $current : 'null'),
6767 } unless defined $current && $current eq $opts{swap_commit};
6868 }
6969···9797 die {
9898 status => 400,
9999 error => 'InvalidSwap',
100100- message => 'swapRecord did not match the current record',
100100+ message => 'Record was at ' . (defined($current_cid) ? $current_cid : 'null'),
101101 } if $action eq 'create' && defined $swap_record;
102102 die {
103103 status => 400,
104104 error => 'InvalidSwap',
105105- message => 'swapRecord did not match the current record',
105105+ message => 'Record was at ' . (defined($current_cid) ? $current_cid : 'null'),
106106 } if ($action eq 'update' || $action eq 'delete') && !defined $swap_record;
107107 my $mismatch = (defined($current_cid) || defined($swap_record))
108108 && (!defined($current_cid) || !defined($swap_record) || $current_cid ne $swap_record);
109109 die {
110110 status => 400,
111111 error => 'InvalidSwap',
112112- message => 'swapRecord did not match the current record',
112112+ message => 'Record was at ' . (defined($current_cid) ? $current_cid : 'null'),
113113 } if $mismatch;
114114 }
115115