Skip to content

test(e2e): approval-gated #시나리오 6 에 공유 볼륨 왕복 대체 검증을 세운다 (미저작 7→6) - #130

Open
dlddu wants to merge 1 commit into
mainfrom
reconcile/rct_20260912-0005-opus-5-1m
Open

dlddu wants to merge 1 commit into
mainfrom
reconcile/rct_20260912-0005-opus-5-1m

Conversation

@dlddu

@dlddu dlddu commented Sep 12, 2026

Copy link
Copy Markdown
Owner

무엇을 / 왜

dlddu/reconciler 의 정합성 task rct_20260912-0005 (tbm_session-platform-scenario-e2e) 의 산출물.

approval-gated-workload.md#시나리오 6 은 유예 표에서 「현행 대체 검증」이 없음 인 행이었다 —
이 시나리오를 검증하는 것이 어느 스위트에도 없었다. 이 PR 이 그것을 세운다. 유예 34는 그대로이고
그 안의 분해가 바뀐다: 이관 27 → 28 · 미저작 7 → 6.

이 PR 은 2026-09-12 의 축 개정(#132 — 매칭 공간이 web/e2e/ 최상위 spec 단독) 이후
리베이스돼 그 어휘로 다시 쓰였다. 그래서 이 파일은 매칭 단위가 아니라 대체 검증이고,
게이트는 유예 표의 「현행 대체 검증」 칸과 파일 헤더 선언을 diff 로 대조한다.

🔁 3라운드 (2026-09-13) — 승인 반려 「main 최신화 후 다시 판단한다」에 대한 응답

앞 라운드는 산출물이 아니라 신선도로 반려됐다: base 가 69ff764 에 고정된 채 main 이 계속
흘러, CI 초록이 낡은 base 위의 것이었다. base 를 068e921(#131 · #133 · #138 · #136 착지 이후)로
다시 잡고 전부 다시 쟀다.

리베이스는 충돌 0 이었다. 다시 돌려야 했던 것은 게이트가 아니라 문장이다 — 이 PR 이 이미 한 번
배운 그 교훈(#129 로 「https 만」이 거짓이 된 건)이 이번에도 그대로 나왔다.

무엇이 낡았나 어떻게 고쳤나
🔴 origin 열거가 틀렸다. 「GET 에 답하는 인클러스터 origin 은 세 대역의 /healthz 와 게이트웨이의 작은 JSON 뿐」이라고 적었는데, deploy/kustomization.yaml 에는 실물로 선 GET origin 이 둘 더 있다 — minio.yamlplugin-marketplace-git.yaml. (앞 라운드부터 틀려 있었고 게이트도 리뷰도 잡지 않았다.) 결론(「100,000 바이트를 넘는 본문이 없다」)은 살아남았고 근거를 실측으로 다시 세웠다: MinIO 는 익명 읽기 정책이 없어 서명 없는 GET 이 작은 403 XML 로 끝나고, 마켓플레이스 원격이 smart HTTP 로 내는 저장소는 marketplace.json + 픽스처 SKILL.md 넷뿐이다. 열거를 전수로 고쳤다(e2e.md 행 · 파일 헤더 둘 다)
「위 두 행이 적는 사유도 그만큼 좁아졌다」는 지목이 소비됐다. 앞 라운드는 남의 낡은 행 둘을 고치지 않고 지목만 해 다음 감지로 넘겼는데, #133·#138 이 그 정정을 이미 착지시켰다(770행에 「전제 정정(2026-09-13)」 addendum) 내 행의 그 문장을 착지한 정정을 가리키는 형태로 고쳤다. 남의 행은 여전히 한 글자도 건드리지 않는다
자기 착지 날짜 둘이 2026-09-12 로 적혀 있었다(이 PR 이 그날 머지될 예정이었다) 2026-09-13 으로. 2026-09-12 인 채로 둔 것은 남의 착지를 가리키는 것들이다 — #126(선행 해제) · #132(축 개정) · #129(스킴 완화)

반려가 콕 집어 지시한 재확인 둘, 실측 결과:

대체 검증이 사는 것

공유 볼륨이 전달 통로라는 것. 헬퍼 파드의 MCP 컨테이너가 승인된 응답을 떨구는 그 자리
(session_mcp_files.goweb_fetch_get/<요청ID>.body)에 난스를 남기고 → 워크로드 파드의
에이전트가 자기 도구로
그것을 읽어 같은 볼륨에 되쓰고 → 다시 MCP 컨테이너가 그 바이트를 읽는다.
왕복이 파드를 두 번 건너므로 「동결을 건너뛴 다음 실행이 그 파일을 본다」(시나리오 6 (b))가
테스트 프로세스의 exec 가 아니라 제품 경로의 관측이다.

  • 음성 단언: 그 난스가 세션 출력 버퍼에는 한 번도 나타나지 않는다 — 「파일 전달이 도구 응답
    본문이 아니라 볼륨으로 이뤄진다」. 같은 버퍼가 대역의 상수 응답을 실제로 담는다는 대조군을 먼저
    통과시킨 뒤에
    재므로 공허하지 않다.
  • (e): 다른 세션의 워크로드 파드는 같은 상대 경로에서 그 난스를 보지 못한다. 자기 세션의
    워크로드는 본다는 양성 대조군이 먼저 붙는다.

마운트 층은 되사지 않는다 — ReadWriteMany bind · 같은 경로 · credential-proxy 미마운트 ·
세션별 클레임 · 동반 회수는 control-plane/test/shared_volume_test.go 가 이미 배포 SUT 에서 산다.
그 파일은 한 줄도 건드리지 않았다(같은 파일을 다시 쓰는 #127 과의 경합면 0).

사지 않은 것 (§「남은 미검증 분기」에 등재)

갈래 막힌 이유
(a) 앞머리 — 승인된 외부 호출로 그 파일이 만들어짐 FETCH-ORIGIN, 다만 막히는 자리가 스킴이 아니라 크기다. 평문 http 는 #129 로 열렸고, 남은 것은 spillBodymaxInlineBodyBytes(100,000)를 넘는 응답에만 돈다는 것 — 이 SUT 에는 무자격 GET 에 그만한 본문을 돌려주는 인클러스터 origin 이 하나도 없다(대역 셋의 /healthz·작은 JSON, MinIO 의 403 XML, 마켓플레이스 원격의 픽스처 저장소 — deploy/kustomization.yaml 전수 확인). 소관 tbm_session-platform-e2e-mock-policy
(c) 복원 후 파일 잔존 POST /snapshot 이 503 checkpoint strategy is disabled동결 진입 자체가 없다. 선행 = AC-F5 아카이브 전략(소관 tbm_session-platform-docs-impl, PR #127)
(d) 동결 전·후 커서 〃. 동결이 없으면 남는 것은 커서 계약 일반이고 그쪽은 state-api.md#시나리오 6 의 대체 검증이 이미 소유한다

⚠️ (a) 에 대해 이번 라운드가 하나 더 관측했다 — MinIO 와 마켓플레이스 원격은 대역이 아니라
원본
이라 FETCH-ORIGIN 이 「정적 문서를 내는 평문 http 원본을 실물로 세운다」로 풀릴 때
새로 세울 것 없이 큰 본문 하나만 더하면 되는 자리다. 그 판정은 소관 모델의 몫이고
(마침 PR #137 이 그 재판정을 들고 있다) 이 PR 은 자리만 적어 둔다.

검증 (base 068e921, head 54a2b03)

주의

  • 제품 코드는 한 줄도 바뀌지 않는다(모델 정의의 경계 — 이 루프의 산출물은 e2e 테스트와 등재 문서뿐).
  • 신규 파일이 들여오는 주석의 정책 판정은 자매 모델 tbm_session-platform-comment-redundancy
    후속 패스 몫이다. 주석 정책 게이트는 그것을 미판정으로 두고 rc=0 이다(ledger.md 무변경).
  • 승인자가 갈라 줄 판단은 그대로 남아 있다(반려가 이번에는 판단하지 않겠다고 명시한 것):
    부분 커버리지((b)·(e) 두 갈래만)를 「현행 대체 검증」으로 등재해도 되는가, 그리고 그 등재가
    규칙 4 예외 전환 재료가 되어 시나리오 6 이 유예 표에서 영구히 빠지는 경로를 여는 것에 동의하는가.
  • base 는 계속 흐른다. 머지 직전에 main 이 또 움직였으면 리베이스 후 게이트뿐 아니라 문장도
    다시 볼 것 — 이번 라운드가 그래서 origin 열거 하나를 고쳤다.

@dlddu
dlddu force-pushed the reconcile/rct_20260912-0005-opus-5-1m branch 2 times, most recently from 468f6e2 to c729291 Compare September 13, 2026 07:44
@dlddu dlddu changed the title test(e2e): approval-gated #시나리오 6 의 공유 볼륨 왕복을 저작한다 (저작 대기 7→6) test(e2e): approval-gated #시나리오 6 에 공유 볼륨 왕복 대체 검증을 세운다 (미저작 7→6) Sep 13, 2026
@dlddu-k3s-homelab-k3s-mcp

Copy link
Copy Markdown
Contributor

정합성 루프 기록 — 이 PR 은 파킹 상태다(닫지 않는다).

2026-09-14 승인 세션이 이 슬라이스를 범위를 이유로 반려하면서 「(c)·(d) 의 선행인 AC-F5 아카이브 전략(#127)이 착지한 뒤에 (b)·(e) 에 (c)·(d) 를 더해 한 파일로 저작하고, 그 전에는 다시 승인에 올리지 말 것」이라고 지시했다. #127 은 아직 OPEN 이라 그 게이트는 닫혀 있다.

같은 task(rct_20260912-0005)는 그 사이 유예 표가 「지금 바로 할 수 있는 일」로 지목하는 다른 행으로 슬라이스를 옮겼다 — #142(lifecycle.md#시나리오 2 의 Playwright 이관, 유예 34→33 · 매칭 파일 0→1).

⚠️ #142 가 먼저 착지하면 이 브랜치는 리베이스가 필요하다. 차등 시험 병합으로 쟀다 — main 단독으로는 충돌 0 인데 main + #142 에서는 docs/test/e2e.md 가 충돌한다(둘 다 scenario-summary 블록과 유예 표를 만진다). 본문에 적힌 숫자(유예 34 · 매칭 파일 0)도 그때 함께 낡는다. AC-F5 착지로 이 슬라이스를 재개할 때 리베이스와 숫자 갱신을 같이 하면 된다.

This branch has not been deployed

No deployments
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