2e19dc3d37
kosha run() 이 소스별 단일 세션으로 collector 전체를 돌리고 예외 시 rollback → 페이지 _api_get 실패가 앞서 적재한 케이스/항목을 전부 폐기(부분 적재 손실 + 매번 같은 지점 실패 시 영구 미적재). disaster_cases/fatal_accidents/guide 의 케이스·항목 단위로 session.commit() 경계 추가(csb/api_standards idiom) — 실패 이전 적재분 보존, dedup 으로 다음 run 이 이어받음. 첨부 실패는 기존대로 격리(변경 없음). 검증: py_compile 통과. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>