diff --git a/frontends/stapp.py b/frontends/stapp.py
index 8e05fbc..c3ae19a 100644
--- a/frontends/stapp.py
+++ b/frontends/stapp.py
@@ -146,7 +146,11 @@ for msg in st.session_state.messages:
# Scroll-height ghost fix: during streaming, expander open/close mid-animation can leave
# phantom height → scrollbar long but can't scroll to bottom. Periodically detect & reflow.
-import streamlit.components.v1 as components
+try:
+ from streamlit import iframe as _st_iframe # 1.56+
+ _embed_html = lambda html, **kw: _st_iframe(html, **{k: max(v, 1) if isinstance(v, int) else v for k, v in kw.items()})
+except (ImportError, AttributeError):
+ from streamlit.components.v1 import html as _embed_html # ≤1.55
_js_scroll_fix = ("!function(){var p=window.parent;if(p.__sfx)return;p.__sfx=1;"
"var d=p.document;setInterval(function(){"
"var m=d.querySelector('section.main');if(!m)return;"
@@ -165,7 +169,7 @@ _js_ime_fix = ("" if os.name == 'nt' else
"e.key==='Enter'&&!e.shiftKey&&(e.isComposing||c||e.keyCode===229)&&"
"(e.stopImmediatePropagation(),e.preventDefault())},!0))})}"
"f();new MutationObserver(f).observe(d.body,{childList:1,subtree:1})}()")
-components.html(f'', height=0)
+_embed_html(f'', height=0)
if prompt := st.chat_input("请输入指令"):
st.session_state.messages.append({"role": "user", "content": prompt})
diff --git a/frontends/stapp2.py b/frontends/stapp2.py
index e54150d..1d7968f 100644
--- a/frontends/stapp2.py
+++ b/frontends/stapp2.py
@@ -9,7 +9,11 @@ except: pass
sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '..')))
import streamlit as st
-import streamlit.components.v1 as components
+try:
+ from streamlit import iframe as _st_iframe # 1.56+
+ _embed_html = lambda html, **kw: _st_iframe(html, **{k: max(v, 1) if isinstance(v, int) else v for k, v in kw.items()})
+except (ImportError, AttributeError):
+ from streamlit.components.v1 import html as _embed_html # ≤1.55
import time, json, re, threading, queue
from datetime import datetime
from agentmain import GeneraticAgent
@@ -951,8 +955,8 @@ init_session_state()
# Inject Anthropic theme
st.markdown(ANTHROPIC_CSS, unsafe_allow_html=True)
st.markdown(build_dynamic_font_css(110.0), unsafe_allow_html=True)
-components.html(ANTHROPIC_SELECTBOX_SCRIPT, height=0, width=0)
-components.html(build_header_agent_badge_script(), height=0, width=0)
+_embed_html(ANTHROPIC_SELECTBOX_SCRIPT, height=0, width=0)
+_embed_html(build_header_agent_badge_script(), height=0, width=0)
st.session_state.agent_name = 'Generic Agent'
with st.chat_message("assistant"):