# Complete - m-api-centered-proto-socket-rail/01_contracts_api_registry

## 완료 일시

2026-05-30

## 요약

API contracts/parser registry foundation task completed after three review loops; final verdict PASS after remote `protoc 29.3` alignment restored `bin/contracts-check`.

## 루프 이력

| Plan | Review | Verdict | 메모 |
|------|--------|---------|------|
| `plan_cloud_G07_0.log` | `code_review_cloud_G07_0.log` | FAIL | 필수 원격 검증 출력 부재 |
| `plan_cloud_G07_1.log` | `code_review_cloud_G07_1.log` | FAIL | `go test ./services/api/...` PASS, `bin/contracts-check`는 `protoc` 버전 drift로 FAIL |
| `user_review_0.log` | user decision | RESOLVED | 원격 검증 환경의 `protoc`를 committed 기준인 `v5.29.3` 계열로 올려서 진행 |
| `plan_cloud_G07_2.log` | `code_review_cloud_G07_2.log` | PASS | `protoc 29.3` PATH 우선 배치 후 `bin/contracts-check`, `go test ./services/api/...`, generated diff 확인 통과 |

## 구현/정리 내용

- API socket handler registration을 registry 흐름으로 분리하고 hello handler를 같은 registry 경유로 등록했다.
- API parser map을 `messageFactories()` 기반으로 정리하고 required ALT API messages coverage 테스트를 보강했다.
- 원격 검증 환경에서 repo 밖 `/tmp`의 `protoc 29.3`을 PATH 앞에 두어 committed generated output 기준선과 맞춘 뒤 계약 검증을 통과시켰다.

## 최종 검증

- `PATH="$tmp_protoc/bin:$PATH" bin/contracts-check` - PASS; exit 0, stdout/stderr 없음.
- `PATH="$tmp_protoc/bin:$PATH" go test ./services/api/...` - PASS; `cmd/alt-api` no test files, config/contracts/socket packages ok.
- `git diff -- packages/contracts/gen/go apps/client/lib/src/generated --exit-code` - PASS; generated output diff 없음.

## 잔여 Nit

- 없음

## 후속 작업

- 없음
