From 70b25a5c220816bcd2033ee6853a79088c00e30d Mon Sep 17 00:00:00 2001 From: umsangdon Date: Mon, 7 Sep 2026 07:43:48 +0900 Subject: [PATCH] =?UTF-8?q?fix(main):=20=EB=A6=AC=EB=A1=9C=EB=93=9C=20?= =?UTF-8?q?=EA=B0=90=EC=8B=9C=EA=B0=80=20=EC=A0=95=EC=85=98=EC=9D=84=20?= =?UTF-8?q?=EB=94=B0=EB=9D=BC=20=EB=93=A4=EC=96=B4=EA=B0=80=20=EB=90=98?= =?UTF-8?q?=EA=B0=90=EA=B8=B0=EB=8D=98=20=EA=B2=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 보조 창이 원인을 확정함 — B07_DesignDetail\openwebcad\node_modules\forest-road-webapp → Junction → 저장소 루트 자신 (npm 이 만든 로컬 패키지 링크) 리로더가 B07 을 훑다가 그 정션으로 루트로 되돌아가고, 거기서 venv·storage 로 다시 들어가며 무한히 되감겼음. 실측 — 감시 폴더를 rglob 하면 파일 486,809개 · 한 바퀴 1,045초. PowerShell 로 세면 config 4개·B07 23개뿐임. 파이썬 rglob 은 정션을 따라 들어가고 PowerShell 은 안 따라가서 눈으로는 안 보였음. 링크(정션) 폴더를 통째로 건너뛰게 함 — 정션이 또 생겨도 재발 안 함. 앞 커밋(e7d30327)이 node_modules 품은 폴더를 빼며 이번 건은 이미 덮었으나 (CPU 85% → 18%), 그건 우연히 막힌 것이라 원인 자체를 막음. Co-Authored-By: Claude Opus 5 (1M context) --- main.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/main.py b/main.py index fba1ef17..716384f9 100644 --- a/main.py +++ b/main.py @@ -513,8 +513,14 @@ def _reload_dirs() -> list[str]: for entry in sorted(root.iterdir()): if not entry.is_dir() or entry.name.startswith(".") or entry.name in _RELOAD_SKIP: continue - # 의존성 트리가 **한 겹 아래에 숨어 있는** 경우도 뺀다 — `B07_DesignDetail/openwebcad/ - # node_modules`(15,944개)가 그렇다. 바로 밑만 보면 새어 나간다(2026-09-07 실측). + # 링크(정션)는 통째로 건너뛴다. `node_modules` 안에 **저장소 루트를 되가리키는 정션**이 + # 있어(`B07_DesignDetail/openwebcad/node_modules/forest-road-webapp` → 저장소 루트, + # npm 이 만든 것) 리로더가 그리로 되돌아가 `venv`·`storage` 를 다시 훑고 또 되감겼다. + # 실측(2026-09-07) — 감시 폴더를 훑으면 파일 **486,809개**, 한 바퀴 **1,045초**. + # 파이썬 `rglob` 은 정션을 따라 들어가고 PowerShell 은 안 따라가 눈으로는 안 보였다. + if entry.is_symlink(): + continue + # 의존성 트리가 **한 겹 아래에 숨어 있는** 경우도 뺀다 — 위 정션이 그 안에 있었다. if (entry / "node_modules").is_dir() or any(entry.glob("*/node_modules")): continue if any(entry.rglob("*.py")):