Skip to content

archive-mail Step 8b: 稽核分母未套 drop-set → 含草稿 thread 全數誤報 missing siblings #112

Description

@kiki830621

Problem

PR #111 verify(logic lens LOW,DA DEFER):Step 8b 覆蓋率稽核的分母是未過濾search_emails(field: "subject") 總數,而 corpus 分子經 plugins#109 的 mailbox 後過濾(丟 Drafts/Trash)——Gmail thread 只要含草稿就會 archived < total,每個 thread 都誤報「missing siblings」phantom warning。

Proposed Solution

8b 的 total 走同一套 mailbox 後過濾規則(統一 drop-set)正規化分母,再與 archived 比對。

Context


✅ Verified(PR #113 @ frozen 504ae28,tag idd-112-verified

修正比原始提案更深:只套 drop-set(一行版 c2fe89d)不夠——re-verify DA 回 REQUEST-CHANGES + 2 REQUIRED

  1. R1 Gmail dual-storage 過度計數:drop-set 只治「草稿」根因。Gmail 一封信存於 INBOX + 全部郵件,subject 搜尋回兩 row,即使零草稿分母也膨脹 → phantom 依舊。分母須額外 dedup: logical 伺服器端塌陷多匣副本,對齊分子的 Message-ID 去重基礎。
  2. R2 truncation false-complete:過濾limit 截斷的一頁會把「其實缺兄弟」誤判成 complete(false-negative,比誤報更糟——靜默隱藏真缺口)。須檢查 truncated,true 則發 caveat 並略過比對。

最終修正(504ae28:Step 8b 分母改 search_emails(projection: "summary", dedup: "logical", limit: N)summary 是唯一同時回 mailbox 又支援 dedup 者)→ 套 Step 3 matchesSpecial drop-set → 檢查 truncated gate → 只在 truncated:false 才比對。另:Step 3 comparator enum 加列 Step 8b;plugin.json/marketplace.json v2.31.0 description reword(揭露機制 + truncation caveat,移除 over-claim)。

Verify:procedure-logic lens PASS + DA APPROVE(兩 REQUIRED RESOLVED;2 cheap RECOMMENDED 已 post-freeze polish 1d5ebe6——誠實化 dedup「少算」方向 + representative-mailbox implementer 註;1 REJECTED)。Master report

狀態:停在 verified。merge 順序 #108#111#113(archive-mail 塔);close 由維護者決定。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions