Skip to content

fix: preserve ancestor outputs across repeated resume - #3

Merged
revfactory merged 2 commits into
mainfrom
fix/resume-ancestor-outputs-20260917
Sep 24, 2026
Merged

revfactory merged 2 commits into
mainfrom
fix/resume-ancestor-outputs-20260917

Conversation

@revfactory

@revfactory revfactory commented Sep 17, 2026 •

Copy link
Copy Markdown
Owner

문제

완료한 작업을 변경 없이 재사용한 뒤 입력을 바꾸고 다시 재개하면, 재실행 작업의 쓰기 경로가 최초 실행 폴더에 남을 수 있었습니다. 정상 CLI 순서로 이 경로에 새 결과를 작성하면 과거 승인 산출물이 덮어써졌고, 완료 검사도 통과했습니다.

원인은 resume이 직전 실행의 경로만 변환하고, 재사용된 결과가 속한 더 이전 실행을 처리하지 않는 데 있었습니다.

변경 내용

  • previous_run_id 전체 계보를 확인해, 다시 실행할 작업의 과거 실행 내 쓰기 경로를 새 실행으로 옮깁니다.
  • 디렉터리, glob, 프로젝트 내부 심볼릭 링크 별칭을 처리합니다.
  • 변경 없는 결과 재사용과 일반 프로젝트 출력 경로는 유지합니다.
  • 관계없는 실행 폴더를 수정하려는 계획은 새 실행을 만들기 전에 거부합니다.
  • 회귀 테스트 3개, 독립 재현 도구, 검증 요약을 추가합니다. 실행 로그와 원본 추적 기록은 PR에서 제외합니다.

검증

기준 커밋: 79b82281d305c89181fbb216499d5f1e962c14ed

  • 기준 버전의 기존 테스트 94개 통과.
  • 신규 핵심 회귀 검사는 수정 전 실패, 수정 후 통과.
  • 동일 재현 도구에서 원본 보존 여부가 수정 전 false → 수정 후 true로 변경.
  • 수정 후 전체 테스트 97개 통과.
  • 구조 검사 및 git diff --check 통과.
  • 독립 추가 검사에서 복합 glob과 단일 파일 심볼릭 링크 두 조건의 과거 실행 3개 파일 내용 보존 확인.
  • 깨끗한 기준 버전에 패치를 적용해 변경 파일이 검증본과 동일한지 확인하고, 핵심 회귀 검사와 구조 검사 재실행.
python3 scripts/reproduce_resume.py --repo . --output resume-after.json
python3 -m unittest discover -s tests -v
python3 scripts/validate.py --project .
python3 experiments/resume-audit/additional_resume_review.py --repo .

재현 도구는 관찰 결과를 출력합니다. JSON의 original_output_unchanged를 확인하거나 회귀 테스트를 사용해야 합니다.

검증 요약과 재현 방법

남은 제약

추가 실행 간 경계 검사 2개는 여전히 실패하며, 97개 통과 수에 포함하지 않았습니다.

  1. 서로 다른 실행 기록 사이의 중첩 쓰기를 전역으로 차단하지 않습니다.
  2. 재개 후 이전 실행의 유휴 에이전트가 점유한 슬롯을 새 실행에서 함께 계산하지 않습니다.
python3 experiments/resume-audit/cross_run_limitations.py -v

현재 기대 관찰 결과는 2개 실패, 종료 코드 1입니다. 이 PR은 해당 실행 간 조정 문제를 해결하지 않습니다.

이전 실행 계보가 없거나 손상되면 새 재개를 거부합니다. 임의의 에이전트 쓰기, 외부 프로세스의 파일 변경, 허위 검사 증거까지 차단하지는 않습니다. 검사는 Linux/Python 3.12.14에서 수행했으며 모의 에이전트 ID를 사용했습니다. Windows·macOS·실제 Codex CLI 실행 및 모델 성능·생산성 효과는 이번에 검증하지 않았습니다.

@revfactory
revfactory merged commit 7a2445b into main Sep 24, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant