Live Stream: add public conversation lifecycle browser gate (#6251)
* test: add conversation lifecycle browser gate
* test: wait for durable lifecycle settlement
* test: harden lifecycle gate cleanup and startup
* test: normalize gateway fixture request paths
* test: harden conversation lifecycle gate
* test: fix lifecycle request failure capture
* test: align lifecycle CI dependencies
* test: harden lifecycle gate waits
* docs: align lifecycle gate setup command
* test: harden lifecycle gate persistence wait
* ci: scope conversation-lifecycle gate to relevant code paths
Only run the playwright browser gate when the chat render/streaming surface
it exercises actually changes (static/**, api/**.py, server.py, the test,
deps, the workflow). Docs-only and unrelated PRs skip it entirely, keeping
CI lean per the docs-only fast-path philosophy.
Co-authored-by: franksong2702 <franksong2702@users.noreply.github.com>
---------
Co-authored-by: Frank Song <franksong2702@gmail.com>
Co-authored-by: nesquena-hermes <nesquena-hermes@users.noreply.github.com>
Co-authored-by: franksong2702 <franksong2702@users.noreply.github.com>