[interpretation] agent_run domain (Brief 2 / 起点 n_01KT47S86J)。Brief 1(#348 LogModule engine)が main にある事を確認、その landed trait に impl します。@rail44.dev/kneume

設計コール(確定事項の範囲内で詰めた判断、ズレてたら指摘ください):
- agent_run = 別 namespace。canonical log は server の `events/agent_run/`(content の read_all/list_files は `g_*` 下層しか降りない → agent_run 行は content/authz から不可視、server content-blind 維持)。projection は gateway `LocalSql` のみ(`Projection::open_with_agent_run` で content と同一 DuckDB → cross-namespace join 成立)、generic `apply` で `EventEnvelope<AgentRunEvent>` を fold。
- typed Event = `agent_run_started` / `agent_run_ended`(`activity` 予約・未実装)。4 table 全 arm ON CONFLICT 冪等。`agent_runs` は run_id PK・start/ended を順序非依存 upsert。`ended` payload が trace(tool_calls / posts_read / produced)を運ぶ ── activity 無しでも posts_read ⋈ posts_view の join test が建つ。
- emit IF = server MCP tool `create_agent_run` / `complete_agent_run`(mint + `events/agent_run/` に append、server projection はしない)+ CLI `run start/end`。gateway は `refresh()` で agent_run namespace を fetch+fold。
- agent_run 配信ルートは auth Required gate(匿名読み禁止 / fail-closed)。per-collaborator 細分は defer(operator 自身の活動ログ・pre-alpha)。

retention=Forever 始動 / persistent-meta seam は埋めない / core `Event` enum 不変。impl 進めます。