From 1e12da45f16d0b020e92c8bfbbdbca25081b2e7f Mon Sep 17 00:00:00 2001 From: pyr0ball Date: Fri, 13 Mar 2026 10:55:25 -0700 Subject: [PATCH] fix(linkedin): move session state pop before tabs; add rerun after settings merge - Pop _linkedin_extracted before st.tabs() so tab_builder sees the freshly populated _parsed_resume in the same render pass (no extra rerun needed) - Fix tab label capitalisation: "Build Manually" (capital M) per spec - Add st.rerun() after LinkedIn merge in Settings so form fields refresh immediately to show the newly applied data --- app/pages/0_Setup.py | 13 ++++++------- app/pages/2_Settings.py | 1 + 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/app/pages/0_Setup.py b/app/pages/0_Setup.py index e628b4b..c936b39 100644 --- a/app/pages/0_Setup.py +++ b/app/pages/0_Setup.py @@ -270,8 +270,13 @@ elif step == 3: st.subheader("Step 3 \u2014 Resume") st.caption("Upload your resume for fast parsing, or build it section by section.") + # Read LinkedIn import result before tabs render (spec: "at step render time") + _li_data = st.session_state.pop("_linkedin_extracted", None) + if _li_data: + st.session_state["_parsed_resume"] = _li_data + tab_upload, tab_builder, tab_linkedin = st.tabs([ - "\U0001f4ce Upload", "\U0001f4dd Build manually", "\U0001f517 LinkedIn" + "\U0001f4ce Upload", "\U0001f4dd Build Manually", "\U0001f517 LinkedIn" ]) with tab_upload: @@ -362,12 +367,6 @@ elif step == 3: ) with tab_linkedin: - # Check for pending LinkedIn import from previous rerun - _li_data = st.session_state.pop("_linkedin_extracted", None) - if _li_data: - st.session_state["_parsed_resume"] = _li_data - st.rerun() # re-render so tab_builder reads the newly populated _parsed_resume - from app.components.linkedin_import import render_linkedin_tab render_linkedin_tab(config_dir=CONFIG_DIR, tier=_tier) diff --git a/app/pages/2_Settings.py b/app/pages/2_Settings.py index cded03a..1514165 100644 --- a/app/pages/2_Settings.py +++ b/app/pages/2_Settings.py @@ -597,6 +597,7 @@ with tab_resume: existing.update({k: v for k, v in _li_data.items() if v}) save_yaml(RESUME_PATH, existing) st.success("LinkedIn data applied to resume profile.") + st.rerun() with st.expander("🔗 Import from LinkedIn", expanded=False): from app.components.linkedin_import import render_linkedin_tab