Skip to content

fix: sidebar full-page rerun for global settings#7

Merged
2002yy merged 1 commit into
mainfrom
release-v0.8.0
May 17, 2026
Merged

fix: sidebar full-page rerun for global settings#7
2002yy merged 1 commit into
mainfrom
release-v0.8.0

Conversation

@2002yy
Copy link
Copy Markdown
Owner

@2002yy 2002yy commented May 17, 2026

Summary\n\n- Problem: Sidebar st.rerun(scope="fragment") only re-runs the sidebar fragment, leaving status bar and wechat panel stale after applying settings\n- Fix: Added _rerun_app() helper (st.rerun() without scope) for all 6 global-affecting operations\n- current_route clearing: When any global setting changes, stale route cache is cleared so status bar shows correct values\n- Pure function: _settings_changed() extracted and tested with 8 parameterized cases\n- 12 new tests: source checks + pure function tests

…ed pure fn

- Added _rerun_app() helper using st.rerun() (no scope) for global ops
- Added _settings_changed() pure function to detect setting changes
- apply_settings now clears stale current_route when any global setting
  changes
- All 6 global-affecting sidebar operations (apply settings, runtime
  flags, memory flags, view unread, clear unread, force refresh) now
  use full-page rerun instead of fragment-scoped rerun
- 12 new tests covering _settings_changed, source checks for rerun
  strategy, and current_route clearing

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
@2002yy 2002yy merged commit ae0998a into main May 17, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant