데이터무결성 ★ 2026-06-07
v1.9.406
rule/decision/lesson add 동시쓰기 lost-update 차단 (8번째 버그헌트, UR-0110)
멀티에이전트 데이터 무결성 — rule/decision/lesson add 의 read-modify-write 가 락 없이 실행돼 동시 쓰기 시 항목이 조용히 유실되던 것 차단(UR-0043 락 정책의 커버리지 갭 메움).
핵심 변경
ruleAdd / decisionAdd / lessonSave 의 RMW 전체를 _withLock(rulesPath/decisionsJsonPath/lessonsJsonPath, () => {...}) 로 직렬화(task add 와 동일 패턴). ruleAdd 는 멱등 skip 을 락 내 반환값으로 처리.
**selftest 151→152 PASS** (3함수 _withLock 와이어).
**E2E 344→345 PASS** (락 리팩터 멱등성/정확성 보존: dup skip + 순차 카운트).