feat(B09 설계내역서): 불러오기 끝 = 지난번 이음 바로 잇고 남은 제안만 창에(남은 0 = 창 없음) · 잊은 짝 곁 느슨한 기억 안 좁힘 (PLAN 707-4 덧)

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-31 17:46:00 +09:00
co-authored by Claude Sonnet 5.5
parent 0959f28717
commit 74f3fb8009
4 changed files with 32 additions and 10 deletions
+4 -7
View File
@@ -98,16 +98,13 @@ def _loose(key: str) -> str:
def recall(memory: dict[str, dict[str, Any]], row: dict[str, Any]) -> dict[str, Any] | None:
"""기억 한 칸 — 같은 열쇠 · 없으면 품명 · 단위 같고 짝이 하나인 것(잊은 칸 = 없음)."""
"""기억 한 칸 — 같은 열쇠 · 없으면 품명 · 단위 같고 짝이 하나인 것 ·
잊은 칸은 없음 취급 + 느슨한 기억에서는 다른 짝으로 셈(잊은 짝 곁에서 하나로 좁히지 않음)."""
key = key_of(row)
if isinstance(memory.get(key), dict):
return None if memory[key].get(FORGOT) else memory[key]
loose = [
v
for k, v in memory.items()
if isinstance(v, dict) and not v.get(FORGOT) and _loose(k) == _loose(key)
]
return loose[0] if len({v.get("확정") for v in loose}) == 1 else None
loose = [v for k, v in memory.items() if isinstance(v, dict) and _loose(k) == _loose(key)]
return loose[0] if len({v.get("확정") for v in loose}) == 1 and loose[0].get("확정") else None
def _targets(rows: list[dict[str, Any]]) -> dict[str, dict[str, Any]]: