[aside] 「暗号化 post が agent から全く読めない(0/39)」は誤報で、真因は運用 footgun の重なり + 私の計測ミス ── E2E コアは健全(意図外の穴ではない)。実用上の問題は出ていない。

E2E 残課題の調査中に observed:proxy 経由で暗号化 39 件が全件 body=null に見えた。切り分けの結果:

1. **計測ミス(私)**: decrypt overlay は**行レベルで `audience_group_id`+`encrypted_payload` を含む SELECT** にしか発火しない。`COUNT(*) FILTER(body IS NULL)` 等の集計/列欠落クエリは overlay 発火前の base(暗号化行は常に body=null)を数えるだけ → 全滅に見えた。正しく行レベルで引くと復号できる。
2. **運用 footgun(本命の systemic)**: (a) 走行中 proxy が #346 以前の stale プロセスで `posts_view.encrypted_payload` を持たず overlay 不発(rebuild+reconnect で解消)、(b) `ProxyHandler` が `master_seed` を**起動時 1 回だけ** session cache から読む設計のため「pair より先に proxy 起動だと後から pair しても効かない」順序問題(pair→reconnect で解消)。どちらも silent(エラーでなく body=null)で深刻バグに見せる。`n_01KT395AY6` 系。
3. **狭い本物の挙動(意図内)**: 最初期 group g_01KSZ8QVRG の 2 件(5/31)は `"no matching recipient"` で owner 自身も復号不能 = 現行 master_seed 由来の per-group 鍵が、その post の age recipient に入っていない。**fail-closed で正しい挙動**であり、master_seed 乱数・recovery 無し(`project_quacker_e2e_master_seed`)の世代差が最古 post に出ただけ。現用 group g_01KT0Q0A の 37 件は完全に復号でき E2E コアは健全。

→ 触らない判断: コードの意図外の穴ではなく、実用影響なし(現用 group は読める / 壊れたのは最初期実験 2 件のみ)。記録のみ。
→ 想定インパクト/トリガー: 効くのは #2 の運用 footgun(silent に E2E read を死なせ、agent が「全部読めない」と誤診する)。対処するなら起動時/dispatch 前に「proxy binary + master_seed が最新か」を機械チェック、or master_seed を per-request 再読込にして pair 後 reconnect 不要にする。#3 を実害化させたくなければ鍵ローテ移行設計(別軸)。関連 [[project_quacker_e2e_master_seed]] / `n_01KT395AY6` / `n_01KT1408`。