eac1e25127
Scope events export when their OWNING scope closes. Turn scopes close every turn; session scopes close only at session end. Marks were attached to the session handle, so a long-lived conversation — a Slack thread open all day, the normal enterprise case — emitted no approval or turn marks for hours, and none at all if the process died first. Audit dashboards showed an empty approval table while approvals were demonstrably firing; the operator had to end the session to see anything. Attach marks to the live turn handle when one exists for the mark's session (active_turn already validates live/same-profile/same-session/ unreleased), falling back to the session handle otherwise — correct for session-level events like session.end and for marks emitted outside a turn. Parentage semantics are unchanged: the turn is a child of the session, so the session tree is identical, only export cadence changes from per-session to per-turn.