docs(e2e): 차단 요인 FETCH-ORIGIN 의 해소 방향을 재판정해 착수 가능으로 세운다 - #137
Merged
dlddu-k3s-homelab-k3s-mcp[bot] merged 1 commit intoSep 13, 2026
Merged
dlddu-k3s-homelab-k3s-mcp[bot] merged 1 commit into
dlddu-k3s-homelab-k3s-mcp[bot] merged 1 commit into
Conversation
`선행` 이 「해소 방향 재판정」이던 유일한 차단 요인 행을 재판정하고 그 결과를 행에 반영한다. 판정: 정적 문서를 내는 **평문 http 원본을 인클러스터에 실물로 배포**해 등재 없이 닫는다(EXT 배제 조항 — MinIO · plugin-marketplace-git 선례). 재판정이 가능해진 근거는 #129 다. 그 행이 「대역을 세워도 사설 CA 를 검증할 자리가 MCP 컨테이너에 없다」로 판정을 미뤄 두었는데, `validateFetchTarget` 이 `http` 를 함께 받게 되면서 **검증할 인증서가 애초에 없는 평문 http 원본**이 열렸다. 그 컨테이너에서 평문 http 인클러스터 주소로 나가는 것은 이 스위트가 이미 매 실행 하고 있다(`$APPROVAL_GATEWAY_URL` = `http://approval-gateway-fake:8080`). - 차단 요인 행: `선행` 「해소 방향 재판정」 → 「없음」, `무엇이 막는가`·`해소 시` 재작성(판정 근거 · 셋 중 왜 이 길인지 · 착수 슬라이스가 할 일) - 집계: 착수 가능 **0** → **1**건 (R8 이 실제와 대조한다) - `deploy/e2e-approval-gateway-fake.yaml` 의 「왜 평문 HTTP 인가」 주석이 아직 `url must be https` 를 근거로 들고 있어 정정한다(코드에 그 리터럴 0건) 판정은 여기까지다 — 원본을 실제로 세우는 것은 이 행이 착수 가능이 된 뒤 다음 감지가 여는 슬라이스의 몫이다.
This was referenced Sep 13, 2026
dlddu-k3s-homelab-k3s-mcp
Bot
deleted the
reconcile/rct_20260913-0002-e2e-mock-policy
branch
September 13, 2026 13:49
This was referenced Sep 13, 2026
dlddu-k3s-homelab-k3s-mcp Bot
added a commit
that referenced
this pull request
Sep 13, 2026
Co-authored-by: reconciler-bot <reconciler@dlddu.dev>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
정합성 task
rct_20260913-0002(tbm_session-platform-e2e-mock-policy) 의 산출.gap
불변식 1(seam 1:1)은 무손상이다 — as-is 지문
seams=29 files=15바이트 불변, 등재 7 · 회계 20 ·인터셉트 7(위반 0). 이 PR 이 여는 것은 불변식 2 — 차단 요인 = 부채 쪽이다.
원장의 유일한 차단 요인
FETCH-ORIGIN행은선행이 「해소 방향 재판정」 하나였고, 그 재판정을미뤄 둔 근거를 같은 행이 이렇게 적고 있었다 — 「대역을 세워도 사설 CA 를 검증할 자리가 MCP
컨테이너에 없다」. 그 근거가 #129 로 죽었다:
validateFetchTarget이http와https를함께 받게 되면서 「인클러스터 원본은 https 여야 한다」는 고리가 끊겼고, 평문 http 원본에는
검증할 인증서가 애초에 없다.
그래서 그 행은 형식상 「착수 가능 0」이지만 실질로는 자기 자신에 막혀 있었다 —
선행의소관이 그 행의
소관(이 모델)과 같아 바깥에 기다릴 것이 없는데, R11 은선행칸의 존재 만보고 내용 은 보지 않으므로 게이트는 영원히 「착수 가능 0」을 찍는다. 정의가 불변식 2 를 만들며
이름 붙여 막으려던 성질(「차단 요인을 성실히 등재할수록 문서는 충실해지는데 해소 압력은 그대로 0인」)이
정확히 이 자리다.
이 PR 이 하는 것 — 재판정 하나
판정: ④ 정적 문서를 내는 평문 http 원본을 인클러스터에 실물로 배포해 등재 없이 닫는다.
정의의 EXT 배제 조항이 그대로 걸린다(kind 에 실물로 세울 수 있으면 EXT 를 쓸 수 없다 — MinIO ·
deploy/plugin-marketplace-git.yaml선례). 호출 관찰도 치환을 들이지 않는다 — 원본 자신의 액세스로그가 그 GET 을 센다. 그래서
판정은없음그대로이고 예고할 등재 CODE 도 없다.앞서 열려 있던 셋이 갈린 근거
인증서 자체가 없어 그 경로가 필요 없어진다.
실측 근거(가설이 아니다)
data-plane/cmd/agent/session_mcp_tools.go:229—url must be http or https. 리터럴url must be https는 코드 전체에서 0건.session-mcp컨테이너가 이미 매 실행 평문 http 인클러스터 주소로 나간다 —e2e_approval_gated_3_approval_path_test.go의operator()가$APPROVAL_GATEWAY_URL(=
deploy/e2e-approval-gateway-fake.yaml의http://approval-gateway-fake:8080) 로 요청을 낸다.아웃바운드 호출을 내는
http.DefaultClient도 그 컨테이너에 있다.변경
docs/test/e2e.md(218)선행「해소 방향 재판정」 → 「없음」,무엇이 막는가·해소 시재작성docs/test/e2e.md(191·193)docs/test/e2e.md(260)deploy/e2e-approval-gateway-fake.yaml(21~24)url must be https를 근거로 든다 — 정정. 주석 줄만 바뀐다검증 (로컬 실행, 전부 rc=0)
versionScript재실행 결과가 baseline 과 동일(
seams=29 files=15/de1e6837…). seam 집합을 건드리지 않았다.f7777637…→2ea053d0…) — 그 재감지가 착수 슬라이스를 연다.#주석이다(git diff -U0로 확인). ConfigMapdata:는 무변경.docs/comment-policy/ledger.md하나뿐이고 그것은 docs(comment-policy): 15차 판정 패스 — 승인 경로 e2e 파일 105줄 판정 (제거 84 · 유지 21) #131 이 만든기존 충돌이다.
docs/test/e2e.md는 자동 병합된다 — 이 PR 이 만지는 191·193·218·260 행은feat(approval-gated): AC-F5 후반 — 공유 볼륨을 파일시스템 아카이브에 실어 동결·복원을 건너 나른다 #127 의 hunk(683~776)와 서로소다.
범위 밖 (후속)
그 슬라이스를 연다(매니페스트 +
kustomization.yaml+f3PromptURL + 두 단언 + 행 삭제).docs/test/e2e.md:770·:771과docs/doc-tracker.md:56의 같은 거짓 전제 사본 —자매 모델
tbm_session-platform-docs-impl의 열린 task 가 그 축을 들고 있고,doc-tracker.md:56은 PR feat(approval-gated): AC-F5 후반 — 공유 볼륨을 파일시스템 아카이브에 실어 동결·복원을 건너 나른다 #127 이 그 줄을 다시 쓰므로 착지 순서가 얽힌다. 여기서 함께 만지지 않는다.