177dea2769
Проблема: blocking while-цикл блокировал Streamlit, кнопка «Стоп» не работала (Streamlit не может обработать клик пока скрипт заблокирован), кнопка мигала каждые 0.3с из-за динамического ключа. Решение: rerun-based polling — каждая «итерация» это полный rerun скрипта: - chat_running / pipe_running флаги в session_state - thread + queue живут в session_state между рерандами - time.sleep(0.5) → st.rerun() вместо while-цикла - кнопка «Стоп» рендерится нормально и реагирует мгновенно - «⏳ Агент работает... Nс» при простое >15с - лог событий накапливается в session_state.chat_events Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
28 KiB
28 KiB