Skip to content

Historical Roots 30 KO

teamswyg edited this page Sep 30, 2026 · 2 revisions

평가2,400개 전체의 과거 원천 접근 — 실험30

고정한2,400개 수정 전 스냅샷 모두의 최상위 파일 목록에 접근했다. 표본53개에서 전체로 범위를 넓혔다.2,230개에는 최상위 라이선스 후보 파일이 있고, 나머지170개는 하위 경로 확인이 필요하다. 라이선스 본문 검토나 모델 평가 완료를 뜻하지 않는다.

범위와 결과

사전 계획에 따라 실험29의 선택 구성을 원천 projection에서 재계산했다. 선택 해시 fa58c4e51ae307963eb587813e49adf70d987dcb4893f6ee1aa6050bc6b80a5a와2,400개 수를 확인한 뒤 각 정확한 base_commit의 GitHub root tree를 조회했다. 긴 요청53개와 다른 모든 선택 항목을 유지했다.

항목 결과
대상 / 접근 성공 2,400 / 2,400
접근 실패 0
최상위 라이선스 후보가 있는 스냅샷 2,230
하위 경로 확인이 필요한 스냅샷 170
응답 메타데이터 합계 14,752,218바이트
중복을 합친 후보 객체 목록 143개

170개는 matplotlib/matplotlib163개와 tokio-rs/axum7개다. 기존 표본의 root를 추가로 살펴보면 Matplotlib은 LICENSE가 디렉터리이고, Axum은 여러 하위 패키지를 둔 구조였다. 최상위 후보 파일이 없다고 라이선스가 없는 것은 아니다. 후속 단계에서 하위 경로를 확인한다.

후보 규칙은 실험29의 LICENSE/COPYING/NOTICE 파일명 규칙 그대로다.143개는 (저장소, 경로, blob ID) 조합을 합친 수이며143종 라이선스라는 뜻이 아니다. 후보의 참조 횟수와 blob 목록은 로컬 파일에만 저장한다. 저장소별 공개 집계는 개별 작업 ID나 커밋 ID를 포함하지 않는다.

실행과 캐싱

두 작업자가 각자 입력과 결과 슬롯을 소유한다. 요청 시간30초, 응답2MiB, 오류4KiB 상한을 두고 작업자별 요청 시작 사이를 최소250ms 띄운다. 기존 GitHub CLI 인증을 사용하며 인증값과 오류 원문을 공개 결과로 옮기지 않는다.

성공 응답만 검증 후 임시 파일에서 원자적으로 이름을 바꿔 캐시에 저장한다. 불완전 tree·잘못된 객체 종류/모드·잘못된 객체 ID·중복 경로·과도한 응답은 거부한다. 실패 항목을 다른 쉬운 항목으로 대체하지 않는다. 기존53개 표본 캐시도 재사용했다. 캐시는 원천 조회 응답이며 라이선스 승인 목록이 아니다.

--offline 재실행은 GitHub 호출을 하지 않는다. 캐시에 없는 항목은 접근 미확인으로 집계한다. 이번에는2,400개 모두 캐시가 있었고 집계와 private 후보 목록이 최초 실행과 바이트 단위로 일치했다.

go run ./cmd/riido-rootcoverage --out .cache/historical-roots-new
# 위 수집이 끝난 뒤, 새 출력 폴더에 네트워크 없이 재현한다.
go run ./cmd/riido-rootcoverage --offline --out .cache/historical-roots-offline-new

고정 입력 projection이 필요하다. 출력 폴더는 새 경로여야 한다. candidates.json과 원천 cache는 로컬 유지용이며 Git/HF에 올리지 않는다.

검증·자원·해석

주입된 API 응답으로 캐시 재사용, 실패 응답 미저장, 잘못된 식별자, 출력 크기 제한을 검사했다. 후보 중복 합산과 저장소별 성공/실패/미발견 집계도 테스트했다. 전체 Go race/vet·형식 검사, 기존53개 표본 결과 재현, 실제2,400개 오프라인 실행의 race 검사와 결과 일치를 확인했다.

M4 Pro CPU에서 캐시만 사용하는 재현1회는 wall0.93초,user0.44초,sys0.10초,peak RSS32,440,320바이트(약30.9MiB)였다. 최초 네트워크 수집 전체의 시간/메모리 측정이 아니며, 모델 추론·GPU 비용도 아니다. 메타데이터14.8MB는 코드 전체나 컨테이너의 저장 공간 추정치가 아니다.

이번에 확인한 것은 모든 선택 커밋의 최상위 목록 접근 가능성이다. 코드 본문이나 라이선스 본문은 받지 않았고 하위 파일 전체를 점검하지 않았다. root 후보가 있어도 해당 텍스트와 제3자 코드의 조건을 읽어야 한다. LicensesReviewed와 ProductionReady는 계속false다.

다음은170개 대상의 하위 라이선스 경로 확인, 중복 후보 본문의 무결성 검증과 원천 조건 정리다. 긴 요청의 입력 계약과 실제2,400개 평가도 남는다. 학습·모델 추론·새 HF 배포·기본 기능 활성화는 하지 않았고 기존 최종 reserve는 사용하지 않았다.

PR #53 · CI

후속: 실험 31에서 170개 하위 경로를 확인하고 전체 2,400개 버전의 후보 본문 무결성을 검증했다. 전체 법적 조건 및 실제 모델 평가는 별도다.

Clone this wiki locally