fix(b09): [업데이트] 때 지운 복사 정보 뺌 — 화면 캐시 기준 수요 · M01 원본 없는 줄 굳힌 값 그대로 (296-1)

- [업데이트] = 화면 캐시(user)를 같이 보냄 · 캐시 그대로 둠(지운 줄 안 되살림 · 저장 안 함)
- 서버 수요 = 캐시 줄이 잇는 서고 사본만(지운 줄의 사본 단가 줄 안 살아남)
- M01 원본이 지워진 키 = 옛 책 줄 그대로 · 낡음 까닭에서 빠짐
- 시험 test_296_b09_update_skip_deleted

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Se7ytqbohmBQnfYpwYFnYf
This commit is contained in:
2026-10-12 21:54:43 +09:00
co-authored by Claude Opus 5.5
parent df574665b1
commit cf396d93ff
5 changed files with 143 additions and 26 deletions
+4 -3
View File
@@ -66,9 +66,9 @@ def used_keys(folder: Path) -> list[str]:
return seen
def linked_resource_keys(project_root: str | Path) -> list[str]:
def linked_resource_keys(project_root: str | Path, keep: set[str] | None = None) -> list[str]:
"""연결된 사본 전부가 부른 자원 키 — 구조물 id 차례 → 설계내역서 서고 사본(204-2) ·
겹침 없음."""
겹침 없음 · `keep` = 화면 캐시 줄이 잇는 서고 사본만(296 · 지운 줄의 사본 뺌)."""
from B09_Estimation.B09_Estimation_Bill_Library import copies
base = structures_dir(project_root)
@@ -78,7 +78,8 @@ def linked_resource_keys(project_root: str | Path) -> list[str]:
if "일위대가" in linked.get("부분", [])
]
out: list[str] = []
for folder in [*folders, *(f for f, _ in copies(project_root))]:
libs = [f for f, _ in copies(project_root) if keep is None or f.name in keep]
for folder in [*folders, *libs]:
for key in used_keys(folder):
if key not in out:
out.append(key)