Skip to content

fix(replay): 출력·도구 실행 뒤 stale-resume 재시도가 프롬프트 전체를 다시 실행하지 않게 한다 (#7330 P1~P5) - #7446

Merged
itismyfield merged 19 commits into
mainfrom
feat/i7330-stale-replay-p5
Oct 27, 2026
Merged

itismyfield merged 19 commits into
mainfrom
feat/i7330-stale-replay-p5

Conversation

@itismyfield

@itismyfield itismyfield commented Oct 27, 2026 •

Copy link
Copy Markdown
Owner

무엇

출력이나 도구 실행 뒤에 stale-resume 자동 재시도가 프롬프트 전체를 다시 실행하지 않게 합니다. exact replay 처분 권위의 활성화 범위를 다시 정하고 재시작 경계를 보호합니다(P1~P5).

원래 10-26f 묶음 PR #7439에 들어 있었습니다. 묶음 CI의 Rust tests worker 1·2에서 이 작업의 시험 두 개가 실패했습니다. 다른 작업을 막지 않도록 묶음에서 빼고(#7442) 수리한 뒤 단독으로 올립니다.

구성

  • P1~P5 본체 87814be360
    • 리뷰 ref: refs/review/i7330-p1-r1…p4-r1, refs/review/i7330-p5-r2m
    • 판정: Claude 리뷰 CLEAN (lane-runs/hl-20260925/i7330/review-p5-r2-claude.out.md)
  • ci1 d9b5194542: replay 조회 불가 때 gateway custody 시험을 P5 활성 계약에 맞췄습니다.
    • 활성 계약은 조회 실패 시 알림을 보내고 custody에 보존하는 것입니다.
    • 원 시험은 P5 이전의 dormant 전제를 유지하던 낡은 시험이었습니다.
    • 생산 코드는 바꾸지 않았습니다.
  • ci2 f1ac1f84da: worker의 세션 없는 거절 시험 fixture를 실제 부팅과 같게 PG가 있는 owner로 고쳤습니다.
    • 거절 계약(Processed·failed_post_accept·첨부 보존)은 그대로입니다.
    • 생산 코드는 바꾸지 않았습니다.
  • main 155ec4ed25 merge(ca5d0c9a08): 생성물은 merge_main_regen.sh로 다시 만들었습니다.
  • d0ee224b52: main merge로 되살아난 낡은 시험 제거 사유 28행을 지웠습니다. main에 이미 없는 시험들이고, 남겨 두면 base-diff가 stale로 실패합니다. 델타 리뷰 P2-1의 처방입니다.

검증

  • ci1: 대상 시험 107/0/0. ci2: 대상 시험 153/0/0, 수정 전 RED 1/1 재현, owner PG 제거 뮤턴트 RED. source scan 521/0/0. prepush_gates.sh --static-only PASS.
  • ci1+ci2 델타 리뷰: Claude Opus, refs/review/i7330-ci2, CLEAN.
    • P2-1: 위 사유 행 정리로 반영했습니다.
    • P2-2(PG 없는 owner helper를 다른 worker 시험도 씀)는 후속으로 남깁니다.

PR-CAP-EXEMPT: #7330 기능 하나(P1~P5)를 조각별 리뷰 단위 상한 안에서 리뷰한 뒤 한 PR로 묶었습니다(리뷰 ref refs/review/i7330-p1-r1…p4-r1, refs/review/i7330-p5-r2m, CI 수리 refs/review/i7330-ci2). CI 수리(ci1·ci2)는 시험만 바꿨습니다.

Refs #7330

🤖 Generated with Claude Code

itismyfield and others added 19 commits October 26, 2026 00:33
Keep the request hold, permanent receipt-specific outbox event, and retained
notification reference in one transaction. Mount the new entry only in tests
until later recovery and activation slices wire the production authority.

Co-Authored-By: GPT-6.1 Sol (via Codex) <noreply@openai.com>
Observe direct Codex records before bridge delivery, require an owned reader seal, and preserve stale priority and the one-retry budget. Keep unsupported runtimes closed and production admission dormant. Normalize notice routing and validate retained hold metadata.

Co-Authored-By: GPT-6.1 Sol (via Codex) <noreply@openai.com>
Resume withheld notices by receipt without restoring an execution permit, and
fence legacy recovery retries through the canonical request disposition.
Observe only consumed stale errors and reclaim timed-out protected stderr readers.

Co-Authored-By: GPT-6.1 Sol (via Codex) <noreply@openai.com>
Reuse the canonical begin and exact continuation across non-TUI headless starts, retaining the reservation and request metadata. Consume atomic withheld notices and close the carried recovery owner guards.

Co-Authored-By: GPT-6.1 Sol (via Codex) <noreply@openai.com>
Move existing preparation into the replay child, qualify gateway forwarding, constrain the live-decision visibility and select the legacy driver explicitly in legacy intake fixtures. Follow-up replay handoff and census registration still need the lane file extension.

Co-Authored-By: GPT-6.1 Sol (via Codex) <noreply@openai.com>
Keep complete no-effect stale attempts for their exact decision, record the scheduled exact handoff in the existing empty-sink lifecycle, and register the exact gateway transport in the writer census. Verify dormant terminal and restored-hold behavior without minting a live token.

Co-Authored-By: GPT-6.1 Sol (via Codex) <noreply@openai.com>
Regenerate the environment reference with scripts/generate_env_reference.py for the cfg(test) process wrapper fixture seam.

Co-Authored-By: GPT-6.1 Sol (via Codex) <noreply@openai.com>
Gate new producers by process settings and final execution scope while continuing to protect existing receipts. Settle unfinished restart attempts only with the held singleton root and a matching local snapshot; foreign attempts retain their live retry rights.

Settle refused starts once and wait for the previous headless snapshot to retire before exact handoff.

Co-Authored-By: GPT-6.1 Sol (via Codex) <noreply@openai.com>
Run held-row notice supplementation in the existing observed task supervisor. A failed PG scan keeps retrying without delaying intake opening, watcher restoration, or queue kickoff. Canonical replay fences remain in place.

Verify boot returns while intake_outbox is unavailable and a single notice settles when it returns. Wait for asynchronous settlement in pagination tests.

Co-Authored-By: GPT-6.1 Sol (via Codex) <noreply@openai.com>
…ay-p5

# Conflicts:
#	.github/workflows/ci-pr.yml
#	scripts/ci/non-pg-test-filter.sh
#	scripts/lib_test_inventory_manifest.txt
#	scripts/pg_test_lane_manifest.txt

Co-Authored-By: GPT-6.1 Sol (via Codex) <noreply@openai.com>
Use the canonical cross_os_consumer_paths.py output to select the replay policy subtree added to the merged source tree. Preserve the nextest workflow and its upstream manifest removals.

Co-Authored-By: GPT-6.1 Sol (via Codex) <noreply@openai.com>
Keep explicit producer-off coverage and verify durable custody, notice delivery, and one dispatch after lookup recovery.

Co-Authored-By: GPT-6.1 Sol (via Codex) <noreply@openai.com>
…ay-p5

# Conflicts:
#	scripts/ci/test-removal-justifications.txt

Co-Authored-By: GPT-6.1 Sol (via Codex) <noreply@openai.com>
Keep terminal refusal and attachment checks, and verify the next worker tick has no pending delivery.

Co-Authored-By: GPT-6.1 Sol (via Codex) <noreply@openai.com>
The rows came back through the main merge; their tests are gone from main,
so the base diff would report them as stale.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Generated docs were rebuilt with merge_main_regen.sh. The batch's
test-removal rows are dropped here as on main (#7450).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Keep the #7330 test rename row; main cleared the batch's stale rows.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@itismyfield
itismyfield merged commit ed6fd2b into main Oct 27, 2026
23 checks passed
itismyfield added a commit that referenced this pull request Oct 27, 2026
## 무엇
#7446(#7330) 머지로 시험 제거 사유 목록의 rename 행 1개가 오래된 행이 됐습니다. 남겨 두면 다음 PR들의
`Rust tests build and plan`이 "justification row matches no loss"로
실패합니다(#7444가 같은 원인으로 실패한 적 있음). 머리말 4줄만 남깁니다.

- 바뀐 파일: `scripts/ci/test-removal-justifications.txt` 1줄 삭제
- 코드 변경 없음

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
itismyfield added a commit that referenced this pull request Oct 27, 2026
## 무엇

#7463(Windows Nightly 시험 가정 수리) 머지로, 시험 제거 사유 목록의 Windows 손실 행 12개가 오래된
행이 됐습니다. 남겨 두면 다음 PR들의 `Rust tests build and plan`이 "justification row
matches no loss"로 실패합니다. #7470이 이 원인으로 실패했습니다(main `7169b68996` 기준, 12행
모두 해당). 머리말 4줄만 남깁니다.

- 바뀐 파일: `scripts/ci/test-removal-justifications.txt`, 12줄 삭제
- 코드 변경 없음
- 확인: CI 오류로 나온 12행과 파일의 데이터 12행이 같은 집합이다(diff 0).

같은 정리: #7457(#7446 뒤).

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
itismyfield added a commit that referenced this pull request Oct 27, 2026
## 무엇

#7477(시스템 프롬프트에서 [Agent Performance] 블록 제거)이 머지되면서, 시험 제거 사유 목록의
`bucket_cadence_tests` 행 3개가 오래된 행이 됐습니다. 남겨 두면 다음 PR들의 `Rust tests
build and plan`이 "justification row matches no loss"로 실패합니다. #7481이 이
원인으로 실패했습니다(비교 기준 main `acd2e489a5`, 3행 모두 해당). 머리말 4줄만 남깁니다.

- 바뀐 파일: `scripts/ci/test-removal-justifications.txt`, 3줄 삭제
- 코드 변경 없음
- 확인: CI 오류로 나온 3행과 파일의 데이터 3행이 같은 집합이다.

같은 정리: #7457(#7446 뒤), #7472(#7463 뒤).

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
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