Server: - download-pdf-stream: check if PDF already exists (size > 1KB) → return cached path immediately, skip all network requests Client (startPrep): - save pdfPaths from prepLog before reset → skip PMC download if path known - skip text extraction if paperTexts[key] already loaded in memory - text from project open (onOpenProjChange) now survives "다시 실행" Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>