From 098115b4cc6f535f0b1954befcb34cf498192232 Mon Sep 17 00:00:00 2001 From: pyr0ball Date: Fri, 13 Mar 2026 10:58:58 -0700 Subject: [PATCH] fix(linkedin): conservative settings merge, mkdir guard, split dockerfile playwright layer --- Dockerfile | 9 ++++++--- app/pages/2_Settings.py | 6 ++++-- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/Dockerfile b/Dockerfile index 55f364d..ccbe921 100644 --- a/Dockerfile +++ b/Dockerfile @@ -10,9 +10,12 @@ RUN apt-get update && apt-get install -y --no-install-recommends \ && rm -rf /var/lib/apt/lists/* COPY requirements.txt . -RUN pip install --no-cache-dir -r requirements.txt && \ - playwright install chromium && \ - playwright install-deps chromium +# Install Python dependencies +RUN pip install --no-cache-dir -r requirements.txt + +# Install Playwright browser (cached separately from Python deps so requirements +# changes don't bust the ~600–900 MB Chromium layer and vice versa) +RUN playwright install chromium && playwright install-deps chromium # Bundle companyScraper (company research web scraper) COPY scrapers/ /app/scrapers/ diff --git a/app/pages/2_Settings.py b/app/pages/2_Settings.py index 1514165..df0e41d 100644 --- a/app/pages/2_Settings.py +++ b/app/pages/2_Settings.py @@ -592,9 +592,11 @@ with tab_resume: # ── LinkedIn import ─────────────────────────────────────────────────────── _li_data = st.session_state.pop("_linkedin_extracted", None) if _li_data: - # Merge imported data into resume YAML + # Merge imported data into resume YAML — only bootstrap empty fields, + # never overwrite existing detail with sparse LinkedIn data existing = load_yaml(RESUME_PATH) - existing.update({k: v for k, v in _li_data.items() if v}) + existing.update({k: v for k, v in _li_data.items() if v and not existing.get(k)}) + RESUME_PATH.parent.mkdir(parents=True, exist_ok=True) save_yaml(RESUME_PATH, existing) st.success("LinkedIn data applied to resume profile.") st.rerun()