feat: align legacy operator and playout behavior

This commit is contained in:
2026-07-15 21:04:05 +09:00
parent 06a16e5741
commit 83398044c6
77 changed files with 6377 additions and 391 deletions

View File

@@ -6,6 +6,7 @@
## 원본 동작
- `T2S_FOLDER_PATH`는 실행 폴더의 `Cuts\`이다.
- MainForm 시작 시에는 `Cuts\video\기본.vrv`를 기본 배경으로 지정한다.
- F2/`btnback_Click`는 먼저 `Cuts\..\배경\기본.vrv`를 기본값으로 두고,
`배경` 폴더에서 vrv/jpg/png 파일 선택 창을 연다.
- F3/`ckback_CheckedChanged`가 배경을 끄면 파일 값을 비우고, 다시 켜면
@@ -14,9 +15,10 @@
## 새 구현
`SceneDirectory`(Cuts)는 기존 장면 장면 내부 자산만 계속 담당한다. 운영자
F2/F3 배경은 별도 `LegacyBackgroundDirectory`에서만 해석하며 두 allowlist
root를 합치거나 서로 대신 사용하지 않는다.
`SceneDirectory`(Cuts)는 기존 장면, 장면 내부 자산과 시작 시 기본 배경
`video\기본.vrv`를 담당한다. 운영자 F2/F3 배경은 별도
`LegacyBackgroundDirectory`에서만 해석하며 두 allowlist root를 합치거나 서로
대신 사용하지 않는다.
```json
{
@@ -37,6 +39,11 @@ F2/F3는 IDLE에서만 변경할 수 있고 변경은 다음 PREPARE부터 적
통과하지 못하면 재생 가능한 mutation으로 만들지 않는다. F3로 다시 켤 때도
이전 사용자 선택 파일이 아니라 원본과 같은 `기본.vrv`를 새로 검증한다.
명시적인 로컬 배경 설정이 없을 때의 시작 폴백은 오직
`SceneDirectory\video\기본.vrv`만 검사한다. 이 파일이 없거나 안전 검증에
실패해도 sibling `배경\기본.vrv`로 대신하지 않고, 경로를 노출하지 않는 경고와
함께 배경 없음으로 시작한다. 반대로 F2/F3는 시작 폴백 파일을 대신 사용하지 않는다.
## Fail-closed 검증
배경 root와 파일은 사용할 때마다 다음 조건을 모두 만족해야 한다.
@@ -49,11 +56,11 @@ F2/F3는 IDLE에서만 변경할 수 있고 변경은 다음 PREPARE부터 적
- 검사 중 디렉터리 조상과 파일 handle은 delete/rename 공유를 허용하지 않음
root나 파일이 없거나 검증 결과가 불명확하면 경로를 Web/오류에 노출하지 않고
F2/F3 또는 PREPARE를 거부한다. Cuts root로의 fallback은 없다.
F2/F3 또는 PREPARE를 거부한다. 시작 경로와 F2/F3 경로 사이의 fallback은 없다.
## 현재 자산 확인
2026-07-12에 원본 `bin\Debug\Cuts`의 형제 `bin\Debug\배경`
`배경\기본.vrv`를 확인했으나 둘 다 존재하지 않았다. 따라서 자산이 배치되기
전까지 현재 환경의 기본 배경은 의도대로 fail closed 상태다. 실제 vrv 파일은
Git/MSIX에 포함하지 않는다.
2026-07-15에 원본 `bin\Debug\Cuts\video\기본.vrv`와 Cuts의 형제
`bin\Debug\배경\기본.vrv`를 확인했으나 둘 다 존재하지 않았다. 따라서 자산이
배치되기 전까지 현재 환경의 기본 배경은 의도대로 fail closed 상태다. 실제 vrv
파일은 Git/MSIX에 포함하지 않는다.