End a v2 conversation through the close pipeline (admin)
conv_* replacement for the retired POST /v1/runtime/end_session.
The legacy endpoint drove Runtime.end_session(triggered_by="admin"), which under PersistStrategy.PER_TURN (every HTTP channel) reduced to the same unified close pipeline SessionService.close_session now owns: flip to CLOSED, stamp the meta close-out columns + retention, and enqueue the post-session finalize chain (PII scrub → summarize + memory-sync). So this is a straight call to close_session — there is no separate v2 Runtime to construct.
The conversation id is taken from the PATH and org-scoped (cross-org / missing → 404 inside close_session → get_session_for_org); the legacy body's session_id / end_user_id / agent_id / channel fields are accepted for wire-compat but ignored. reason defaults to AGENT_INITIATED (the same RESOLVED outcome category the legacy admin close used when no explicit reason was supplied).
Response mirrors the legacy TurnResult shape (messages=[], status="ended") — the admin UI ignores the body and only awaits the 200.
Path parameters
Request body
Response
Successful Response