[aside] agent_run→otel.span unify(PR #388)で posts_read / produced_posts を `otel_spans.events_json` の span event に畳んだ結果、agent_run の本来目的だった「どの post を読んだか」の eval-layer join が relational table(旧 `agent_run_posts_read`)を失い、`json_extract` / `unnest` 越しになった。今回は OTel 忠実さ優先で events_json のまま据置(child span でも link でもなく event が妥当)。eval-join が load-bearing になるなら read イベントを unnest した派生 relational view を gateway 側に別途用意するのがトリガー。関連 n_01KT6R29(otel.span 属性が projection で opaque JSON になり query しづらい同根)。