# Milestone: Repo Registry and Workspace Lease

## 위치

- Roadmap: `agent-roadmap/ROADMAP.md`
- Phase: `agent-roadmap/phase/control-plane-foundation/PHASE.md`

## 목표

관리 대상 Git repository와 workspace slot/lease를 PostgreSQL source of truth로 저장한다. 여러 worker나 agent-shell이 같은 workspace를 동시에 잡지 않도록 lease, dirty state, credential ref 경계를 정의하고 테스트한다.

## 상태

[완료]

## 승격 조건

- 없음

## 구현 잠금

- 상태: 해제
- 결정 필요: 없음

## 범위

- repo registry model과 migration
- workspace root, slot, lease state model
- credential value가 아닌 `credential_ref` 저장 기준
- lease acquire/release, dirty/error state 전환
- local/worker가 같은 slot을 중복 배정받지 않도록 하는 DB 기준

## 기능

### Epic: [registry] Repository registry

Gito가 관리할 repository와 기본 branch/workspace root/credential ref를 저장한다.

- [x] [repo-model] `Repo` model과 Postgres schema를 정리한다. 검증: migration에 `remote_url`, `default_branch`, `workspace_root`, `credential_ref`가 포함된다.
- [x] [repo-store] repo create/get/list/update store boundary를 만든다. 검증: storage test가 중복 id와 필수 필드 validation을 확인한다.
- [x] [repo-contract] proto-socket `repo` channel 후보 DTO와 REST bootstrap 예외를 contracts에 기록한다.

### Epic: [lease] Workspace lease

작업 slot을 안전하게 예약하고 해제하는 원장을 만든다.

- [x] [lease-model] `WorkspaceLease` state를 `available`, `leased`, `dirty`, `error` 기준으로 확정한다.
- [x] [lease-store] DB transaction으로 하나의 available slot만 lease하는 store boundary를 만든다. 검증: 동시 lease 시 같은 slot이 중복 반환되지 않는 테스트를 둔다.
- [x] [lease-release] release, dirty, error 전환 기준을 operation 결과와 연결한다.

## 완료 리뷰

- 상태: 승인됨
- 요청일: 2026-06-13
- 완료 근거:
  - registry/lease model, Postgres schema, store boundary, contract note가 현재 Milestone 기능 Task 범위에 맞게 정리됐다.
  - repo create/get/list/update와 workspace lease acquire/release/dirty/error transition 테스트를 추가했다.
  - `go test ./...`, `go vet ./...`, `git diff --check`가 통과했다.
- 리뷰 필요:
  - [x] 사용자가 완료 결과를 확인했다
  - [x] archive 이동을 승인했다
- 리뷰 코멘트: 코드 레벨 완료 검토에서 Required/Suggested 이슈 없음. Postgres 통합 테스트는 `GITO_TEST_DATABASE_URL`이 없으면 skip된다.

## 범위 제외

- 실제 Git command 실행
- agent-shell 연결
- provider adapter 구현
- Flutter UX 구현

## 작업 컨텍스트

- 관련 경로: `services/core/internal/core/`, `services/core/internal/storage/`, `services/core/migrations/`, `packages/contracts/notes/gito-control-plane.md`
- 표준선(선택): Postgres가 lease와 audit의 source of truth다.
- 선행 작업: Runtime Scaffold and Contract Baseline
- 후속 작업: Platformless Git Operation Engine
- 확인 필요: 없음
