# Complete - m-protocol-evolution-compatibility/05+04_nonce_dart_go

## 완료 일시

2026-06-16

## 요약

Dart/Go nonce pending collision skip 구현과 regression test 추가를 1회 리뷰 루프로 완료했으며 최종 판정은 PASS다.

## 루프 이력

| Plan | Review | Verdict | 메모 |
|------|--------|---------|------|
| `plan_cloud_G06_0.log` | `code_review_cloud_G06_0.log` | PASS | Dart/Go outbound nonce selection이 active pending request nonce를 건너뛰고 focused 검증이 통과함 |

## 구현/정리 내용

- Dart `Communicator.nextNonce()`가 active `_pendingRequests` 키와 충돌하는 candidate nonce를 건너뛰도록 bounded loop를 적용했다.
- Dart `communicator_test.dart`에 wrap 후 pending nonce `1`을 유지한 상태에서 다음 outbound nonce가 `2`인지 확인하는 regression test를 추가했다.
- Go `Communicator.nextNonce()`를 `(int32, error)`로 확장하고 `pendingRequests` 충돌 candidate를 건너뛰도록 적용했다.
- Go `Send`, `SendRequest`, typed request-response path가 nonce exhaustion error를 처리하도록 갱신했다.
- Go `communicator_nonce_test.go`에 wrap 후 active pending nonce skip regression test를 추가했다.

## 최종 검증

- `cd dart && dart test test/communicator_test.dart` - PASS; `00:00 +32: All tests passed!`
- `cd go && go test ./...` - PASS; root/go and go/test packages passed, remaining packages reported `[no test files]`
- `git diff --check` - PASS; output 없음

## 잔여 Nit

- 없음

## 후속 작업

- 없음
