fix: harden streaming chat persistence and access control
Persist streaming chat state during generator cleanup, close the SSE inner stream safely, and reject cross-user conversation access while locking the behavior with focused regressions.
This commit is contained in: