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

7.8 KiB
Raw Blame History

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

Round M은 CONNECT 뒤 PREPARE 전에 증거 감시기 회귀로 중단됐고, 앱과 Tornado2의 TCP 연결만 남았다. 이 회차는 그 연결을 프로그램의 정상 종료 경로로 한 번만 정리하기 위한 별도 fail-closed 회차다. M-R1은 승인 후 정확히 한 번 실행됐고, 정상 닫기 요청 뒤 중립 종료 대화상자를 탐지하는 단계에서 실패 폐쇄됐다. 확인 버튼·DISCONNECT/BYE는 실행되지 않았으며 같은 회차는 재시도하지 않는다.

실행 결과

항목
승인 2,707 bytes, 0019696B9354885BB9157F689AAD537E62C9AEB8A8F50C49C1D0629E26CA9B6F
실행 marker 4,912 bytes, E188D8E540644B94DD105D8A10CBF5A614563190A8D0FED1099AFE1BACFBE496
닫기 요청 journal 425 bytes, 767648452A11A7BDC8B272D4BB8F9E4DC8D629228938EA682B0C4D60A4C7DE23
결과 1,914 bytes, 6543B53F1D5D99B707FC2E04A1F09EA61E39714FE468FA7CF029C85A720851C9
상태 OUTCOME_UNKNOWN_CLOSE_REQUEST_MAY_HAVE_OCCURRED
정상 닫기 요청 / 종료 확인 1 / 0
DISCONNECT/BYE 관측 확인 전 단계라 미발행·미관측
송출·DB·직접 CDP/K3D·재시도·강제 종료·창 복원 모두 0

실제 WinUI Automation 트리에는 프로그램 종료 이름이 Popup 내부 dialog Window와 제목 Text에 각각 한 번씩 노출되고, 본문 Text와 PrimaryButton 종료 버튼은 각각 한 번씩 정확하게 존재했다. M-R1 도우미는 control type을 구분하지 않고 제목 이름의 전체 개수를 1개로 제한해 정상적인 두 요소를 모호한 중복으로 판정했다. 따라서 대화상자는 열린 채 보존됐고 앱 PID 37916과 기존 Tornado TCP도 유지됐다. 후속 확인은 현재 열린 대화상자의 control type·AutomationId·계층을 명시적으로 결박한 새 회차와 새 승인을 사용한다.

고정 산출물

항목 크기 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 창 복원은 승인하지 않는다. 사전 조건이 하나라도 달라지거나 결과가 불명확하면 추가 명령 없이 즉시 중단한다.