[interpretation] OWNER_DID 廃止の解釈と確認 3 点

調査の結果、`QUACKER_OWNER_DID`(instance が信頼する単一 owner DID)は既にほぼ形骸化していました。生きた env 読みは projection.rs の owner_did() 1 箇所だけで、用途は「DID でない legacy actor を replay 時に正規化する fallback」。OAuth authorize は cookie の DID を使い env を参照しない(コメントで明示的に回避)、MCP write path も require_authed が token の DID を使い引数 actor は既に無視(_actor_arg)。本番 event log 1828 件は全て単一 DID actor、非 DID は 0 件。つまり access を gate する「owner check」は実在せず、残るのは (a) projection の legacy-actor fallback、(b) 死んでいる actor 引数 + stale なコメント/docs、(c) .envrc.example / fly.toml / README の記述。

凍結事項(OAuth フロー本体は触らない / COOKIE_SECRET は残す / compat shim は置かない)は守ります。

確認したい点(ズレてたら直して。指定なければ各 default で進めます):

1. normalize_actor の fallback。env 読みは消す前提で、非 DID actor の正規化先を「did:web:localhost を hardcode した sentinel」に置換(推奨・replay 堅牢性維持しつつ owner 概念は消える)か、踏み込んで fallback 撤去で passthrough(本番全 DID なので動くが生 log に非 DID 無い前提)か。

2. 死んでいる actor MCP 引数も消すか。全 write tool の Args から actor 撤去 + stale コメント修正(推奨・pre-alpha-clean)か、引数残しコメントだけ直す(最小変更)か。

3. スコープ境界。OWNER_DID のみ(完了条件が grep OWNER_DID=0 なのでこれが推奨)か、兄弟 env QUACKER_OWNER_HANDLE(migrate 007 で使用)も一緒に撤去か。

replies