feat: complete legacy parity and modernize operator UI

This commit is contained in:
2026-07-22 12:34:46 +09:00
parent fc4007d676
commit 939c252d23
149 changed files with 26515 additions and 1736 deletions

View File

@@ -362,7 +362,9 @@ On-air 표식이 남은 상태에서는 프로세스 감시, 연결 해제, 앱
### 화면/계약 구현과 운영 동등성 경계
- PList 기존 한국어 `DC_TITLE`/`LIST_TEXT` 2,213행은 실제 read-only DB에서 무손상 대조했다. 즉시 복원 1,581행과 GraphE fresh read 22행을 합친 `selectionMapped=1,603`/차단 610을 확인했다. 차단 610행은 DBA 결정 없이 추정 복원하지 않는다.
- PList 기존 한국어 `DC_TITLE`/`LIST_TEXT` 2,213행은 실제 read-only DB에서 무손상 대조했다. 현행 operator 경로는 활성 정의 23개/2,213행을 모두 로드하고 scene alias까지 복원한다. 개발 패키지에서도 첫 목록 58행을 실제 마우스로 팝업 없이 불러왔다. 과거 `selectionMapped=1,603`/610 보류는 2026-07-12 당시의 fresh typed-selection 증명 수치이지 목록 로드 실패 수치가 아니다. 개별 행의 DB payload·asset·PREPARE/PGM은 사용할 때 별도 검증한다.
- 2026-07-21 DB 목록 호환 재검수에서 GraphE 7,776행 전체 raw 편집, Theme/ThemeA 1,747개, 전문가 6명/추천 32행, 국내 4,599개, UC5 업종 53개·종목 1,474개를 확인했다. GraphE는 원본의 `_` 빈 슬롯과 빈 분기명을 레거시 저장 규칙으로 수용한 뒤 Revenue 1,960/1, Growth 1,114/5, Sales 2,328/21, OperatingProfit 2,323/24(strict-ready/deferred), 합계 7,725/51로 판정됐다. 목록·원문 편집 가능 상태와 송출 가능 상태는 분리하므로 남은 51행도 조회·편집·삭제할 수 있지만 fresh PREPARE에서 차단한다. 해외 비교 비활성 1행, NULL 매수가 5행, NXT 빈 preview 4개도 화면에서 유실하지 않되 PREPARE/action 전에 차단한다.
- ThemeA 기존 편집은 활성 종목 preview가 아니라 raw `SB_ITEM` 전체를 읽어 비활성 종목, 교차 prefix와 동일 순번 중복을 보존한다. 이 완화는 편집용 raw 행에만 적용되며 송출용 active preview와 신규 테마 시장 prefix 검증에는 적용하지 않는다.
- 개발 MSIX에서 PList create/save→fresh readback→delete/absence, ThemeA KRX/NXT와 EList create/edit/save→fresh readback→delete/absence를 실제 입력으로 검증하고 cleanup했다. 운영 DB에 대한 포괄적 쓰기 허가는 이 결과에 포함하지 않는다.
- 원본 `종목비교.dat`는 signed package에서 8쌍 one-time import와 재시작 marker를 확인했다. FSell/VI는 격리 fixture의 marker-last와 production opened-handle read를 통과했지만, 현재 운영 profile의 기존 동일 파일을 덮어쓰거나 marker를 새로 만들지 않았다.
- `s5006``Video\큐브배경.vrv``s6001` 해외지수 국가 영상 13개는 현재 승인 Cuts에 없으며, alias-only `Missing=0`은 asset-ready 증거가 아니다.