Why a session was closed — persisted to AIAgentSession.CloseReason alongside the
Status = 'Closed' transition so the admin dashboards can distinguish a user hanging up
(Explicit) from janitor reconciliation (Janitor), a graceful host drain (Shutdown),
or a failure-path teardown (Error). NULL in the column means "legacy/unknown" — rows
closed before this column existed.
Why a session was closed — persisted to
AIAgentSession.CloseReasonalongside theStatus = 'Closed'transition so the admin dashboards can distinguish a user hanging up (Explicit) from janitor reconciliation (Janitor), a graceful host drain (Shutdown), or a failure-path teardown (Error).NULLin the column means "legacy/unknown" — rows closed before this column existed.