Skip to content

Commit 1962761

Browse files
neoneyeclaude
andcommitted
fix: break infinite event loop in Settings tab
The .change callbacks for settings components were outputting back to their own trigger components, causing an infinite loop that froze the browser. Removed the circular outputs — callbacks now only update browser_state, profile_models_markdown, active_config_markdown, and session_state. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent b449fd6 commit 1962761

1 file changed

Lines changed: 5 additions & 5 deletions

File tree

frontend_single_user/app.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -399,7 +399,7 @@ def update_browser_settings_callback(openrouter_api_key, model, speedvsdetail, m
399399
session_state.speedvsdetail = speedvsdetail
400400
session_state.model_profile = model_profile
401401
profile_markdown = _profile_models_markdown(model_profile)
402-
return updated_browser_state, openrouter_api_key, model, speedvsdetail, model_profile, profile_markdown, "", session_state
402+
return updated_browser_state, profile_markdown, "", session_state
403403

404404
def run_planner(submit_or_retry_button, plan_prompt, browser_state, session_state: SessionState):
405405
"""
@@ -892,7 +892,7 @@ def check_api_key(session_state: SessionState):
892892
openrouter_api_key_text.change(
893893
fn=update_browser_settings_callback,
894894
inputs=[openrouter_api_key_text, model_radio, speedvsdetail_radio, model_profile_radio, browser_state, session_state],
895-
outputs=[browser_state, openrouter_api_key_text, model_radio, speedvsdetail_radio, model_profile_radio, profile_models_markdown, active_config_markdown, session_state]
895+
outputs=[browser_state, profile_models_markdown, active_config_markdown, session_state]
896896
).then(
897897
fn=check_api_key,
898898
inputs=[session_state],
@@ -902,7 +902,7 @@ def check_api_key(session_state: SessionState):
902902
model_radio.change(
903903
fn=update_browser_settings_callback,
904904
inputs=[openrouter_api_key_text, model_radio, speedvsdetail_radio, model_profile_radio, browser_state, session_state],
905-
outputs=[browser_state, openrouter_api_key_text, model_radio, speedvsdetail_radio, model_profile_radio, profile_models_markdown, active_config_markdown, session_state]
905+
outputs=[browser_state, profile_models_markdown, active_config_markdown, session_state]
906906
).then(
907907
fn=check_api_key,
908908
inputs=[session_state],
@@ -912,7 +912,7 @@ def check_api_key(session_state: SessionState):
912912
speedvsdetail_radio.change(
913913
fn=update_browser_settings_callback,
914914
inputs=[openrouter_api_key_text, model_radio, speedvsdetail_radio, model_profile_radio, browser_state, session_state],
915-
outputs=[browser_state, openrouter_api_key_text, model_radio, speedvsdetail_radio, model_profile_radio, profile_models_markdown, active_config_markdown, session_state]
915+
outputs=[browser_state, profile_models_markdown, active_config_markdown, session_state]
916916
).then(
917917
fn=check_api_key,
918918
inputs=[session_state],
@@ -922,7 +922,7 @@ def check_api_key(session_state: SessionState):
922922
model_profile_radio.change(
923923
fn=update_browser_settings_callback,
924924
inputs=[openrouter_api_key_text, model_radio, speedvsdetail_radio, model_profile_radio, browser_state, session_state],
925-
outputs=[browser_state, openrouter_api_key_text, model_radio, speedvsdetail_radio, model_profile_radio, profile_models_markdown, active_config_markdown, session_state]
925+
outputs=[browser_state, profile_models_markdown, active_config_markdown, session_state]
926926
).then(
927927
fn=check_api_key,
928928
inputs=[session_state],

0 commit comments

Comments
 (0)