← 패치노트

데이터무결성 ★ 2026-07-15

v1.36.31

동시성 직렬화 — 병렬 에이전트의 lost update 차단 (codex 미검토표면 헌트 이연분 #1/#2/#5/#7)

#1 P1 — 병렬 `state start` run 유실/충돌

핵심 변경

**#1 P1 — 병렬 state start run 유실/충돌**: 두 병렬 start 가 같은 run-0001 을 배정해 한쪽 goal 이 덮이거나 EPERM 크래시(codex 12-trial 실측 6~9/12 발화). → stateCmd 변경 sub(start/record/verify/handoff) 전체를 state.json 락으로 직렬화(load→카운터→run 저장→state 저장이 한 임계구역). 실측: 병렬 8 start → run 파일 8/8·고유 goal 8/8·EPERM 0.
**#2 P1 — 병렬 team add 무성 유실**: 20 병렬 add 전부 exit 0 인데 16 팀만 잔존(4건 무성 소실). → 락 안 재로드→중복검사→추가→저장 + Windows 일시 EPERM(락 밖 병렬 읽기가 파일을 잠깐 여는 사이 원자 rename 실패) 소규모 재시도. 실측: **20/20 잔존 ×2회**.
**#5 P2 — record↔handoff 경합 stale handoff**: 같은 state.json 락으로 함께 직렬화. 실측 6-trial 에러 0.

GitHub 릴리스 v1.36.31 →