From fd011f6db3defcccb3b693f60f0f7699ecef2002 Mon Sep 17 00:00:00 2001 From: DoctoDre Date: Sat, 25 Apr 2026 23:26:27 +0200 Subject: [PATCH] Fix text area reset after AI revision, add API key error handling - Pop draft_editor/quality_editor widget keys before rerun so revised text is correctly displayed after AI enrichment calls - Wrap _get_client() with friendly st.error/st.stop instead of stack trace - Remove unused _back_next() helper Co-Authored-By: Claude Sonnet 4.6 --- app.py | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/app.py b/app.py index 4c1fd80..62c7ef6 100644 --- a/app.py +++ b/app.py @@ -11,7 +11,11 @@ import streamlit as st @st.cache_resource def _get_client(): from kniepunkt.llm import get_client - return get_client() + try: + return get_client() + except RuntimeError as e: + st.error(f"{e}\n\nBitte ANTHROPIC_API_KEY in der .env-Datei eintragen und Streamlit neu starten.") + st.stop() @st.cache_resource @@ -70,16 +74,6 @@ def _progress_bar(): st.divider() -def _back_next(back_step: str, next_label: str, next_key: str, next_disabled: bool = False): - col1, col2 = st.columns([1, 5]) - with col1: - if st.button("← Zurück", key=f"back_{back_step}"): - _go(back_step) - with col2: - if st.button(next_label, type="primary", key=next_key, disabled=next_disabled): - return True - return False - def _grid_2x2(results: dict, select_key: str, button_label: str = "Auswählen"): """Render provider outputs in a responsive 2-column grid with selection.""" @@ -345,6 +339,7 @@ def screen_draft(): draft = dr_module.enrich_draft(_get_client(), draft, feedback) st.session_state.draft_text = draft st.session_state.draft_text_source = selected + st.session_state.pop("draft_editor", None) st.rerun() st.divider() @@ -408,6 +403,7 @@ def screen_quality(): draft = dr_module.enrich_draft(_get_client(), draft, feedback) st.session_state.session["draft"] = draft st.session_state.pop("quality_report", None) + st.session_state.pop("quality_editor", None) _save() st.rerun()