Files
trex-core/.proofline/lines/line-0004/evidence/implementation-progress.md
T

6.1 KiB

구현 진행 상황 evidence

이 파일은 ProofLine canonical lifecycle artifact가 아닌 GitHub issue comment 원문 evidence입니다. 기록된 구현·테스트 결과는 로컬 기능 브랜치의 사후 증거이며 ProofLine delivery closure, publication, release 또는 deployment 완료를 의미하지 않습니다.

Original Comment Body

구현 진행 상황

  • 대상: [Discovery] requester-versioned·runtime-locked image publication
  • 브랜치: feat/issue-57-versioned-locked-publication
  • 기준: main (1a2b50072238ea72186d99b3ec951fc9511100aa)
  • 상태: 🟢 로컬 구현·검증 완료 — 독립 리뷰 PASS
  • 최종 업데이트: 2026-08-14 16:41:50 KST

구현 계획 및 작업 목록

  • 1. 기존 게시 안전장치와 변경 영향 범위 확인
    • tag trigger, 검증 순서, tested-image handoff, digest·canary·secret 경계와 기존 회귀 테스트를 기준선으로 고정합니다.
  • 2. 요청자 버전 태그 전용 게시 흐름 구현
    • strict vX.Y.Z tag push만 허용하고 일반 main/branch push와 malformed event는 registry write 전에 차단합니다.
  • 3. 컨테이너 runtime dependency lock 적용
    • repository의 uv.lock을 실제 runtime 설치에 사용하고 lock mismatch·unlocked 설치를 fail-closed 처리합니다.
  • 4. 이미지 식별자·게시 근거와 운영 문서 갱신
    • source tag와 version tag의 same-digest, no-latest, source/version/digest evidence 및 tag push 승인 경계를 반영합니다.
  • 5. 회귀 테스트와 전체 검증 수행
    • release contract 집중 테스트, 전체 Ruff, 전체 pytest, ProofLine validation과 가능한 local image build/smoke를 실제 실행합니다.
  • 6. 독립 검토와 최종 구현 근거 정리
    • 구현자와 분리된 read-only 검토를 받고, 반려 시 보완·재검증한 뒤 최종 commit과 검증 결과를 기록합니다.

진행 기록

  • 승인된 #57 Discovery 본문과 OQ 결정(A: package version 독립, B: 일반 main/branch용 별도 CI 미추가)을 구현 범위의 기준선으로 고정했습니다.
  • 격리 worktree와 기능 브랜치를 1a2b50072238ea72186d99b3ec951fc9511100aa에서 생성했습니다.
  • 기준선 확인 완료: 기존 workflow의 single build→smoke→image ID→archive checksum/canary scan→tested artifact handoff→no-rebuild publish와 publish-job-only packages: write 경계를 확인했습니다.
  • AC 영향 범위 확인: AC-0004·AC-0006·AC-0008 update, runtime lock AC create, AC-0005·AC-0007 유지 경계로 고정했습니다.
  • 변경 전 기준선 검증: proofline validate PASS, 전체 Ruff PASS, 전체 pytest 1040 passed, 51 skipped; 기준 branch와 worktree는 clean입니다.
  • version tag 생성·push, GHCR publication, PR, main 반영, release와 deployment는 수행하지 않습니다.
  • 초기 구현 commit cb8fcee226ab71f522fe1bbef35d60197947850c 생성: strict tag-only trigger와 runtime uv.lock 설치, 기존 release safety contract 및 운영 문서 변경을 포함합니다.
  • 초기 후보 검증: release 집중 71 passed, 전체 1061 passed, 51 skipped, Ruff·ProofLine·diff check PASS. skip은 PostgreSQL 41건, RabbitMQ 9건, KIS sandbox 1건입니다.
  • 팀장 diff 검토에서 승인 계약 누락 2건을 확인해 최종 완료를 보류했습니다: (1) checkout 후 실제 HEAD == GITHUB_SHA 재검증 없음, (2) 성공 output/summary에 selected version tag evidence 없음.
  • 위 2건은 계획 변경이 아니라 승인된 #57의 결함 보완이며, 초기 후보 위에 별도 수정 commit을 만들고 전체 검증·독립 리뷰를 다시 수행합니다.
  • 보완 commit e3fa8243d926efd0b81463dbfc5403cf6e4889f9 생성: checkout HEAD 재검증과 selected version tag output/summary evidence를 추가했고 초기 커밋은 보존했습니다.
  • 팀장 최종 후보 재검증: release 집중 75 passed, 전체 1065 passed, 51 skipped, Ruff·ProofLine·diff check PASS, checkout mismatch fail-closed 실동작 확인.
  • Docker 재검증: built-image smoke, image ID, archive export/checksum, canary scan PASS; non-root 10001:10001, daemon entrypoint와 OCI revision을 확인했습니다.
  • 구현·검증 항목 2~5를 완료했으며, 최종 후보 e3fa824에 고정한 독립 read-only 리뷰를 진행합니다.
  • 독립 read-only 리뷰 최종 PASS (mutation=false, target e3fa8243d926efd0b81463dbfc5403cf6e4889f9): release 75 passed, 전체 1065 passed, 51 skipped, Ruff·ProofLine·diff check PASS, 승인 차단 finding 없음.
  • skip 분류: PostgreSQL integration 41건(DSN 없음), RabbitMQ integration 9건(URL 없음), KIS sandbox 1건(credentials 없음).
  • 독립 리뷰의 비차단 참고: 새 review environment는 uv sync --extra dev --locked 후 검증했으며, candidate Docker build/registry write는 리뷰에서 수행하지 않았습니다. Docker contract는 구현자와 팀장이 별도로 실제 build/smoke/scan으로 확인했습니다.
  • 최종 기능 브랜치 HEAD와 tree는 각각 e3fa8243d926efd0b81463dbfc5403cf6e4889f9, ea05e23139965abed1f6a454c4ca2b5d356f8ab9; worktree clean. 임시 detached review worktree는 검토 후 정리했습니다.
  • 현재 완료 경계는 격리 기능 브랜치의 로컬 구현·검증·커밋입니다. push, PR, main 반영, tag 생성·push, GHCR publication, release와 deployment는 수행하지 않았습니다.

각 작업이 실제로 완료되고 검증될 때마다 이 댓글의 체크박스와 진행 기록을 갱신한다. 체크 표시는 구현 완료 또는 해당 검증의 실제 통과를 의미하며, 배포·릴리스 완료를 의미하지 않는다.