Files
MBN_STOCK_WEBVIEW/docs/LIVE_RECONCILIATION_PLAN_MBNWEB-20260712-M-R1.md

6.4 KiB
Raw Blame History

MBNWEB-20260712-M-R1 연결 정리 계획

Round M은 CONNECT 뒤 PREPARE 전에 증거 감시기 회귀로 중단됐고, 앱과 Tornado2의 TCP 연결만 남았다. 이 회차는 그 연결을 프로그램의 정상 종료 경로로 한 번만 정리하기 위한 별도 fail-closed 회차다. 현재 상태는 계획·도우미 검증 완료, 승인 대기이며, 종료 요청·대화상자 확인·DISCONNECT/BYE는 아직 실행하지 않았다.

고정 산출물

항목 크기 SHA-256
round-plan.json 17,466 bytes E5D12936867203B83306D0B6D98AC8347DD7E5914CCAEB941528CD866569BC77
round-m-r1-close.ps1 61,839 bytes FE01F8720DE9331B1B45F7FE3B66E17CD13B26E628967D785C74F890EA12D835
운영/시험 계획 빌더(서로 byte-identical) 21,942 bytes A1A44651A757C988658DA1D20495F0F84A9A5C16EB51885490B1FC1A70008013
승인 빌더 5,389 bytes C242AC302166D20E4EEECEF7922B54674326D5E4AE10B194F7E706435472A24D
정적 시험 12,459 bytes 705853EDCD8352F19C373793F3A9AE146CECE18F89238DE43C601CC173B074B1
승인 문구 템플릿 UTF-8 text 50A162618AB602745F4030F583E8F21F2366518266B19956335707C655748420
이 계획에 채워진 전체 승인 문구 UTF-8 text 0BC9B11EC90DA030A86F0240C92DFDB5585C504B69727959BD408608691C83C1

운영 산출물은 Git 제외 경로 artifacts/pgm-evidence/MBNWEB-20260712-M-R1에 있다. 이전 후보 계획 C3212E15...6B8BC3A8...은 감사용으로 보존하지만 승인 또는 실행에 사용하지 않는다.

실행 전 고정 상태

경계 기대값
Round M 결과 32,877 bytes, 019826B736B80A6C0DB696A5DF55DA68432D314B68EC79A4138E64DDB20870FC
PID 37916, 시작 2026-07-12T18:59:06.3837959Z, HWND 1128632, responsive
WebView2 CDP listener PID 34988, 앱의 자식, 127.0.0.1:9339
Tornado2 PID 6972, 시작 2026-07-11T11:18:54.9284515Z, 0.0.0.0:30001 listener
PGM / Network HWND 592052 / 79286
앱↔Tornado TCP 127.0.0.1:23210 <-> 127.0.0.1:30001, 생성 세대 고정
Round M 이후 Network 증가분 266 chars, 3B4B7946CB345B121880CC1EF904E429A16A367F3AF6DD23FCFFDEF559EAAFF4
신규 명령 HELLO 요청 1회와 성공 1회만 존재
PGM 8×8 표본 64개 RGB 최대값 0, 검은 화면
금지 파일 Round M runtime/prepare journal/local live config/capability 6개 모두 없음

검증 모드는 위 상태를 읽기만 한다. 엄격한 UTF-8 JSON 파싱, Windows PowerShell 5 구문 검사, 정적 호출 수 검사, 승인 빌더 ValidateOnly, 종료 도우미 ValidateOnly가 모두 통과했다. 검증 전후 고정 산출물 해시는 동일했고 승인·실행· may-have-issued 파일 6개는 생성되지 않았다. 정적 검사 결과는 정상 닫기 요청 호출 지점 1개, 중립 종료 확인 호출 지점 1개, 금지된 송출·직접 K3D/CDP·창 조작 호출 지점 0개다.

