when normalized MIME matches, prefer the more complete set
+
only when every eligible copy has matching normalized MIME
payload
@@ -403,7 +403,7 @@
Stage 2 — Priority list
04
Attachment-presence signal
-
when counts tie, preserve a source-declared attachment
+
within that equivalent set, preserve a source-declared attachment
payload
@@ -412,7 +412,7 @@
Stage 2 — Priority list
05
Larger payload
-
when normalized MIME matches, prefer more stored bytes
+
within that equivalent set, prefer more stored bytes
payload
diff --git a/docs/internal/accounts-identities-collections-dedup/spec.md b/docs/internal/accounts-identities-collections-dedup/spec.md
index c52232fd2..0ec1c3f21 100644
--- a/docs/internal/accounts-identities-collections-dedup/spec.md
+++ b/docs/internal/accounts-identities-collections-dedup/spec.md
@@ -313,9 +313,9 @@ preference runs in this order:
1. Source preference (when `--prefer` is configured, or the default
order: `gmail,imap,mbox,emlx,hey`).
-2. Complete original payload — has raw MIME, then, when normalized
- raw MIME matches, more attachments, an attachment-presence signal,
- and a larger original payload.
+2. Complete original payload — has raw MIME, then, only when every
+ eligible copy has the same normalized raw MIME hash, more attachments,
+ an attachment-presence signal, and a larger original payload.
3. Source metadata quality — provider IDs, threading info, presence
of Message-ID.
4. Richer label or folder metadata.
@@ -324,9 +324,9 @@ preference runs in this order:
Earlier rules win outright. Later rules apply only when all earlier
ones tie. Attachment and payload-size metadata are authoritative only
-when both rows have raw MIME and their normalized MIME hashes match;
-a shared Message-ID alone is insufficient. The exact policy is visible
-in dry-run output.
+when every eligible copy has raw MIME and all normalized MIME hashes
+match; a shared Message-ID alone is insufficient. The exact policy is
+visible in dry-run output.
The public [Deduplication](../../usage/deduplication.md) guide carries
the rendered survivor-selection diagram.
diff --git a/docs/usage/deduplication.md b/docs/usage/deduplication.md
index 9b9630600..c55e8473e 100644
--- a/docs/usage/deduplication.md
+++ b/docs/usage/deduplication.md
@@ -38,10 +38,10 @@ Survivor selection is deterministic and explainable, and the reasoning is printe
7. Earlier archive timestamp.
8. A stable row ID, as the final tie-breaker.
-Earlier rules win outright; later rules apply only when all earlier ones tie. The attachment-count, attachment-presence, and payload-size rules apply only when both copies have raw MIME and their normalized MIME hashes match. A shared `Message-ID` alone cannot make those payload-completeness signals authoritative. The survivor inherits the union of labels from the copies it replaces, and backfills raw MIME from a non-survivor if it was missing the original payload.
+Earlier rules win outright; later rules apply only when all earlier ones tie. The attachment-count, attachment-presence, and payload-size rules apply only when every eligible copy has raw MIME and all their normalized MIME hashes match. A shared `Message-ID` alone cannot make those payload-completeness signals authoritative. The survivor inherits the union of labels from the copies it replaces, and backfills raw MIME from a non-survivor if it was missing the original payload.
-
+
## Choosing a Scope