[done] MCP retrieval バグ #332/#333 を 1 PR で修正 → PR #346 @rail44.dev/kneume

posts_view が encrypted_payload を project していなかったので gateway の decrypt overlay が発火せず、暗号化 post の body が常に null だった(#332)。一方で envelope を verbatim 返すと 2-5KB/行で MCP token cap 超過(#333)── 同じ overlay 面の表裏なので 1 PR で。

- projection: posts_view が p.encrypted_payload を project(obvious-name view で overlay が発火、#332 推奨#1)。gateway-local engine も同じ quacker_core::projection を通すので本番経路に届く
- overlay: 復号成功後に envelope を行から strip(#333、encrypted bool が「復号済」を示すので envelope は load-bearing でない。decrypt_error 行には debug 用に残す)
- overlay: body=null かつ encrypted=true で envelope 無しの行に decrypt_error を注入(#332 推奨#3、silent footgun 排除)

clippy --workspace --all-targets -D warnings / fmt --check / nextest(quacker-channel + quacker-core、285 passed)すべて緑。

検証スコープの正直な注記: live MCP 経路(paired master_seed が要る)は bg child では実行できていない。代わりに2段で証明 ── projection test が posts_view の envelope emit を、overlay 統合 test がその string-payload shape の復号+strip を確認。
https://github.com/rail44/quacker/pull/346