feat: consolidate legacy parity migration baseline
This commit is contained in:
@@ -1,5 +1,9 @@
|
||||
# MBN_STOCK_N 동작 동등성 작업 기록
|
||||
|
||||
> **문서 성격:** 이 문서는 역사·상세 증거를 보존한다. 현행 완료·차단 판정은
|
||||
> [`MIGRATION_STATUS.md`](MIGRATION_STATUS.md)가 우선한다. 아래의 “미실행”, “대기”,
|
||||
> “별도 승인” 표현과 과거 테스트 수치는 해당 시점의 기록이며 현재 상태가 아니다.
|
||||
|
||||
> 2026-07-18 이후 현재 개발 PC의 Tornado2/PGM 작업에는
|
||||
> [개발 환경 상시 권한](DEVELOPMENT_ENVIRONMENT_AUTHORIZATION.md)을 적용한다. 아래의
|
||||
> 과거 회차별 승인 기록은 당시 증거이며 새 개발 작업의 반복 승인 요구로 재사용하지 않는다.
|
||||
@@ -530,3 +534,44 @@
|
||||
4. 전체 근거 검토 뒤 변경 사항 커밋·원격 반영
|
||||
|
||||
각 항목은 실제 원본 코드 근거와 회귀 테스트가 모두 생기기 전에는 완료로 판정하지 않는다.
|
||||
|
||||
## 2026-07-20 실제 사용자 입력 회귀 보정
|
||||
|
||||
상태: 보고된 세 가지 조작 문제를 보정하고 Release x64 개발 등록 패키지의 실제 Windows
|
||||
mouse/keyboard 입력으로 DryRun 종단 검증을 완료했다. Tornado 연결과 DB write는 실행하지 않았다.
|
||||
|
||||
- 원본의 NEXT 기준은 임의로 새로 클릭한 행이 아니라 마지막 TAKE IN으로 PROGRAM이 된 행이다.
|
||||
빠른 `행 클릭 -> TAKE IN`이 앞선 행 선택 처리와 겹치면 TAKE IN이 유실될 수 있던 native intent
|
||||
admission을 순서 보존 방식으로 보정했다. 실제 입력에서 다른 행을 먼저 후보로 만든 뒤 목표 행을
|
||||
클릭하고 즉시 TAKE IN했으며, 목표 행 PROGRAM 후 정확한 다음 enabled 행으로 NEXT됨을 확인했다.
|
||||
- 좌측 컷 drag는 기존 captured-pointer 임계값과 drop 계약을 유지하면서 마우스를 따라가는 추가
|
||||
가능/불가 feedback을 표시한다. threshold 전에는 숨김, 목록 밖에서는 불가, 편성표 위에서는 가능,
|
||||
release/cancel/Escape에서는 즉시 제거되는 것을 실제 입력으로 확인했다.
|
||||
- PREPARED/PROGRAM의 안정 상태에서도 좌측 컷의 순수 선택과 focus는 허용한다. 이때 pointer intent는
|
||||
`allowAppend=false`로 닫혀 있어 빠른 세 번 클릭과 double-click도 편성표 행 수를 바꾸지 않는다.
|
||||
- 첫 검증 fixture의 다음 행은 장중 데이터가 없는 `시간외단일가`여서 원본과 동일하게 장면 생성 전에
|
||||
`invalid row count`로 안전 차단됐다. 이는 NEXT 누락이나 결과불명이 아니므로, 검증 도구는 native
|
||||
error를 즉시 known rejection으로 판정하고 NEXT 행 이동 검증에는 서로 다른 두 `현재가` 행 ID를
|
||||
사용하도록 수정했다.
|
||||
- 10초 DB 상태 점검은 사용자/송출 DB 작업의 priority waiter를 gate 획득 전 게시하고, health CTS도
|
||||
`Interlocked.Exchange`로 게시한다. 상태 점검의 gate 획득과 cancellation 게시 사이에 입력이 와도
|
||||
probe가 양보하도록 경쟁 구간을 닫았다.
|
||||
|
||||
실제 패키지 증거:
|
||||
|
||||
- JSON: `artifacts/package-input-smoke/legacy-package-input-20260720T032627652Z.json`
|
||||
(SHA-256 `9A5F68C58C875A308360D8571ECE7D2B59AF8D258C8F3A3DADC134B1C4F596FE`)
|
||||
- 화면: `artifacts/package-input-smoke/legacy-package-input-20260720T032627652Z.png`
|
||||
(SHA-256 `EADF727632DF39F6509D484B613A63A4595BD56BCB5A868C3D8FE38E73DC8DC7`)
|
||||
- 결과: `PASS`, DryRun playout `PASS`, playlist count `3 -> 3`, blocked outbound `0`,
|
||||
state violation `0`, DB write `0`, 앱 PID의 Tornado `:30001` 연결 `0`, 정상 종료 및 port 해제 확인.
|
||||
|
||||
회귀 결과:
|
||||
|
||||
- JavaScript: 502/502
|
||||
- .NET solution: 2817/2817
|
||||
- LegacyWeb native contract: 117/117
|
||||
- Release x64 unsigned 개발 패키지 빌드: 경고 0, 오류 0
|
||||
|
||||
정정: 위 Slice 15에 남은 회차별 신규 승인 문구는 이후 기록된 개발 Tornado2/PGM 상시 권한으로
|
||||
대체됐다. 현재 권한과 stop condition은 저장소 `AGENTS.md`가 권위 기준이다.
|
||||
|
||||
Reference in New Issue
Block a user