독립 감사 결과는 P0 0건, P1 0건이다. 비차단 P2 권고 1건은 원본 증거 파일을 해시한 뒤 다시 열어 파싱하는 사이의 매우 좁은 교체 경쟁이며, 이 회차에서는 원본 Round M 디렉터리를 immutable로 취급하고 모든 파일의 크기·해시를 다시 확인해 수용했다. 이 경로에는 승인 전후 어떤 작성기도 두지 않는다.

승인 후 허용되는 유일한 흐름

  1. 계획, 원본 Round M 증거, 프로세스 세대, 창 identity, Tornado listener, TCP, Network 증가분, PGM 검은 화면과 금지 파일 부재를 모두 재검증한다.
  2. 승인 파일이 계획 해시와 정확히 결박되고 900초 이내인지 확인한다.
  3. 정상 닫기 요청의 may-have-issued 저널을 WriteThroughFlush(true)로 먼저 기록한다. 그 뒤 전체 상태·계획·도우미·승인 freshness를 다시 확인하고 운영체제 정상 닫기 요청을 정확히 한 번만 보낸다.
  4. 제목 프로그램 종료, 본문 프로그램을 종료하시겠습니까?, 활성 기본 버튼 종료인 중립 대화상자 하나만 허용한다. pending/prepared/송출 경고 문구 또는 다른 대화상자면 확인하지 않고 중단한다.
  5. 대화상자가 열린 상태에서 전체 경계를 다시 읽고 확인 요청의 may-have-issued 저널을 내구성 있게 기록한다. 다시 전체 상태·계획·승인을 확인한 다음 새 UI Automation element로 종료를 정확히 한 번만 누른다.
  6. 앱과 CDP가 종료되고 앱 소유 active TCP가 사라지며 Tornado listener 세대가 유지되는지 확인한다. Network 증가분은 BYE 요청 정확히 1회, 성공 0~1회만 허용하고 PGM은 계속 검은 화면이어야 한다.

중간 상태가 하나라도 달라지거나 결과가 불명확하면 추가 명령 없이 즉시 중단한다. 재시도, 프로세스 강제 종료, PREPARE, TAKE IN, NEXT, Page NEXT, TAKE OUT, DB write, 재연결, 재실행, 직접 CDP/K3D 명령과 Tornado2 창 복원은 이 회차에서 허용하지 않는다. PGM/Network 창 복원은 known-clean 연결 정리 결과를 결박한 별도 Gate W 계획과 별도 승인을 사용한다.

정확한 승인 문구

아래 한 줄을 그대로 승인해야 한다. 계획 해시가 다르면 승인 효력이 없다.

회차 MBNWEB-20260712-M-R1의 연결 정리 계획 SHA-256 E5D12936867203B83306D0B6D98AC8347DD7E5914CCAEB941528CD866569BC77을 승인한다. Round M 결과 SHA-256 019826B736B80A6C0DB696A5DF55DA68432D314B68EC79A4138E64DDB20870FC가 outcome-unknown 상태이며, 현재 PGM이 검은 화면이고 Round M 기준 신규 Network Monitoring 기록이 HELLO 요청과 성공 각 1회뿐임을 확인한다. 현재 K3D 라이선스가 유효하고 Tornado2 PID 6972가 지정된 주 프로그램임을 확인하며, 현재 실행 중인 MBN_STOCK_WEBVIEW PID 37916, 시작 시각 2026-07-12T18:59:06.3837959Z에 대해 운영체제 정상 닫기 요청 정확히 1회와, '프로그램 종료' 대화상자가 '프로그램을 종료하시겠습니까?'라는 중립 문구를 표시할 때에만 '종료' 확인 정확히 1회, 그 정상 종료 과정에서 발생하는 DISCONNECT/BYE 최대 1회만 승인한다. PREPARE, TAKE IN, NEXT, Page NEXT, TAKE OUT, DB write, 재연결, 재실행, 직접 CDP/K3D 명령, 프로세스 강제 종료, 재시도 및 Tornado2 창 복원은 승인하지 않는다. 사전 조건이 하나라도 달라지거나 결과가 불명확하면 추가 명령 없이 즉시 중단한다.