Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
91aff66445 |
@@ -0,0 +1,64 @@
|
|||||||
|
# Find-Word v0.2.5 수용 기준
|
||||||
|
|
||||||
|
현재 판정: **exact-byte 소유자 청취 승인 경로 수용, 배포 미실행**.
|
||||||
|
Oz 회신 **“승인합니다. 이대로 진행하세요”**, **2026-10-14T11:29:51Z / 2026-10-14 20:29:51 KST**를
|
||||||
|
[승인 기록](RELEASE-APPROVAL-v0.2.5.json)에 고정했다. 사용자에게서 전달받은 회신이며,
|
||||||
|
`productOwnerReleaseApproval=true`, `humanListeningAcceptance=true`, **`legalPrivacyClearance=false`**다.
|
||||||
|
자동 ASR은 market 1 segment와 `requiredEmptyPassed=false`로 여전히 실패다.
|
||||||
|
아래 구현 조건의 이전 증거를 보존하고 이번 전체 검증 결과는 [RESULT](RESULT-v0.2.5.md)에 기록했다: unit 146, Python 60, sandboxed Chrome 36 PASS; lint/build/audit/scan/diff도 통과.
|
||||||
|
승인 전 이 문서의 미체크 상태는 [원문 사본](evidence-v0.2.5/release-approval/before-ACCEPTANCE-v0.2.5.md)에 보존했다.
|
||||||
|
|
||||||
|
## 오류 재현과 loudness 자산
|
||||||
|
|
||||||
|
- [x] v0.2.3 실제 8 WAV의 integrated loudness spread가 약 16.49 LU임을 RED evidence로 보존한다.
|
||||||
|
- [x] 기존 runtime peak-dependent mix에서 같은 SNR의 background final gain/RMS가 환경별로 달라지는 RED를 보존한다.
|
||||||
|
- [x] 8개 final WAV를 실제 EBU R128 방식으로 측정하고 integrated loudness가 선언 목표의 ±0.2 LU 안에 든다.
|
||||||
|
- [x] 8개 간 integrated loudness spread가 0.4 LU 이하이다.
|
||||||
|
- [x] 모든 true peak가 선언 ceiling 이하이며 clipping/full-scale sample이 없다.
|
||||||
|
- [x] 8개 모두 24kHz mono PCM16, 정확히 12초, non-silent, 고유 hash, fade 경계다.
|
||||||
|
- [x] 기존 source SHA-256·bytes·creator·license·selected segment는 변경하지 않는다.
|
||||||
|
- [x] generator는 실제 loudness 측정 실패, 목표 이탈, peak 초과, source mismatch, publication 실패에서 기존 디렉터리를 보존한다.
|
||||||
|
- [x] manifest/provenance에는 normalization target, true-peak ceiling, algorithm/filter, FFmpeg version, pass 측정값과 final measured LUFS/LRA/true peak를 기록한다.
|
||||||
|
|
||||||
|
## Runtime 혼합
|
||||||
|
|
||||||
|
- [x] background load는 저장된 loudness-normalized PCM을 파일별 RMS 재정규화 없이 사용한다.
|
||||||
|
- [x] voice와 intro는 기존 normalization을 유지한다.
|
||||||
|
- [x] environment 8개와 SNR −12~+12 dB에서 background gain은 완전히 동일하다.
|
||||||
|
- [x] SNR 변화는 voice/background 상대 voice gain만 바꾸고 background gain을 바꾸지 않는다.
|
||||||
|
- [x] 고정 common/headroom gain은 검증된 최대 peak와 최대 SNR에서 수학적으로 clipping ceiling 이하이다.
|
||||||
|
- [x] 실제 101 voice × 8 ambience × 허용 SNR 경계를 검사해 peak 안전성과 유한 gain을 보장한다.
|
||||||
|
- [x] 재생·재청취·중도 종료·loop stop·404/decode/timeout/abort 복구를 보존한다.
|
||||||
|
|
||||||
|
## 버전·문서·주석
|
||||||
|
|
||||||
|
- [x] package/lock/HTML/UI/README/voice manifest/ambience manifest/query가 `0.2.5`다.
|
||||||
|
- [x] `CHANGELOG.md`에 v0.2.5의 모든 오류 원인·자산·runtime·수치·검증 변경이 있다.
|
||||||
|
- [x] README, ARCHITECTURE, AUDIO_PROVENANCE, DEPLOYMENT가 새 loudness 계약과 일치한다.
|
||||||
|
- [x] 변경한 모듈·함수·클래스·핵심 변수/매개변수·비자명한 오디오 로직에 상세 한국어 주석이 있다.
|
||||||
|
- [x] 정확한 credit, 라이선스 notice, v0.2.3 이전 역사/evidence를 보존한다.
|
||||||
|
|
||||||
|
## 전체 검증
|
||||||
|
|
||||||
|
- [x] lint/typecheck, unit/component/release/Python, build, npm audit를 통과한다.
|
||||||
|
- [x] sandboxed Chrome desktop/mobile에서 109 WAV 전수 hash/decode와 8 환경 실제 loop 재생을 통과한다.
|
||||||
|
- [x] 브라우저에서 실제 각 environment의 background GainNode 설정값이 동일함을 검증한다.
|
||||||
|
- [x] 3문항 고정난이도, 다음 단계, 시작 난이도, SNR 조절, 중도 종료, 무응답 표시가 회귀 없이 동작한다.
|
||||||
|
- [x] console/page error, failed request, 외부 runtime request, axe violation이 0이다.
|
||||||
|
- [x] secret scan과 `git diff --check`가 통과한다.
|
||||||
|
|
||||||
|
## exact 자산 릴리스 승인
|
||||||
|
|
||||||
|
- [x] 승인 JSON이 없어 실패하는 집중 테스트를 먼저 기록했다.
|
||||||
|
- [x] 전달 ZIP SHA-256 `bb2e974b652df43db4a1f2a59716836e2c521839c724b34d4b71c1b40c3322e5`와 현재 manifest·8 WAV·notice를 전수 비교한다.
|
||||||
|
- [x] 정확한 Oz 회신/소유자/범위/UTC·KST 시각 및 세 승인 flags를 검증한다.
|
||||||
|
- [x] 자동 empty-ASR OR 유효한 exact-byte 소유자 청취 승인 계약이며 현재 통과 사유는 후자뿐이다.
|
||||||
|
- [x] stale 자산/manifest, 다른 ZIP, 문구/범위/시각 누락·변경 및 법적 clearance 과장을 거부한다.
|
||||||
|
- [x] ASR 원문·market segment·`requiredEmptyPassed=false`와 원래 실패 테스트/로그를 역사 진단으로 보존한다.
|
||||||
|
- [x] 기존 evidence·원본·구간·loudness/gain 수학·음원 바이트를 보존한다.
|
||||||
|
|
||||||
|
## 배포/Git 작업 — 이번 작업 범위 제외, 미실행
|
||||||
|
|
||||||
|
- [ ] Neo 독립 검증 뒤 findword.heart-m.com에 commit-addressed release로 원자 배포한다.
|
||||||
|
- [ ] 공개 8 WAV의 LUFS/true peak/hash/MIME를 재측정하고 production Chrome 흐름을 확인한다.
|
||||||
|
- [ ] feature push, main fast-forward merge, annotated `v0.2.5`, fresh clone 검증을 완료한다.
|
||||||
@@ -0,0 +1,45 @@
|
|||||||
|
{
|
||||||
|
"version": "0.2.5",
|
||||||
|
"sourcePlan": ".agent/AMBIENCE-SOURCES-v0.2.3.json",
|
||||||
|
"sourcePlanSha256": "3529c8534be204208ac504a0f4c1a69b312131f9bbff92aa9a3135d61d24db65",
|
||||||
|
"sourcePolicy": "Preserve all eight source hashes, bytes, segments, creators, licenses and attribution exactly. Offline input cache only.",
|
||||||
|
"normalization": {
|
||||||
|
"algorithm": "FFmpeg ebur128 measurement; scalar volume in double precision; PCM16; fresh ebur128 verification",
|
||||||
|
"targetIntegratedLUFS": -32.5,
|
||||||
|
"truePeakCeilingDBTP": -6.0,
|
||||||
|
"internalTruePeakCeilingDBTP": -6.2,
|
||||||
|
"toleranceLU": 0.2,
|
||||||
|
"maximumSpreadLU": 0.4,
|
||||||
|
"measurementFilter": "ebur128=peak=true",
|
||||||
|
"maximumIterations": 3
|
||||||
|
},
|
||||||
|
"ffmpegVersion": "ffmpeg version 6.1.1-3ubuntu5 Copyright (c) 2000-2023 the FFmpeg developers",
|
||||||
|
"pcm": {
|
||||||
|
"durationSeconds": 12,
|
||||||
|
"sampleRate": 24000,
|
||||||
|
"channels": 1,
|
||||||
|
"encoding": "PCM16 little-endian",
|
||||||
|
"fadeSeconds": 0.05
|
||||||
|
},
|
||||||
|
"runtime": {
|
||||||
|
"peakBounds": {
|
||||||
|
"background": 0.55,
|
||||||
|
"voice": 0.25,
|
||||||
|
"intro": 0.2
|
||||||
|
},
|
||||||
|
"snrMax": 12,
|
||||||
|
"introRelativeGain": 1.8,
|
||||||
|
"mixCeiling": 0.8,
|
||||||
|
"fixedHeadroomGain": 0.4198884518664126
|
||||||
|
},
|
||||||
|
"privacy": {
|
||||||
|
"priorScreening": ".agent/evidence-v0.2.3/privacy-screening/final-asr.json",
|
||||||
|
"priorOwnerApprovalScope": "Exact v0.2.3 derivative WAVs only; no inferred approval of changed v0.2.5 WAVs.",
|
||||||
|
"humanListeningAcceptance": false,
|
||||||
|
"legalPrivacyClearance": false
|
||||||
|
},
|
||||||
|
"rejectedHistoricalEvidence": {
|
||||||
|
"path": ".agent/evidence-v0.2.5/independent-loudness.json",
|
||||||
|
"reason": "loudnorm input_i spread 0.01 LU contradicted by dedicated ebur128 spread 2.0 LU and independent pyloudnorm 0.2.0 spread 1.925 LU; not accepted for release"
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,91 @@
|
|||||||
|
{
|
||||||
|
"schemaVersion": 1,
|
||||||
|
"owner": "Oz",
|
||||||
|
"statement": "승인합니다. 이대로 진행하세요",
|
||||||
|
"statementSource": "User-reported Oz reply after receipt of the review bundle",
|
||||||
|
"timestampUtc": "2026-10-14T11:29:51Z",
|
||||||
|
"timestampKst": "2026-10-14T20:29:51+09:00",
|
||||||
|
"scope": {
|
||||||
|
"version": "0.2.5",
|
||||||
|
"kind": "exact-byte-ambience-bundle",
|
||||||
|
"directory": "public/ambience",
|
||||||
|
"files": [
|
||||||
|
"street.wav",
|
||||||
|
"mall.wav",
|
||||||
|
"theater.wav",
|
||||||
|
"department.wav",
|
||||||
|
"market.wav",
|
||||||
|
"subway.wav",
|
||||||
|
"cafe.wav",
|
||||||
|
"rain.wav",
|
||||||
|
"manifest.json",
|
||||||
|
"AMBIENCE_NOTICES.md"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"productOwnerReleaseApproval": true,
|
||||||
|
"humanListeningAcceptance": true,
|
||||||
|
"legalPrivacyClearance": false,
|
||||||
|
"reviewBundle": {
|
||||||
|
"file": ".agent/evidence-v0.2.5/release-approval/review-bundle.zip",
|
||||||
|
"deliveredPath": "/home/hermes/voice-memos/find-word-v0.2.5-normalized-ambience-review.zip",
|
||||||
|
"sha256": "bb2e974b652df43db4a1f2a59716836e2c521839c724b34d4b71c1b40c3322e5"
|
||||||
|
},
|
||||||
|
"manifest": {
|
||||||
|
"file": "public/ambience/manifest.json",
|
||||||
|
"sha256": "6433bf23af35f24031c6bbe784dd0abf9330f276da6b8705e47c7a1144a285b7"
|
||||||
|
},
|
||||||
|
"notice": {
|
||||||
|
"file": "public/ambience/AMBIENCE_NOTICES.md",
|
||||||
|
"sha256": "01d70fca0f4578b0ed8cda0c0ffb172867221029e31efe8136473711683dbf66"
|
||||||
|
},
|
||||||
|
"wavs": [
|
||||||
|
{
|
||||||
|
"environmentId": "street",
|
||||||
|
"file": "public/ambience/street.wav",
|
||||||
|
"sha256": "dace0969087539e5b67fb6fac11b759e81626574230ca7f8d2feb484753656a8",
|
||||||
|
"bytes": 576044
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"environmentId": "mall",
|
||||||
|
"file": "public/ambience/mall.wav",
|
||||||
|
"sha256": "a0a135e319ed70f55b03c6e266fb047e53db8008277a6ba8b855a05a1b82662f",
|
||||||
|
"bytes": 576044
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"environmentId": "theater",
|
||||||
|
"file": "public/ambience/theater.wav",
|
||||||
|
"sha256": "634fc25e8c4e9dcbab97688bc4c0ef9b0299cc7c4c921781a70740aabe46b900",
|
||||||
|
"bytes": 576044
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"environmentId": "department",
|
||||||
|
"file": "public/ambience/department.wav",
|
||||||
|
"sha256": "93e5c23bff2b19716dd21111746837a4df8c52d4b88c6874e57828d09ca5507e",
|
||||||
|
"bytes": 576044
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"environmentId": "market",
|
||||||
|
"file": "public/ambience/market.wav",
|
||||||
|
"sha256": "7178307c48c192ac396dcd3c880c377bf56b45e829b459b1feca9f986437e632",
|
||||||
|
"bytes": 576044
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"environmentId": "subway",
|
||||||
|
"file": "public/ambience/subway.wav",
|
||||||
|
"sha256": "e85cf77a9baa7560fb09966c4eda3b128b92647bc4c54c417a29b4e0f4ac129f",
|
||||||
|
"bytes": 576044
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"environmentId": "cafe",
|
||||||
|
"file": "public/ambience/cafe.wav",
|
||||||
|
"sha256": "864a81571a2e25a99d6408aa282570e7996c7ace432cf4f4f294677ea5bcad63",
|
||||||
|
"bytes": 576044
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"environmentId": "rain",
|
||||||
|
"file": "public/ambience/rain.wav",
|
||||||
|
"sha256": "1842a717e6c77811cb6d6cb09d364e8ef644d50e6beb97d3d187c96e95d85784",
|
||||||
|
"bytes": 576044
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -0,0 +1,192 @@
|
|||||||
|
# Find-Word v0.2.5 exact 자산 승인 및 독립 리뷰 수정 결과
|
||||||
|
|
||||||
|
2026-10-14 UTC · `/home/hermes/worktrees/find-word-v0.2.5` · `fix/v0.2.5-ambience-loudness`.
|
||||||
|
HEAD `812540c7438639f25b886cfd620201d92de15362` 유지. **commit/push/merge/tag/deploy 미실행.**
|
||||||
|
|
||||||
|
## 릴리스 판정: exact-byte 소유자 청취 승인 경로 수용
|
||||||
|
|
||||||
|
Oz는 현재 8 WAV·manifest·notice를 포함한 검수 ZIP을 받은 뒤 **“승인합니다. 이대로 진행하세요”**라고
|
||||||
|
**2026-10-14T11:29:51Z / 2026-10-14 20:29:51 KST**에 회신했다. 사용자가 전달한 이 회신을
|
||||||
|
[RELEASE-APPROVAL-v0.2.5.json](RELEASE-APPROVAL-v0.2.5.json)에 기록했다.
|
||||||
|
ZIP SHA-256 `bb2e974b652df43db4a1f2a59716836e2c521839c724b34d4b71c1b40c3322e5`,
|
||||||
|
현재 manifest SHA-256 `6433bf23af35f24031c6bbe784dd0abf9330f276da6b8705e47c7a1144a285b7`,
|
||||||
|
8 WAV 및 notice 해시를 모두 연결했다. **productOwnerReleaseApproval=true, humanListeningAcceptance=true,
|
||||||
|
legalPrivacyClearance=false**다. 자동 ASR 실패는 그대로이며 이 승인은 법적/privacy clearance가 아니다.
|
||||||
|
|
||||||
|
릴리스 계약은 **자동 empty-ASR 조건 OR 유효한 exact-byte 소유자 청취 승인**이다.
|
||||||
|
현재는 후자만 통과한다. `python3 scripts/release_approval.py`는 고정 전달 ZIP의 해시 및 현재 파일 전체의
|
||||||
|
바이트 동일성, 정확한 소유자/회신/시각/범위/flags를 검사한다. 잘못된 승인 기록은 자동 조건이 통과해도
|
||||||
|
거부하며, WAV/manifest/ZIP 변경·누락된 필드·법적 clearance 과장을 허용하지 않는다.
|
||||||
|
현재 검증 결과는 문서 마지막 표에 있으며 아래 ASR/이전 테스트 실패를 PASS로 바꾸지 않는다.
|
||||||
|
|
||||||
|
정규화 결함은 strict TDD로 수정했다. 전용 **FFmpeg `ebur128=peak=true`**가 릴리스 수용 계기이며,
|
||||||
|
8개 exact 최종 WAV 모두 **−32.5 LUFS**, spread **0.0 LU**, 최대 true peak **−6.2 dBTP**다.
|
||||||
|
독립 **pyloudnorm 0.2.0 / soundfile 0.13.1**도 **−32.6062~−32.5291 LUFS**, spread **0.0771547792 LU**로
|
||||||
|
목표 ±0.2 LU / spread≤0.4 LU를 통과했다. loudnorm input_i를 수용 계기로 사용하는 주장은 철회했다.
|
||||||
|
|
||||||
|
같은 faster-whisper/VAD 설정으로 새 바이트를 검사했을 때 **market 1개 segment**가 반환되었다.
|
||||||
|
**requiredEmptyPassed=false**로 자동 조건은 여전히 실패다. 승인 전 `npm test`의 **143 통과 / 1 실패**와
|
||||||
|
`requiredEmptyPassed=true`를 요구하던 원래 테스트 소스·실패 로그를 역사 진단으로 보존했다.
|
||||||
|
|
||||||
|
- exact market WAV SHA-256: `7178307c48c192ac396dcd3c880c377bf56b45e829b459b1feca9f986437e632`
|
||||||
|
- 보존한 원본 구간: 24–36초. ASR 반환 구간: **10.45–12.45초**. 반환 끝 시각도 수정하지 않았다.
|
||||||
|
- 후보 텍스트: ` Let's go, let's go, let's go.` (검증된 전사가 아님)
|
||||||
|
- mall/cafe 및 다른 5개는 segment 0개. market을 포함한 필수 3개 전부 empty 조건은 미충족.
|
||||||
|
- [실패 원문](evidence-v0.2.5/review-fixes/final-asr.json), [실행 로그](evidence-v0.2.5/review-fixes/08-asr.log),
|
||||||
|
[승인 전 unit 실패](evidence-v0.2.5/review-fixes/15-unit.log).
|
||||||
|
|
||||||
|
설정/threshold/모델/선택 구간을 바꾸거나 반환 segment를 삭제하지 않았다.
|
||||||
|
ASR 보고서의 `humanListeningAcceptance=false`, `legalPrivacyClearance=false`는 그대로다.
|
||||||
|
ASR 원문 SHA-256은 `98acdb16bc5dce57bb3609b705b63125e5511c2d5f7b26bdde54f4b7bd9a5e49`다.
|
||||||
|
소유자 청취 인수는 새 별도 승인 기록에서만 true다. 이전 Oz 승인은 당시 v0.2.3 exact WAV에 한정된다.
|
||||||
|
ASR의 후보 텍스트가 실제 발화를 입증한다고 주장하지 않는다.
|
||||||
|
|
||||||
|
## 거부된 역사와 불변 보존
|
||||||
|
|
||||||
|
독립 리뷰 결과를 적용했다. 이전 loudnorm input_i는 spread **0.01 LU**를 보고했지만 같은 WAV의
|
||||||
|
전용 FFmpeg ebur128은 **2.0 LU**, 별도 pyloudnorm 0.2.0은 **1.925 LU**였다. 당시 정규화 결과는
|
||||||
|
릴리스 조건 실패다. 계기 차이를 진단값으로만 분류하고 ebur128 equality assertion을 제거한 판단은 철회했다.
|
||||||
|
|
||||||
|
이전 [RESULT 사본](evidence-v0.2.5/review-fixes/rejected-RESULT-v0.2.5.md),
|
||||||
|
[당시 bundle](evidence-v0.2.5/review-fixes/rejected-loudnorm-bundle/),
|
||||||
|
[당시 정규화 계획](evidence-v0.2.5/review-fixes/rejected-AMBIENCE-NORMALIZATION-v0.2.5.json)을 별도 보관했다.
|
||||||
|
앞선 독립 리뷰 수정은 기존 `.agent/evidence-v0.2.5` **150개 파일**을 byte 동일하게 보존하고 `review-fixes/`에 추가했다.
|
||||||
|
이번 승인 작업은 이 `review-fixes/`까지 전부 보존하고 `release-approval/`에만 새 증거를 추가한다.
|
||||||
|
승인 직전 [RESULT 사본](evidence-v0.2.5/release-approval/before-RESULT-v0.2.5.md)과
|
||||||
|
[ACCEPTANCE 사본](evidence-v0.2.5/release-approval/before-ACCEPTANCE-v0.2.5.md)도 보관한다.
|
||||||
|
상위 evidence의 GREEN/완료 표시는 거부된 당시 기준의 역사이며 현재 릴리스 통과를 뜻하지 않는다.
|
||||||
|
|
||||||
|
기존 불변 파일 **660개**, voice WAV **101개**, source **8개**의 hash/bytes와 원본 선택 구간·creator·license·attribution을
|
||||||
|
보존했다. source plan hash는 `3529c8534be204208ac504a0f4c1a69b312131f9bbff92aa9a3135d61d24db65`다.
|
||||||
|
[history hash 목록](evidence-v0.2.5/review-fixes/history-sha256.json),
|
||||||
|
[보존 검증 결과](evidence-v0.2.5/review-fixes/preservation.json).
|
||||||
|
|
||||||
|
## 구현과 manifest
|
||||||
|
|
||||||
|
1. 불변 source plan으로 모든 원본 SHA-256/bytes를 먼저 검증한다. 기존 seek 및 짧은 Ogg의
|
||||||
|
full decode/sample trim fallback, 12초/24kHz/mono와 양끝 50ms 선형 fade를 보존한다.
|
||||||
|
2. 정확한 faded f32 PCM을 새 `ebur128=peak=true` 프로세스로 측정한다.
|
||||||
|
3. 모든 환경의 공통 target **−32.5 LUFS**에서 `gain_db=target−measured_i`를 구한다.
|
||||||
|
market의 입력 I=−26.4 LUFS, TP=−0.1 dBTP이므로 gain=−6.1 dB로 파형을 보존하며 내부 ceiling에 맞춘다.
|
||||||
|
4. 입력 true peak+gain이 **−6.2 dBTP**를 넘으면 변환 전에 실패한다.
|
||||||
|
**`volume=<gain_db>dB:precision=double`만 적용**하고 FFmpeg `pcm_s16le`로 인코딩한다.
|
||||||
|
5. staged WAV를 새 ebur128 프로세스로 측정한다. 오차가 ±0.2 LU 밖일 때만 같은 원본 PCM에서 스칼라를 보정한다.
|
||||||
|
매번 peak를 사전 검사하며 최대 총 3회다. 비수렴/NaN/측정 실패/내부 peak 초과는 공개를 차단한다.
|
||||||
|
6. staging의 8 WAV·manifest·notice 전체를 검증하고 새 ebur128 측정으로 bundle spread≤0.4 LU 및
|
||||||
|
각 파일 target±0.2 LU/TP≤−6 dBTP를 강제한 뒤 단일 `renameat2(RENAME_EXCHANGE)`로 원자 교환한다.
|
||||||
|
|
||||||
|
이번 8개는 모두 첫 시도에 통과하여 보정 반복은 필요하지 않았다. 모든 sample에 동일 scalar만 적용하고
|
||||||
|
PCM16 반올림 오차만 남는다는 실제 FFmpeg fixture 검사, corrective gain/비수렴/peak 초과 검사가 있다.
|
||||||
|
실패하면 기존 공개 디렉터리를 보존하는 검증/쓰기/교환/중단 테스트도 유지했다.
|
||||||
|
|
||||||
|
[manifest](../public/ambience/manifest.json)는 입력 ebur128 통계, faded PCM hash, 각 iteration의 정확한 gain/filter,
|
||||||
|
예측 peak/출력 통계, 최종 ebur128 통계, 목표/허용오차/spread/내부·릴리스 ceiling/최대 반복 수와
|
||||||
|
**FFmpeg 6.1.1-3ubuntu5** 버전을 기록한다. [정규화 계획](AMBIENCE-NORMALIZATION-v0.2.5.json)도 같은 계약이다.
|
||||||
|
12초, 288,000 frames, mono 24kHz PCM16, 576,044 bytes와 고유 hash/non-silence/양끝 0을 유지한다.
|
||||||
|
|
||||||
|
| 환경 | 원본 시작 초 | gain dB | 최종 ebur128 LUFS | 최종 dBTP |
|
||||||
|
| --- | --- | --- | --- | --- |
|
||||||
|
| street | 35 | +3.2 | −32.5 | −10.2 |
|
||||||
|
| mall | 36 | −10.4 | −32.5 | −12.2 |
|
||||||
|
| theater | 45 | −6.8 | −32.5 | −16.1 |
|
||||||
|
| department | 90 | −8.4 | −32.5 | −16.6 |
|
||||||
|
| market | 24 | −6.1 | −32.5 | −6.2 |
|
||||||
|
| subway | 65 | −16.0 | −32.5 | −16.2 |
|
||||||
|
| cafe | 0 | −13.0 | −32.5 | −18.2 |
|
||||||
|
| rain | 180 | +19.7 | −32.5 | −12.1 |
|
||||||
|
|
||||||
|
[독립 ebur128 script/hash/raw summary/결과](evidence-v0.2.5/review-fixes/ebur128-results.json),
|
||||||
|
[독립 pyloudnorm script/hash/version/결과](evidence-v0.2.5/review-fixes/pyloudnorm-results.json).
|
||||||
|
일반 npm test는 Python 표준 라이브러리와 FFmpeg만 사용하며 네트워크나 전역 pyloudnorm을 요구하지 않는다.
|
||||||
|
독립 meter는 별도 disposable venv에서 실행했다. 7개 의존성 전부 version/wheel SHA-256을 고정한
|
||||||
|
[lock과 재현 명령](evidence-v0.2.5/review-fixes/README.md#독립-pyloudnorm-재현)을 보존했다.
|
||||||
|
|
||||||
|
같은 원본에서 별도 임시 디렉터리로 두 번 재생성해 공개 WAV/notice/입력·iteration·최종 통계가 동일함을 확인했다.
|
||||||
|
manifest 생성 시각만 제외한다. [재현 결과](evidence-v0.2.5/review-fixes/reproducibility.json).
|
||||||
|
재현성 범위는 기록한 도구 빌드/플랫폼이며 다른 FFmpeg 빌드의 byte 동일성을 주장하지 않는다.
|
||||||
|
|
||||||
|
## 런타임과 검증
|
||||||
|
|
||||||
|
기존 고정 배경 gain **G=0.4198884518664126**을 변경하지 않았다. 환경·SNR·intro 유무와 무관하다.
|
||||||
|
voice/intro RMS .03, SNR은 voice 상대 gain만, master는 세 경로에 동일 적용한다.
|
||||||
|
보수적 상한 B=.55,V=.25,I=.20, SNR_MAX=12, intro=1.8, ceiling=.8을 유지한다.
|
||||||
|
|
||||||
|
```text
|
||||||
|
G = 0.8 / (0.55 + 0.25*10^(12/20) + 0.20*1.8)
|
||||||
|
|mix| ≤ master * G * (B + V*10^(12/20) + I*1.8) ≤ 0.8
|
||||||
|
```
|
||||||
|
|
||||||
|
101 voice×8 배경×25 SNR, **20,200개** 조합을 다시 검사했다. 새 background 최대 sample peak는
|
||||||
|
**0.471954345703125**, voice=0.2052977830171585, intro=0.14995422959327698이며,
|
||||||
|
실측 peak를 대입한 최악 합성 상계는 **0.6546804814413929 < .8**이다. 배경 gain 집합의 크기는 1이다.
|
||||||
|
[전수 runtime/doc 검사](evidence-v0.2.5/review-fixes/21-docs-runtime.log).
|
||||||
|
|
||||||
|
아래 표와 Chrome 수치는 **승인 전 독립 리뷰 수정 당시 기록**이다. 최신 검증은 다음 절에 별도로 기록한다.
|
||||||
|
|
||||||
|
| 검사 | 당시 결과 | 보존 증거 |
|
||||||
|
| --- | --- | --- |
|
||||||
|
| ebur128 TDD | RED 2.0 LU 실패 → GREEN | [01](evidence-v0.2.5/review-fixes/01-ebur128-RED.log), [06](evidence-v0.2.5/review-fixes/06-ebur128-GREEN.log) |
|
||||||
|
| 선형 gain/peak/비수렴 TDD | RED → 7 PASS | [02](evidence-v0.2.5/review-fixes/02-linear-RED.log), [04](evidence-v0.2.5/review-fixes/04-linear-GREEN.log) |
|
||||||
|
| ASR gate TDD | RED, 실제 재검사도 FAIL 유지 | [03](evidence-v0.2.5/review-fixes/03-asr-gate-RED.log), [08](evidence-v0.2.5/review-fixes/08-asr.log) |
|
||||||
|
| build manifest 계약 TDD | RED → 해당 39 PASS | [07](evidence-v0.2.5/review-fixes/07-build-contract-RED.log), [15](evidence-v0.2.5/review-fixes/15-unit.log) |
|
||||||
|
| `npm run lint` | PASS | [14](evidence-v0.2.5/review-fixes/14-lint.log) |
|
||||||
|
| `npm test` | **143 PASS / 1 FAIL (ASR)** | [15](evidence-v0.2.5/review-fixes/15-unit.log) |
|
||||||
|
| 전체 Python | **47 PASS** | [11](evidence-v0.2.5/review-fixes/11-python.log) |
|
||||||
|
| `npm run build` | PASS, 109 WAV 및 notice/manifest 일치 | [16](evidence-v0.2.5/review-fixes/16-build.log) |
|
||||||
|
| `npm audit --json` | 취약점 0개 | [audit](evidence-v0.2.5/review-fixes/npm-audit.json) |
|
||||||
|
| system Chrome desktop/mobile | **36 PASS**, skipped/flaky/unexpected=0 | [17](evidence-v0.2.5/review-fixes/17-browser.log), [summary](evidence-v0.2.5/review-fixes/browser-summary.json) |
|
||||||
|
| 문서 변경 후 관련 계약/runtime 재검사 | **12 PASS** | [21](evidence-v0.2.5/review-fixes/21-docs-runtime.log) |
|
||||||
|
| 불변 이력/원본/음성/public-dist | PASS | [20](evidence-v0.2.5/review-fixes/20-preservation.log) |
|
||||||
|
|
||||||
|
Chrome은 system executable의 sandbox를 켜서 실행했다. 실제 프로세스 인자에 `--no-sandbox`가 없음을
|
||||||
|
[기록](evidence-v0.2.5/review-fixes/chrome-sandbox-final.json)했다. desktop/mobile은 viewport/touch emulation이며
|
||||||
|
물리 모바일/Safari 인증은 아니다. 109 WAV의 24/44.1/48/96kHz decode/peak와 8환경×3 SNR의 native GainNode,
|
||||||
|
3문항·종료·재청취·오류 재시도·무결성·axe·네트워크를 검증했다. 정상 흐름 console/page 오류·실패 요청·외부 요청·axe 위반은 모두 0개다. 의도적인 404/변조 오류는 정상 흐름 통계와 구분한다.
|
||||||
|
각 프로젝트 436개 리샘플 측정에서 최대 background=0.4879775941371918, voice=0.20585650454525403,
|
||||||
|
intro=0.14999594059820148로 기존 보수적 상한 이하다. 두 프로젝트 모두 24개 GainNode 관측의
|
||||||
|
예약 gain은 0.4198884518664126, 실제 Float32 plateau는 0.4198884665966034로 동일하다.
|
||||||
|
|
||||||
|
앞선 작업은 당시 차단 상태로 문서를 기록했다. 이번 작업은 README/CHANGELOG/ARCHITECTURE/
|
||||||
|
AUDIO_PROVENANCE/DEPLOYMENT/RESULT/ACCEPTANCE를 새 소유자 승인 상태로 갱신한다.
|
||||||
|
제품/query 버전 0.2.5, 정확한 `Designed by OZ at Heat-T Medical Inc.`, 제3자 notice/market CC BY-SA 4.0,
|
||||||
|
정규화 계획·manifest·source/segment·loudness/gain 수학과 runtime 코드는 그대로다.
|
||||||
|
원래 TASK와 이전 릴리스 기록은 역사로 보존하며 이번 사용자 지시가 별도 소유자 승인 경로를 추가한다.
|
||||||
|
|
||||||
|
## exact 자산 승인 후 전체 검증
|
||||||
|
|
||||||
|
승인 기록이 없는 RED를 먼저 실행하고, 승인 기록 및 별도 OR gate를 추가했다.
|
||||||
|
원래 ASR 테스트의 전체 소스와 실제 FAIL 로그는 보존하고 현재 진단 테스트는 원문 SHA-256과 실패 상태를 고정한다.
|
||||||
|
승인 없이 현재 ASR만으로 통과할 수 없다. Python 변조 테스트는 WAV/manifest/ASR/승인 해시를 함께 고쳐도
|
||||||
|
고정된 전달 ZIP과 일치하지 않으면 거부됨을 검사한다. 자동 성공 fixture는 테스트 임시 사본에서만 사용했다.
|
||||||
|
|
||||||
|
| 검사 | 현재 결과 | 새 증거 |
|
||||||
|
| --- | --- | --- |
|
||||||
|
| 승인 기록 누락 TDD | RED → 승인 계약 GREEN | [01 RED](evidence-v0.2.5/release-approval/01-approval-absent-RED.log), [03 GREEN](evidence-v0.2.5/release-approval/03-contract-GREEN.log) |
|
||||||
|
| 원래 ASR true 요구 테스트 | **FAIL 유지, 역사 진단** | [원래 소스](evidence-v0.2.5/release-approval/before-ambience.test.ts.txt), [02 FAIL](evidence-v0.2.5/release-approval/02-original-ASR-FAIL.log) |
|
||||||
|
| 현재 릴리스 gate | **PASS: exact-byte-owner-listening-approval**, 자동 ASR false, 법적 clearance false | [gate JSON](evidence-v0.2.5/release-approval/release-gate.json) |
|
||||||
|
| 승인/해시/범위/법적 과장 변조 | **13 Python 테스트 + 필드별 subtest PASS** | [04](evidence-v0.2.5/release-approval/04-mutation-tests.log) |
|
||||||
|
| lint/typecheck | **PASS** | [06](evidence-v0.2.5/release-approval/06-lint.log) |
|
||||||
|
| 전체 unit/component/release | **146 PASS**, 16 files, 실패/skip 없음 | [07](evidence-v0.2.5/release-approval/07-unit.log) |
|
||||||
|
| 전체 Python | **60 PASS** | [08](evidence-v0.2.5/release-approval/08-python.log) |
|
||||||
|
| build | **PASS**, 101 voice + 8 ambience 및 notice/manifest | [05](evidence-v0.2.5/release-approval/05-build.log) |
|
||||||
|
| npm audit | **취약점 0개** | [audit](evidence-v0.2.5/release-approval/npm-audit.json) |
|
||||||
|
| 전체 sandboxed Chrome desktop/mobile | **36 PASS**, unexpected/skipped/flaky=0 | [09](evidence-v0.2.5/release-approval/09-browser.log), [summary](evidence-v0.2.5/release-approval/browser-summary.json) |
|
||||||
|
| 이전 evidence/원본/구간/음원/수학 보존 | **1,029개 원위치 불변 + 2개 상태 문서 원문 사본**, 원본 8개 일치, public 113개 dist 일치 | [보존 JSON](evidence-v0.2.5/release-approval/preservation.json) |
|
||||||
|
| secret scan | **발견 0개** | [scan](evidence-v0.2.5/release-approval/secret-scan.json) |
|
||||||
|
| git diff --check 및 새 파일 whitespace | **PASS** | [diff](evidence-v0.2.5/release-approval/12-diff-check.log), [new files](evidence-v0.2.5/release-approval/new-files-whitespace.json) |
|
||||||
|
|
||||||
|
Chrome **146.0.7680.80**, `chromiumSandbox=true`, 실제 browser **4개** 및 renderer **72개**를 관측했다.
|
||||||
|
`--no-sandbox`는 없으며 모든 관측 renderer의 **Seccomp=2 / NoNewPrivs=1**이다.
|
||||||
|
처음 수집기는 `/proc`의 전체 명령이 argv[0] 하나로 들어오는 형식을 오해하여 renderer 미관측으로
|
||||||
|
종료 코드 1을 냈다(Playwright 자체는 0, 36 PASS). [원래 수집기](evidence-v0.2.5/release-approval/run-browser-initial.py.txt)와
|
||||||
|
[원문 프로세스/초기 판정](evidence-v0.2.5/release-approval/chrome-process-observations.json)을 보존했다.
|
||||||
|
원문을 바꾸지 않고 정확한 flag 경계로 재분석했으며 분리/통합 argv 양쪽의 음성/양성 검사를 수행했다.
|
||||||
|
[교정한 sandbox 요약](evidence-v0.2.5/release-approval/chrome-sandbox.json)은 이 파서 교정 경위를 명시한다.
|
||||||
|
|
||||||
|
양쪽 프로젝트에서 109 WAV hash/decode, 436개 resampling 관측, 8환경×3 SNR native GainNode,
|
||||||
|
실제 loop 재생/중지와 전체 게임·접근성·오류 복구 흐름을 통과했다. 정상 흐름 오류/실패 요청/외부 요청은 0이며
|
||||||
|
axe 검사도 통과했다. 실제 gain은 기존 예약값 **0.4198884518664126**, Float32 관측값 **0.4198884665966034**다.
|
||||||
|
desktop/mobile은 viewport/touch emulation이고 production/물리 모바일 검증은 수행하지 않았다.
|
||||||
|
|
||||||
|
README, CHANGELOG, AUDIO_PROVENANCE, ARCHITECTURE, DEPLOYMENT 및 이 RESULT/ACCEPTANCE를 갱신했다.
|
||||||
|
검수 ZIP과 모든 이전 증거를 보존했으며 **commit/push/merge/tag/deploy는 실행하지 않았다**.
|
||||||
@@ -0,0 +1,39 @@
|
|||||||
|
# Find-Word v0.2.5 배경음 loudness 균일화 작업
|
||||||
|
|
||||||
|
## 기준
|
||||||
|
|
||||||
|
- canonical repository: `https://source.ibit.kr/OZ-Group/Find-Word`
|
||||||
|
- 기준 커밋: `812540c7438639f25b886cfd620201d92de15362`
|
||||||
|
- 작업 브랜치: `fix/v0.2.5-ambience-loudness`
|
||||||
|
- 제품 버전: `0.2.5`
|
||||||
|
- 배포 대상: `https://findword.heart-m.com/`
|
||||||
|
- 정확한 credit: `Designed by OZ at Heat-T Medical Inc.`
|
||||||
|
|
||||||
|
## 사용자 증상
|
||||||
|
|
||||||
|
대화 음성은 일정하지만 배경 소음은 선택한 현장음 파일에 따라 체감 크기가 다르다. 모든 배경음을 같은 체감 loudness로 맞춘다.
|
||||||
|
|
||||||
|
## 측정된 근본 원인
|
||||||
|
|
||||||
|
v0.2.3의 8개 WAV는 원본 추출 뒤 단순 RMS/peak 기준으로 처리되어 통합 loudness가 약 `−38.69~−22.20 LUFS`, **16.49 LU** 차이였다. 브라우저는 각 배경을 RMS 0.03으로 다시 정규화하지만 주파수 가중 loudness 차이는 남는다. 또한 `mixingGains`가 파일별 peak를 사용해 공통 gain을 계산하여 crest factor가 큰 market만 같은 SNR에서도 background RMS가 추가 감쇠됐다. 예를 들어 +6 dB에서 market은 약 0.021779 RMS, 다른 환경은 0.03이었다.
|
||||||
|
|
||||||
|
## 구현 계약
|
||||||
|
|
||||||
|
1. 8개 현장음의 source, license, selected segment는 v0.2.3과 동일하게 보존한다.
|
||||||
|
2. 생성 단계에서 FFmpeg EBU R128/loudnorm 기반의 재현 가능한 loudness normalization을 적용한다. 목표 integrated loudness, true-peak ceiling, 측정 알고리즘·도구 버전·pass 통계·최종 측정값을 계획/manifest/provenance에 기록한다.
|
||||||
|
3. 최종 8개 WAV의 integrated loudness 편차는 엄격한 허용오차 안에 들어야 하며 true peak, PCM, duration, fade, non-silence 계약을 함께 만족한다. 테스트는 manifest 자기보고가 아니라 실제 파일을 독립 측정한다.
|
||||||
|
4. runtime은 loudness-normalized 배경을 다시 파일별 RMS로 정규화하지 않는다. 목표 음성·intro 정규화는 유지한다.
|
||||||
|
5. 파일별 peak 차이가 background gain을 바꾸지 않게 한다. 검증된 background/voice/intro peak 상한과 허용 SNR 최대값에서 구한 보수적이고 **환경 독립적인 고정 headroom gain**을 사용한다. 같은 master volume과 SNR에서 모든 environment의 background gain 값은 동일해야 한다.
|
||||||
|
6. SNR slider는 목표 음성 gain만 상대적으로 바꾸며 background gain은 environment와 SNR 모두에서 일정하게 유지한다. 음량 master는 모든 경로에 동일하게 적용한다.
|
||||||
|
7. 변조·과도 peak·잘못된 자산은 fail closed한다. 8개 실제 현장음, 101개 voice, same-origin runtime, cache busting, atomic ambience publication, attribution/license를 보존한다.
|
||||||
|
8. 제품 버전과 audio/ambience asset query version을 `0.2.5`로 일관되게 갱신한다.
|
||||||
|
9. `CHANGELOG.md`의 v0.2.5 절에 원인, 알고리즘, 수치 계약, runtime 변경, 테스트, 배포 변경을 모두 기록한다.
|
||||||
|
10. 직접 변경하는 모듈·함수·클래스·핵심 변수/매개변수·비자명한 수학/오디오 로직에 상세 한국어 설계 주석을 쓴다.
|
||||||
|
|
||||||
|
## 개발 방식
|
||||||
|
|
||||||
|
- strict vertical-slice TDD: 실제 실패하는 loudness/runtime 계약을 먼저 기록한다.
|
||||||
|
- 기존 `.agent/evidence*`와 `RESULT*.md`는 수정하지 않는다.
|
||||||
|
- v0.2.5 결과는 `.agent/evidence-v0.2.5/`와 `.agent/RESULT-v0.2.5.md`에 별도로 저장한다.
|
||||||
|
- `/tmp/findword-ambience-sources`의 해시 고정 원본 8개를 사용한다.
|
||||||
|
- Codex는 commit/push/merge/tag/deploy를 하지 않는다. Neo가 독립 검증 뒤 수행한다.
|
||||||
@@ -0,0 +1,31 @@
|
|||||||
|
test_final_wavs_meet_fixed_loudness_and_true_peak (test_loudness_audio.FinalLoudness.test_final_wavs_meet_fixed_loudness_and_true_peak) ... ERROR
|
||||||
|
test_manifest_records_complete_passes_and_independent_final_metrics (test_loudness_audio.FinalLoudness.test_manifest_records_complete_passes_and_independent_final_metrics) ... ERROR
|
||||||
|
|
||||||
|
======================================================================
|
||||||
|
ERROR: test_final_wavs_meet_fixed_loudness_and_true_peak (test_loudness_audio.FinalLoudness.test_final_wavs_meet_fixed_loudness_and_true_peak)
|
||||||
|
----------------------------------------------------------------------
|
||||||
|
Traceback (most recent call last):
|
||||||
|
File "/home/hermes/worktrees/find-word-v0.2.5/tests/python/test_loudness_audio.py", line 35, in test_final_wavs_meet_fixed_loudness_and_true_peak
|
||||||
|
rows = {p.stem: independent_measure(p) for p in sorted((ROOT / "public/ambience").glob("*.wav"))}
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/home/hermes/worktrees/find-word-v0.2.5/tests/python/test_loudness_audio.py", line 35, in <dictcomp>
|
||||||
|
rows = {p.stem: independent_measure(p) for p in sorted((ROOT / "public/ambience").glob("*.wav"))}
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/home/hermes/worktrees/find-word-v0.2.5/tests/python/test_loudness_audio.py", line 26, in independent_measure
|
||||||
|
summary = result.stderr.rsplit("Summary:", 1)[1]
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^
|
||||||
|
IndexError: list index out of range
|
||||||
|
|
||||||
|
======================================================================
|
||||||
|
ERROR: test_manifest_records_complete_passes_and_independent_final_metrics (test_loudness_audio.FinalLoudness.test_manifest_records_complete_passes_and_independent_final_metrics)
|
||||||
|
----------------------------------------------------------------------
|
||||||
|
Traceback (most recent call last):
|
||||||
|
File "/home/hermes/worktrees/find-word-v0.2.5/tests/python/test_loudness_audio.py", line 50, in test_manifest_records_complete_passes_and_independent_final_metrics
|
||||||
|
self.assertEqual(manifest["normalization"]["targetIntegratedLUFS"], TARGET)
|
||||||
|
~~~~~~~~^^^^^^^^^^^^^^^^^
|
||||||
|
KeyError: 'normalization'
|
||||||
|
|
||||||
|
----------------------------------------------------------------------
|
||||||
|
Ran 2 tests in 0.311s
|
||||||
|
|
||||||
|
FAILED (errors=2)
|
||||||
@@ -0,0 +1,168 @@
|
|||||||
|
test_final_wavs_meet_fixed_loudness_and_true_peak (test_loudness_audio.FinalLoudness.test_final_wavs_meet_fixed_loudness_and_true_peak) ... {
|
||||||
|
"targetLUFS": -32.0,
|
||||||
|
"truePeakCeilingDBTP": -6.0,
|
||||||
|
"spreadLU": 16.49,
|
||||||
|
"files": {
|
||||||
|
"cafe": {
|
||||||
|
"input_i": -22.2,
|
||||||
|
"input_tp": -7.79,
|
||||||
|
"input_lra": 0.3,
|
||||||
|
"input_thresh": -32.2,
|
||||||
|
"ebur128_i": -22.1,
|
||||||
|
"ebur128_tp": -7.8
|
||||||
|
},
|
||||||
|
"department": {
|
||||||
|
"input_i": -22.22,
|
||||||
|
"input_tp": -6.4,
|
||||||
|
"input_lra": 3.7,
|
||||||
|
"input_thresh": -32.22,
|
||||||
|
"ebur128_i": -22.3,
|
||||||
|
"ebur128_tp": -6.4
|
||||||
|
},
|
||||||
|
"mall": {
|
||||||
|
"input_i": -22.65,
|
||||||
|
"input_tp": -2.33,
|
||||||
|
"input_lra": 1.4,
|
||||||
|
"input_thresh": -32.65,
|
||||||
|
"ebur128_i": -22.6,
|
||||||
|
"ebur128_tp": -2.3
|
||||||
|
},
|
||||||
|
"market": {
|
||||||
|
"input_i": -26.51,
|
||||||
|
"input_tp": -1.12,
|
||||||
|
"input_lra": 7.1,
|
||||||
|
"input_thresh": -36.53,
|
||||||
|
"ebur128_i": -27.3,
|
||||||
|
"ebur128_tp": -1.1
|
||||||
|
},
|
||||||
|
"rain": {
|
||||||
|
"input_i": -38.69,
|
||||||
|
"input_tp": -19.77,
|
||||||
|
"input_lra": 10.1,
|
||||||
|
"input_thresh": -48.69,
|
||||||
|
"ebur128_i": -40.1,
|
||||||
|
"ebur128_tp": -19.8
|
||||||
|
},
|
||||||
|
"street": {
|
||||||
|
"input_i": -30.54,
|
||||||
|
"input_tp": -8.02,
|
||||||
|
"input_lra": 3.9,
|
||||||
|
"input_thresh": -40.54,
|
||||||
|
"ebur128_i": -30.3,
|
||||||
|
"ebur128_tp": -8.0
|
||||||
|
},
|
||||||
|
"subway": {
|
||||||
|
"input_i": -24.14,
|
||||||
|
"input_tp": -7.42,
|
||||||
|
"input_lra": 4.8,
|
||||||
|
"input_thresh": -34.14,
|
||||||
|
"ebur128_i": -23.7,
|
||||||
|
"ebur128_tp": -7.4
|
||||||
|
},
|
||||||
|
"theater": {
|
||||||
|
"input_i": -22.66,
|
||||||
|
"input_tp": -6.1,
|
||||||
|
"input_lra": 1.0,
|
||||||
|
"input_thresh": -32.66,
|
||||||
|
"ebur128_i": -22.6,
|
||||||
|
"ebur128_tp": -6.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
test_final_wavs_meet_fixed_loudness_and_true_peak (test_loudness_audio.FinalLoudness.test_final_wavs_meet_fixed_loudness_and_true_peak) (environment='cafe') ... FAIL
|
||||||
|
test_final_wavs_meet_fixed_loudness_and_true_peak (test_loudness_audio.FinalLoudness.test_final_wavs_meet_fixed_loudness_and_true_peak) (environment='department') ... FAIL
|
||||||
|
test_final_wavs_meet_fixed_loudness_and_true_peak (test_loudness_audio.FinalLoudness.test_final_wavs_meet_fixed_loudness_and_true_peak) (environment='mall') ... FAIL
|
||||||
|
test_final_wavs_meet_fixed_loudness_and_true_peak (test_loudness_audio.FinalLoudness.test_final_wavs_meet_fixed_loudness_and_true_peak) (environment='market') ... FAIL
|
||||||
|
test_final_wavs_meet_fixed_loudness_and_true_peak (test_loudness_audio.FinalLoudness.test_final_wavs_meet_fixed_loudness_and_true_peak) (environment='rain') ... FAIL
|
||||||
|
test_final_wavs_meet_fixed_loudness_and_true_peak (test_loudness_audio.FinalLoudness.test_final_wavs_meet_fixed_loudness_and_true_peak) (environment='street') ... FAIL
|
||||||
|
test_final_wavs_meet_fixed_loudness_and_true_peak (test_loudness_audio.FinalLoudness.test_final_wavs_meet_fixed_loudness_and_true_peak) (environment='subway') ... FAIL
|
||||||
|
test_final_wavs_meet_fixed_loudness_and_true_peak (test_loudness_audio.FinalLoudness.test_final_wavs_meet_fixed_loudness_and_true_peak) (environment='theater') ... FAIL
|
||||||
|
test_final_wavs_meet_fixed_loudness_and_true_peak (test_loudness_audio.FinalLoudness.test_final_wavs_meet_fixed_loudness_and_true_peak) ... FAIL
|
||||||
|
test_manifest_records_complete_passes_and_independent_final_metrics (test_loudness_audio.FinalLoudness.test_manifest_records_complete_passes_and_independent_final_metrics) ... ERROR
|
||||||
|
|
||||||
|
======================================================================
|
||||||
|
ERROR: test_manifest_records_complete_passes_and_independent_final_metrics (test_loudness_audio.FinalLoudness.test_manifest_records_complete_passes_and_independent_final_metrics)
|
||||||
|
----------------------------------------------------------------------
|
||||||
|
Traceback (most recent call last):
|
||||||
|
File "/home/hermes/worktrees/find-word-v0.2.5/tests/python/test_loudness_audio.py", line 50, in test_manifest_records_complete_passes_and_independent_final_metrics
|
||||||
|
self.assertEqual(manifest["normalization"]["targetIntegratedLUFS"], TARGET)
|
||||||
|
~~~~~~~~^^^^^^^^^^^^^^^^^
|
||||||
|
KeyError: 'normalization'
|
||||||
|
|
||||||
|
======================================================================
|
||||||
|
FAIL: test_final_wavs_meet_fixed_loudness_and_true_peak (test_loudness_audio.FinalLoudness.test_final_wavs_meet_fixed_loudness_and_true_peak) (environment='cafe')
|
||||||
|
----------------------------------------------------------------------
|
||||||
|
Traceback (most recent call last):
|
||||||
|
File "/home/hermes/worktrees/find-word-v0.2.5/tests/python/test_loudness_audio.py", line 42, in test_final_wavs_meet_fixed_loudness_and_true_peak
|
||||||
|
self.assertLessEqual(abs(row["input_i"] - TARGET), 0.2)
|
||||||
|
AssertionError: 9.8 not less than or equal to 0.2
|
||||||
|
|
||||||
|
======================================================================
|
||||||
|
FAIL: test_final_wavs_meet_fixed_loudness_and_true_peak (test_loudness_audio.FinalLoudness.test_final_wavs_meet_fixed_loudness_and_true_peak) (environment='department')
|
||||||
|
----------------------------------------------------------------------
|
||||||
|
Traceback (most recent call last):
|
||||||
|
File "/home/hermes/worktrees/find-word-v0.2.5/tests/python/test_loudness_audio.py", line 42, in test_final_wavs_meet_fixed_loudness_and_true_peak
|
||||||
|
self.assertLessEqual(abs(row["input_i"] - TARGET), 0.2)
|
||||||
|
AssertionError: 9.780000000000001 not less than or equal to 0.2
|
||||||
|
|
||||||
|
======================================================================
|
||||||
|
FAIL: test_final_wavs_meet_fixed_loudness_and_true_peak (test_loudness_audio.FinalLoudness.test_final_wavs_meet_fixed_loudness_and_true_peak) (environment='mall')
|
||||||
|
----------------------------------------------------------------------
|
||||||
|
Traceback (most recent call last):
|
||||||
|
File "/home/hermes/worktrees/find-word-v0.2.5/tests/python/test_loudness_audio.py", line 42, in test_final_wavs_meet_fixed_loudness_and_true_peak
|
||||||
|
self.assertLessEqual(abs(row["input_i"] - TARGET), 0.2)
|
||||||
|
AssertionError: 9.350000000000001 not less than or equal to 0.2
|
||||||
|
|
||||||
|
======================================================================
|
||||||
|
FAIL: test_final_wavs_meet_fixed_loudness_and_true_peak (test_loudness_audio.FinalLoudness.test_final_wavs_meet_fixed_loudness_and_true_peak) (environment='market')
|
||||||
|
----------------------------------------------------------------------
|
||||||
|
Traceback (most recent call last):
|
||||||
|
File "/home/hermes/worktrees/find-word-v0.2.5/tests/python/test_loudness_audio.py", line 42, in test_final_wavs_meet_fixed_loudness_and_true_peak
|
||||||
|
self.assertLessEqual(abs(row["input_i"] - TARGET), 0.2)
|
||||||
|
AssertionError: 5.489999999999998 not less than or equal to 0.2
|
||||||
|
|
||||||
|
======================================================================
|
||||||
|
FAIL: test_final_wavs_meet_fixed_loudness_and_true_peak (test_loudness_audio.FinalLoudness.test_final_wavs_meet_fixed_loudness_and_true_peak) (environment='rain')
|
||||||
|
----------------------------------------------------------------------
|
||||||
|
Traceback (most recent call last):
|
||||||
|
File "/home/hermes/worktrees/find-word-v0.2.5/tests/python/test_loudness_audio.py", line 42, in test_final_wavs_meet_fixed_loudness_and_true_peak
|
||||||
|
self.assertLessEqual(abs(row["input_i"] - TARGET), 0.2)
|
||||||
|
AssertionError: 6.689999999999998 not less than or equal to 0.2
|
||||||
|
|
||||||
|
======================================================================
|
||||||
|
FAIL: test_final_wavs_meet_fixed_loudness_and_true_peak (test_loudness_audio.FinalLoudness.test_final_wavs_meet_fixed_loudness_and_true_peak) (environment='street')
|
||||||
|
----------------------------------------------------------------------
|
||||||
|
Traceback (most recent call last):
|
||||||
|
File "/home/hermes/worktrees/find-word-v0.2.5/tests/python/test_loudness_audio.py", line 42, in test_final_wavs_meet_fixed_loudness_and_true_peak
|
||||||
|
self.assertLessEqual(abs(row["input_i"] - TARGET), 0.2)
|
||||||
|
AssertionError: 1.4600000000000009 not less than or equal to 0.2
|
||||||
|
|
||||||
|
======================================================================
|
||||||
|
FAIL: test_final_wavs_meet_fixed_loudness_and_true_peak (test_loudness_audio.FinalLoudness.test_final_wavs_meet_fixed_loudness_and_true_peak) (environment='subway')
|
||||||
|
----------------------------------------------------------------------
|
||||||
|
Traceback (most recent call last):
|
||||||
|
File "/home/hermes/worktrees/find-word-v0.2.5/tests/python/test_loudness_audio.py", line 42, in test_final_wavs_meet_fixed_loudness_and_true_peak
|
||||||
|
self.assertLessEqual(abs(row["input_i"] - TARGET), 0.2)
|
||||||
|
AssertionError: 7.859999999999999 not less than or equal to 0.2
|
||||||
|
|
||||||
|
======================================================================
|
||||||
|
FAIL: test_final_wavs_meet_fixed_loudness_and_true_peak (test_loudness_audio.FinalLoudness.test_final_wavs_meet_fixed_loudness_and_true_peak) (environment='theater')
|
||||||
|
----------------------------------------------------------------------
|
||||||
|
Traceback (most recent call last):
|
||||||
|
File "/home/hermes/worktrees/find-word-v0.2.5/tests/python/test_loudness_audio.py", line 42, in test_final_wavs_meet_fixed_loudness_and_true_peak
|
||||||
|
self.assertLessEqual(abs(row["input_i"] - TARGET), 0.2)
|
||||||
|
AssertionError: 9.34 not less than or equal to 0.2
|
||||||
|
|
||||||
|
======================================================================
|
||||||
|
FAIL: test_final_wavs_meet_fixed_loudness_and_true_peak (test_loudness_audio.FinalLoudness.test_final_wavs_meet_fixed_loudness_and_true_peak)
|
||||||
|
----------------------------------------------------------------------
|
||||||
|
Traceback (most recent call last):
|
||||||
|
File "/home/hermes/worktrees/find-word-v0.2.5/tests/python/test_loudness_audio.py", line 46, in test_final_wavs_meet_fixed_loudness_and_true_peak
|
||||||
|
self.assertLessEqual(spread, 0.4 + 1e-9)
|
||||||
|
AssertionError: 16.49 not less than or equal to 0.40000000100000005
|
||||||
|
|
||||||
|
----------------------------------------------------------------------
|
||||||
|
Ran 2 tests in 2.827s
|
||||||
|
|
||||||
|
FAILED (failures=9, errors=1)
|
||||||
@@ -0,0 +1,51 @@
|
|||||||
|
test_real_loudness_measurement_failure_preserves_prior_directory (test_ambience_audio.AtomicPublication.test_real_loudness_measurement_failure_preserves_prior_directory)
|
||||||
|
최종 실측 FFmpeg만 실패시켜 원자 교환 전 실패 전파를 확인한다. ... FAIL
|
||||||
|
test_actual_target_or_true_peak_violation_preserves_prior_directory (test_ambience_audio.AtomicPublication.test_actual_target_or_true_peak_violation_preserves_prior_directory)
|
||||||
|
manifest가 정상이라고 주장해도 별도 실측 위반은 공개하지 않는다. ...
|
||||||
|
test_actual_target_or_true_peak_violation_preserves_prior_directory (test_ambience_audio.AtomicPublication.test_actual_target_or_true_peak_violation_preserves_prior_directory) (metric='input_i')
|
||||||
|
manifest가 정상이라고 주장해도 별도 실측 위반은 공개하지 않는다. ... FAIL
|
||||||
|
test_actual_target_or_true_peak_violation_preserves_prior_directory (test_ambience_audio.AtomicPublication.test_actual_target_or_true_peak_violation_preserves_prior_directory) (metric='input_tp')
|
||||||
|
manifest가 정상이라고 주장해도 별도 실측 위반은 공개하지 않는다. ... FAIL
|
||||||
|
test_actual_target_or_true_peak_violation_preserves_prior_directory (test_ambience_audio.AtomicPublication.test_actual_target_or_true_peak_violation_preserves_prior_directory) (metric='input_i')
|
||||||
|
manifest가 정상이라고 주장해도 별도 실측 위반은 공개하지 않는다. ... FAIL
|
||||||
|
|
||||||
|
======================================================================
|
||||||
|
FAIL: test_real_loudness_measurement_failure_preserves_prior_directory (test_ambience_audio.AtomicPublication.test_real_loudness_measurement_failure_preserves_prior_directory)
|
||||||
|
최종 실측 FFmpeg만 실패시켜 원자 교환 전 실패 전파를 확인한다.
|
||||||
|
----------------------------------------------------------------------
|
||||||
|
Traceback (most recent call last):
|
||||||
|
File "/home/hermes/worktrees/find-word-v0.2.5/tests/python/test_ambience_audio.py", line 299, in test_real_loudness_measurement_failure_preserves_prior_directory
|
||||||
|
with self.assertRaises(subprocess.CalledProcessError): self.run_generate()
|
||||||
|
AssertionError: CalledProcessError not raised
|
||||||
|
|
||||||
|
======================================================================
|
||||||
|
FAIL: test_actual_target_or_true_peak_violation_preserves_prior_directory (test_ambience_audio.AtomicPublication.test_actual_target_or_true_peak_violation_preserves_prior_directory) (metric='input_i')
|
||||||
|
manifest가 정상이라고 주장해도 별도 실측 위반은 공개하지 않는다.
|
||||||
|
----------------------------------------------------------------------
|
||||||
|
Traceback (most recent call last):
|
||||||
|
File "/home/hermes/worktrees/find-word-v0.2.5/tests/python/test_ambience_audio.py", line 313, in test_actual_target_or_true_peak_violation_preserves_prior_directory
|
||||||
|
with self.assertRaises(ValueError): self.run_generate()
|
||||||
|
AssertionError: ValueError not raised
|
||||||
|
|
||||||
|
======================================================================
|
||||||
|
FAIL: test_actual_target_or_true_peak_violation_preserves_prior_directory (test_ambience_audio.AtomicPublication.test_actual_target_or_true_peak_violation_preserves_prior_directory) (metric='input_tp')
|
||||||
|
manifest가 정상이라고 주장해도 별도 실측 위반은 공개하지 않는다.
|
||||||
|
----------------------------------------------------------------------
|
||||||
|
Traceback (most recent call last):
|
||||||
|
File "/home/hermes/worktrees/find-word-v0.2.5/tests/python/test_ambience_audio.py", line 313, in test_actual_target_or_true_peak_violation_preserves_prior_directory
|
||||||
|
with self.assertRaises(ValueError): self.run_generate()
|
||||||
|
AssertionError: ValueError not raised
|
||||||
|
|
||||||
|
======================================================================
|
||||||
|
FAIL: test_actual_target_or_true_peak_violation_preserves_prior_directory (test_ambience_audio.AtomicPublication.test_actual_target_or_true_peak_violation_preserves_prior_directory) (metric='input_i')
|
||||||
|
manifest가 정상이라고 주장해도 별도 실측 위반은 공개하지 않는다.
|
||||||
|
----------------------------------------------------------------------
|
||||||
|
Traceback (most recent call last):
|
||||||
|
File "/home/hermes/worktrees/find-word-v0.2.5/tests/python/test_ambience_audio.py", line 313, in test_actual_target_or_true_peak_violation_preserves_prior_directory
|
||||||
|
with self.assertRaises(ValueError): self.run_generate()
|
||||||
|
AssertionError: ValueError not raised
|
||||||
|
|
||||||
|
----------------------------------------------------------------------
|
||||||
|
Ran 2 tests in 1.325s
|
||||||
|
|
||||||
|
FAILED (failures=4)
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
{
|
||||||
|
"files": 8,
|
||||||
|
"bytes": 4608352
|
||||||
|
}
|
||||||
@@ -0,0 +1,52 @@
|
|||||||
|
test_convert_format_fade_normalization_and_reproducibility (test_ambience_audio.AmbienceConversion.test_convert_format_fade_normalization_and_reproducibility)
|
||||||
|
스테레오 48kHz 입력을 실제로 내려 섞고 길이·양끝·안전 피크를 확인한다. ... ERROR
|
||||||
|
test_short_input_seek_retries_full_decode_without_padding_or_truncating (test_ambience_audio.AmbienceConversion.test_short_input_seek_retries_full_decode_without_padding_or_truncating) ... ERROR
|
||||||
|
test_silence_fails_before_publishing (test_ambience_audio.AmbienceConversion.test_silence_fails_before_publishing)
|
||||||
|
무음을 정상 현장 녹음으로 포장하지 않는다. ... ok
|
||||||
|
test_actual_target_or_true_peak_violation_preserves_prior_directory (test_ambience_audio.AtomicPublication.test_actual_target_or_true_peak_violation_preserves_prior_directory)
|
||||||
|
manifest가 정상이라고 주장해도 별도 실측 위반은 공개하지 않는다. ... ok
|
||||||
|
test_all_eight_assets_validated_before_publication (test_ambience_audio.AtomicPublication.test_all_eight_assets_validated_before_publication) ... ok
|
||||||
|
test_atomic_success_removes_stale_files_and_stages_notice_on_same_filesystem (test_ambience_audio.AtomicPublication.test_atomic_success_removes_stale_files_and_stages_notice_on_same_filesystem) ... ok
|
||||||
|
test_conversion_cannot_override_approved_segment (test_ambience_audio.AtomicPublication.test_conversion_cannot_override_approved_segment) ... ok
|
||||||
|
test_conversion_failure_and_keyboard_interrupt_preserve_prior_directory (test_ambience_audio.AtomicPublication.test_conversion_failure_and_keyboard_interrupt_preserve_prior_directory) ... ok
|
||||||
|
test_exchange_failure_preserves_prior_directory (test_ambience_audio.AtomicPublication.test_exchange_failure_preserves_prior_directory) ... ok
|
||||||
|
test_first_publication_and_real_exchange (test_ambience_audio.AtomicPublication.test_first_publication_and_real_exchange) ... ok
|
||||||
|
test_manifest_and_notice_write_failures_preserve_prior_directory (test_ambience_audio.AtomicPublication.test_manifest_and_notice_write_failures_preserve_prior_directory) ... ok
|
||||||
|
test_plan_alone_controls_selection_and_is_preserved_in_manifest_and_notice (test_ambience_audio.AtomicPublication.test_plan_alone_controls_selection_and_is_preserved_in_manifest_and_notice) ... ok
|
||||||
|
test_readers_observe_whole_directory_during_real_exchange (test_ambience_audio.AtomicPublication.test_readers_observe_whole_directory_during_real_exchange) ... ok
|
||||||
|
test_real_loudness_measurement_failure_preserves_prior_directory (test_ambience_audio.AtomicPublication.test_real_loudness_measurement_failure_preserves_prior_directory)
|
||||||
|
최종 실측 FFmpeg만 실패시켜 원자 교환 전 실패 전파를 확인한다. ... ok
|
||||||
|
test_sigterm_before_commit_preserves_prior_directory (test_ambience_audio.AtomicPublication.test_sigterm_before_commit_preserves_prior_directory) ... ok
|
||||||
|
test_staged_manifest_notice_and_inventory_tampering_are_rejected (test_ambience_audio.AtomicPublication.test_staged_manifest_notice_and_inventory_tampering_are_rejected) ... ok
|
||||||
|
test_symlink_output_is_rejected_before_conversion (test_ambience_audio.AtomicPublication.test_symlink_output_is_rejected_before_conversion) ... ok
|
||||||
|
test_unsupported_atomic_exchange_preserves_prior_directory (test_ambience_audio.AtomicPublication.test_unsupported_atomic_exchange_preserves_prior_directory) ... ok
|
||||||
|
test_all_sources_checked_before_first_conversion (test_ambience_audio.SourceGuard.test_all_sources_checked_before_first_conversion) ... ok
|
||||||
|
test_invalid_segment_plan_fails_before_any_conversion_without_mutation (test_ambience_audio.SourceGuard.test_invalid_segment_plan_fails_before_any_conversion_without_mutation) ... ok
|
||||||
|
|
||||||
|
======================================================================
|
||||||
|
ERROR: test_convert_format_fade_normalization_and_reproducibility (test_ambience_audio.AmbienceConversion.test_convert_format_fade_normalization_and_reproducibility)
|
||||||
|
스테레오 48kHz 입력을 실제로 내려 섞고 길이·양끝·안전 피크를 확인한다.
|
||||||
|
----------------------------------------------------------------------
|
||||||
|
Traceback (most recent call last):
|
||||||
|
File "/home/hermes/worktrees/find-word-v0.2.5/tests/python/test_ambience_audio.py", line 25, in test_convert_format_fade_normalization_and_reproducibility
|
||||||
|
first = audio.convert(source, target, 1, 12)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/home/hermes/worktrees/find-word-v0.2.5/scripts/ambience_audio.py", line 144, in convert
|
||||||
|
raise ValueError("loudnorm 선형 정규화 불가; 원본 다이내믹 보존을 위해 공개 중단")
|
||||||
|
ValueError: loudnorm 선형 정규화 불가; 원본 다이내믹 보존을 위해 공개 중단
|
||||||
|
|
||||||
|
======================================================================
|
||||||
|
ERROR: test_short_input_seek_retries_full_decode_without_padding_or_truncating (test_ambience_audio.AmbienceConversion.test_short_input_seek_retries_full_decode_without_padding_or_truncating)
|
||||||
|
----------------------------------------------------------------------
|
||||||
|
Traceback (most recent call last):
|
||||||
|
File "/home/hermes/worktrees/find-word-v0.2.5/tests/python/test_ambience_audio.py", line 59, in test_short_input_seek_retries_full_decode_without_padding_or_truncating
|
||||||
|
expected = audio.convert(source, target, 1)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/home/hermes/worktrees/find-word-v0.2.5/scripts/ambience_audio.py", line 144, in convert
|
||||||
|
raise ValueError("loudnorm 선형 정규화 불가; 원본 다이내믹 보존을 위해 공개 중단")
|
||||||
|
ValueError: loudnorm 선형 정규화 불가; 원본 다이내믹 보존을 위해 공개 중단
|
||||||
|
|
||||||
|
----------------------------------------------------------------------
|
||||||
|
Ran 20 tests in 31.412s
|
||||||
|
|
||||||
|
FAILED (errors=2)
|
||||||
@@ -0,0 +1,78 @@
|
|||||||
|
test_final_wavs_meet_fixed_loudness_and_true_peak (test_loudness_audio.FinalLoudness.test_final_wavs_meet_fixed_loudness_and_true_peak) ... {
|
||||||
|
"targetLUFS": -32.0,
|
||||||
|
"truePeakCeilingDBTP": -6.0,
|
||||||
|
"spreadLU": 0.01,
|
||||||
|
"files": {
|
||||||
|
"cafe": {
|
||||||
|
"input_i": -32.0,
|
||||||
|
"input_tp": -17.59,
|
||||||
|
"input_lra": 0.3,
|
||||||
|
"input_thresh": -42.0,
|
||||||
|
"ebur128_i": -31.9,
|
||||||
|
"ebur128_tp": -17.6
|
||||||
|
},
|
||||||
|
"department": {
|
||||||
|
"input_i": -32.0,
|
||||||
|
"input_tp": -16.18,
|
||||||
|
"input_lra": 3.7,
|
||||||
|
"input_thresh": -42.0,
|
||||||
|
"ebur128_i": -32.1,
|
||||||
|
"ebur128_tp": -16.2
|
||||||
|
},
|
||||||
|
"mall": {
|
||||||
|
"input_i": -32.01,
|
||||||
|
"input_tp": -11.68,
|
||||||
|
"input_lra": 1.3,
|
||||||
|
"input_thresh": -42.01,
|
||||||
|
"ebur128_i": -32.0,
|
||||||
|
"ebur128_tp": -11.7
|
||||||
|
},
|
||||||
|
"market": {
|
||||||
|
"input_i": -32.01,
|
||||||
|
"input_tp": -6.62,
|
||||||
|
"input_lra": 7.1,
|
||||||
|
"input_thresh": -42.03,
|
||||||
|
"ebur128_i": -32.8,
|
||||||
|
"ebur128_tp": -6.6
|
||||||
|
},
|
||||||
|
"rain": {
|
||||||
|
"input_i": -32.01,
|
||||||
|
"input_tp": -13.09,
|
||||||
|
"input_lra": 10.1,
|
||||||
|
"input_thresh": -42.01,
|
||||||
|
"ebur128_i": -33.5,
|
||||||
|
"ebur128_tp": -13.1
|
||||||
|
},
|
||||||
|
"street": {
|
||||||
|
"input_i": -32.0,
|
||||||
|
"input_tp": -9.49,
|
||||||
|
"input_lra": 4.0,
|
||||||
|
"input_thresh": -42.0,
|
||||||
|
"ebur128_i": -31.8,
|
||||||
|
"ebur128_tp": -9.5
|
||||||
|
},
|
||||||
|
"subway": {
|
||||||
|
"input_i": -32.0,
|
||||||
|
"input_tp": -15.29,
|
||||||
|
"input_lra": 4.9,
|
||||||
|
"input_thresh": -42.0,
|
||||||
|
"ebur128_i": -31.5,
|
||||||
|
"ebur128_tp": -15.3
|
||||||
|
},
|
||||||
|
"theater": {
|
||||||
|
"input_i": -32.0,
|
||||||
|
"input_tp": -15.44,
|
||||||
|
"input_lra": 0.9,
|
||||||
|
"input_thresh": -42.0,
|
||||||
|
"ebur128_i": -31.9,
|
||||||
|
"ebur128_tp": -15.4
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
ok
|
||||||
|
test_manifest_records_complete_passes_and_independent_final_metrics (test_loudness_audio.FinalLoudness.test_manifest_records_complete_passes_and_independent_final_metrics) ... ok
|
||||||
|
|
||||||
|
----------------------------------------------------------------------
|
||||||
|
Ran 2 tests in 5.982s
|
||||||
|
|
||||||
|
OK
|
||||||
@@ -0,0 +1,40 @@
|
|||||||
|
|
||||||
|
RUN v5.0.4 /home/hermes/worktrees/find-word-v0.2.5
|
||||||
|
|
||||||
|
❯ tests/audio.test.ts (13 tests | 2 failed | 11 skipped) 5032ms
|
||||||
|
× 배경 PCM은 그대로 복사하고 voice/intro만 RMS .03을 유지한다 25ms
|
||||||
|
× 배경의 과도 peak·NaN·무음은 소스 시작 전 거부하고 다시 시도할 수 있다 5006ms
|
||||||
|
|
||||||
|
⎯⎯⎯⎯⎯⎯⎯ Failed Tests 2 ⎯⎯⎯⎯⎯⎯⎯
|
||||||
|
|
||||||
|
FAIL tests/audio.test.ts > 배경 PCM은 그대로 복사하고 voice/intro만 RMS .03을 유지한다
|
||||||
|
AssertionError: expected 0.03000000000094529 to be greater than 0.1
|
||||||
|
❯ tests/audio.test.ts:329:59
|
||||||
|
327| await flush();
|
||||||
|
328| const energy = (data: Float32Array) => Math.sqrt(data.reduce((sum, x…
|
||||||
|
329| expect(energy(f.sources[0]!.buffer!.getChannelData(0))).toBeGreaterT…
|
||||||
|
| ^
|
||||||
|
330| expect(energy(f.sources[1]!.buffer!.getChannelData(0))).toBeCloseTo(…
|
||||||
|
331| expect(energy(f.sources[2]!.buffer!.getChannelData(0))).toBeCloseTo(…
|
||||||
|
|
||||||
|
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[1/2]⎯
|
||||||
|
|
||||||
|
FAIL tests/audio.test.ts > 배경의 과도 peak·NaN·무음은 소스 시작 전 거부하고 다시 시도할 수 있다
|
||||||
|
Error: Test timed out in 5000ms.
|
||||||
|
If this is a long-running test, pass a timeout value as the last argument or configure it globally with "testTimeout".
|
||||||
|
❯ tests/audio.test.ts:337:1
|
||||||
|
335| });
|
||||||
|
336|
|
||||||
|
337| it("배경의 과도 peak·NaN·무음은 소스 시작 전 거부하고 다시 시도할 수 있다", async () => {
|
||||||
|
| ^
|
||||||
|
338| for (const sample of [0.9, NaN, 0]) {
|
||||||
|
339| const f = fixture();
|
||||||
|
|
||||||
|
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[2/2]⎯
|
||||||
|
|
||||||
|
|
||||||
|
Test Files 1 failed (1)
|
||||||
|
Tests 2 failed | 11 skipped (13)
|
||||||
|
Start at 10:21:04
|
||||||
|
Duration 5.91s (tests 87%, environment 10%, setup 2%, transform 1%)
|
||||||
|
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
|
||||||
|
RUN v5.0.4 /home/hermes/worktrees/find-word-v0.2.5
|
||||||
|
|
||||||
|
|
||||||
|
Test Files 3 passed (3)
|
||||||
|
Tests 20 passed (20)
|
||||||
|
Start at 10:22:14
|
||||||
|
Duration 5.55s (tests 69%, environment 22%, setup 6%, transform 3%, import 1%)
|
||||||
|
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
{
|
||||||
|
"files": 8,
|
||||||
|
"bytes": 4608352
|
||||||
|
}
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
|
||||||
|
RUN v5.0.4 /home/hermes/worktrees/find-word-v0.2.5
|
||||||
|
|
||||||
|
❯ tests/audio-integrity.test.ts (0 test)
|
||||||
|
|
||||||
|
⎯⎯⎯⎯⎯⎯ Failed Suites 1 ⎯⎯⎯⎯⎯⎯⎯
|
||||||
|
|
||||||
|
FAIL tests/audio-integrity.test.ts [ tests/audio-integrity.test.ts ]
|
||||||
|
Error: Cannot find module '../src/audio/integrity' imported from /home/hermes/worktrees/find-word-v0.2.5/tests/audio-integrity.test.ts
|
||||||
|
❯ tests/audio-integrity.test.ts:4:1
|
||||||
|
2| import { readFileSync } from "node:fs";
|
||||||
|
3| import { expect, it } from "vitest";
|
||||||
|
4| import { verifyAudioAsset } from "../src/audio/integrity";
|
||||||
|
| ^
|
||||||
|
5|
|
||||||
|
6| // 신뢰 기준은 JS 번들에 고정한 manifest다. 요청 파일이 자기 해시를 선언할 수 없다.
|
||||||
|
|
||||||
|
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[1/1]⎯
|
||||||
|
|
||||||
|
|
||||||
|
Test Files 1 failed (1)
|
||||||
|
Tests no tests
|
||||||
|
Start at 10:23:35
|
||||||
|
Duration 268ms (setup 89%, transform 7%, worker 4%)
|
||||||
|
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
|
||||||
|
RUN v5.0.4 /home/hermes/worktrees/find-word-v0.2.5
|
||||||
|
|
||||||
|
|
||||||
|
Test Files 4 passed (4)
|
||||||
|
Tests 22 passed (22)
|
||||||
|
Start at 10:24:21
|
||||||
|
Duration 5.77s (tests 75%, environment 15%, setup 6%, transform 3%, import 1%)
|
||||||
|
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
src/audio/assets.ts 70ms (unchanged)
|
||||||
|
src/audio/dsp.ts 39ms
|
||||||
|
src/audio/engine.ts 66ms
|
||||||
|
src/audio/integrity.ts 13ms
|
||||||
|
tests/mixing-loudness.test.ts 28ms
|
||||||
|
tests/audio-integrity.test.ts 8ms
|
||||||
|
tests/audio.test.ts 63ms
|
||||||
|
tests/dsp.test.ts 13ms
|
||||||
|
tests/browser/gains.spec.ts 33ms
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
|
||||||
|
> find-word@0.2.5 lint
|
||||||
|
> eslint . && tsc --noEmit
|
||||||
|
|
||||||
|
tests/browser/gains.spec.ts(36,35): error TS2683: 'this' implicitly has type 'any' because it does not have a type annotation.
|
||||||
|
tests/browser/gains.spec.ts(36,62): error TS2554: Expected 2-3 arguments, but got 4.
|
||||||
|
tests/browser/gains.spec.ts(37,17): error TS2683: 'this' implicitly has type 'any' because it does not have a type annotation.
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
test_convert_format_fade_normalization_and_reproducibility (test_ambience_audio.AmbienceConversion.test_convert_format_fade_normalization_and_reproducibility)
|
||||||
|
스테레오 48kHz 입력을 실제로 내려 섞고 길이·양끝·안전 피크를 확인한다. ... ok
|
||||||
|
test_short_input_seek_retries_full_decode_without_padding_or_truncating (test_ambience_audio.AmbienceConversion.test_short_input_seek_retries_full_decode_without_padding_or_truncating) ... ok
|
||||||
|
test_silence_fails_before_publishing (test_ambience_audio.AmbienceConversion.test_silence_fails_before_publishing)
|
||||||
|
무음을 정상 현장 녹음으로 포장하지 않는다. ... ok
|
||||||
|
|
||||||
|
----------------------------------------------------------------------
|
||||||
|
Ran 3 tests in 5.789s
|
||||||
|
|
||||||
|
OK
|
||||||
@@ -0,0 +1,33 @@
|
|||||||
|
|
||||||
|
RUN v5.0.4 /home/hermes/worktrees/find-word-v0.2.5
|
||||||
|
|
||||||
|
❯ tests/App.test.tsx (23 tests | 1 failed | 22 skipped) 802ms
|
||||||
|
❯ 시작부터 결과까지 사용자 흐름 (13)
|
||||||
|
× 다섯 난이도의 SNR과 음성·배경 크기 관계를 설명하고 결과에도 표시한다 799ms
|
||||||
|
|
||||||
|
⎯⎯⎯⎯⎯⎯⎯ Failed Tests 1 ⎯⎯⎯⎯⎯⎯⎯
|
||||||
|
|
||||||
|
FAIL tests/App.test.tsx > 시작부터 결과까지 사용자 흐름 > 다섯 난이도의 SNR과 음성·배경 크기 관계를 설명하고 결과에도 표시한다
|
||||||
|
FAIL tests/App.test.tsx > 시작부터 결과까지 사용자 흐름 > 다섯 난이도의 SNR과 음성·배경 크기 관계를 설명하고 결과에도 표시한다
|
||||||
|
FAIL tests/App.test.tsx > 시작부터 결과까지 사용자 흐름 > 다섯 난이도의 SNR과 음성·배경 크기 관계를 설명하고 결과에도 표시한다
|
||||||
|
Error: expect(received).toBeInTheDocument()
|
||||||
|
|
||||||
|
received value must be an HTMLElement or an SVGElement.
|
||||||
|
Received has type: Null
|
||||||
|
Received has value: null
|
||||||
|
❯ tests/App.test.tsx:128:10
|
||||||
|
126| expect
|
||||||
|
127| .soft(screen.queryByText(description, { exact: false }))
|
||||||
|
128| .toBeInTheDocument();
|
||||||
|
| ^
|
||||||
|
129| await f.user.click(
|
||||||
|
130| screen.getByRole("button", {
|
||||||
|
|
||||||
|
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[1/3]⎯
|
||||||
|
|
||||||
|
|
||||||
|
Test Files 1 failed (1)
|
||||||
|
Tests 1 failed | 22 skipped (23)
|
||||||
|
Start at 10:26:10
|
||||||
|
Duration 2.03s (tests 43%, environment 37%, transform 11%, setup 6%, import 4%)
|
||||||
|
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
src/App.tsx 219ms
|
||||||
|
src/content.ts 29ms (unchanged)
|
||||||
|
tests/ambience.test.ts 68ms
|
||||||
|
tests/browser/gains.spec.ts 32ms
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
|
||||||
|
> find-word@0.2.5 build
|
||||||
|
> tsc --noEmit && vite build && node scripts/check-build.mjs
|
||||||
|
|
||||||
|
vite v8.3.4 building client environment for production...
|
||||||
|
transforming...
|
||||||
|
✓ 24 modules transformed.
|
||||||
|
rendering chunks...
|
||||||
|
computing gzip size...
|
||||||
|
dist/index.html 1.31 kB │ gzip: 0.91 kB
|
||||||
|
dist/assets/index-CgXbHuMU.css 16.11 kB │ gzip: 4.53 kB
|
||||||
|
dist/assets/index-UAH83Dwf.js 296.33 kB │ gzip: 92.20 kB
|
||||||
|
|
||||||
|
✓ built in 186ms
|
||||||
|
빌드 음성 자산 101개 + 현장음 8개 및 런타임/현장음 notice 확인
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
{"environmentId": "street", "sha256": "1e12ed82c07550e22905b912a8f862ce10dfe884b5d36a928f7a04628665529d", "language": "en", "languageProbability": 0.3020564913749695, "segments": [], "text": ""}
|
||||||
|
{"environmentId": "mall", "sha256": "c1100129d5e05b5fa7a7545b44ebe5cff455576543a27f3c7cbb937fde6a7c69", "language": "en", "languageProbability": 0.3020564913749695, "segments": [], "text": ""}
|
||||||
|
{"environmentId": "theater", "sha256": "1fa8c57ce39013ff6bc4c0c4e8aff42f295781d27ba763b2990efe4727b4bd27", "language": "en", "languageProbability": 0.3020564913749695, "segments": [], "text": ""}
|
||||||
|
{"environmentId": "department", "sha256": "101683ffb99c666a36b42b92661fdc404f1e2eb114f52ad03dc971734fcab375", "language": "en", "languageProbability": 0.3020564913749695, "segments": [], "text": ""}
|
||||||
|
{"environmentId": "market", "sha256": "b85044f3f0a9717f8bc86152ccacaf9752d63f156e9044a6ab955b33caeebad8", "language": "nn", "languageProbability": 0.09586193412542343, "segments": [{"id": 1, "seek": 0, "start": 10.45, "end": 12.45, "text": " Let's go, let's go, let's go!", "tokens": [50364, 961, 311, 352, 11, 718, 311, 352, 11, 718, 311, 352, 0, 50464], "avg_logprob": -0.744892938931783, "compression_ratio": 1.3181818181818181, "no_speech_prob": 0.429909884929657, "words": null, "temperature": 0.0}], "text": " Let's go, let's go, let's go!"}
|
||||||
|
{"environmentId": "subway", "sha256": "c613d36d303194a2768da0a93156b2e5a4073460fe899bb2f42ba330521443fd", "language": "en", "languageProbability": 0.3020564913749695, "segments": [], "text": ""}
|
||||||
|
{"environmentId": "cafe", "sha256": "6a86d722d23c47d6f3512cf364de18287335b050ad72e639f9a83ba40b669016", "language": "en", "languageProbability": 0.3020564913749695, "segments": [], "text": ""}
|
||||||
|
{"environmentId": "rain", "sha256": "06d59315d23343fab9c5bd8fbbec044f797d7384480b7f70454b11b1676355ae", "language": "en", "languageProbability": 0.3020564913749695, "segments": [], "text": ""}
|
||||||
|
Required changed excerpts produced ASR segments; screening criterion failed.
|
||||||
@@ -0,0 +1,98 @@
|
|||||||
|
|
||||||
|
> find-word@0.2.5 test:browser
|
||||||
|
> playwright test --output=.agent/evidence-v0.2.5/browser-initial --reporter=line,json
|
||||||
|
|
||||||
|
[WebServer] (node:1540298) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
|
||||||
|
[WebServer] (Use `node --trace-warnings ...` to show where the warning was created)
|
||||||
|
|
||||||
|
|
||||||
|
Running 34 tests using 2 workers
|
||||||
|
|
||||||
|
(node:1540320) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
|
||||||
|
(Use `node --trace-warnings ...` to show where the warning was created)
|
||||||
|
|
||||||
|
|
||||||
|
(node:1540321) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
|
||||||
|
(Use `node --trace-warnings ...` to show where the warning was created)
|
||||||
|
|
||||||
|
|
||||||
|
[1/34] [desktop] › tests/browser/audio.spec.ts:7:1 › 음성·현장음 109개 versioned WAV를 실제 Chrome에서 해시·디코드 검증한다
|
||||||
|
[2/34] [desktop] › tests/browser/gains.spec.ts:74:1 › 실제 GainNode의 배경 배율은 8환경 × SNR 경계·0에서 동일하다
|
||||||
|
1) [desktop] › tests/browser/gains.spec.ts:74:1 › 실제 GainNode의 배경 배율은 8환경 × SNR 경계·0에서 동일하다 ──────
|
||||||
|
|
||||||
|
Error: expect(received).toBeCloseTo(expected, precision)
|
||||||
|
|
||||||
|
Expected: 0.4198884518664126
|
||||||
|
Received: 1
|
||||||
|
|
||||||
|
Expected precision: 6
|
||||||
|
Expected difference: < 0.0000005
|
||||||
|
Received difference: 0.5801115481335875
|
||||||
|
|
||||||
|
117 | expect(background!.duration).toBe(12);
|
||||||
|
118 | expect(background!.scheduled).toBe(FIXED_HEADROOM_GAIN);
|
||||||
|
> 119 | expect(background!.observed).toBeCloseTo(FIXED_HEADROOM_GAIN, 6);
|
||||||
|
| ^
|
||||||
|
120 | expect(voice!.scheduled / background!.scheduled).toBeCloseTo(
|
||||||
|
121 | 10 ** (db / 20),
|
||||||
|
122 | 10,
|
||||||
|
at /home/hermes/worktrees/find-word-v0.2.5/tests/browser/gains.spec.ts:119:36
|
||||||
|
|
||||||
|
Error Context: .agent/evidence-v0.2.5/browser-initial/gains-실제-GainNode의-배경-배율은-8환경-×-SNR-경계·0에서-동일하다-desktop/error-context.md
|
||||||
|
|
||||||
|
attachment #2: trace (application/zip) ─────────────────────────────────────────────────────────
|
||||||
|
.agent/evidence-v0.2.5/browser-initial/gains-실제-GainNode의-배경-배율은-8환경-×-SNR-경계·0에서-동일하다-desktop/trace.zip
|
||||||
|
Usage:
|
||||||
|
|
||||||
|
npx playwright show-trace .agent/evidence-v0.2.5/browser-initial/gains-실제-GainNode의-배경-배율은-8환경-×-SNR-경계·0에서-동일하다-desktop/trace.zip
|
||||||
|
|
||||||
|
────────────────────────────────────────────────────────────────────────────────────────────────
|
||||||
|
|
||||||
|
|
||||||
|
(node:1540578) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
|
||||||
|
(Use `node --trace-warnings ...` to show where the warning was created)
|
||||||
|
|
||||||
|
|
||||||
|
[3/34] [desktop] › tests/browser/gains.spec.ts:169:1 › 실제 WAV 변조는 소스 시작 전에 거부하고 원본 재시도로 회복한다
|
||||||
|
[4/34] [desktop] › tests/browser/game.spec.ts:8:1 › 실제 오디오로 혼합 모드 완주·레이아웃·접근성·외부 요청 없음
|
||||||
|
[5/34] [desktop] › tests/browser/game.spec.ts:130:3 › intro WAV query URL의 404를 표시하고 같은 URL로 재시도·정답 mapping한다
|
||||||
|
[6/34] [desktop] › tests/browser/game.spec.ts:130:3 › target WAV query URL의 404를 표시하고 같은 URL로 재시도·정답 mapping한다
|
||||||
|
[7/34] [desktop] › tests/browser/release.spec.ts:6:1 › 릴리스는 사용자 크레딧과 런타임 MIT notice 전문을 제공한다
|
||||||
|
[8/34] [desktop] › tests/browser/release.spec.ts:24:1 › 누락 음성·환경음은 query와 HTML accept에도 404이고 출처 고지는 번들된다
|
||||||
|
[9/34] [desktop] › tests/browser/review-fixes.spec.ts:27:1 › 리뷰: 한국어 모드·결과 어절은 320px와 360px에서도 갈라지거나 넘치지 않는다
|
||||||
|
[10/34] [desktop] › tests/browser/review-fixes.spec.ts:62:1 › 리뷰: 실제 진행 막대는 현재 문항의 1/3·2/3·3/3을 채운다
|
||||||
|
[11/34] [desktop] › tests/browser/rounds.spec.ts:35:1 › 시작 단계·SNR·3문항 완료→다음 단계·재생 중 종료·응답 후 종료·홈 초기화
|
||||||
|
[12/34] [desktop] › tests/browser/rounds.spec.ts:135:1 › 여덟 환경의 실제 WAV를 각각 디코드하고 루프 재생한 뒤 즉시 정지한다
|
||||||
|
[13/34] [desktop] › tests/browser/rounds.spec.ts:178:1 › 환경음 404는 한국어 오류와 재시도 후 정상 답변으로 복구한다
|
||||||
|
[14/34] [desktop] › tests/browser/ui.spec.ts:4:1 › 전체 음량은 설정 흐름 안에 들어가며 키보드로 조절된다
|
||||||
|
[15/34] [desktop] › tests/browser/ui.spec.ts:52:1 › 난이도 설명은 모바일에서도 보인다
|
||||||
|
[16/34] [desktop] › tests/browser/ui.spec.ts:68:1 › 한국어 제목은 단어 중간에서 줄바꿈하지 않는다
|
||||||
|
[17/34] [desktop] › tests/browser/ui.spec.ts:121:1 › 시작 단계와 SNR 설정은 카드 안에 들어가고 터치 영역을 확보한다
|
||||||
|
(node:1541947) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
|
||||||
|
(Use `node --trace-warnings ...` to show where the warning was created)
|
||||||
|
|
||||||
|
|
||||||
|
[18/34] [mobile] › tests/browser/audio.spec.ts:7:1 › 음성·현장음 109개 versioned WAV를 실제 Chrome에서 해시·디코드 검증한다
|
||||||
|
(node:1542476) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
|
||||||
|
(Use `node --trace-warnings ...` to show where the warning was created)
|
||||||
|
|
||||||
|
|
||||||
|
[19/34] [mobile] › tests/browser/gains.spec.ts:74:1 › 실제 GainNode의 배경 배율은 8환경 × SNR 경계·0에서 동일하다
|
||||||
|
[20/34] [mobile] › tests/browser/gains.spec.ts:169:1 › 실제 WAV 변조는 소스 시작 전에 거부하고 원본 재시도로 회복한다
|
||||||
|
[21/34] [mobile] › tests/browser/game.spec.ts:8:1 › 실제 오디오로 혼합 모드 완주·레이아웃·접근성·외부 요청 없음
|
||||||
|
[22/34] [mobile] › tests/browser/game.spec.ts:130:3 › intro WAV query URL의 404를 표시하고 같은 URL로 재시도·정답 mapping한다
|
||||||
|
[23/34] [mobile] › tests/browser/game.spec.ts:130:3 › target WAV query URL의 404를 표시하고 같은 URL로 재시도·정답 mapping한다
|
||||||
|
[24/34] [mobile] › tests/browser/release.spec.ts:6:1 › 릴리스는 사용자 크레딧과 런타임 MIT notice 전문을 제공한다
|
||||||
|
[25/34] [mobile] › tests/browser/release.spec.ts:24:1 › 누락 음성·환경음은 query와 HTML accept에도 404이고 출처 고지는 번들된다
|
||||||
|
[26/34] [mobile] › tests/browser/review-fixes.spec.ts:27:1 › 리뷰: 한국어 모드·결과 어절은 320px와 360px에서도 갈라지거나 넘치지 않는다
|
||||||
|
[27/34] [mobile] › tests/browser/review-fixes.spec.ts:62:1 › 리뷰: 실제 진행 막대는 현재 문항의 1/3·2/3·3/3을 채운다
|
||||||
|
[28/34] [mobile] › tests/browser/rounds.spec.ts:35:1 › 시작 단계·SNR·3문항 완료→다음 단계·재생 중 종료·응답 후 종료·홈 초기화
|
||||||
|
[29/34] [mobile] › tests/browser/rounds.spec.ts:135:1 › 여덟 환경의 실제 WAV를 각각 디코드하고 루프 재생한 뒤 즉시 정지한다
|
||||||
|
[30/34] [mobile] › tests/browser/rounds.spec.ts:178:1 › 환경음 404는 한국어 오류와 재시도 후 정상 답변으로 복구한다
|
||||||
|
[31/34] [mobile] › tests/browser/ui.spec.ts:4:1 › 전체 음량은 설정 흐름 안에 들어가며 키보드로 조절된다
|
||||||
|
[32/34] [mobile] › tests/browser/ui.spec.ts:52:1 › 난이도 설명은 모바일에서도 보인다
|
||||||
|
[33/34] [mobile] › tests/browser/ui.spec.ts:68:1 › 한국어 제목은 단어 중간에서 줄바꿈하지 않는다
|
||||||
|
[34/34] [mobile] › tests/browser/ui.spec.ts:121:1 › 시작 단계와 SNR 설정은 카드 안에 들어가고 터치 영역을 확보한다
|
||||||
|
1 failed
|
||||||
|
[desktop] › tests/browser/gains.spec.ts:74:1 › 실제 GainNode의 배경 배율은 8환경 × SNR 경계·0에서 동일하다 ───────
|
||||||
|
33 passed (4.3m)
|
||||||
@@ -0,0 +1,34 @@
|
|||||||
|
|
||||||
|
RUN v5.0.4 /home/hermes/worktrees/find-word-v0.2.5
|
||||||
|
|
||||||
|
❯ tests/build.test.ts (35 tests | 5 failed | 30 skipped) 3352ms
|
||||||
|
× 현장음 manifest 사본을 함께 바꿔도 승인 targetIntegratedLUFS 계약 위반을 거부한다 661ms
|
||||||
|
× 현장음 manifest 사본을 함께 바꿔도 승인 truePeakCeilingDBTP 계약 위반을 거부한다 626ms
|
||||||
|
× 현장음 manifest 사본을 함께 바꿔도 승인 finalLoudness 계약 위반을 거부한다 703ms
|
||||||
|
× 현장음 manifest 사본을 함께 바꿔도 승인 pass2Filter 계약 위반을 거부한다 813ms
|
||||||
|
× 현장음 manifest 사본을 함께 바꿔도 승인 version 계약 위반을 거부한다 547ms
|
||||||
|
|
||||||
|
⎯⎯⎯⎯⎯⎯⎯ Failed Tests 5 ⎯⎯⎯⎯⎯⎯⎯
|
||||||
|
|
||||||
|
FAIL tests/build.test.ts > 현장음 manifest 사본을 함께 바꿔도 승인 targetIntegratedLUFS 계약 위반을 거부한다
|
||||||
|
FAIL tests/build.test.ts > 현장음 manifest 사본을 함께 바꿔도 승인 truePeakCeilingDBTP 계약 위반을 거부한다
|
||||||
|
FAIL tests/build.test.ts > 현장음 manifest 사본을 함께 바꿔도 승인 finalLoudness 계약 위반을 거부한다
|
||||||
|
FAIL tests/build.test.ts > 현장음 manifest 사본을 함께 바꿔도 승인 pass2Filter 계약 위반을 거부한다
|
||||||
|
FAIL tests/build.test.ts > 현장음 manifest 사본을 함께 바꿔도 승인 version 계약 위반을 거부한다
|
||||||
|
AssertionError: expected [Function verify] to throw an error
|
||||||
|
❯ tests/build.test.ts:327:22
|
||||||
|
325| JSON.stringify(manifest),
|
||||||
|
326| );
|
||||||
|
327| expect(verify).toThrow();
|
||||||
|
| ^
|
||||||
|
328| } finally {
|
||||||
|
329| rmSync(temporary, { recursive: true, force: true });
|
||||||
|
|
||||||
|
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[1/5]⎯
|
||||||
|
|
||||||
|
|
||||||
|
Test Files 1 failed (1)
|
||||||
|
Tests 5 failed | 30 skipped (35)
|
||||||
|
Start at 10:30:43
|
||||||
|
Duration 3.84s (tests 93%, setup 4%, transform 3%)
|
||||||
|
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
scripts/check-build.mjs 278ms
|
||||||
|
tests/build.test.ts 255ms
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
|
||||||
|
RUN v5.0.4 /home/hermes/worktrees/find-word-v0.2.5
|
||||||
|
|
||||||
|
|
||||||
|
Test Files 4 passed (4)
|
||||||
|
Tests 69 passed (69)
|
||||||
|
Start at 10:31:32
|
||||||
|
Duration 42.50s (tests 93%, environment 3%, setup 2%, transform 1%)
|
||||||
|
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
PASS: all eight source hashes verified, two independent generations and published WAVs/pass metrics/notices match.
|
||||||
@@ -0,0 +1,55 @@
|
|||||||
|
|
||||||
|
RUN v5.0.4 /home/hermes/worktrees/find-word-v0.2.5
|
||||||
|
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"file": "cafe.wav",
|
||||||
|
"backgroundGain": 0.4198884518664126,
|
||||||
|
"finalRms": 0.01087210480748187
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "department.wav",
|
||||||
|
"backgroundGain": 0.4198884518664126,
|
||||||
|
"finalRms": 0.010889483784877002
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "mall.wav",
|
||||||
|
"backgroundGain": 0.4198884518664126,
|
||||||
|
"finalRms": 0.01144242842378468
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "market.wav",
|
||||||
|
"backgroundGain": 0.4198884518664126,
|
||||||
|
"finalRms": 0.009606899802162226
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "rain.wav",
|
||||||
|
"backgroundGain": 0.4198884518664126,
|
||||||
|
"finalRms": 0.01031321695987317
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "street.wav",
|
||||||
|
"backgroundGain": 0.4198884518664126,
|
||||||
|
"finalRms": 0.02838867853757971
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "subway.wav",
|
||||||
|
"backgroundGain": 0.4198884518664126,
|
||||||
|
"finalRms": 0.013582375978916386
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "theater.wav",
|
||||||
|
"backgroundGain": 0.4198884518664126,
|
||||||
|
"finalRms": 0.011467003332480628
|
||||||
|
}
|
||||||
|
]
|
||||||
|
{"combinations":20200,"maximum":0.6459797899491659,"voicePeak":0.2052977830171585,"backgroundPeak":0.45123291015625,"introPeak":0.14995422959327698,"bounds":{"background":0.55,"voice":0.25,"intro":0.2},"fixedGain":0.4198884518664126,"backgroundGains":[0.4198884518664126]}
|
||||||
|
✓ tests/mixing-loudness.test.ts > 같은 +6dB에서 여덟 배경의 gain은 파일 피크와 무관하다 368ms
|
||||||
|
✓ tests/mixing-loudness.test.ts > 101 voice × 8 배경 × 모든 SNR 눈금은 동일 배경 gain과 안전 피크를 가진다 4490ms
|
||||||
|
✓ tests/mixing-loudness.test.ts > SNR과 모든 경로의 peak 상한 위반은 fail closed한다 3ms
|
||||||
|
|
||||||
|
Test Files 1 passed (1)
|
||||||
|
Tests 3 passed (3)
|
||||||
|
Start at 10:32:41
|
||||||
|
Duration 5.14s (tests 97%, setup 2%, transform 1%)
|
||||||
|
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
tests/ambience.test.ts 211ms
|
||||||
|
tests/browser/resampling.spec.ts 33ms
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
|
||||||
|
> find-word@0.2.5 lint
|
||||||
|
> eslint . && tsc --noEmit
|
||||||
|
|
||||||
@@ -0,0 +1,529 @@
|
|||||||
|
test_convert_format_fade_normalization_and_reproducibility (test_ambience_audio.AmbienceConversion.test_convert_format_fade_normalization_and_reproducibility)
|
||||||
|
스테레오 48kHz 입력을 실제로 내려 섞고 길이·양끝·안전 피크를 확인한다. ... ok
|
||||||
|
test_short_input_seek_retries_full_decode_without_padding_or_truncating (test_ambience_audio.AmbienceConversion.test_short_input_seek_retries_full_decode_without_padding_or_truncating) ... ok
|
||||||
|
test_silence_fails_before_publishing (test_ambience_audio.AmbienceConversion.test_silence_fails_before_publishing)
|
||||||
|
무음을 정상 현장 녹음으로 포장하지 않는다. ... ok
|
||||||
|
test_actual_target_or_true_peak_violation_preserves_prior_directory (test_ambience_audio.AtomicPublication.test_actual_target_or_true_peak_violation_preserves_prior_directory)
|
||||||
|
manifest가 정상이라고 주장해도 별도 실측 위반은 공개하지 않는다. ... ok
|
||||||
|
test_all_eight_assets_validated_before_publication (test_ambience_audio.AtomicPublication.test_all_eight_assets_validated_before_publication) ... ok
|
||||||
|
test_atomic_success_removes_stale_files_and_stages_notice_on_same_filesystem (test_ambience_audio.AtomicPublication.test_atomic_success_removes_stale_files_and_stages_notice_on_same_filesystem) ... ok
|
||||||
|
test_conversion_cannot_override_approved_segment (test_ambience_audio.AtomicPublication.test_conversion_cannot_override_approved_segment) ... ok
|
||||||
|
test_conversion_failure_and_keyboard_interrupt_preserve_prior_directory (test_ambience_audio.AtomicPublication.test_conversion_failure_and_keyboard_interrupt_preserve_prior_directory) ... ok
|
||||||
|
test_exchange_failure_preserves_prior_directory (test_ambience_audio.AtomicPublication.test_exchange_failure_preserves_prior_directory) ... ok
|
||||||
|
test_first_publication_and_real_exchange (test_ambience_audio.AtomicPublication.test_first_publication_and_real_exchange) ... ok
|
||||||
|
test_manifest_and_notice_write_failures_preserve_prior_directory (test_ambience_audio.AtomicPublication.test_manifest_and_notice_write_failures_preserve_prior_directory) ... ok
|
||||||
|
test_plan_alone_controls_selection_and_is_preserved_in_manifest_and_notice (test_ambience_audio.AtomicPublication.test_plan_alone_controls_selection_and_is_preserved_in_manifest_and_notice) ... ok
|
||||||
|
test_readers_observe_whole_directory_during_real_exchange (test_ambience_audio.AtomicPublication.test_readers_observe_whole_directory_during_real_exchange) ... ok
|
||||||
|
test_real_loudness_measurement_failure_preserves_prior_directory (test_ambience_audio.AtomicPublication.test_real_loudness_measurement_failure_preserves_prior_directory)
|
||||||
|
최종 실측 FFmpeg만 실패시켜 원자 교환 전 실패 전파를 확인한다. ... ok
|
||||||
|
test_sigterm_before_commit_preserves_prior_directory (test_ambience_audio.AtomicPublication.test_sigterm_before_commit_preserves_prior_directory) ... ok
|
||||||
|
test_staged_manifest_notice_and_inventory_tampering_are_rejected (test_ambience_audio.AtomicPublication.test_staged_manifest_notice_and_inventory_tampering_are_rejected) ... ok
|
||||||
|
test_symlink_output_is_rejected_before_conversion (test_ambience_audio.AtomicPublication.test_symlink_output_is_rejected_before_conversion) ... ok
|
||||||
|
test_unsupported_atomic_exchange_preserves_prior_directory (test_ambience_audio.AtomicPublication.test_unsupported_atomic_exchange_preserves_prior_directory) ... ok
|
||||||
|
test_all_sources_checked_before_first_conversion (test_ambience_audio.SourceGuard.test_all_sources_checked_before_first_conversion) ... ok
|
||||||
|
test_invalid_segment_plan_fails_before_any_conversion_without_mutation (test_ambience_audio.SourceGuard.test_invalid_segment_plan_fails_before_any_conversion_without_mutation) ... ok
|
||||||
|
test_final_wavs_meet_fixed_loudness_and_true_peak (test_loudness_audio.FinalLoudness.test_final_wavs_meet_fixed_loudness_and_true_peak) ... {
|
||||||
|
"targetLUFS": -32.0,
|
||||||
|
"truePeakCeilingDBTP": -6.0,
|
||||||
|
"spreadLU": 0.01,
|
||||||
|
"files": {
|
||||||
|
"cafe": {
|
||||||
|
"input_i": -32.0,
|
||||||
|
"input_tp": -17.59,
|
||||||
|
"input_lra": 0.3,
|
||||||
|
"input_thresh": -42.0,
|
||||||
|
"ebur128_i": -31.9,
|
||||||
|
"ebur128_tp": -17.6
|
||||||
|
},
|
||||||
|
"department": {
|
||||||
|
"input_i": -32.0,
|
||||||
|
"input_tp": -16.18,
|
||||||
|
"input_lra": 3.7,
|
||||||
|
"input_thresh": -42.0,
|
||||||
|
"ebur128_i": -32.1,
|
||||||
|
"ebur128_tp": -16.2
|
||||||
|
},
|
||||||
|
"mall": {
|
||||||
|
"input_i": -32.01,
|
||||||
|
"input_tp": -11.68,
|
||||||
|
"input_lra": 1.3,
|
||||||
|
"input_thresh": -42.01,
|
||||||
|
"ebur128_i": -32.0,
|
||||||
|
"ebur128_tp": -11.7
|
||||||
|
},
|
||||||
|
"market": {
|
||||||
|
"input_i": -32.01,
|
||||||
|
"input_tp": -6.62,
|
||||||
|
"input_lra": 7.1,
|
||||||
|
"input_thresh": -42.03,
|
||||||
|
"ebur128_i": -32.8,
|
||||||
|
"ebur128_tp": -6.6
|
||||||
|
},
|
||||||
|
"rain": {
|
||||||
|
"input_i": -32.01,
|
||||||
|
"input_tp": -13.09,
|
||||||
|
"input_lra": 10.1,
|
||||||
|
"input_thresh": -42.01,
|
||||||
|
"ebur128_i": -33.5,
|
||||||
|
"ebur128_tp": -13.1
|
||||||
|
},
|
||||||
|
"street": {
|
||||||
|
"input_i": -32.0,
|
||||||
|
"input_tp": -9.49,
|
||||||
|
"input_lra": 4.0,
|
||||||
|
"input_thresh": -42.0,
|
||||||
|
"ebur128_i": -31.8,
|
||||||
|
"ebur128_tp": -9.5
|
||||||
|
},
|
||||||
|
"subway": {
|
||||||
|
"input_i": -32.0,
|
||||||
|
"input_tp": -15.29,
|
||||||
|
"input_lra": 4.9,
|
||||||
|
"input_thresh": -42.0,
|
||||||
|
"ebur128_i": -31.5,
|
||||||
|
"ebur128_tp": -15.3
|
||||||
|
},
|
||||||
|
"theater": {
|
||||||
|
"input_i": -32.0,
|
||||||
|
"input_tp": -15.44,
|
||||||
|
"input_lra": 0.9,
|
||||||
|
"input_thresh": -42.0,
|
||||||
|
"ebur128_i": -31.9,
|
||||||
|
"ebur128_tp": -15.4
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
ok
|
||||||
|
test_manifest_records_complete_passes_and_independent_final_metrics (test_loudness_audio.FinalLoudness.test_manifest_records_complete_passes_and_independent_final_metrics) ... ok
|
||||||
|
test_all_101_are_validated_before_single_atomic_publication (test_neural_audio.GeneratorContract.test_all_101_are_validated_before_single_atomic_publication) ... [001/101] intro.wav 1.000s
|
||||||
|
[002/101] target-0.wav 1.000s
|
||||||
|
[003/101] target-1.wav 1.000s
|
||||||
|
[004/101] target-2.wav 1.000s
|
||||||
|
[005/101] target-3.wav 1.000s
|
||||||
|
[006/101] target-4.wav 1.000s
|
||||||
|
[007/101] target-5.wav 1.000s
|
||||||
|
[008/101] target-6.wav 1.000s
|
||||||
|
[009/101] target-7.wav 1.000s
|
||||||
|
[010/101] target-8.wav 1.000s
|
||||||
|
[011/101] target-9.wav 1.000s
|
||||||
|
[012/101] target-10.wav 1.000s
|
||||||
|
[013/101] target-11.wav 1.000s
|
||||||
|
[014/101] target-12.wav 1.000s
|
||||||
|
[015/101] target-13.wav 1.000s
|
||||||
|
[016/101] target-14.wav 1.000s
|
||||||
|
[017/101] target-15.wav 1.000s
|
||||||
|
[018/101] target-16.wav 1.000s
|
||||||
|
[019/101] target-17.wav 1.000s
|
||||||
|
[020/101] target-18.wav 1.000s
|
||||||
|
[021/101] target-19.wav 1.000s
|
||||||
|
[022/101] target-20.wav 1.000s
|
||||||
|
[023/101] target-21.wav 1.000s
|
||||||
|
[024/101] target-22.wav 1.000s
|
||||||
|
[025/101] target-23.wav 1.000s
|
||||||
|
[026/101] target-24.wav 1.000s
|
||||||
|
[027/101] target-25.wav 1.000s
|
||||||
|
[028/101] target-26.wav 1.000s
|
||||||
|
[029/101] target-27.wav 1.000s
|
||||||
|
[030/101] target-28.wav 1.000s
|
||||||
|
[031/101] target-29.wav 1.000s
|
||||||
|
[032/101] target-30.wav 1.000s
|
||||||
|
[033/101] target-31.wav 1.000s
|
||||||
|
[034/101] target-32.wav 1.000s
|
||||||
|
[035/101] target-33.wav 1.000s
|
||||||
|
[036/101] target-34.wav 1.000s
|
||||||
|
[037/101] target-35.wav 1.000s
|
||||||
|
[038/101] target-36.wav 1.000s
|
||||||
|
[039/101] target-37.wav 1.000s
|
||||||
|
[040/101] target-38.wav 1.000s
|
||||||
|
[041/101] target-39.wav 1.000s
|
||||||
|
[042/101] target-40.wav 1.000s
|
||||||
|
[043/101] target-41.wav 1.000s
|
||||||
|
[044/101] target-42.wav 1.000s
|
||||||
|
[045/101] target-43.wav 1.000s
|
||||||
|
[046/101] target-44.wav 1.000s
|
||||||
|
[047/101] target-45.wav 1.000s
|
||||||
|
[048/101] target-46.wav 1.000s
|
||||||
|
[049/101] target-47.wav 1.000s
|
||||||
|
[050/101] target-48.wav 1.000s
|
||||||
|
[051/101] target-49.wav 1.000s
|
||||||
|
[052/101] target-50.wav 1.000s
|
||||||
|
[053/101] target-51.wav 1.000s
|
||||||
|
[054/101] target-52.wav 1.000s
|
||||||
|
[055/101] target-53.wav 1.000s
|
||||||
|
[056/101] target-54.wav 1.000s
|
||||||
|
[057/101] target-55.wav 1.000s
|
||||||
|
[058/101] target-56.wav 1.000s
|
||||||
|
[059/101] target-57.wav 1.000s
|
||||||
|
[060/101] target-58.wav 1.000s
|
||||||
|
[061/101] target-59.wav 1.000s
|
||||||
|
[062/101] target-60.wav 1.000s
|
||||||
|
[063/101] target-61.wav 1.000s
|
||||||
|
[064/101] target-62.wav 1.000s
|
||||||
|
[065/101] target-63.wav 1.000s
|
||||||
|
[066/101] target-64.wav 1.000s
|
||||||
|
[067/101] target-65.wav 1.000s
|
||||||
|
[068/101] target-66.wav 1.000s
|
||||||
|
[069/101] target-67.wav 1.000s
|
||||||
|
[070/101] target-68.wav 1.000s
|
||||||
|
[071/101] target-69.wav 1.000s
|
||||||
|
[072/101] target-70.wav 1.000s
|
||||||
|
[073/101] target-71.wav 1.000s
|
||||||
|
[074/101] target-72.wav 1.000s
|
||||||
|
[075/101] target-73.wav 1.000s
|
||||||
|
[076/101] target-74.wav 1.000s
|
||||||
|
[077/101] target-75.wav 1.000s
|
||||||
|
[078/101] target-76.wav 1.000s
|
||||||
|
[079/101] target-77.wav 1.000s
|
||||||
|
[080/101] target-78.wav 1.000s
|
||||||
|
[081/101] target-79.wav 1.000s
|
||||||
|
[082/101] target-80.wav 1.000s
|
||||||
|
[083/101] target-81.wav 1.000s
|
||||||
|
[084/101] target-82.wav 1.000s
|
||||||
|
[085/101] target-83.wav 1.000s
|
||||||
|
[086/101] target-84.wav 1.000s
|
||||||
|
[087/101] target-85.wav 1.000s
|
||||||
|
[088/101] target-86.wav 1.000s
|
||||||
|
[089/101] target-87.wav 1.000s
|
||||||
|
[090/101] target-88.wav 1.000s
|
||||||
|
[091/101] target-89.wav 1.000s
|
||||||
|
[092/101] target-90.wav 1.000s
|
||||||
|
[093/101] target-91.wav 1.000s
|
||||||
|
[094/101] target-92.wav 1.000s
|
||||||
|
[095/101] target-93.wav 1.000s
|
||||||
|
[096/101] target-94.wav 1.000s
|
||||||
|
[097/101] target-95.wav 1.000s
|
||||||
|
[098/101] target-96.wav 1.000s
|
||||||
|
[099/101] target-97.wav 1.000s
|
||||||
|
[100/101] target-98.wav 1.000s
|
||||||
|
[101/101] target-99.wav 1.000s
|
||||||
|
ok
|
||||||
|
test_atomic_exchange_keeps_old_tree_at_staging_path (test_neural_audio.GeneratorContract.test_atomic_exchange_keeps_old_tree_at_staging_path) ... ok
|
||||||
|
test_atomic_first_publication (test_neural_audio.GeneratorContract.test_atomic_first_publication) ... ok
|
||||||
|
test_cli_import_has_no_generation_or_filesystem_side_effects (test_neural_audio.GeneratorContract.test_cli_import_has_no_generation_or_filesystem_side_effects) ... ok
|
||||||
|
test_edge_adapter_uses_pinned_python_prosody_timeout_and_no_shell (test_neural_audio.GeneratorContract.test_edge_adapter_uses_pinned_python_prosody_timeout_and_no_shell) ... ok
|
||||||
|
test_exhausted_provider_failure_preserves_existing_files_and_redacts_secrets (test_neural_audio.GeneratorContract.test_exhausted_provider_failure_preserves_existing_files_and_redacts_secrets) ... ok
|
||||||
|
test_ffmpeg_adapter_actually_decodes_mp3_to_normalized_pcm24 (test_neural_audio.GeneratorContract.test_ffmpeg_adapter_actually_decodes_mp3_to_normalized_pcm24) ... ok
|
||||||
|
test_ffmpeg_failure_is_not_retried_and_preserves_existing_files (test_neural_audio.GeneratorContract.test_ffmpeg_failure_is_not_retried_and_preserves_existing_files) ... ok
|
||||||
|
test_full_validation_detects_changed_earlier_file_before_publication (test_neural_audio.GeneratorContract.test_full_validation_detects_changed_earlier_file_before_publication) ... [001/101] intro.wav 1.000s
|
||||||
|
[002/101] target-0.wav 1.000s
|
||||||
|
[003/101] target-1.wav 1.000s
|
||||||
|
[004/101] target-2.wav 1.000s
|
||||||
|
[005/101] target-3.wav 1.000s
|
||||||
|
[006/101] target-4.wav 1.000s
|
||||||
|
[007/101] target-5.wav 1.000s
|
||||||
|
[008/101] target-6.wav 1.000s
|
||||||
|
[009/101] target-7.wav 1.000s
|
||||||
|
[010/101] target-8.wav 1.000s
|
||||||
|
[011/101] target-9.wav 1.000s
|
||||||
|
[012/101] target-10.wav 1.000s
|
||||||
|
[013/101] target-11.wav 1.000s
|
||||||
|
[014/101] target-12.wav 1.000s
|
||||||
|
[015/101] target-13.wav 1.000s
|
||||||
|
[016/101] target-14.wav 1.000s
|
||||||
|
[017/101] target-15.wav 1.000s
|
||||||
|
[018/101] target-16.wav 1.000s
|
||||||
|
[019/101] target-17.wav 1.000s
|
||||||
|
[020/101] target-18.wav 1.000s
|
||||||
|
[021/101] target-19.wav 1.000s
|
||||||
|
[022/101] target-20.wav 1.000s
|
||||||
|
[023/101] target-21.wav 1.000s
|
||||||
|
[024/101] target-22.wav 1.000s
|
||||||
|
[025/101] target-23.wav 1.000s
|
||||||
|
[026/101] target-24.wav 1.000s
|
||||||
|
[027/101] target-25.wav 1.000s
|
||||||
|
[028/101] target-26.wav 1.000s
|
||||||
|
[029/101] target-27.wav 1.000s
|
||||||
|
[030/101] target-28.wav 1.000s
|
||||||
|
[031/101] target-29.wav 1.000s
|
||||||
|
[032/101] target-30.wav 1.000s
|
||||||
|
[033/101] target-31.wav 1.000s
|
||||||
|
[034/101] target-32.wav 1.000s
|
||||||
|
[035/101] target-33.wav 1.000s
|
||||||
|
[036/101] target-34.wav 1.000s
|
||||||
|
[037/101] target-35.wav 1.000s
|
||||||
|
[038/101] target-36.wav 1.000s
|
||||||
|
[039/101] target-37.wav 1.000s
|
||||||
|
[040/101] target-38.wav 1.000s
|
||||||
|
[041/101] target-39.wav 1.000s
|
||||||
|
[042/101] target-40.wav 1.000s
|
||||||
|
[043/101] target-41.wav 1.000s
|
||||||
|
[044/101] target-42.wav 1.000s
|
||||||
|
[045/101] target-43.wav 1.000s
|
||||||
|
[046/101] target-44.wav 1.000s
|
||||||
|
[047/101] target-45.wav 1.000s
|
||||||
|
[048/101] target-46.wav 1.000s
|
||||||
|
[049/101] target-47.wav 1.000s
|
||||||
|
[050/101] target-48.wav 1.000s
|
||||||
|
[051/101] target-49.wav 1.000s
|
||||||
|
[052/101] target-50.wav 1.000s
|
||||||
|
[053/101] target-51.wav 1.000s
|
||||||
|
[054/101] target-52.wav 1.000s
|
||||||
|
[055/101] target-53.wav 1.000s
|
||||||
|
[056/101] target-54.wav 1.000s
|
||||||
|
[057/101] target-55.wav 1.000s
|
||||||
|
[058/101] target-56.wav 1.000s
|
||||||
|
[059/101] target-57.wav 1.000s
|
||||||
|
[060/101] target-58.wav 1.000s
|
||||||
|
[061/101] target-59.wav 1.000s
|
||||||
|
[062/101] target-60.wav 1.000s
|
||||||
|
[063/101] target-61.wav 1.000s
|
||||||
|
[064/101] target-62.wav 1.000s
|
||||||
|
[065/101] target-63.wav 1.000s
|
||||||
|
[066/101] target-64.wav 1.000s
|
||||||
|
[067/101] target-65.wav 1.000s
|
||||||
|
[068/101] target-66.wav 1.000s
|
||||||
|
[069/101] target-67.wav 1.000s
|
||||||
|
[070/101] target-68.wav 1.000s
|
||||||
|
[071/101] target-69.wav 1.000s
|
||||||
|
[072/101] target-70.wav 1.000s
|
||||||
|
[073/101] target-71.wav 1.000s
|
||||||
|
[074/101] target-72.wav 1.000s
|
||||||
|
[075/101] target-73.wav 1.000s
|
||||||
|
[076/101] target-74.wav 1.000s
|
||||||
|
[077/101] target-75.wav 1.000s
|
||||||
|
[078/101] target-76.wav 1.000s
|
||||||
|
[079/101] target-77.wav 1.000s
|
||||||
|
[080/101] target-78.wav 1.000s
|
||||||
|
[081/101] target-79.wav 1.000s
|
||||||
|
[082/101] target-80.wav 1.000s
|
||||||
|
[083/101] target-81.wav 1.000s
|
||||||
|
[084/101] target-82.wav 1.000s
|
||||||
|
[085/101] target-83.wav 1.000s
|
||||||
|
[086/101] target-84.wav 1.000s
|
||||||
|
[087/101] target-85.wav 1.000s
|
||||||
|
[088/101] target-86.wav 1.000s
|
||||||
|
[089/101] target-87.wav 1.000s
|
||||||
|
[090/101] target-88.wav 1.000s
|
||||||
|
[091/101] target-89.wav 1.000s
|
||||||
|
[092/101] target-90.wav 1.000s
|
||||||
|
[093/101] target-91.wav 1.000s
|
||||||
|
[094/101] target-92.wav 1.000s
|
||||||
|
[095/101] target-93.wav 1.000s
|
||||||
|
[096/101] target-94.wav 1.000s
|
||||||
|
[097/101] target-95.wav 1.000s
|
||||||
|
[098/101] target-96.wav 1.000s
|
||||||
|
[099/101] target-97.wav 1.000s
|
||||||
|
[100/101] target-98.wav 1.000s
|
||||||
|
[101/101] target-99.wav 1.000s
|
||||||
|
ok
|
||||||
|
test_interruption_preserves_existing_files_and_cleans_temporary_data (test_neural_audio.GeneratorContract.test_interruption_preserves_existing_files_and_cleans_temporary_data) ... ok
|
||||||
|
test_invalid_pcm_never_reaches_publication (test_neural_audio.GeneratorContract.test_invalid_pcm_never_reaches_publication) ... ok
|
||||||
|
test_publication_failure_preserves_existing_files (test_neural_audio.GeneratorContract.test_publication_failure_preserves_existing_files) ... [001/101] intro.wav 1.000s
|
||||||
|
[002/101] target-0.wav 1.000s
|
||||||
|
[003/101] target-1.wav 1.000s
|
||||||
|
[004/101] target-2.wav 1.000s
|
||||||
|
[005/101] target-3.wav 1.000s
|
||||||
|
[006/101] target-4.wav 1.000s
|
||||||
|
[007/101] target-5.wav 1.000s
|
||||||
|
[008/101] target-6.wav 1.000s
|
||||||
|
[009/101] target-7.wav 1.000s
|
||||||
|
[010/101] target-8.wav 1.000s
|
||||||
|
[011/101] target-9.wav 1.000s
|
||||||
|
[012/101] target-10.wav 1.000s
|
||||||
|
[013/101] target-11.wav 1.000s
|
||||||
|
[014/101] target-12.wav 1.000s
|
||||||
|
[015/101] target-13.wav 1.000s
|
||||||
|
[016/101] target-14.wav 1.000s
|
||||||
|
[017/101] target-15.wav 1.000s
|
||||||
|
[018/101] target-16.wav 1.000s
|
||||||
|
[019/101] target-17.wav 1.000s
|
||||||
|
[020/101] target-18.wav 1.000s
|
||||||
|
[021/101] target-19.wav 1.000s
|
||||||
|
[022/101] target-20.wav 1.000s
|
||||||
|
[023/101] target-21.wav 1.000s
|
||||||
|
[024/101] target-22.wav 1.000s
|
||||||
|
[025/101] target-23.wav 1.000s
|
||||||
|
[026/101] target-24.wav 1.000s
|
||||||
|
[027/101] target-25.wav 1.000s
|
||||||
|
[028/101] target-26.wav 1.000s
|
||||||
|
[029/101] target-27.wav 1.000s
|
||||||
|
[030/101] target-28.wav 1.000s
|
||||||
|
[031/101] target-29.wav 1.000s
|
||||||
|
[032/101] target-30.wav 1.000s
|
||||||
|
[033/101] target-31.wav 1.000s
|
||||||
|
[034/101] target-32.wav 1.000s
|
||||||
|
[035/101] target-33.wav 1.000s
|
||||||
|
[036/101] target-34.wav 1.000s
|
||||||
|
[037/101] target-35.wav 1.000s
|
||||||
|
[038/101] target-36.wav 1.000s
|
||||||
|
[039/101] target-37.wav 1.000s
|
||||||
|
[040/101] target-38.wav 1.000s
|
||||||
|
[041/101] target-39.wav 1.000s
|
||||||
|
[042/101] target-40.wav 1.000s
|
||||||
|
[043/101] target-41.wav 1.000s
|
||||||
|
[044/101] target-42.wav 1.000s
|
||||||
|
[045/101] target-43.wav 1.000s
|
||||||
|
[046/101] target-44.wav 1.000s
|
||||||
|
[047/101] target-45.wav 1.000s
|
||||||
|
[048/101] target-46.wav 1.000s
|
||||||
|
[049/101] target-47.wav 1.000s
|
||||||
|
[050/101] target-48.wav 1.000s
|
||||||
|
[051/101] target-49.wav 1.000s
|
||||||
|
[052/101] target-50.wav 1.000s
|
||||||
|
[053/101] target-51.wav 1.000s
|
||||||
|
[054/101] target-52.wav 1.000s
|
||||||
|
[055/101] target-53.wav 1.000s
|
||||||
|
[056/101] target-54.wav 1.000s
|
||||||
|
[057/101] target-55.wav 1.000s
|
||||||
|
[058/101] target-56.wav 1.000s
|
||||||
|
[059/101] target-57.wav 1.000s
|
||||||
|
[060/101] target-58.wav 1.000s
|
||||||
|
[061/101] target-59.wav 1.000s
|
||||||
|
[062/101] target-60.wav 1.000s
|
||||||
|
[063/101] target-61.wav 1.000s
|
||||||
|
[064/101] target-62.wav 1.000s
|
||||||
|
[065/101] target-63.wav 1.000s
|
||||||
|
[066/101] target-64.wav 1.000s
|
||||||
|
[067/101] target-65.wav 1.000s
|
||||||
|
[068/101] target-66.wav 1.000s
|
||||||
|
[069/101] target-67.wav 1.000s
|
||||||
|
[070/101] target-68.wav 1.000s
|
||||||
|
[071/101] target-69.wav 1.000s
|
||||||
|
[072/101] target-70.wav 1.000s
|
||||||
|
[073/101] target-71.wav 1.000s
|
||||||
|
[074/101] target-72.wav 1.000s
|
||||||
|
[075/101] target-73.wav 1.000s
|
||||||
|
[076/101] target-74.wav 1.000s
|
||||||
|
[077/101] target-75.wav 1.000s
|
||||||
|
[078/101] target-76.wav 1.000s
|
||||||
|
[079/101] target-77.wav 1.000s
|
||||||
|
[080/101] target-78.wav 1.000s
|
||||||
|
[081/101] target-79.wav 1.000s
|
||||||
|
[082/101] target-80.wav 1.000s
|
||||||
|
[083/101] target-81.wav 1.000s
|
||||||
|
[084/101] target-82.wav 1.000s
|
||||||
|
[085/101] target-83.wav 1.000s
|
||||||
|
[086/101] target-84.wav 1.000s
|
||||||
|
[087/101] target-85.wav 1.000s
|
||||||
|
[088/101] target-86.wav 1.000s
|
||||||
|
[089/101] target-87.wav 1.000s
|
||||||
|
[090/101] target-88.wav 1.000s
|
||||||
|
[091/101] target-89.wav 1.000s
|
||||||
|
[092/101] target-90.wav 1.000s
|
||||||
|
[093/101] target-91.wav 1.000s
|
||||||
|
[094/101] target-92.wav 1.000s
|
||||||
|
[095/101] target-93.wav 1.000s
|
||||||
|
[096/101] target-94.wav 1.000s
|
||||||
|
[097/101] target-95.wav 1.000s
|
||||||
|
[098/101] target-96.wav 1.000s
|
||||||
|
[099/101] target-97.wav 1.000s
|
||||||
|
[100/101] target-98.wav 1.000s
|
||||||
|
[101/101] target-99.wav 1.000s
|
||||||
|
ok
|
||||||
|
test_rejects_incomplete_or_duplicate_or_unsafe_inventory_before_requests (test_neural_audio.GeneratorContract.test_rejects_incomplete_or_duplicate_or_unsafe_inventory_before_requests) ... ok
|
||||||
|
test_timeout_is_bounded_and_preserves_existing_files (test_neural_audio.GeneratorContract.test_timeout_is_bounded_and_preserves_existing_files) ... intro.wav: provider 시도 1/3 실패
|
||||||
|
intro.wav: provider 시도 2/3 실패
|
||||||
|
intro.wav: provider 시도 3/3 실패
|
||||||
|
ok
|
||||||
|
test_transient_provider_failures_retry_cleanly_with_bounded_backoff (test_neural_audio.GeneratorContract.test_transient_provider_failures_retry_cleanly_with_bounded_backoff) ... intro.wav: provider 시도 1/3 실패
|
||||||
|
intro.wav: provider 시도 2/3 실패
|
||||||
|
[001/101] intro.wav 1.000s
|
||||||
|
[002/101] target-0.wav 1.000s
|
||||||
|
[003/101] target-1.wav 1.000s
|
||||||
|
[004/101] target-2.wav 1.000s
|
||||||
|
[005/101] target-3.wav 1.000s
|
||||||
|
[006/101] target-4.wav 1.000s
|
||||||
|
[007/101] target-5.wav 1.000s
|
||||||
|
[008/101] target-6.wav 1.000s
|
||||||
|
[009/101] target-7.wav 1.000s
|
||||||
|
[010/101] target-8.wav 1.000s
|
||||||
|
[011/101] target-9.wav 1.000s
|
||||||
|
[012/101] target-10.wav 1.000s
|
||||||
|
[013/101] target-11.wav 1.000s
|
||||||
|
[014/101] target-12.wav 1.000s
|
||||||
|
[015/101] target-13.wav 1.000s
|
||||||
|
[016/101] target-14.wav 1.000s
|
||||||
|
[017/101] target-15.wav 1.000s
|
||||||
|
[018/101] target-16.wav 1.000s
|
||||||
|
[019/101] target-17.wav 1.000s
|
||||||
|
[020/101] target-18.wav 1.000s
|
||||||
|
[021/101] target-19.wav 1.000s
|
||||||
|
[022/101] target-20.wav 1.000s
|
||||||
|
[023/101] target-21.wav 1.000s
|
||||||
|
[024/101] target-22.wav 1.000s
|
||||||
|
[025/101] target-23.wav 1.000s
|
||||||
|
[026/101] target-24.wav 1.000s
|
||||||
|
[027/101] target-25.wav 1.000s
|
||||||
|
[028/101] target-26.wav 1.000s
|
||||||
|
[029/101] target-27.wav 1.000s
|
||||||
|
[030/101] target-28.wav 1.000s
|
||||||
|
[031/101] target-29.wav 1.000s
|
||||||
|
[032/101] target-30.wav 1.000s
|
||||||
|
[033/101] target-31.wav 1.000s
|
||||||
|
[034/101] target-32.wav 1.000s
|
||||||
|
[035/101] target-33.wav 1.000s
|
||||||
|
[036/101] target-34.wav 1.000s
|
||||||
|
[037/101] target-35.wav 1.000s
|
||||||
|
[038/101] target-36.wav 1.000s
|
||||||
|
[039/101] target-37.wav 1.000s
|
||||||
|
[040/101] target-38.wav 1.000s
|
||||||
|
[041/101] target-39.wav 1.000s
|
||||||
|
[042/101] target-40.wav 1.000s
|
||||||
|
[043/101] target-41.wav 1.000s
|
||||||
|
[044/101] target-42.wav 1.000s
|
||||||
|
[045/101] target-43.wav 1.000s
|
||||||
|
[046/101] target-44.wav 1.000s
|
||||||
|
[047/101] target-45.wav 1.000s
|
||||||
|
[048/101] target-46.wav 1.000s
|
||||||
|
[049/101] target-47.wav 1.000s
|
||||||
|
[050/101] target-48.wav 1.000s
|
||||||
|
[051/101] target-49.wav 1.000s
|
||||||
|
[052/101] target-50.wav 1.000s
|
||||||
|
[053/101] target-51.wav 1.000s
|
||||||
|
[054/101] target-52.wav 1.000s
|
||||||
|
[055/101] target-53.wav 1.000s
|
||||||
|
[056/101] target-54.wav 1.000s
|
||||||
|
[057/101] target-55.wav 1.000s
|
||||||
|
[058/101] target-56.wav 1.000s
|
||||||
|
[059/101] target-57.wav 1.000s
|
||||||
|
[060/101] target-58.wav 1.000s
|
||||||
|
[061/101] target-59.wav 1.000s
|
||||||
|
[062/101] target-60.wav 1.000s
|
||||||
|
[063/101] target-61.wav 1.000s
|
||||||
|
[064/101] target-62.wav 1.000s
|
||||||
|
[065/101] target-63.wav 1.000s
|
||||||
|
[066/101] target-64.wav 1.000s
|
||||||
|
[067/101] target-65.wav 1.000s
|
||||||
|
[068/101] target-66.wav 1.000s
|
||||||
|
[069/101] target-67.wav 1.000s
|
||||||
|
[070/101] target-68.wav 1.000s
|
||||||
|
[071/101] target-69.wav 1.000s
|
||||||
|
[072/101] target-70.wav 1.000s
|
||||||
|
[073/101] target-71.wav 1.000s
|
||||||
|
[074/101] target-72.wav 1.000s
|
||||||
|
[075/101] target-73.wav 1.000s
|
||||||
|
[076/101] target-74.wav 1.000s
|
||||||
|
[077/101] target-75.wav 1.000s
|
||||||
|
[078/101] target-76.wav 1.000s
|
||||||
|
[079/101] target-77.wav 1.000s
|
||||||
|
[080/101] target-78.wav 1.000s
|
||||||
|
[081/101] target-79.wav 1.000s
|
||||||
|
[082/101] target-80.wav 1.000s
|
||||||
|
[083/101] target-81.wav 1.000s
|
||||||
|
[084/101] target-82.wav 1.000s
|
||||||
|
[085/101] target-83.wav 1.000s
|
||||||
|
[086/101] target-84.wav 1.000s
|
||||||
|
[087/101] target-85.wav 1.000s
|
||||||
|
[088/101] target-86.wav 1.000s
|
||||||
|
[089/101] target-87.wav 1.000s
|
||||||
|
[090/101] target-88.wav 1.000s
|
||||||
|
[091/101] target-89.wav 1.000s
|
||||||
|
[092/101] target-90.wav 1.000s
|
||||||
|
[093/101] target-91.wav 1.000s
|
||||||
|
[094/101] target-92.wav 1.000s
|
||||||
|
[095/101] target-93.wav 1.000s
|
||||||
|
[096/101] target-94.wav 1.000s
|
||||||
|
[097/101] target-95.wav 1.000s
|
||||||
|
[098/101] target-96.wav 1.000s
|
||||||
|
[099/101] target-97.wav 1.000s
|
||||||
|
[100/101] target-98.wav 1.000s
|
||||||
|
[101/101] target-99.wav 1.000s
|
||||||
|
ok
|
||||||
|
test_wrong_edge_version_fails_before_network_or_asset_changes (test_neural_audio.GeneratorContract.test_wrong_edge_version_fails_before_network_or_asset_changes) ... ok
|
||||||
|
test_rejects_silence_clipping_bad_format_and_abnormal_duration (test_neural_audio.PCMContract.test_rejects_silence_clipping_bad_format_and_abnormal_duration) ... ok
|
||||||
|
test_valid_pcm_returns_measured_hash_bytes_duration_and_levels (test_neural_audio.PCMContract.test_valid_pcm_returns_measured_hash_bytes_duration_and_levels) ... ok
|
||||||
|
|
||||||
|
----------------------------------------------------------------------
|
||||||
|
Ran 40 tests in 64.954s
|
||||||
|
|
||||||
|
OK
|
||||||
@@ -0,0 +1,31 @@
|
|||||||
|
|
||||||
|
> find-word@0.2.5 test
|
||||||
|
> vitest run
|
||||||
|
|
||||||
|
|
||||||
|
RUN v5.0.4 /home/hermes/worktrees/find-word-v0.2.5
|
||||||
|
|
||||||
|
❯ tests/generator.test.ts (2 tests | 1 failed) 62735ms
|
||||||
|
× neural 생성기의 실패 보존·retry·PCM·비밀값 부재 계약 62654ms
|
||||||
|
|
||||||
|
⎯⎯⎯⎯⎯⎯⎯ Failed Tests 1 ⎯⎯⎯⎯⎯⎯⎯
|
||||||
|
|
||||||
|
FAIL tests/generator.test.ts > neural 생성기의 실패 보존·retry·PCM·비밀값 부재 계약
|
||||||
|
Error: Test timed out in 60000ms.
|
||||||
|
If this is a long-running test, pass a timeout value as the last argument or configure it globally with "testTimeout".
|
||||||
|
❯ tests/generator.test.ts:7:1
|
||||||
|
5| // Python 경계 테스트도 npm test에 포함한다. provider 호출은 fake이며 ffmpeg
|
||||||
|
6| // 변환과 Linux 원자 디렉터리 교체는 실제로 실행한다. 외부 네트워크는 쓰지 않는다.
|
||||||
|
7| it("neural 생성기의 실패 보존·retry·PCM·비밀값 부재 계약", () => {
|
||||||
|
| ^
|
||||||
|
8| const result = spawnSync(
|
||||||
|
9| "python3",
|
||||||
|
|
||||||
|
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[1/1]⎯
|
||||||
|
|
||||||
|
|
||||||
|
Test Files 1 failed | 14 passed (15)
|
||||||
|
Tests 1 failed | 138 passed (139)
|
||||||
|
Start at 10:33:44
|
||||||
|
Duration 65.31s (tests 91%, environment 5%, setup 2%)
|
||||||
|
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
tests/browser/gains.spec.ts 127ms
|
||||||
|
tests/generator.test.ts 12ms
|
||||||
|
src/audio/assets.ts 6ms (unchanged)
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
|
||||||
|
> find-word@0.2.5 lint
|
||||||
|
> eslint . && tsc --noEmit
|
||||||
|
|
||||||
@@ -0,0 +1,33 @@
|
|||||||
|
|
||||||
|
> find-word@0.2.5 test:browser
|
||||||
|
> playwright test tests/browser/gains.spec.ts tests/browser/resampling.spec.ts --output=.agent/evidence-v0.2.5/browser-gains-resample --reporter=line,json
|
||||||
|
|
||||||
|
[WebServer] (node:1547262) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
|
||||||
|
[WebServer] (Use `node --trace-warnings ...` to show where the warning was created)
|
||||||
|
|
||||||
|
|
||||||
|
Running 6 tests using 2 workers
|
||||||
|
|
||||||
|
(node:1547338) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
|
||||||
|
(Use `node --trace-warnings ...` to show where the warning was created)
|
||||||
|
|
||||||
|
|
||||||
|
(node:1547337) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
|
||||||
|
(Use `node --trace-warnings ...` to show where the warning was created)
|
||||||
|
|
||||||
|
|
||||||
|
[1/6] [desktop] › tests/browser/gains.spec.ts:185:1 › 실제 WAV 변조는 소스 시작 전에 거부하고 원본 재시도로 회복한다
|
||||||
|
[2/6] [desktop] › tests/browser/gains.spec.ts:87:1 › 실제 GainNode의 배경 배율은 8환경 × SNR 경계·0에서 동일하다
|
||||||
|
[3/6] [desktop] › tests/browser/resampling.spec.ts:7:1 › 109 WAV의 24·44.1·48·96kHz 디코드는 고정 peak 상한 안에 있다
|
||||||
|
(node:1548620) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
|
||||||
|
(Use `node --trace-warnings ...` to show where the warning was created)
|
||||||
|
|
||||||
|
|
||||||
|
[4/6] [mobile] › tests/browser/gains.spec.ts:87:1 › 실제 GainNode의 배경 배율은 8환경 × SNR 경계·0에서 동일하다
|
||||||
|
(node:1549247) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
|
||||||
|
(Use `node --trace-warnings ...` to show where the warning was created)
|
||||||
|
|
||||||
|
|
||||||
|
[5/6] [mobile] › tests/browser/gains.spec.ts:185:1 › 실제 WAV 변조는 소스 시작 전에 거부하고 원본 재시도로 회복한다
|
||||||
|
[6/6] [mobile] › tests/browser/resampling.spec.ts:7:1 › 109 WAV의 24·44.1·48·96kHz 디코드는 고정 peak 상한 안에 있다
|
||||||
|
6 passed (1.4m)
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
|
||||||
|
> find-word@0.2.5 test
|
||||||
|
> vitest run
|
||||||
|
|
||||||
|
|
||||||
|
RUN v5.0.4 /home/hermes/worktrees/find-word-v0.2.5
|
||||||
|
|
||||||
|
|
||||||
|
Test Files 15 passed (15)
|
||||||
|
Tests 139 passed (139)
|
||||||
|
Start at 10:35:37
|
||||||
|
Duration 85.02s (tests 92%, environment 5%, setup 2%)
|
||||||
|
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
{
|
||||||
|
"before": {
|
||||||
|
"minimumLUFS": -38.69,
|
||||||
|
"maximumLUFS": -22.2,
|
||||||
|
"spreadLU": 16.49,
|
||||||
|
"ebur128DiagnosticSpreadLU": 18.0
|
||||||
|
},
|
||||||
|
"after": {
|
||||||
|
"minimumLUFS": -32.01,
|
||||||
|
"maximumLUFS": -32.0,
|
||||||
|
"spreadLU": 0.01,
|
||||||
|
"ebur128DiagnosticSpreadLU": 2.0
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
|
||||||
|
> find-word@0.2.5 build
|
||||||
|
> tsc --noEmit && vite build && node scripts/check-build.mjs
|
||||||
|
|
||||||
|
vite v8.3.4 building client environment for production...
|
||||||
|
transforming...
|
||||||
|
✓ 24 modules transformed.
|
||||||
|
rendering chunks...
|
||||||
|
computing gzip size...
|
||||||
|
dist/index.html 1.31 kB │ gzip: 0.91 kB
|
||||||
|
dist/assets/index-CgXbHuMU.css 16.11 kB │ gzip: 4.53 kB
|
||||||
|
dist/assets/index-UAH83Dwf.js 296.33 kB │ gzip: 92.20 kB
|
||||||
|
|
||||||
|
✓ built in 195ms
|
||||||
|
빌드 음성 자산 101개 + 현장음 8개 및 런타임/현장음 notice 확인
|
||||||
@@ -0,0 +1,63 @@
|
|||||||
|
|
||||||
|
> find-word@0.2.5 test:browser
|
||||||
|
> playwright test --output=.agent/evidence-v0.2.5/browser-final --reporter=line,json
|
||||||
|
|
||||||
|
[WebServer] (node:1550565) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
|
||||||
|
[WebServer] (Use `node --trace-warnings ...` to show where the warning was created)
|
||||||
|
|
||||||
|
|
||||||
|
Running 36 tests using 2 workers
|
||||||
|
|
||||||
|
(node:1550587) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
|
||||||
|
(Use `node --trace-warnings ...` to show where the warning was created)
|
||||||
|
|
||||||
|
|
||||||
|
(node:1550588) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
|
||||||
|
(Use `node --trace-warnings ...` to show where the warning was created)
|
||||||
|
|
||||||
|
|
||||||
|
[1/36] [desktop] › tests/browser/audio.spec.ts:7:1 › 음성·현장음 109개 versioned WAV를 실제 Chrome에서 해시·디코드 검증한다
|
||||||
|
[2/36] [desktop] › tests/browser/gains.spec.ts:87:1 › 실제 GainNode의 배경 배율은 8환경 × SNR 경계·0에서 동일하다
|
||||||
|
[3/36] [desktop] › tests/browser/gains.spec.ts:185:1 › 실제 WAV 변조는 소스 시작 전에 거부하고 원본 재시도로 회복한다
|
||||||
|
[4/36] [desktop] › tests/browser/game.spec.ts:8:1 › 실제 오디오로 혼합 모드 완주·레이아웃·접근성·외부 요청 없음
|
||||||
|
[5/36] [desktop] › tests/browser/game.spec.ts:130:3 › intro WAV query URL의 404를 표시하고 같은 URL로 재시도·정답 mapping한다
|
||||||
|
[6/36] [desktop] › tests/browser/game.spec.ts:130:3 › target WAV query URL의 404를 표시하고 같은 URL로 재시도·정답 mapping한다
|
||||||
|
[7/36] [desktop] › tests/browser/release.spec.ts:6:1 › 릴리스는 사용자 크레딧과 런타임 MIT notice 전문을 제공한다
|
||||||
|
[8/36] [desktop] › tests/browser/release.spec.ts:24:1 › 누락 음성·환경음은 query와 HTML accept에도 404이고 출처 고지는 번들된다
|
||||||
|
[9/36] [desktop] › tests/browser/resampling.spec.ts:7:1 › 109 WAV의 24·44.1·48·96kHz 디코드는 고정 peak 상한 안에 있다
|
||||||
|
[10/36] [desktop] › tests/browser/review-fixes.spec.ts:27:1 › 리뷰: 한국어 모드·결과 어절은 320px와 360px에서도 갈라지거나 넘치지 않는다
|
||||||
|
[11/36] [desktop] › tests/browser/review-fixes.spec.ts:62:1 › 리뷰: 실제 진행 막대는 현재 문항의 1/3·2/3·3/3을 채운다
|
||||||
|
[12/36] [desktop] › tests/browser/rounds.spec.ts:35:1 › 시작 단계·SNR·3문항 완료→다음 단계·재생 중 종료·응답 후 종료·홈 초기화
|
||||||
|
[13/36] [desktop] › tests/browser/rounds.spec.ts:135:1 › 여덟 환경의 실제 WAV를 각각 디코드하고 루프 재생한 뒤 즉시 정지한다
|
||||||
|
[14/36] [desktop] › tests/browser/rounds.spec.ts:178:1 › 환경음 404는 한국어 오류와 재시도 후 정상 답변으로 복구한다
|
||||||
|
[15/36] [desktop] › tests/browser/ui.spec.ts:4:1 › 전체 음량은 설정 흐름 안에 들어가며 키보드로 조절된다
|
||||||
|
[16/36] [desktop] › tests/browser/ui.spec.ts:52:1 › 난이도 설명은 모바일에서도 보인다
|
||||||
|
[17/36] [desktop] › tests/browser/ui.spec.ts:68:1 › 한국어 제목은 단어 중간에서 줄바꿈하지 않는다
|
||||||
|
[18/36] [desktop] › tests/browser/ui.spec.ts:121:1 › 시작 단계와 SNR 설정은 카드 안에 들어가고 터치 영역을 확보한다
|
||||||
|
(node:1551353) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
|
||||||
|
(Use `node --trace-warnings ...` to show where the warning was created)
|
||||||
|
|
||||||
|
|
||||||
|
[19/36] [mobile] › tests/browser/audio.spec.ts:7:1 › 음성·현장음 109개 versioned WAV를 실제 Chrome에서 해시·디코드 검증한다
|
||||||
|
(node:1551507) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
|
||||||
|
(Use `node --trace-warnings ...` to show where the warning was created)
|
||||||
|
|
||||||
|
|
||||||
|
[20/36] [mobile] › tests/browser/gains.spec.ts:87:1 › 실제 GainNode의 배경 배율은 8환경 × SNR 경계·0에서 동일하다
|
||||||
|
[21/36] [mobile] › tests/browser/gains.spec.ts:185:1 › 실제 WAV 변조는 소스 시작 전에 거부하고 원본 재시도로 회복한다
|
||||||
|
[22/36] [mobile] › tests/browser/game.spec.ts:8:1 › 실제 오디오로 혼합 모드 완주·레이아웃·접근성·외부 요청 없음
|
||||||
|
[23/36] [mobile] › tests/browser/game.spec.ts:130:3 › intro WAV query URL의 404를 표시하고 같은 URL로 재시도·정답 mapping한다
|
||||||
|
[24/36] [mobile] › tests/browser/game.spec.ts:130:3 › target WAV query URL의 404를 표시하고 같은 URL로 재시도·정답 mapping한다
|
||||||
|
[25/36] [mobile] › tests/browser/release.spec.ts:6:1 › 릴리스는 사용자 크레딧과 런타임 MIT notice 전문을 제공한다
|
||||||
|
[26/36] [mobile] › tests/browser/release.spec.ts:24:1 › 누락 음성·환경음은 query와 HTML accept에도 404이고 출처 고지는 번들된다
|
||||||
|
[27/36] [mobile] › tests/browser/resampling.spec.ts:7:1 › 109 WAV의 24·44.1·48·96kHz 디코드는 고정 peak 상한 안에 있다
|
||||||
|
[28/36] [mobile] › tests/browser/review-fixes.spec.ts:27:1 › 리뷰: 한국어 모드·결과 어절은 320px와 360px에서도 갈라지거나 넘치지 않는다
|
||||||
|
[29/36] [mobile] › tests/browser/review-fixes.spec.ts:62:1 › 리뷰: 실제 진행 막대는 현재 문항의 1/3·2/3·3/3을 채운다
|
||||||
|
[30/36] [mobile] › tests/browser/rounds.spec.ts:35:1 › 시작 단계·SNR·3문항 완료→다음 단계·재생 중 종료·응답 후 종료·홈 초기화
|
||||||
|
[31/36] [mobile] › tests/browser/rounds.spec.ts:135:1 › 여덟 환경의 실제 WAV를 각각 디코드하고 루프 재생한 뒤 즉시 정지한다
|
||||||
|
[32/36] [mobile] › tests/browser/rounds.spec.ts:178:1 › 환경음 404는 한국어 오류와 재시도 후 정상 답변으로 복구한다
|
||||||
|
[33/36] [mobile] › tests/browser/ui.spec.ts:4:1 › 전체 음량은 설정 흐름 안에 들어가며 키보드로 조절된다
|
||||||
|
[34/36] [mobile] › tests/browser/ui.spec.ts:52:1 › 난이도 설명은 모바일에서도 보인다
|
||||||
|
[35/36] [mobile] › tests/browser/ui.spec.ts:68:1 › 한국어 제목은 단어 중간에서 줄바꿈하지 않는다
|
||||||
|
[36/36] [mobile] › tests/browser/ui.spec.ts:121:1 › 시작 단계와 SNR 설정은 카드 안에 들어가고 터치 영역을 확보한다
|
||||||
|
36 passed (4.9m)
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
{
|
||||||
|
"headUnchanged": true,
|
||||||
|
"head": "812540c7438639f25b886cfd620201d92de15362",
|
||||||
|
"priorAgentFilesUnchanged": 660,
|
||||||
|
"voiceWavsUnchanged": 101,
|
||||||
|
"allPublicBytesMatchDist": true,
|
||||||
|
"sourcePlanUnchanged": true,
|
||||||
|
"noCommitPushMergeTagDeploy": true
|
||||||
|
}
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
{
|
||||||
|
"method": "High-confidence credential signatures in git-tracked and unignored new text files; no environment/secret access",
|
||||||
|
"textFilesScanned": 643,
|
||||||
|
"findings": [],
|
||||||
|
"passed": true,
|
||||||
|
"limitation": "Pattern scan is not a proof that every possible secret format is absent."
|
||||||
|
}
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
$ python3 /home/hermes/worktrees/find-word-v0.2.5/.agent/evidence-v0.2.5/check-preservation.py
|
||||||
|
{
|
||||||
|
"headUnchanged": true,
|
||||||
|
"head": "812540c7438639f25b886cfd620201d92de15362",
|
||||||
|
"priorAgentFilesUnchanged": 660,
|
||||||
|
"voiceWavsUnchanged": 101,
|
||||||
|
"allPublicBytesMatchDist": true,
|
||||||
|
"sourcePlanUnchanged": true,
|
||||||
|
"noCommitPushMergeTagDeploy": true
|
||||||
|
}
|
||||||
|
EXIT 0
|
||||||
|
$ python3 /home/hermes/worktrees/find-word-v0.2.5/.agent/evidence-v0.2.5/secret-scan.py
|
||||||
|
{
|
||||||
|
"method": "High-confidence credential signatures in git-tracked and unignored new text files; no environment/secret access",
|
||||||
|
"textFilesScanned": 603,
|
||||||
|
"findings": [],
|
||||||
|
"passed": true,
|
||||||
|
"limitation": "Pattern scan is not a proof that every possible secret format is absent."
|
||||||
|
}
|
||||||
|
EXIT 0
|
||||||
|
$ git diff --check
|
||||||
|
EXIT 0
|
||||||
|
RESULT local evidence links: 51 resolved
|
||||||
@@ -0,0 +1,768 @@
|
|||||||
|
{
|
||||||
|
"commit": "812540c7438639f25b886cfd620201d92de15362",
|
||||||
|
"immutable": {
|
||||||
|
".agent/ACCEPTANCE-v0.1.1.md": "7e9d5aa5c608d3d86c0c30a51a8322713a2c5d072e57002ac5af9b63127c68a5",
|
||||||
|
".agent/ACCEPTANCE-v0.2.3.md": "4698a24cf492562c0f10b243c06a0ed2f930a9f0828f3ac08e0507d7a1cf7267",
|
||||||
|
".agent/ACCEPTANCE.md": "57598e4c5c37a658ce5fe366826983987178ed9c565355413ab3669c839eec78",
|
||||||
|
".agent/AMBIENCE-SOURCES-v0.2.3.json": "3529c8534be204208ac504a0f4c1a69b312131f9bbff92aa9a3135d61d24db65",
|
||||||
|
".agent/CONTEXT.md": "712bd056cfc8d0254d6c96e7a604d364779d3734d14899111792e7f343e6819b",
|
||||||
|
".agent/RESULT-v0.1.1.md": "d5d7077d4977d70a89086801dd8e7d5ae04e16a8e8009e41f3216008b743ac5b",
|
||||||
|
".agent/RESULT-v0.2.3.md": "389bc9b4bc4af59952d530d3d3d484387c12f9836d89cfd2131cf587c1f7d842",
|
||||||
|
".agent/RESULT.md": "eef6d73a67a8a7e90cd7b4747debc5976cc51571bc268328634413f698d0e311",
|
||||||
|
".agent/TASK-v0.1.1.md": "4e4a81c02cf16ae8a2a6b53da8501de512b6a6387d7d4eaf932833c63ada4aa7",
|
||||||
|
".agent/TASK-v0.2.3.md": "46ae8118506c756b97e29424e580843d0557c2f663f069e9ae71c04904fafb18",
|
||||||
|
".agent/TASK.md": "7e52739d5de3161aa60004ca8e65b5a5041d62c1b6a0e50c6c72ad8f6b183d61",
|
||||||
|
".agent/evidence-v0.1.1/00-audio-venv.log": "365f1b3cf48e7f6de9c24d28e4326a245d3a54eb329af4b41a9441ec546dabdc",
|
||||||
|
".agent/evidence-v0.1.1/00-npm-ci.log": "14a6e676c84fa9b2cc39a251aef0c593cda9903f9e5f2d9581bc4153c9f69e09",
|
||||||
|
".agent/evidence-v0.1.1/01-version-docs-red.log": "edb26b949d0dc28340989601e781df3582cf784220235d19c16a46aeee97d302",
|
||||||
|
".agent/evidence-v0.1.1/02-assets-red.log": "ccb8a354e2975c944fb2bde24492fe06a6c1b71add6ce65259d840c66836a1db",
|
||||||
|
".agent/evidence-v0.1.1/03-generator-red.log": "d78b7c9237c18ba8a87a77a116ea7561ae79af6e88718f9c087c1d8e2c70b1f1",
|
||||||
|
".agent/evidence-v0.1.1/04-generator-additional-red.log": "9a519598915fbdd98108ee1b364f634905e29a5a01bfdd7ffec22a8b359e9217",
|
||||||
|
".agent/evidence-v0.1.1/05-generator-green.log": "414464526a325b424e5c5305e3066b79c55527fb67b11a3b9eb3bb33dcecea93",
|
||||||
|
".agent/evidence-v0.1.1/06-audio-generate.log": "7b605184e89fd033378e6869236553a3d6e040087de23e8ae165f1e304f3b067",
|
||||||
|
".agent/evidence-v0.1.1/07-format.log": "ce1a102d13a7dfd78130216cea192e3230efa3612e999cb8a6bfd55e8eb6d471",
|
||||||
|
".agent/evidence-v0.1.1/08-version-docs-green.log": "671c2889a69c83ad24293d8e92d0076255bd00c5100c2a9eb764a570e1344edd",
|
||||||
|
".agent/evidence-v0.1.1/09-lint.log": "43d5238bc8e59b93cf3a9bc0f444f0165697b5584078973bd92efce056136c1e",
|
||||||
|
".agent/evidence-v0.1.1/10-audit.log": "6d8c5c8f3d7684adb070417bd608d01ae90aa3dc26a65af03ffda4955f38d9a3",
|
||||||
|
".agent/evidence-v0.1.1/11-full-test.log": "65721fcf2b03f153274c9cc1da13c6a1f265ab6f084be8b5921a898fbfd6b40b",
|
||||||
|
".agent/evidence-v0.1.1/12-independent-audio.log": "5ffd6173941d75deb028741cdba549705b652218f418c6d40ceb7f4b216f2d9d",
|
||||||
|
".agent/evidence-v0.1.1/13-build.log": "42ac41188359699f5f24c7f86de9d7ca6503d714a7be9e277ac2fd01be21614c",
|
||||||
|
".agent/evidence-v0.1.1/14-browser.log": "657ddc9f60ffa35684110766b2e459842cd1ab10a90b0002256a945f227a16b7",
|
||||||
|
".agent/evidence-v0.1.1/15-browser-audio.log": "cb16ec7009a88f911632d0bef64692066873d81372e65fea8dac800d59304214",
|
||||||
|
".agent/evidence-v0.1.1/16-final-lint.log": "43d5238bc8e59b93cf3a9bc0f444f0165697b5584078973bd92efce056136c1e",
|
||||||
|
".agent/evidence-v0.1.1/17-security-history.json": "5ba66683c3ae29e01f25cfae2ed832e33b07f866bfccd0e1d331a8f102d3d3c7",
|
||||||
|
".agent/evidence-v0.1.1/18-environment.log": "19a1da4298ba5a51f8dce5e6669205987bb48438e5c98f3ddcbc347ce0f91e46",
|
||||||
|
".agent/evidence-v0.1.1/19-final-integrity.json": "38f5af8927d95e9dae780decf146eb3d5feb610629202ef9ee67bf223647132f",
|
||||||
|
".agent/evidence-v0.1.1/audio-integrity.json": "d82b192602b1f054fce5f61479832666f237d7da2698afe84b09186dac90f321",
|
||||||
|
".agent/evidence-v0.1.1/baseline.json": "085be97acb81dcc83477ebc5f42dd2fd5729d9f5821cbc659df9c00b648ceb34",
|
||||||
|
".agent/evidence-v0.1.1/browser-audio-integrity.json": "2c0f59ed178285c0d338171328232351aab2b55e22371b3652453afa34849b65",
|
||||||
|
".agent/evidence-v0.1.1/cache-regression/00-baseline.json": "66afb3cfa4b4ba46b24d08d046066b27e7bf7d7af382f3776339b41d15b41f3c",
|
||||||
|
".agent/evidence-v0.1.1/cache-regression/01-unit-red.log": "cfbe949c8b24cb2b1c699a2d456529ac017caa1df2307b0c8d05f1dc4e7d22cf",
|
||||||
|
".agent/evidence-v0.1.1/cache-regression/02-build-before-fix.log": "2c2775dafb756ff1389b1c979c051b880929bf63b6286109c6ddc66d4ed75c6c",
|
||||||
|
".agent/evidence-v0.1.1/cache-regression/03-browser-red.log": "3af050a469281666912d91fc4c747b0135c636fbacc3094d8d823f96376509ed",
|
||||||
|
".agent/evidence-v0.1.1/cache-regression/04-red-state.json": "fd6eaad1aa47e8463bb020eb0de894a98871c4772ded56f370426c1903c20d3b",
|
||||||
|
".agent/evidence-v0.1.1/cache-regression/05-unit-green.log": "0ecd4924f62abbb6a619faf3cabc6bfa02c020e83cb37af79449ffce88486428",
|
||||||
|
".agent/evidence-v0.1.1/cache-regression/06-lint.log": "c85ee435a4f57d13173d4f4db27bdc9edbe6845a08d7d0b47de15c69ef715b71",
|
||||||
|
".agent/evidence-v0.1.1/cache-regression/07-full-test.log": "c8524e4c5e47a35a99d9cd2b23cf093e91d9fe1d557a78bfc7e4797fea659ba9",
|
||||||
|
".agent/evidence-v0.1.1/cache-regression/08-build.log": "e01eb47b14d5e14a49afe5cd750daa9cf86fd3ba389c6ece366e667efa1a282f",
|
||||||
|
".agent/evidence-v0.1.1/cache-regression/09-browser-green.log": "1f422035d506da11683299cd31a7cdf48284d285623e846f8f3785ab3412be9d",
|
||||||
|
".agent/evidence-v0.1.1/cache-regression/10-sandbox.log": "1ce93b0a638b60fd26d46a5f0fe2c124bc198d3e852ab4b6f94e9b3cf2f8cfb9",
|
||||||
|
".agent/evidence-v0.1.1/cache-regression/11-sandbox-green.log": "f75b42f1b7e8570d8fc3845c1837bdef0d8e4d8977c192df786e91ec5c15f5f7",
|
||||||
|
".agent/evidence-v0.1.1/cache-regression/12-cache-regression-result.log": "65e37c6d39f77f2ffb3765a6508a8469a69d1443b304fe3082474d041105a840",
|
||||||
|
".agent/evidence-v0.1.1/cache-regression/13-final-integrity.json": "60c8aa79c7c4d4a6cc42e71c6fc2e7af8f07473c69517da60481aa14b8d7cd0b",
|
||||||
|
".agent/evidence-v0.1.1/cache-regression/artifacts/desktop-browser-audio-integrity.json": "3aa78dfd8a3acb45a445306dae6d7517b16f32744b6f468e7e2a32a91a4ac9e0",
|
||||||
|
".agent/evidence-v0.1.1/cache-regression/artifacts/desktop-game.png": "d3ccf902a6865a781edd88da2df3ea5ae2cc30f79b32a574194a5e65c1b4bc10",
|
||||||
|
".agent/evidence-v0.1.1/cache-regression/artifacts/desktop-heading.png": "a21b7af15a73f66589df7dacff7ce7424177a735969a39afff92b90fd51278b5",
|
||||||
|
".agent/evidence-v0.1.1/cache-regression/artifacts/desktop-home.png": "cec5a0a94df0c6896cfe7cc89e49bb6ac0eddadae598833b19ed158958e96beb",
|
||||||
|
".agent/evidence-v0.1.1/cache-regression/artifacts/desktop-results.png": "fd3208180016a30b682d80cb73580aa3a9cf2d5a6f8f426958c409222adcf251",
|
||||||
|
".agent/evidence-v0.1.1/cache-regression/artifacts/mobile-browser-audio-integrity.json": "3aa78dfd8a3acb45a445306dae6d7517b16f32744b6f468e7e2a32a91a4ac9e0",
|
||||||
|
".agent/evidence-v0.1.1/cache-regression/artifacts/mobile-game.png": "c5d885f3cd8f51e3e0519459e3fd2bca801f2ac9703e15b11bb2d73628869e25",
|
||||||
|
".agent/evidence-v0.1.1/cache-regression/artifacts/mobile-heading.png": "4c8b1c4652dd3aff3703ee273695544d4948d39fa6b5c0b1df9313db47e1d537",
|
||||||
|
".agent/evidence-v0.1.1/cache-regression/artifacts/mobile-home.png": "6a5b776c6111929c20a4800904c160c6c983b442f9ec9f8395061e9142c20d64",
|
||||||
|
".agent/evidence-v0.1.1/cache-regression/artifacts/mobile-results.png": "a5bce60459ba2147fe080cba6666c1e39b6a97ade6f244a7b955f5371cb594e3",
|
||||||
|
".agent/evidence-v0.1.1/changed-files.txt": "4877f3d1003372868b5a9f72326ccf0870b22daf35a71b60b67dc761342fa50f",
|
||||||
|
".agent/evidence-v0.1.1/desktop-game.png": "02c59fa37c4d4f19e5c74e56fc889105b4d280a0a4cf2c14c1838947859a3a8b",
|
||||||
|
".agent/evidence-v0.1.1/desktop-heading.png": "920d3d998d93f463be9ac6a682c1f7d5d9ac36944b52b715345c865ae46f566d",
|
||||||
|
".agent/evidence-v0.1.1/desktop-home.png": "9c6f92b67db249b2a1d3e752052678d7ae0af6be426d976d12237d84c105bf76",
|
||||||
|
".agent/evidence-v0.1.1/desktop-results.png": "3811eae6f5827760499c9c64053a2cb2ecbb1d87ed2ddf11b757eb44e56c64bd",
|
||||||
|
".agent/evidence-v0.1.1/mobile-game.png": "bb0dec7ec2c99b55caafd729e2f9c9c01875e3b6dd577cc377a76bbfd5c95a7e",
|
||||||
|
".agent/evidence-v0.1.1/mobile-heading.png": "d61f2d1b01c654a5cfe841e49e244af4e232b5fc9c899e77523b336411e99316",
|
||||||
|
".agent/evidence-v0.1.1/mobile-home.png": "7c4a4643a5222f45c6492ebf78780a317e26d423bf244fc16ea24a186a76f506",
|
||||||
|
".agent/evidence-v0.1.1/mobile-results.png": "f2a095ab1d2a3a95a1a275b652fcd31275a5803a926e01b5fcd1e9a9e127cfb9",
|
||||||
|
".agent/evidence-v0.1.1/verify_audio.py": "7751c03b83dbbd3b222f6d5a68eb1d78dac2bbf82c0fd79345ccca86a15fcb69",
|
||||||
|
".agent/evidence-v0.1.1/verify_browser.mjs": "53f0f6317274a91017a4f508ef9237e022f7d333ef4243f324720f8d7f85abeb",
|
||||||
|
".agent/evidence-v0.2.3/01-round-GREEN.log": "80beec689bea21086449b7edc9c61414af289722584478463fdd5deac9cba39d",
|
||||||
|
".agent/evidence-v0.2.3/01-round-RED.log": "986a49e5522b1c7dbadf97e0c308af87de589d7a9524ec85c4ba891deb603d3f",
|
||||||
|
".agent/evidence-v0.2.3/01-round-sampling-regression.log": "e71f6e853a00941decac3df722369f3bba38f177b8d4ceb7be326522326604f5",
|
||||||
|
".agent/evidence-v0.2.3/02-snr-exit-GREEN.log": "6bbf48b3aef1b15de7576a8c4ee5608c382aa5cc92c95a844aca32d705208e23",
|
||||||
|
".agent/evidence-v0.2.3/02-snr-exit-RED.log": "ac7bc8813ca67a1413678e97c36d05e03bd1f3d9c99656671e3a81bac38c89ac",
|
||||||
|
".agent/evidence-v0.2.3/03-screen-GREEN.log": "39564011526efb4ff5a277774394d26ae8e8d241e233d53a950cd258ed26c001",
|
||||||
|
".agent/evidence-v0.2.3/03-screen-RED.log": "98e50844d757b9dee2426f93ed89ab6d158b30116212908fd098eda68f4b848b",
|
||||||
|
".agent/evidence-v0.2.3/03-screen-duplicate-description-RED.log": "186940b7e422c6096fdc3c3cf4280661a75d4f02d3b97e3015a070f5d8ff0323",
|
||||||
|
".agent/evidence-v0.2.3/04-recorded-mix-GREEN.log": "323468e46e58b9f51340f63ecc41fc0bfd9fcd4a9e91e409550d484c49ff6b6e",
|
||||||
|
".agent/evidence-v0.2.3/04-recorded-mix-RED.log": "b74bfd906276af2211ccbc8a6da10ebf86146fda613622c20e4a939ae45dd55f",
|
||||||
|
".agent/evidence-v0.2.3/05-playback-GREEN.log": "4d43b75d4671d9aaffaa5db4d32299260a440978a3699c92d384443ba4766bea",
|
||||||
|
".agent/evidence-v0.2.3/05-playback-RED.log": "02aa8f0a48af5b6f157451029963aa90664c5fedd89491e174e9b2d7bce1d159",
|
||||||
|
".agent/evidence-v0.2.3/05-playback-fixture-regression.log": "925f6be228ab0eb568c27d79fb1b477a8737cfd94be34d0f7d79d1d7e4989bfa",
|
||||||
|
".agent/evidence-v0.2.3/06-node-import-GREEN.log": "0bceb35eedea301af580ec093349973e9230d37921d5c4476587ee335e28554d",
|
||||||
|
".agent/evidence-v0.2.3/06-node-import-RED.log": "9b7ed2c611e2e36041f8a34e3295ad2ff506f0feb427e4a51978ce9efc252cf1",
|
||||||
|
".agent/evidence-v0.2.3/07-asset-conversion.log": "ce2e395db0bfce47953cd7c9ff3311a733376d8109941f7f04a919659f0d95f8",
|
||||||
|
".agent/evidence-v0.2.3/07-assets-GREEN.log": "f04418ee6b67f14c62e17c53027e7ea1bde58d38a7cdc54f0edee15e1643847e",
|
||||||
|
".agent/evidence-v0.2.3/07-assets-RED.log": "5c173b8b2c64b4c661cb58ab22788216b0d90799378a3fcf234087182f3b1d78",
|
||||||
|
".agent/evidence-v0.2.3/07-converter-GREEN.log": "53a049e86064db709a80d1487a099fe154f99fb6a9821639a24390f88aacbf5a",
|
||||||
|
".agent/evidence-v0.2.3/07-converter-RED.log": "53cefcd04c8ac4354b5e891a4e65810c21ece90503a3f2ed3392c046feaeb9c9",
|
||||||
|
".agent/evidence-v0.2.3/08-heard-snr-GREEN.log": "347cdd6ceffa01e0227a17b5af604e96e8081aeaadfc95cf33155ab0af0f813b",
|
||||||
|
".agent/evidence-v0.2.3/08-heard-snr-RED.log": "82b0d04bfd2e99ad36b59325581b5527fa1fa8ae8953db3ed402fb381356fd90",
|
||||||
|
".agent/evidence-v0.2.3/09-version-docs-GREEN.log": "8ac6c86e13de85121607e93da4316c2220ad0edb95ac091048767a903f65152c",
|
||||||
|
".agent/evidence-v0.2.3/09-version-docs-RED.log": "21733781658b1d6525746f6a3dd59337774990c53689f7883e7ff8ddc7c65398",
|
||||||
|
".agent/evidence-v0.2.3/10-environment-rotation-GREEN.log": "5dc34db413e4ed7918dad60a49ae97532d701aa52d10b49459e77f75c925231d",
|
||||||
|
".agent/evidence-v0.2.3/10-environment-rotation-RED.log": "ae7914b7fca896a77478e36ea79bfc51d3a13f976e0f722c7c1615daf6e6837e",
|
||||||
|
".agent/evidence-v0.2.3/11-bundle-notice-GREEN.log": "d6ba07866a02eab665c215f1ce6588e4f5a9157baf4be6e9befba0f945e379bd",
|
||||||
|
".agent/evidence-v0.2.3/11-bundle-notice-RED.log": "82d52d3905b35948abbaf7e912de5480a959780731fd04be4110674cf2d6ec63",
|
||||||
|
".agent/evidence-v0.2.3/12-build-initial.log": "508b0f60d2378679873fbd17784725323fe7ccc267fb3b8b180a7bd59b861176",
|
||||||
|
".agent/evidence-v0.2.3/12-lint-followup.log": "058127eb4022e13fe809a0c56c3d3a43177b6088f284811e926452185772de6b",
|
||||||
|
".agent/evidence-v0.2.3/12-lint-initial.log": "7a5fdab53449ff945e4f8694164cbb1792f01a19d3d97c151590df5bdfb1506e",
|
||||||
|
".agent/evidence-v0.2.3/13-static-404-GREEN.log": "dee59b03d1eb3e0a59828d4f50ea372c78c231000cdd1c77965fcdf42864042b",
|
||||||
|
".agent/evidence-v0.2.3/13-static-404-RED.log": "7b4822f9d121f963dbab27155aaf0627fbbfbadd855adf4da4224388e35b230c",
|
||||||
|
".agent/evidence-v0.2.3/14-browser-initial.log": "d2178d18a7e1b2f84e4a430a884ca442070b1a455217f6f594ed4c5f160b426e",
|
||||||
|
".agent/evidence-v0.2.3/14-full-test-initial.log": "08a7d3bb30acbc04f9b63e49a0ba5a34628e00613a97660cfb6f467c74854aee",
|
||||||
|
".agent/evidence-v0.2.3/14-npm-audit.json": "ea7bab3cc606a95eecdf538b0d02d3cf928bf0f3a1cfb1d2c8ddbe02846d5658",
|
||||||
|
".agent/evidence-v0.2.3/15-results-anchor-GREEN.log": "48c5b15b6b2dc661a0410af2cfe501d9efafac55d085c29ab74f44ea76e7e8a3",
|
||||||
|
".agent/evidence-v0.2.3/15-results-anchor-RED.log": "cb113c8ceeeb48d7573b1de0b9d8263e25e4f7a28dd811404a057d5d6c623157",
|
||||||
|
".agent/evidence-v0.2.3/16-controls-build.log": "ae8849619608d58763d2ce301bcdba420054bd29174b1bc8dca86790b82fc5e7",
|
||||||
|
".agent/evidence-v0.2.3/16-controls-layout-GREEN.log": "7be2b42602a98167b83c12bce3af7b0856ccd10be68d477e5dba39db99991c03",
|
||||||
|
".agent/evidence-v0.2.3/16-controls-layout-RED.log": "9060a0e1d36a15a35b3b189f5b210fdab9fe9579b06e6b19f645bfe8f2914603",
|
||||||
|
".agent/evidence-v0.2.3/17-bonus-copy-GREEN.log": "f988cf9fda0bc4dd4b7818dde11094f6fb75b9540ccfcb9f964acec003ff3de7",
|
||||||
|
".agent/evidence-v0.2.3/17-bonus-copy-RED.log": "fd11d5b64c06cfa28c839cdddb7e2f2ac2406f8c1101f1fb9e262ae9cfaf6b85",
|
||||||
|
".agent/evidence-v0.2.3/18-browser.log": "a92ba8db852111170403932bb8b4dbd49345936156fbbc3ef61f5c612609a55e",
|
||||||
|
".agent/evidence-v0.2.3/18-build.log": "3f0bd258866ed4f29f8a8ab5d88fc7db68f67abe9bc51fed22563d51200d9f72",
|
||||||
|
".agent/evidence-v0.2.3/18-format.log": "d78946d25140238f764ccf3fca989a0aa42b25162cfba7d92dbb10256db45401",
|
||||||
|
".agent/evidence-v0.2.3/18-full-test.log": "bf358255a30c2d18b82af8f8c5942d0b9ee7c100c40114fe8666e7f564829d79",
|
||||||
|
".agent/evidence-v0.2.3/18-lint.log": "058127eb4022e13fe809a0c56c3d3a43177b6088f284811e926452185772de6b",
|
||||||
|
".agent/evidence-v0.2.3/18-python.log": "911637068f7c09de38cd38b9d13cdb23b365812521ed8b1f75328b1960b085bf",
|
||||||
|
".agent/evidence-v0.2.3/19-favicon-GREEN.log": "34fd3cd00d40ae5766b2364cef81fe90accc8f8ec03788959680d118ecbf9b13",
|
||||||
|
".agent/evidence-v0.2.3/19-favicon-RED.log": "49fc230ab2adeceb6613e6b9019f31f12b2dd3764096a85f391f91e83479e6cb",
|
||||||
|
".agent/evidence-v0.2.3/20-browser.log": "cfc61835f7061d6301b54ce07e8f1c1aaba5c3a29d7df85d767eb1cf898217a6",
|
||||||
|
".agent/evidence-v0.2.3/20-build.log": "77a52828d2b1d1d46efa6a3f5b4ded7ca12da6db5896b1ee9a2fefebf50bcb85",
|
||||||
|
".agent/evidence-v0.2.3/20-full-test.log": "10c46b00ad407161154f57c060599dca379effef2c5c80e0d24edd366c08817a",
|
||||||
|
".agent/evidence-v0.2.3/20-lint.log": "058127eb4022e13fe809a0c56c3d3a43177b6088f284811e926452185772de6b",
|
||||||
|
".agent/evidence-v0.2.3/21-format.log": "48a148bd43ecea64bd7604be2431e2072fe390bbc578a71d65df4d1c0a369412",
|
||||||
|
".agent/evidence-v0.2.3/21-select-label-GREEN.log": "2ce474d915736281c05591c4753e23d555eda186b13c85a2ae96f8481cf35d86",
|
||||||
|
".agent/evidence-v0.2.3/21-select-label-RED.log": "149ee8ca004c8f63765d642305cf9e6b0ad3de5986bf0dcefaf656844c22a73d",
|
||||||
|
".agent/evidence-v0.2.3/22-browser.log": "b2e4e82e78376042ea1297c930403889b22e8a275e226736c232b8cbaa74fadd",
|
||||||
|
".agent/evidence-v0.2.3/22-build.log": "ed77e72c527fa7ab9d9c5c2447cd1bff34824ee6eac384bd18a50303607cbca9",
|
||||||
|
".agent/evidence-v0.2.3/22-full-test.log": "c3f38be3d6e00dc983e29a3cbfb632192a0fe64c151f06edcd8b35188edcde5c",
|
||||||
|
".agent/evidence-v0.2.3/22-lint.log": "058127eb4022e13fe809a0c56c3d3a43177b6088f284811e926452185772de6b",
|
||||||
|
".agent/evidence-v0.2.3/browser-favicon-RED.json": "036a734efcdff9481b3d10f1b07159ef6ca056d9245cffa469c5b1c8fe87f2bb",
|
||||||
|
".agent/evidence-v0.2.3/browser-results.json": "060d18bd74f7179884205117c6c853dc783ec7a818bdfcc8a490ef1a679c77f6",
|
||||||
|
".agent/evidence-v0.2.3/browser/desktop-audio-integrity.json": "3d6defdb7ad3b8d4d7949ffe476f4ebf685e5dcc1ad0868b98bb4e639b6dcadb",
|
||||||
|
".agent/evidence-v0.2.3/browser/desktop-early-exit.png": "a6a68bcc871939cd945f0b7a96dddd7c3b371b069efa7171fa6d3fe39e352d5f",
|
||||||
|
".agent/evidence-v0.2.3/browser/desktop-game.png": "c7c5a04608075edf836718e6479cc776773fa22d2cd8fe3aa230bdf3ec82ccc1",
|
||||||
|
".agent/evidence-v0.2.3/browser/desktop-normal-results.png": "cf98d5168a96fac8a87718bd5a771d81e8e02dc4d46c93904556319033fe2bc0",
|
||||||
|
".agent/evidence-v0.2.3/browser/desktop-runtime-audit.json": "afdf38d83cf77e91b478bc806f4da007860c5db6e6146995d5d405883de8bc13",
|
||||||
|
".agent/evidence-v0.2.3/browser/desktop-start.png": "911b923e3a68e8deb0063efd88ed43eb1ed6c597c14bd5b9ee71f6b5161b6d7b",
|
||||||
|
".agent/evidence-v0.2.3/browser/mobile-audio-integrity.json": "3d6defdb7ad3b8d4d7949ffe476f4ebf685e5dcc1ad0868b98bb4e639b6dcadb",
|
||||||
|
".agent/evidence-v0.2.3/browser/mobile-early-exit.png": "5e2ef07c6c3b7672e0aa82f248a5a245d60a10f86633fab2b2dd45ecff81d7fa",
|
||||||
|
".agent/evidence-v0.2.3/browser/mobile-game.png": "f4890f7d61b87c102c68f285108584ac58182186b685f73ea05f64bf51a64a0c",
|
||||||
|
".agent/evidence-v0.2.3/browser/mobile-normal-results.png": "5eccd53853c27a7c1385f1219b0a9bb7af60070fbdd1469ef3265e40377f3eaa",
|
||||||
|
".agent/evidence-v0.2.3/browser/mobile-runtime-audit.json": "949c6829af7030728c7382c0ac8bde8a8cd8e3b46cf5a5919f5a6d281d4ba657",
|
||||||
|
".agent/evidence-v0.2.3/browser/mobile-start.png": "c04abd43e93e46fde7e1591bde24a3073d584226e93ba5661bac1b5cd78a4695",
|
||||||
|
".agent/evidence-v0.2.3/chrome-sandbox.json": "0e0d0d3a4618e4c607a6cccd1ff04d9fdc9dcc70ff76e909e614e90b6607cae8",
|
||||||
|
".agent/evidence-v0.2.3/commons-license-audit.json": "2a36e3ac168d223849a2f171457ebd87b236301a65c8e13f5061f484c18e31d6",
|
||||||
|
".agent/evidence-v0.2.3/environment.json": "9e1c233d564982ef3b9712c2bcb5c85aef32d2276d0c3b6f5e02a009db76796e",
|
||||||
|
".agent/evidence-v0.2.3/final-review.log": "1692e79cc7e03cd3a71e10f4497914df13931aa08e1c5a66a84545ce318b5ea4",
|
||||||
|
".agent/evidence-v0.2.3/preservation.json": "a938ce612b594f99e4bbd2457f3a2c665af4aeb6a465ca4c459d74c5375eb4ff",
|
||||||
|
".agent/evidence-v0.2.3/primary-page-verification.json": "2b4a6fcaf55b51a10d378a888a634e7aeac8591d3dd5fa537f4a70806c536fd0",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/01-provenance-RED.log": "4dd0f47347add3e34dea419d891ab51a3e8d5504cacbb3821ce482c7302bfd2f",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/02-generator-GREEN.log": "2c85f8e50ac29484748f1069aa7bc8fbeb848fbefc1cb5e01150bce7895f2b66",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/02-generator-RED.log": "ce4eb7cb38410babeff3de3a809a92b0987a77b58213dba86f406cb977b51ef0",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/03-browser-RED.log": "21939f1ada40160d48babbbaaf01c732d20b0b192b5e02f713f9ea31620372cd",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/04-screening-RED.log": "a28c766db9781d6d7df784472ea1c6cf5a4ead0b80b749ab9f01357e9db95e1a",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/05-regeneration.log": "908e4acd8d2a3c9936bfbf2196c5ed0d2f30a43b619a1fa376a6c388edfe01a8",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/06-seek-GREEN.log": "55c5edc79d467bdb7cc286e7b84ebd878fbf36ece1609cc0eee31564bd164eed",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/06-seek-RED.log": "300fafca43579ee884f9bebd755a56055c9c6c08fd28087563b05350eda82ed1",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/06-seek-provenance-RED.log": "090820b7767f983c8289d99ed777a3a33250c1dde58adb92bd8f54e1ea190cbf",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/07-regeneration.log": "43496216e477826add4ab0365898e0128882c3d501f956d4857abe4353b5e27c",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/08-sample-trim-GREEN.log": "d2e738e446794043fd67ca79015c166d495837ab88d7644fbd300d34d554a059",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/08-sample-trim-RED.log": "f9f2304682b1fa4030170ac890be02f26726dc36f31fb09a4df3449a0e7252aa",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/09-regeneration.log": "bdd4f7745d05b19fd99c1a6dbe9f8307c17e8ab5fee5a7fbdc0a77f27131e70c",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/10-final-asr.log": "81c513ce9dc761655829422e24b71b333ffa01445685bc91ef100e740c9a72c0",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/11-provenance-GREEN.log": "f44950a82573773c46285cdc5996dde86b6a161f8b421cc3c915e852c17e1a54",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/12-build.log": "3930ccb7b01e122ac7e67e3aeb170e6eaaa2f8ad1a50443c71ed35767b061509",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/12-lint.log": "0cabf7a5edcc813b0900f3b7cf73d4bbc9b17e5f35ad8ad4a740aa2c53f732b8",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/12-python.log": "b46991f65fed587e34c5c4974608b60bd908e2c95fd12529a7d96d5b9db39291",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/13-screening-criterion-RED.log": "0593334ad9d70d84049748f01402b6d79fb9695a78ae67de56b96807a08c056e",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/14-final-asr-vad.log": "0379152c054bdfb816bdef3dbc7a91a62113fd5974363030acb13eb7730c051a",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/15-audit.log": "bfc68a63acc9d349ef80b0269b0340dd1e2b934907d894d534602ae4d75309cc",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/15-browser.log": "43aae40f119cb7c1975bf22c1088be837a6d70b1b9d295fb5c11890f933a623b",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/16-final-asr-vad-json.log": "22f87eb3462b0d6a0ba15f47ae6dcf9b8e12be592d07cd42c4bb19a1dc4e580d",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/17-unit.log": "3bd2ae0598a35af2e98b6bc5c72cde152228a258902604e8dd2d22621ecb5522",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/18-final-lint.log": "51c4852c3516766c555e3199afbebc3c3017e9da4c5b017312ce2fa51e7eb838",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/19-diff-check.log": "8dc5136a348ad652edc50fbc7ff7958effd276e06284e70b7f90195c5ed26728",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/README.md": "a5a103f7a92e8ecdf38c9d2fb41830b828fe42252fb0f46871121bf5d01407fe",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/asr-serialization-failure.json": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/baseline.json": "0d3c17cf6c63e660bc0b15b1e3b39cedb8d66886c41d1e83d1320aa5117bfc1d",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/before-manifest.json": "54581c0c1c6cf3eb3761ad87a8fd5e3ef455dca26f5150a47f48758c01692c4a",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/before-notices.md": "b0329e057acc56f825a733f727cf01c22d23c1eb226726c0c177832e7ee2e98d",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/before-result.md": "d186104a6cda2dddd13314e4225c0e4158ab36a85d4d3f16fbc0cfc593171e66",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/before-source-plan.json": "e4d400b32344a0a45debc807c058e4c8bfa30d3cf947e75ef81dc40beddbbc8b",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/browser-final/.last-run.json": "91d1c43004802cd49950d78eb11c8fa7d05da8ffffe219a8b13b2f561bc00903",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/browser-final/audio-음성·현장음-109개-versioned-WAV를-실제-Chrome에서-해시·디코드-검증한다-desktop/attachments/109-versioned-WAV-integrity-bcde2a64dc46084caae2c89272a63e0ce1b6dc06.json": "cca2cda8988d4f33706bbeee3c7927a691937fffe3e9481f6d9ecdbe90af148a",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/browser-final/audio-음성·현장음-109개-versioned-WAV를-실제-Chrome에서-해시·디코드-검증한다-desktop/browser-audio-integrity.json": "cca2cda8988d4f33706bbeee3c7927a691937fffe3e9481f6d9ecdbe90af148a",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/browser-final/audio-음성·현장음-109개-versioned-WAV를-실제-Chrome에서-해시·디코드-검증한다-mobile/attachments/109-versioned-WAV-integrity-c90c562b8cfd985ad0d76e1c0d918e5063cd2fba.json": "cca2cda8988d4f33706bbeee3c7927a691937fffe3e9481f6d9ecdbe90af148a",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/browser-final/audio-음성·현장음-109개-versioned-WAV를-실제-Chrome에서-해시·디코드-검증한다-mobile/browser-audio-integrity.json": "cca2cda8988d4f33706bbeee3c7927a691937fffe3e9481f6d9ecdbe90af148a",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/browser-final/game-실제-오디오로-혼합-모드-완주·레이아웃·접근성·외부-요청-없음-desktop/game.png": "a96e59237e3869125eb6099b15dc55fb5d7bd08af0f10c4d7e1b3d2d1eb2b8e3",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/browser-final/game-실제-오디오로-혼합-모드-완주·레이아웃·접근성·외부-요청-없음-desktop/home.png": "911b923e3a68e8deb0063efd88ed43eb1ed6c597c14bd5b9ee71f6b5161b6d7b",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/browser-final/game-실제-오디오로-혼합-모드-완주·레이아웃·접근성·외부-요청-없음-desktop/results.png": "51d34a4717075e8b516b2f334d6a30affecea776568052cc9ccb9d7518ecbebf",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/browser-final/game-실제-오디오로-혼합-모드-완주·레이아웃·접근성·외부-요청-없음-mobile/game.png": "a3c49b633277b3cd05e607f2bfe851b1b24a82cd16d7c5dcdbf6a75ecdf228d3",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/browser-final/game-실제-오디오로-혼합-모드-완주·레이아웃·접근성·외부-요청-없음-mobile/home.png": "a17b7cad00be132583d28f91a938a83f69663365575e1a91d17013e6d7369002",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/browser-final/game-실제-오디오로-혼합-모드-완주·레이아웃·접근성·외부-요청-없음-mobile/results.png": "2f973a00b336f2373cac53c79ae56eb7760cf4eeaff019bde949a86b7e92665a",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/browser-final/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-desktop/normal-results.png": "85e8b066ac128239de765f001c3542e6905018f5deaec7abac4a985006fb03b5",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/browser-final/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-desktop/progress-1.png": "4d130e9ea43bdfcd7b35e300224d1b54f2875aa8c24d5551c6627b7abd8ce1fc",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/browser-final/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-desktop/progress-2.png": "4508a9c9e5c7533e9bf8afe6653fb4e1cd111de71141f0fb5404ab4c4b168ac9",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/browser-final/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-desktop/progress-3.png": "fde834aa2f803612ef9cc7a68cea0c8d5a225289a82321ba0a59063d151e66a0",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/browser-final/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-mobile/normal-results.png": "2f973a00b336f2373cac53c79ae56eb7760cf4eeaff019bde949a86b7e92665a",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/browser-final/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-mobile/progress-1.png": "f46672f555b73c705f838e6d1e1c3d25fe2f9ff29ad629903b85c9b129b83b3b",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/browser-final/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-mobile/progress-2.png": "c39155a3c4d4ae096cb73a892e8e86b40a2d4129c670a7b44d4b24daf8030983",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/browser-final/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-mobile/progress-3.png": "9d198c8b07ea84e9f3d9ebad03831ffd61b98672a9e637e7ee9e9eead959cf28",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/browser-final/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-desktop/copy-320-home.png": "872c362713d2013c7021770e3c222458f56ba0ee2ea2d21cf28bd28df8a6d613",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/browser-final/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-desktop/copy-320-results.png": "fdf263c2c84c64beab026e2899b4b93a7b71b4fcf28b796e5782bb5bc17c2c78",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/browser-final/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-desktop/copy-360-home.png": "a17b7cad00be132583d28f91a938a83f69663365575e1a91d17013e6d7369002",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/browser-final/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-desktop/copy-360-results.png": "b838f6bbb4392ef8aa941c66dec5bef6bb27f06acada06b67272be926db9d576",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/browser-final/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-mobile/copy-320-home.png": "872c362713d2013c7021770e3c222458f56ba0ee2ea2d21cf28bd28df8a6d613",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/browser-final/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-mobile/copy-320-results.png": "fdf263c2c84c64beab026e2899b4b93a7b71b4fcf28b796e5782bb5bc17c2c78",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/browser-final/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-mobile/copy-360-home.png": "a17b7cad00be132583d28f91a938a83f69663365575e1a91d17013e6d7369002",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/browser-final/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-mobile/copy-360-results.png": "b838f6bbb4392ef8aa941c66dec5bef6bb27f06acada06b67272be926db9d576",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/browser-final/rounds-시작-단계·SNR·3문항-완료→다음-단계·재생-중-종료·응답-후-종료·홈-초기화-desktop/early-exit.png": "47cf4429695d65ddad8d353aaa14dd5edcea3ef4c09c16b537d6a72c3e256533",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/browser-final/rounds-시작-단계·SNR·3문항-완료→다음-단계·재생-중-종료·응답-후-종료·홈-초기화-mobile/early-exit.png": "b838f6bbb4392ef8aa941c66dec5bef6bb27f06acada06b67272be926db9d576",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/browser-final/ui-한국어-제목은-단어-중간에서-줄바꿈하지-않는다-desktop/heading.png": "56fa16aa968018bcc3252168a0c9e7fd3b30d352cb831b29caed75329c96dac7",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/browser-final/ui-한국어-제목은-단어-중간에서-줄바꿈하지-않는다-mobile/heading.png": "8ae22f403cacecc1d4e59bfeb1faec5b1be1038f87e1bbd564a9e8b5065c693e",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/browser-integrity-summary.json": "7a208920dc76f8e75c4ccf4b23fc0a21e539a2ea6d616a2a6d30083deeb869ce",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/browser-red/.last-run.json": "a5e3a6fa62bb09c07b34963c1f8807efc83e81627b0f665fe83e34a6a094fa15",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/browser-red/audio-음성·현장음-109개-versioned-WAV를-실제-Chrome에서-해시·디코드-검증한다-desktop/error-context.md": "958700898c966a2ab19189862cc6bc40bb168b0131c90c381220df9f05426f5f",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/browser-red/audio-음성·현장음-109개-versioned-WAV를-실제-Chrome에서-해시·디코드-검증한다-desktop/trace.zip": "a4d9f4a9cfb1be6becad762bd6b5da9610e023ec1a5f675abe188320603aaae7",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/browser-red/audio-음성·현장음-109개-versioned-WAV를-실제-Chrome에서-해시·디코드-검증한다-mobile/error-context.md": "caa0871351f61738f3a139ab12945f8255c826e0b0c34417c93167eb5b5fb41a",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/browser-red/audio-음성·현장음-109개-versioned-WAV를-실제-Chrome에서-해시·디코드-검증한다-mobile/trace.zip": "0ee5218c088e5e9ff4e3bff0744fa4beb58aab4f076758a1e1cdce6d8ec7a522",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/browser-results.json": "f0bdecf74bcd8f245609fc0c4286f4008aeed352904da1e9b6b41ab6cffffb76",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/candidate-scan-original.json": "2f89b954b323d2d1da96ce5927d68771f9f7ec82331c04a3bfdefbdb693b4ef6",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/chrome-sandbox.json": "26ecfbe458db915fea59f743664b51780cae088a1109e098ea371b9b95b6adb7",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/desktop-audio-integrity.json": "cca2cda8988d4f33706bbeee3c7927a691937fffe3e9481f6d9ecdbe90af148a",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/earlier-asr-provenance.json": "9a6a1adc439f3af55150216bae85fc9daee953c768dca3a4d014336bb281bdad",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/failed-regeneration-preservation.json": "42872c56d849ec4fe3c4f62b02a46496d155be8fc6c5b68fd62e81c6395e3989",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/final-asr.json": "82df338d83f7b6c8b6b04ecf43c7218b6787cc1b72d73d5c898197ec957a7070",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/mobile-audio-integrity.json": "cca2cda8988d4f33706bbeee3c7927a691937fffe3e9481f6d9ecdbe90af148a",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/no-vad-asr.json": "14b42ee0b80c194caa3c0de2644f647d6d7720c60c2208374778619f47c2e969",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/npm-audit.json": "ea7bab3cc606a95eecdf538b0d02d3cf928bf0f3a1cfb1d2c8ddbe02846d5658",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/preservation.json": "db50497ae6251b67021c0e47ee7298a5cf4b98e1ec6da3010d183f5758831bd9",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/01-provenance-RED.log": "4dd0f47347add3e34dea419d891ab51a3e8d5504cacbb3821ce482c7302bfd2f",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/02-generator-GREEN.log": "2c85f8e50ac29484748f1069aa7bc8fbeb848fbefc1cb5e01150bce7895f2b66",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/02-generator-RED.log": "ce4eb7cb38410babeff3de3a809a92b0987a77b58213dba86f406cb977b51ef0",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/03-browser-RED.log": "21939f1ada40160d48babbbaaf01c732d20b0b192b5e02f713f9ea31620372cd",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/04-screening-RED.log": "a28c766db9781d6d7df784472ea1c6cf5a4ead0b80b749ab9f01357e9db95e1a",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/05-regeneration.log": "908e4acd8d2a3c9936bfbf2196c5ed0d2f30a43b619a1fa376a6c388edfe01a8",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/06-seek-GREEN.log": "55c5edc79d467bdb7cc286e7b84ebd878fbf36ece1609cc0eee31564bd164eed",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/06-seek-RED.log": "300fafca43579ee884f9bebd755a56055c9c6c08fd28087563b05350eda82ed1",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/06-seek-provenance-RED.log": "090820b7767f983c8289d99ed777a3a33250c1dde58adb92bd8f54e1ea190cbf",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/07-regeneration.log": "43496216e477826add4ab0365898e0128882c3d501f956d4857abe4353b5e27c",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/08-sample-trim-GREEN.log": "d2e738e446794043fd67ca79015c166d495837ab88d7644fbd300d34d554a059",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/08-sample-trim-RED.log": "f9f2304682b1fa4030170ac890be02f26726dc36f31fb09a4df3449a0e7252aa",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/09-regeneration.log": "bdd4f7745d05b19fd99c1a6dbe9f8307c17e8ab5fee5a7fbdc0a77f27131e70c",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/10-final-asr.log": "81c513ce9dc761655829422e24b71b333ffa01445685bc91ef100e740c9a72c0",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/11-provenance-GREEN.log": "f44950a82573773c46285cdc5996dde86b6a161f8b421cc3c915e852c17e1a54",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/12-build.log": "3930ccb7b01e122ac7e67e3aeb170e6eaaa2f8ad1a50443c71ed35767b061509",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/12-lint.log": "0cabf7a5edcc813b0900f3b7cf73d4bbc9b17e5f35ad8ad4a740aa2c53f732b8",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/12-python.log": "b46991f65fed587e34c5c4974608b60bd908e2c95fd12529a7d96d5b9db39291",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/13-screening-criterion-RED.log": "0593334ad9d70d84049748f01402b6d79fb9695a78ae67de56b96807a08c056e",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/14-final-asr-vad.log": "0379152c054bdfb816bdef3dbc7a91a62113fd5974363030acb13eb7730c051a",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/15-audit.log": "bfc68a63acc9d349ef80b0269b0340dd1e2b934907d894d534602ae4d75309cc",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/15-browser.log": "43aae40f119cb7c1975bf22c1088be837a6d70b1b9d295fb5c11890f933a623b",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/16-final-asr-vad-json.log": "22f87eb3462b0d6a0ba15f47ae6dcf9b8e12be592d07cd42c4bb19a1dc4e580d",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/17-unit.log": "3bd2ae0598a35af2e98b6bc5c72cde152228a258902604e8dd2d22621ecb5522",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/18-final-lint.log": "51c4852c3516766c555e3199afbebc3c3017e9da4c5b017312ce2fa51e7eb838",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/19-diff-check.log": "8dc5136a348ad652edc50fbc7ff7958effd276e06284e70b7f90195c5ed26728",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/asr-serialization-failure.json": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/baseline.json": "0d3c17cf6c63e660bc0b15b1e3b39cedb8d66886c41d1e83d1320aa5117bfc1d",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/before-manifest.json": "54581c0c1c6cf3eb3761ad87a8fd5e3ef455dca26f5150a47f48758c01692c4a",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/before-notices.md": "b0329e057acc56f825a733f727cf01c22d23c1eb226726c0c177832e7ee2e98d",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/before-result.md": "d186104a6cda2dddd13314e4225c0e4158ab36a85d4d3f16fbc0cfc593171e66",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/before-source-plan.json": "e4d400b32344a0a45debc807c058e4c8bfa30d3cf947e75ef81dc40beddbbc8b",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-final/.last-run.json": "91d1c43004802cd49950d78eb11c8fa7d05da8ffffe219a8b13b2f561bc00903",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-final/audio-음성·현장음-109개-versioned-WAV를-실제-Chrome에서-해시·디코드-검증한다-desktop/attachments/109-versioned-WAV-integrity-bcde2a64dc46084caae2c89272a63e0ce1b6dc06.json": "cca2cda8988d4f33706bbeee3c7927a691937fffe3e9481f6d9ecdbe90af148a",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-final/audio-음성·현장음-109개-versioned-WAV를-실제-Chrome에서-해시·디코드-검증한다-desktop/browser-audio-integrity.json": "cca2cda8988d4f33706bbeee3c7927a691937fffe3e9481f6d9ecdbe90af148a",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-final/audio-음성·현장음-109개-versioned-WAV를-실제-Chrome에서-해시·디코드-검증한다-mobile/attachments/109-versioned-WAV-integrity-c90c562b8cfd985ad0d76e1c0d918e5063cd2fba.json": "cca2cda8988d4f33706bbeee3c7927a691937fffe3e9481f6d9ecdbe90af148a",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-final/audio-음성·현장음-109개-versioned-WAV를-실제-Chrome에서-해시·디코드-검증한다-mobile/browser-audio-integrity.json": "cca2cda8988d4f33706bbeee3c7927a691937fffe3e9481f6d9ecdbe90af148a",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-final/game-실제-오디오로-혼합-모드-완주·레이아웃·접근성·외부-요청-없음-desktop/game.png": "a96e59237e3869125eb6099b15dc55fb5d7bd08af0f10c4d7e1b3d2d1eb2b8e3",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-final/game-실제-오디오로-혼합-모드-완주·레이아웃·접근성·외부-요청-없음-desktop/home.png": "911b923e3a68e8deb0063efd88ed43eb1ed6c597c14bd5b9ee71f6b5161b6d7b",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-final/game-실제-오디오로-혼합-모드-완주·레이아웃·접근성·외부-요청-없음-desktop/results.png": "51d34a4717075e8b516b2f334d6a30affecea776568052cc9ccb9d7518ecbebf",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-final/game-실제-오디오로-혼합-모드-완주·레이아웃·접근성·외부-요청-없음-mobile/game.png": "a3c49b633277b3cd05e607f2bfe851b1b24a82cd16d7c5dcdbf6a75ecdf228d3",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-final/game-실제-오디오로-혼합-모드-완주·레이아웃·접근성·외부-요청-없음-mobile/home.png": "a17b7cad00be132583d28f91a938a83f69663365575e1a91d17013e6d7369002",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-final/game-실제-오디오로-혼합-모드-완주·레이아웃·접근성·외부-요청-없음-mobile/results.png": "2f973a00b336f2373cac53c79ae56eb7760cf4eeaff019bde949a86b7e92665a",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-final/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-desktop/normal-results.png": "85e8b066ac128239de765f001c3542e6905018f5deaec7abac4a985006fb03b5",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-final/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-desktop/progress-1.png": "4d130e9ea43bdfcd7b35e300224d1b54f2875aa8c24d5551c6627b7abd8ce1fc",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-final/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-desktop/progress-2.png": "4508a9c9e5c7533e9bf8afe6653fb4e1cd111de71141f0fb5404ab4c4b168ac9",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-final/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-desktop/progress-3.png": "fde834aa2f803612ef9cc7a68cea0c8d5a225289a82321ba0a59063d151e66a0",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-final/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-mobile/normal-results.png": "2f973a00b336f2373cac53c79ae56eb7760cf4eeaff019bde949a86b7e92665a",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-final/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-mobile/progress-1.png": "f46672f555b73c705f838e6d1e1c3d25fe2f9ff29ad629903b85c9b129b83b3b",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-final/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-mobile/progress-2.png": "c39155a3c4d4ae096cb73a892e8e86b40a2d4129c670a7b44d4b24daf8030983",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-final/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-mobile/progress-3.png": "9d198c8b07ea84e9f3d9ebad03831ffd61b98672a9e637e7ee9e9eead959cf28",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-final/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-desktop/copy-320-home.png": "872c362713d2013c7021770e3c222458f56ba0ee2ea2d21cf28bd28df8a6d613",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-final/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-desktop/copy-320-results.png": "fdf263c2c84c64beab026e2899b4b93a7b71b4fcf28b796e5782bb5bc17c2c78",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-final/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-desktop/copy-360-home.png": "a17b7cad00be132583d28f91a938a83f69663365575e1a91d17013e6d7369002",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-final/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-desktop/copy-360-results.png": "b838f6bbb4392ef8aa941c66dec5bef6bb27f06acada06b67272be926db9d576",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-final/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-mobile/copy-320-home.png": "872c362713d2013c7021770e3c222458f56ba0ee2ea2d21cf28bd28df8a6d613",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-final/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-mobile/copy-320-results.png": "fdf263c2c84c64beab026e2899b4b93a7b71b4fcf28b796e5782bb5bc17c2c78",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-final/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-mobile/copy-360-home.png": "a17b7cad00be132583d28f91a938a83f69663365575e1a91d17013e6d7369002",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-final/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-mobile/copy-360-results.png": "b838f6bbb4392ef8aa941c66dec5bef6bb27f06acada06b67272be926db9d576",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-final/rounds-시작-단계·SNR·3문항-완료→다음-단계·재생-중-종료·응답-후-종료·홈-초기화-desktop/early-exit.png": "47cf4429695d65ddad8d353aaa14dd5edcea3ef4c09c16b537d6a72c3e256533",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-final/rounds-시작-단계·SNR·3문항-완료→다음-단계·재생-중-종료·응답-후-종료·홈-초기화-mobile/early-exit.png": "b838f6bbb4392ef8aa941c66dec5bef6bb27f06acada06b67272be926db9d576",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-final/ui-한국어-제목은-단어-중간에서-줄바꿈하지-않는다-desktop/heading.png": "56fa16aa968018bcc3252168a0c9e7fd3b30d352cb831b29caed75329c96dac7",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-final/ui-한국어-제목은-단어-중간에서-줄바꿈하지-않는다-mobile/heading.png": "8ae22f403cacecc1d4e59bfeb1faec5b1be1038f87e1bbd564a9e8b5065c693e",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-integrity-summary.json": "7a208920dc76f8e75c4ccf4b23fc0a21e539a2ea6d616a2a6d30083deeb869ce",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-red/.last-run.json": "a5e3a6fa62bb09c07b34963c1f8807efc83e81627b0f665fe83e34a6a094fa15",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-red/audio-음성·현장음-109개-versioned-WAV를-실제-Chrome에서-해시·디코드-검증한다-desktop/error-context.md": "958700898c966a2ab19189862cc6bc40bb168b0131c90c381220df9f05426f5f",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-red/audio-음성·현장음-109개-versioned-WAV를-실제-Chrome에서-해시·디코드-검증한다-desktop/trace.zip": "a4d9f4a9cfb1be6becad762bd6b5da9610e023ec1a5f675abe188320603aaae7",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-red/audio-음성·현장음-109개-versioned-WAV를-실제-Chrome에서-해시·디코드-검증한다-mobile/error-context.md": "caa0871351f61738f3a139ab12945f8255c826e0b0c34417c93167eb5b5fb41a",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-red/audio-음성·현장음-109개-versioned-WAV를-실제-Chrome에서-해시·디코드-검증한다-mobile/trace.zip": "0ee5218c088e5e9ff4e3bff0744fa4beb58aab4f076758a1e1cdce6d8ec7a522",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-results.json": "f0bdecf74bcd8f245609fc0c4286f4008aeed352904da1e9b6b41ab6cffffb76",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/candidate-scan-original.json": "2f89b954b323d2d1da96ce5927d68771f9f7ec82331c04a3bfdefbdb693b4ef6",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/chrome-sandbox.json": "26ecfbe458db915fea59f743664b51780cae088a1109e098ea371b9b95b6adb7",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/desktop-audio-integrity.json": "cca2cda8988d4f33706bbeee3c7927a691937fffe3e9481f6d9ecdbe90af148a",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/earlier-asr-provenance.json": "9a6a1adc439f3af55150216bae85fc9daee953c768dca3a4d014336bb281bdad",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/failed-regeneration-preservation.json": "42872c56d849ec4fe3c4f62b02a46496d155be8fc6c5b68fd62e81c6395e3989",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/final-asr.json": "01c8a92fab9f8df7a5f778c5f7e478ce96bcedc33e11a1055bd29154a08b706b",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/mobile-audio-integrity.json": "cca2cda8988d4f33706bbeee3c7927a691937fffe3e9481f6d9ecdbe90af148a",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/no-vad-asr.json": "14b42ee0b80c194caa3c0de2644f647d6d7720c60c2208374778619f47c2e969",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/npm-audit.json": "ea7bab3cc606a95eecdf538b0d02d3cf928bf0f3a1cfb1d2c8ddbe02846d5658",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/preservation.json": "db50497ae6251b67021c0e47ee7298a5cf4b98e1ec6da3010d183f5758831bd9",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/prior-derivatives-asr-original.json": "ab65f3d21655ee1894d16b2836d8976ba6419457aabc67a2f90a66eb8fa8bb88",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/regenerate.py": "c7b1af006bf4a9c1dba67225c2d0c1892b89cc677eaa92ac06e442e43f3d674e",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/regeneration.json": "6b3d5147143c87db78b7ddc2ddd3ef40586b65cf701c288da96f3d4e34af2d2f",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/screen-final.py": "9aa0912152952179f0a541e7dfb06a893114a2d5361e266fd24fff567fb60183",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/screen-with-vad-json.py": "b2d7d4075b56f6d2bcd40966ccc0d787f20a5fb7b9322d9d0547fe1915a909eb",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/screen-with-vad.py": "14431705ea1fe016601377ffc481037257a9449fd00b4dc664ca12616d086d27",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/seek-diagnostics-followup.json": "c7b2a73048c2e4c1b20bddfda2a165bbaddd3896e0d63d959f6d37733a53b847",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/seek-diagnostics.json": "f4ee88bf21a717c0020cd8b79f769c590c0ff3716e4e75038ce618f1b6440dba",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/validation-summary.json": "a1ddbeff130d719d5f0f0fe046ad1f751b3963c3bdc30c2303bb14894c602d34",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/prior-derivatives-asr-original.json": "ab65f3d21655ee1894d16b2836d8976ba6419457aabc67a2f90a66eb8fa8bb88",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/regenerate.py": "c7b1af006bf4a9c1dba67225c2d0c1892b89cc677eaa92ac06e442e43f3d674e",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/regeneration.json": "6b3d5147143c87db78b7ddc2ddd3ef40586b65cf701c288da96f3d4e34af2d2f",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/01-release-RED.log": "d1edd19723e15a77df466adcf60019826384d81875d83e39b25971677ba02b5d",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/02-regeneration.log": "61a223840a2e45d71474b2cc1df4e1d8b1cce86d9cd3758c5b0cfb87338ff40e",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/03-final-asr.log": "51057a31eb64389c932c6f71ae72ccb6a5c773488724e22fb424a399f9eab371",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/04-release-GREEN.log": "246891fcef85bc98e0f744a4c187116fcd7afceb94d51c7ac1c2f17c1bac66e2",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/05-audit.log": "cc88d23257cf1c0ce0c4682b7f2c2398558dbdbd5aa167a084499110da671d2e",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/05-build.log": "150b500f6af6c22ff8208ef1ed79f7ae9a537841294c82aed242352645185fa5",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/05-lint.log": "393c1893fc4db234374b77644a65e06c1607feacfc1cea1671fbd69aa901c2b8",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/05-python.log": "3e62e2978e27c9836cd0827455dc371e310ce6c62e3a2405c87b2770f9737e6e",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/05-unit.log": "1f32661ac83547ee13e0bd482cae0ffb3d4cf472721c75e4f2c83cba1690b79d",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/06-browser.log": "be20185d752e2712ce704736ed884c158d8380bce8df01ce5ad1e7ea11f9dcb4",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/07-preservation.log": "cab76258d1786ed4bee1902e13ec942f1e0094e34fe297c0df67155c6ebcdbe0",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/08-browser-integrity.log": "3f23c2e8e198915538be52a431c6184a5b80485b6404ec5c2cfc34e2c6a15645",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/09-browser-integrity.log": "9ebfad7584c5d29b72fb72c24ee04eeb8136a838f9818d2373a4a34c4293a70d",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/10-final-check.json": "3aba259014fdcf7e2b18aea66d994540384f571f69ecfd92aa2794d34e99ea65",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/baseline.json": "19e40ee0c329ed973b7eb673dbdf8616938d8aa55336474644ac05f044371118",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/before-audio-provenance.md": "05985b1fce91866c81e74cfd2e0262d126c96e3dcde74025b1784e9f8db065b1",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/before-changelog.md": "22a787f85f10f208d4c6d3a9f36d7457ad7898bb39d12df4236f01ecfef34f1e",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/before-manifest.json": "4f21df1c046e545553319889218c29b3efe0da0d49d45d3e09a36fb7759a617c",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/before-notices.md": "73b3425eeacc9276fc152d28b0a5ea92d21d2ae7dff74361f6d21b3a571c395b",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/before-readme.md": "ad964e1c9d4f339df08fff0c65dcc7f6ccf88f5e8898f8ff8df83b1cf83c7ae5",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/before-result.md": "6baf60ed6fa1c94c08f0c427946c552af9f605d42af07f1734edd8528451eda3",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/before-source-plan.json": "428185e3d58f60c9de1efbeb57dd59e4a308d9901a5b8f0d045456a51ec09672",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/browser-final/.last-run.json": "91d1c43004802cd49950d78eb11c8fa7d05da8ffffe219a8b13b2f561bc00903",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/browser-final/audio-음성·현장음-109개-versioned-WAV를-실제-Chrome에서-해시·디코드-검증한다-desktop/attachments/109-versioned-WAV-integrity-2b27561345ca20a250ae4a95a2d6d0debbea1fac.json": "ccc86c0355e3b06a0cf58946b229cda41e3a2cdc2077f7cfcfd36a989dae552a",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/browser-final/audio-음성·현장음-109개-versioned-WAV를-실제-Chrome에서-해시·디코드-검증한다-desktop/browser-audio-integrity.json": "ccc86c0355e3b06a0cf58946b229cda41e3a2cdc2077f7cfcfd36a989dae552a",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/browser-final/audio-음성·현장음-109개-versioned-WAV를-실제-Chrome에서-해시·디코드-검증한다-mobile/attachments/109-versioned-WAV-integrity-97ee3b5865219c6147fb1222e703bb461d1d71b0.json": "ccc86c0355e3b06a0cf58946b229cda41e3a2cdc2077f7cfcfd36a989dae552a",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/browser-final/audio-음성·현장음-109개-versioned-WAV를-실제-Chrome에서-해시·디코드-검증한다-mobile/browser-audio-integrity.json": "ccc86c0355e3b06a0cf58946b229cda41e3a2cdc2077f7cfcfd36a989dae552a",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/browser-final/game-실제-오디오로-혼합-모드-완주·레이아웃·접근성·외부-요청-없음-desktop/game.png": "ce74f9025a8a0d70d9792fb23c93efdd14aaa746e41711d4de4e622b384faf99",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/browser-final/game-실제-오디오로-혼합-모드-완주·레이아웃·접근성·외부-요청-없음-desktop/home.png": "911b923e3a68e8deb0063efd88ed43eb1ed6c597c14bd5b9ee71f6b5161b6d7b",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/browser-final/game-실제-오디오로-혼합-모드-완주·레이아웃·접근성·외부-요청-없음-desktop/results.png": "51d34a4717075e8b516b2f334d6a30affecea776568052cc9ccb9d7518ecbebf",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/browser-final/game-실제-오디오로-혼합-모드-완주·레이아웃·접근성·외부-요청-없음-mobile/game.png": "dd5e533443bace14fc248964570119b7d5eda3c77bd3d924cf9a3914fe23b1ae",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/browser-final/game-실제-오디오로-혼합-모드-완주·레이아웃·접근성·외부-요청-없음-mobile/home.png": "a17b7cad00be132583d28f91a938a83f69663365575e1a91d17013e6d7369002",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/browser-final/game-실제-오디오로-혼합-모드-완주·레이아웃·접근성·외부-요청-없음-mobile/results.png": "2f973a00b336f2373cac53c79ae56eb7760cf4eeaff019bde949a86b7e92665a",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/browser-final/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-desktop/normal-results.png": "85e8b066ac128239de765f001c3542e6905018f5deaec7abac4a985006fb03b5",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/browser-final/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-desktop/progress-1.png": "4d130e9ea43bdfcd7b35e300224d1b54f2875aa8c24d5551c6627b7abd8ce1fc",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/browser-final/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-desktop/progress-2.png": "4508a9c9e5c7533e9bf8afe6653fb4e1cd111de71141f0fb5404ab4c4b168ac9",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/browser-final/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-desktop/progress-3.png": "fde834aa2f803612ef9cc7a68cea0c8d5a225289a82321ba0a59063d151e66a0",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/browser-final/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-mobile/normal-results.png": "2f973a00b336f2373cac53c79ae56eb7760cf4eeaff019bde949a86b7e92665a",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/browser-final/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-mobile/progress-1.png": "f46672f555b73c705f838e6d1e1c3d25fe2f9ff29ad629903b85c9b129b83b3b",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/browser-final/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-mobile/progress-2.png": "c39155a3c4d4ae096cb73a892e8e86b40a2d4129c670a7b44d4b24daf8030983",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/browser-final/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-mobile/progress-3.png": "9d198c8b07ea84e9f3d9ebad03831ffd61b98672a9e637e7ee9e9eead959cf28",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/browser-final/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-desktop/copy-320-home.png": "872c362713d2013c7021770e3c222458f56ba0ee2ea2d21cf28bd28df8a6d613",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/browser-final/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-desktop/copy-320-results.png": "fdf263c2c84c64beab026e2899b4b93a7b71b4fcf28b796e5782bb5bc17c2c78",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/browser-final/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-desktop/copy-360-home.png": "a17b7cad00be132583d28f91a938a83f69663365575e1a91d17013e6d7369002",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/browser-final/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-desktop/copy-360-results.png": "b838f6bbb4392ef8aa941c66dec5bef6bb27f06acada06b67272be926db9d576",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/browser-final/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-mobile/copy-320-home.png": "872c362713d2013c7021770e3c222458f56ba0ee2ea2d21cf28bd28df8a6d613",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/browser-final/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-mobile/copy-320-results.png": "fdf263c2c84c64beab026e2899b4b93a7b71b4fcf28b796e5782bb5bc17c2c78",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/browser-final/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-mobile/copy-360-home.png": "a17b7cad00be132583d28f91a938a83f69663365575e1a91d17013e6d7369002",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/browser-final/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-mobile/copy-360-results.png": "b838f6bbb4392ef8aa941c66dec5bef6bb27f06acada06b67272be926db9d576",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/browser-final/rounds-시작-단계·SNR·3문항-완료→다음-단계·재생-중-종료·응답-후-종료·홈-초기화-desktop/early-exit.png": "47cf4429695d65ddad8d353aaa14dd5edcea3ef4c09c16b537d6a72c3e256533",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/browser-final/rounds-시작-단계·SNR·3문항-완료→다음-단계·재생-중-종료·응답-후-종료·홈-초기화-mobile/early-exit.png": "b838f6bbb4392ef8aa941c66dec5bef6bb27f06acada06b67272be926db9d576",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/browser-final/ui-한국어-제목은-단어-중간에서-줄바꿈하지-않는다-desktop/heading.png": "56fa16aa968018bcc3252168a0c9e7fd3b30d352cb831b29caed75329c96dac7",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/browser-final/ui-한국어-제목은-단어-중간에서-줄바꿈하지-않는다-mobile/heading.png": "8ae22f403cacecc1d4e59bfeb1faec5b1be1038f87e1bbd564a9e8b5065c693e",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/browser-integrity-summary.json": "89d3df877279baa9455676d34b6f02d6eb60901caf94f36cf62a7c5b2e6aa916",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/browser-results.json": "6b6e7ca9ced76714090c564284eec12ff6d93b7436d0d5ad3d8f420dd4309c94",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/chrome-sandbox.json": "103ba54e8346c1a65c7274097eb3e50bc1dc7d4916949e038b7e4ab81df38b38",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/collect-browser-evidence-v2.py": "fd0f0d56ee23f9f5c987552d0e1585e585948eff2185b3b28aa3cade2fe09ff7",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/collect-browser-evidence.py": "a7486722e7ff1b3048b716aca8ecdf60f2f9c0d79e9334af80fde621abbaa732",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/desktop-audio-integrity.json": "ccc86c0355e3b06a0cf58946b229cda41e3a2cdc2077f7cfcfd36a989dae552a",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/desktop-runtime-audit.json": "c03ec00f07f69455add8cdc404e8e4a972c511ed46059648a2a222199ec8a3c9",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/environment.json": "3ed6931c7a4aabb4ec546b5b12ddc722ccf855e689c815c3edc76194880660f5",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/finalize.py": "337f4d94da0c37240a00f08613dc510db89569869204953ada6b4ee5f3d7b73b",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/mobile-audio-integrity.json": "ccc86c0355e3b06a0cf58946b229cda41e3a2cdc2077f7cfcfd36a989dae552a",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/mobile-runtime-audit.json": "a266a21e4ec98d4c222cf2e416c705477f1698ab6460a3e9e8aa5a0f6162b129",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/npm-audit.json": "ea7bab3cc606a95eecdf538b0d02d3cf928bf0f3a1cfb1d2c8ddbe02846d5658",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/preservation.json": "cba79ba89a441a4172e534571ba878aaa14c8198060c51b0b45e77b0c7974b82",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/regenerate.py": "002b3ad51495d210b4bb66c2597141c28a18d11339bf806379fe5ee1be88d724",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/regeneration.json": "302a6ffb0ef85f009974db421a82297f93a5af261fa58af47b6c47fba85a59ea",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/run-browser.py": "da307521c9c533331ecd7d6ac08bfc738717c4bbcabe74c9e31d29e8ea626603",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/screen-final.py": "49dbb095773ba4d66404a7b15c125e799ce43933e1f21bbb77183dfb74ffa5ed",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/screenshots/desktop-early-exit.png": "47cf4429695d65ddad8d353aaa14dd5edcea3ef4c09c16b537d6a72c3e256533",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/screenshots/desktop-game.png": "ce74f9025a8a0d70d9792fb23c93efdd14aaa746e41711d4de4e622b384faf99",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/screenshots/desktop-normal-results.png": "51d34a4717075e8b516b2f334d6a30affecea776568052cc9ccb9d7518ecbebf",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/screenshots/desktop-start.png": "911b923e3a68e8deb0063efd88ed43eb1ed6c597c14bd5b9ee71f6b5161b6d7b",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/screenshots/mobile-early-exit.png": "b838f6bbb4392ef8aa941c66dec5bef6bb27f06acada06b67272be926db9d576",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/screenshots/mobile-game.png": "dd5e533443bace14fc248964570119b7d5eda3c77bd3d924cf9a3914fe23b1ae",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/screenshots/mobile-normal-results.png": "2f973a00b336f2373cac53c79ae56eb7760cf4eeaff019bde949a86b7e92665a",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/screenshots/mobile-start.png": "a17b7cad00be132583d28f91a938a83f69663365575e1a91d17013e6d7369002",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/selection-context.json": "2b1756533ad8f78f903162e16d0cba4eb5f0ba3fe386758bdac28fd5231641c4",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/validation-summary.json": "dab632d4d2937b79426d9b95ea2be48c7e289c2713fec6d965082a9ced02a9cb",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/verified-files-sha256.json": "695754706bb6bd80a33bfc0732929248a10a5f1f971cd0e4372ad47b4e9c1a87",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/verify-preservation.py": "8bb8b409422cdb330cd9571a89008d8a6243dd800238c479d1c420ab5dae2ae5",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/screen-final.py": "9aa0912152952179f0a541e7dfb06a893114a2d5361e266fd24fff567fb60183",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/screen-with-vad-json.py": "b2d7d4075b56f6d2bcd40966ccc0d787f20a5fb7b9322d9d0547fe1915a909eb",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/screen-with-vad.py": "14431705ea1fe016601377ffc481037257a9449fd00b4dc664ca12616d086d27",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/seek-diagnostics-followup.json": "c7b2a73048c2e4c1b20bddfda2a165bbaddd3896e0d63d959f6d37733a53b847",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/seek-diagnostics.json": "f4ee88bf21a717c0020cd8b79f769c590c0ff3716e4e75038ce618f1b6440dba",
|
||||||
|
".agent/evidence-v0.2.3/privacy-screening/validation-summary.json": "71d674ecbf115814feb21e93083c97a49067e280e9f5be700f1396e69ac8af43",
|
||||||
|
".agent/evidence-v0.2.3/rain-download.log": "701d47a1c31b5232d682641f05d71c01dc908b03b58ed1bc270a27ba9b32fea0",
|
||||||
|
".agent/evidence-v0.2.3/review-fixes/01-ui-GREEN-02.log": "b64774bcb477aa04981b81d7764760202d0d3be110eeaa557623c3e519f9f157",
|
||||||
|
".agent/evidence-v0.2.3/review-fixes/01-ui-GREEN.log": "ea5aff1ded1cd2dbea86f7d9e7aa7b0d69770706c98f3786722709d99aa9b5ee",
|
||||||
|
".agent/evidence-v0.2.3/review-fixes/01-ui-RED.log": "b0323edc4c9c13fcfd373185bd09f469b2d182fe0f4fb57cb504c228fca575b2",
|
||||||
|
".agent/evidence-v0.2.3/review-fixes/02-browser-GREEN.log": "1ae7f17b05363b418f42199c27d940cd5441a7e933ea6b069ee7932b89145662",
|
||||||
|
".agent/evidence-v0.2.3/review-fixes/02-browser-RED.log": "f8a13650707bfe2b40458eb315f481cd61a3e5289f4b7aa0a4c59a3fbcebaabe",
|
||||||
|
".agent/evidence-v0.2.3/review-fixes/02-progress-pixels-GREEN.log": "66a53270ec9e2a28a07ba3883156085399c1a55959c3e8bb0b4a9c26648e1f46",
|
||||||
|
".agent/evidence-v0.2.3/review-fixes/02-progress-pixels-RED.log": "f6b7cec9c22947edc85b438ea6852884a6a6851f40c0fbd53371839942bc97e9",
|
||||||
|
".agent/evidence-v0.2.3/review-fixes/02-ui-build.log": "f147abc7cc99e466f4fb5d7414db343e8d3bb032c14ed85b8f4e85e98b83146c",
|
||||||
|
".agent/evidence-v0.2.3/review-fixes/03-voice-inventory-GREEN.log": "e37b30669c6e20a575cca867cdb5e0526e1152b256a8d6e63c37c6186da48e49",
|
||||||
|
".agent/evidence-v0.2.3/review-fixes/03-voice-inventory-RED.log": "dad1ecd96671351fc95b481609a1eb2b124e377875813839e26da87cb781be60",
|
||||||
|
".agent/evidence-v0.2.3/review-fixes/04-source-plan-GREEN.log": "f0186fee755ec5a6de817f1624ce3bc183c5869e052340980e0015baeef06951",
|
||||||
|
".agent/evidence-v0.2.3/review-fixes/04-source-plan-RED.log": "24e5cc322d42d76c16e203527ef26e8b7b3da527da6f474078cd6ca23e8cb49a",
|
||||||
|
".agent/evidence-v0.2.3/review-fixes/05-source-guard-GREEN.log": "02c54871fb1cfb26ea95314dfdc4fe8fa6faaaf6a7e19a2c0fb67a75ee0dd204",
|
||||||
|
".agent/evidence-v0.2.3/review-fixes/05-source-guard-RED.log": "d0be14c43c6dbf4227b31721f6cb5ac66483759e4bd8da59f01b1df14b08d30f",
|
||||||
|
".agent/evidence-v0.2.3/review-fixes/06-atomic-GREEN.log": "26c5dd649f0c0f479b42ba74f0e9cce2fb859f7e6b5823b4a02771fb7074d12f",
|
||||||
|
".agent/evidence-v0.2.3/review-fixes/06-atomic-RED.log": "991397dd9a5f32440286f2bb6a3700b9c58668ebfecceffab0caa7164f69dc38",
|
||||||
|
".agent/evidence-v0.2.3/review-fixes/07-notice-path-GREEN.log": "fcd49f3a5c9808120843e11fcb229ff7fbb12c7280e27ef6a0632357ea05dd34",
|
||||||
|
".agent/evidence-v0.2.3/review-fixes/07-notice-path-RED.log": "183bc30494bd1469cc06715835bff326b7032c6c9fb66ed737d7442acf07ac78",
|
||||||
|
".agent/evidence-v0.2.3/review-fixes/08-09-build-GREEN.log": "1a5db16769387ebbc54c55f62a78b28b5fd29cfdbcc4d480468386b0e11cac87",
|
||||||
|
".agent/evidence-v0.2.3/review-fixes/08-notice-verifier-RED.log": "854524d46b7eb1c21e9ca71b60e6521c81f8cc5f9d88fef3c3d5c43a0a4f7604",
|
||||||
|
".agent/evidence-v0.2.3/review-fixes/09-build-plan-RED.log": "90c91a0fbe5e1e94ea6d0038e5e4a8d03b9a3d6b1351732b5fdc57e136560166",
|
||||||
|
".agent/evidence-v0.2.3/review-fixes/10-atomic-additional.log": "111dc0d42b1ce8bc943e8f703e299dfab403dd404a052b71d2f98135c0bdda4f",
|
||||||
|
".agent/evidence-v0.2.3/review-fixes/11-audit.log": "a04f4ab13e5181be11c7873e3049d1261dd797289ac0fcb1d91717a851eb51dd",
|
||||||
|
".agent/evidence-v0.2.3/review-fixes/11-build.log": "eb8475c95e82d05326e49e21a456a55a8a696614a51a42df069f483fdadbc834",
|
||||||
|
".agent/evidence-v0.2.3/review-fixes/11-lint.log": "72a25d6d1240a619ca103674b65757f4932f3001927ffd196789a6485045a947",
|
||||||
|
".agent/evidence-v0.2.3/review-fixes/11-python.log": "e8e018fc7a14b6eeece5f2b88da0b36bbdd6d351fcced327acbf06e1b0e11e6c",
|
||||||
|
".agent/evidence-v0.2.3/review-fixes/11-unit.log": "dcbfe3302e8e45b1b3a1a5c1e5edf107349427ac57fb0292a78cb217142eaaa8",
|
||||||
|
".agent/evidence-v0.2.3/review-fixes/12-browser.log": "67f709fec8bab3b19fcbba0f04f919cf784cbb4fd1ac508f4f704835787c1481",
|
||||||
|
".agent/evidence-v0.2.3/review-fixes/13-diff-check.log": "c39401a8c3e072c068daf658cbf95a8518a8186cb92da02cc6ac067de4ee0b6c",
|
||||||
|
".agent/evidence-v0.2.3/review-fixes/14-final-review.log": "0f2c5d1943a3a8c3d3cc02d2cd5d8c70c2d3b2ef080ec81fb839edadb47b6b82",
|
||||||
|
".agent/evidence-v0.2.3/review-fixes/baseline-sha256.json": "3e59389b32cdeafc2dcec3cb846a1d141d13935e09ea23c49a8fa119c1444704",
|
||||||
|
".agent/evidence-v0.2.3/review-fixes/browser-final/.last-run.json": "91d1c43004802cd49950d78eb11c8fa7d05da8ffffe219a8b13b2f561bc00903",
|
||||||
|
".agent/evidence-v0.2.3/review-fixes/browser-final/audio-음성·현장음-109개-versioned-WAV를-실제-Chrome에서-해시·디코드-검증한다-desktop/attachments/109-versioned-WAV-integrity-7406877c173ee35afff758c9c5f1645f0dc02fa5.json": "3d6defdb7ad3b8d4d7949ffe476f4ebf685e5dcc1ad0868b98bb4e639b6dcadb",
|
||||||
|
".agent/evidence-v0.2.3/review-fixes/browser-final/audio-음성·현장음-109개-versioned-WAV를-실제-Chrome에서-해시·디코드-검증한다-desktop/browser-audio-integrity.json": "3d6defdb7ad3b8d4d7949ffe476f4ebf685e5dcc1ad0868b98bb4e639b6dcadb",
|
||||||
|
".agent/evidence-v0.2.3/review-fixes/browser-final/audio-음성·현장음-109개-versioned-WAV를-실제-Chrome에서-해시·디코드-검증한다-mobile/attachments/109-versioned-WAV-integrity-9b9f8223b6524087ac395eb7a96ac0d386fbcb95.json": "3d6defdb7ad3b8d4d7949ffe476f4ebf685e5dcc1ad0868b98bb4e639b6dcadb",
|
||||||
|
".agent/evidence-v0.2.3/review-fixes/browser-final/audio-음성·현장음-109개-versioned-WAV를-실제-Chrome에서-해시·디코드-검증한다-mobile/browser-audio-integrity.json": "3d6defdb7ad3b8d4d7949ffe476f4ebf685e5dcc1ad0868b98bb4e639b6dcadb",
|
||||||
|
".agent/evidence-v0.2.3/review-fixes/browser-final/game-실제-오디오로-혼합-모드-완주·레이아웃·접근성·외부-요청-없음-desktop/game.png": "17c22581f74ddcd78770ebfbb75f0041298baab336c17cd5b37ff5e29b8b6a7d",
|
||||||
|
".agent/evidence-v0.2.3/review-fixes/browser-final/game-실제-오디오로-혼합-모드-완주·레이아웃·접근성·외부-요청-없음-desktop/home.png": "911b923e3a68e8deb0063efd88ed43eb1ed6c597c14bd5b9ee71f6b5161b6d7b",
|
||||||
|
".agent/evidence-v0.2.3/review-fixes/browser-final/game-실제-오디오로-혼합-모드-완주·레이아웃·접근성·외부-요청-없음-desktop/results.png": "51d34a4717075e8b516b2f334d6a30affecea776568052cc9ccb9d7518ecbebf",
|
||||||
|
".agent/evidence-v0.2.3/review-fixes/browser-final/game-실제-오디오로-혼합-모드-완주·레이아웃·접근성·외부-요청-없음-mobile/game.png": "13291f8ba632d1962611e25c99f73fa3d7732f7b8ef3a9222a5ddd5082576353",
|
||||||
|
".agent/evidence-v0.2.3/review-fixes/browser-final/game-실제-오디오로-혼합-모드-완주·레이아웃·접근성·외부-요청-없음-mobile/home.png": "a17b7cad00be132583d28f91a938a83f69663365575e1a91d17013e6d7369002",
|
||||||
|
".agent/evidence-v0.2.3/review-fixes/browser-final/game-실제-오디오로-혼합-모드-완주·레이아웃·접근성·외부-요청-없음-mobile/results.png": "2f973a00b336f2373cac53c79ae56eb7760cf4eeaff019bde949a86b7e92665a",
|
||||||
|
".agent/evidence-v0.2.3/review-fixes/browser-final/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-desktop/normal-results.png": "85e8b066ac128239de765f001c3542e6905018f5deaec7abac4a985006fb03b5",
|
||||||
|
".agent/evidence-v0.2.3/review-fixes/browser-final/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-desktop/progress-1.png": "4d130e9ea43bdfcd7b35e300224d1b54f2875aa8c24d5551c6627b7abd8ce1fc",
|
||||||
|
".agent/evidence-v0.2.3/review-fixes/browser-final/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-desktop/progress-2.png": "4508a9c9e5c7533e9bf8afe6653fb4e1cd111de71141f0fb5404ab4c4b168ac9",
|
||||||
|
".agent/evidence-v0.2.3/review-fixes/browser-final/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-desktop/progress-3.png": "fde834aa2f803612ef9cc7a68cea0c8d5a225289a82321ba0a59063d151e66a0",
|
||||||
|
".agent/evidence-v0.2.3/review-fixes/browser-final/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-mobile/normal-results.png": "2f973a00b336f2373cac53c79ae56eb7760cf4eeaff019bde949a86b7e92665a",
|
||||||
|
".agent/evidence-v0.2.3/review-fixes/browser-final/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-mobile/progress-1.png": "f46672f555b73c705f838e6d1e1c3d25fe2f9ff29ad629903b85c9b129b83b3b",
|
||||||
|
".agent/evidence-v0.2.3/review-fixes/browser-final/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-mobile/progress-2.png": "c39155a3c4d4ae096cb73a892e8e86b40a2d4129c670a7b44d4b24daf8030983",
|
||||||
|
".agent/evidence-v0.2.3/review-fixes/browser-final/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-mobile/progress-3.png": "9d198c8b07ea84e9f3d9ebad03831ffd61b98672a9e637e7ee9e9eead959cf28",
|
||||||
|
".agent/evidence-v0.2.3/review-fixes/browser-final/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-desktop/copy-320-home.png": "872c362713d2013c7021770e3c222458f56ba0ee2ea2d21cf28bd28df8a6d613",
|
||||||
|
".agent/evidence-v0.2.3/review-fixes/browser-final/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-desktop/copy-320-results.png": "fdf263c2c84c64beab026e2899b4b93a7b71b4fcf28b796e5782bb5bc17c2c78",
|
||||||
|
".agent/evidence-v0.2.3/review-fixes/browser-final/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-desktop/copy-360-home.png": "a17b7cad00be132583d28f91a938a83f69663365575e1a91d17013e6d7369002",
|
||||||
|
".agent/evidence-v0.2.3/review-fixes/browser-final/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-desktop/copy-360-results.png": "b838f6bbb4392ef8aa941c66dec5bef6bb27f06acada06b67272be926db9d576",
|
||||||
|
".agent/evidence-v0.2.3/review-fixes/browser-final/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-mobile/copy-320-home.png": "872c362713d2013c7021770e3c222458f56ba0ee2ea2d21cf28bd28df8a6d613",
|
||||||
|
".agent/evidence-v0.2.3/review-fixes/browser-final/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-mobile/copy-320-results.png": "fdf263c2c84c64beab026e2899b4b93a7b71b4fcf28b796e5782bb5bc17c2c78",
|
||||||
|
".agent/evidence-v0.2.3/review-fixes/browser-final/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-mobile/copy-360-home.png": "a17b7cad00be132583d28f91a938a83f69663365575e1a91d17013e6d7369002",
|
||||||
|
".agent/evidence-v0.2.3/review-fixes/browser-final/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-mobile/copy-360-results.png": "b838f6bbb4392ef8aa941c66dec5bef6bb27f06acada06b67272be926db9d576",
|
||||||
|
".agent/evidence-v0.2.3/review-fixes/browser-final/rounds-시작-단계·SNR·3문항-완료→다음-단계·재생-중-종료·응답-후-종료·홈-초기화-desktop/early-exit.png": "47cf4429695d65ddad8d353aaa14dd5edcea3ef4c09c16b537d6a72c3e256533",
|
||||||
|
".agent/evidence-v0.2.3/review-fixes/browser-final/rounds-시작-단계·SNR·3문항-완료→다음-단계·재생-중-종료·응답-후-종료·홈-초기화-mobile/early-exit.png": "b838f6bbb4392ef8aa941c66dec5bef6bb27f06acada06b67272be926db9d576",
|
||||||
|
".agent/evidence-v0.2.3/review-fixes/browser-final/ui-한국어-제목은-단어-중간에서-줄바꿈하지-않는다-desktop/heading.png": "56fa16aa968018bcc3252168a0c9e7fd3b30d352cb831b29caed75329c96dac7",
|
||||||
|
".agent/evidence-v0.2.3/review-fixes/browser-final/ui-한국어-제목은-단어-중간에서-줄바꿈하지-않는다-mobile/heading.png": "8ae22f403cacecc1d4e59bfeb1faec5b1be1038f87e1bbd564a9e8b5065c693e",
|
||||||
|
".agent/evidence-v0.2.3/review-fixes/browser-green/.last-run.json": "91d1c43004802cd49950d78eb11c8fa7d05da8ffffe219a8b13b2f561bc00903",
|
||||||
|
".agent/evidence-v0.2.3/review-fixes/browser-green/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-desktop/normal-results.png": "85e8b066ac128239de765f001c3542e6905018f5deaec7abac4a985006fb03b5",
|
||||||
|
".agent/evidence-v0.2.3/review-fixes/browser-green/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-desktop/progress-1.png": "4d130e9ea43bdfcd7b35e300224d1b54f2875aa8c24d5551c6627b7abd8ce1fc",
|
||||||
|
".agent/evidence-v0.2.3/review-fixes/browser-green/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-desktop/progress-2.png": "4508a9c9e5c7533e9bf8afe6653fb4e1cd111de71141f0fb5404ab4c4b168ac9",
|
||||||
|
".agent/evidence-v0.2.3/review-fixes/browser-green/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-desktop/progress-3.png": "fde834aa2f803612ef9cc7a68cea0c8d5a225289a82321ba0a59063d151e66a0",
|
||||||
|
".agent/evidence-v0.2.3/review-fixes/browser-green/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-mobile/normal-results.png": "2f973a00b336f2373cac53c79ae56eb7760cf4eeaff019bde949a86b7e92665a",
|
||||||
|
".agent/evidence-v0.2.3/review-fixes/browser-green/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-mobile/progress-1.png": "f46672f555b73c705f838e6d1e1c3d25fe2f9ff29ad629903b85c9b129b83b3b",
|
||||||
|
".agent/evidence-v0.2.3/review-fixes/browser-green/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-mobile/progress-2.png": "c39155a3c4d4ae096cb73a892e8e86b40a2d4129c670a7b44d4b24daf8030983",
|
||||||
|
".agent/evidence-v0.2.3/review-fixes/browser-green/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-mobile/progress-3.png": "9d198c8b07ea84e9f3d9ebad03831ffd61b98672a9e637e7ee9e9eead959cf28",
|
||||||
|
".agent/evidence-v0.2.3/review-fixes/browser-green/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-desktop/copy-320-home.png": "872c362713d2013c7021770e3c222458f56ba0ee2ea2d21cf28bd28df8a6d613",
|
||||||
|
".agent/evidence-v0.2.3/review-fixes/browser-green/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-desktop/copy-320-results.png": "fdf263c2c84c64beab026e2899b4b93a7b71b4fcf28b796e5782bb5bc17c2c78",
|
||||||
|
".agent/evidence-v0.2.3/review-fixes/browser-green/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-desktop/copy-360-home.png": "a17b7cad00be132583d28f91a938a83f69663365575e1a91d17013e6d7369002",
|
||||||
|
".agent/evidence-v0.2.3/review-fixes/browser-green/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-desktop/copy-360-results.png": "b838f6bbb4392ef8aa941c66dec5bef6bb27f06acada06b67272be926db9d576",
|
||||||
|
".agent/evidence-v0.2.3/review-fixes/browser-green/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-mobile/copy-320-home.png": "872c362713d2013c7021770e3c222458f56ba0ee2ea2d21cf28bd28df8a6d613",
|
||||||
|
".agent/evidence-v0.2.3/review-fixes/browser-green/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-mobile/copy-320-results.png": "fdf263c2c84c64beab026e2899b4b93a7b71b4fcf28b796e5782bb5bc17c2c78",
|
||||||
|
".agent/evidence-v0.2.3/review-fixes/browser-green/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-mobile/copy-360-home.png": "a17b7cad00be132583d28f91a938a83f69663365575e1a91d17013e6d7369002",
|
||||||
|
".agent/evidence-v0.2.3/review-fixes/browser-green/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-mobile/copy-360-results.png": "b838f6bbb4392ef8aa941c66dec5bef6bb27f06acada06b67272be926db9d576",
|
||||||
|
".agent/evidence-v0.2.3/review-fixes/browser-red/.last-run.json": "78fe937fdabae861b58404e69d2faec459c97fbe435f74222101037f0b9a3315",
|
||||||
|
".agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-desktop/error-context.md": "fa4b05c6fb8ec98c57ff96e2f0d568aeb7ed027d8763712e767e50e13b25b31c",
|
||||||
|
".agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-desktop/normal-results.png": "d3caf1e2d8625d6020e1e9061143b38843fa5698e7316b65a73569cce6026b73",
|
||||||
|
".agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-desktop/progress-1.png": "e4f413e3dd1379a913a1d94ec5f084f607a80fe375382eb74cee2ac515aa8590",
|
||||||
|
".agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-desktop/progress-2.png": "4d130e9ea43bdfcd7b35e300224d1b54f2875aa8c24d5551c6627b7abd8ce1fc",
|
||||||
|
".agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-desktop/progress-3.png": "4508a9c9e5c7533e9bf8afe6653fb4e1cd111de71141f0fb5404ab4c4b168ac9",
|
||||||
|
".agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-desktop/trace.zip": "f415eaae383b21d1fd059b3f99b2a1ec962a34facd2959406985e08710bf7a54",
|
||||||
|
".agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-mobile/error-context.md": "1a289b42d134b84701446f0bfe2f1e462121412930595617023c1cf93e2e0c40",
|
||||||
|
".agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-mobile/normal-results.png": "5eccd53853c27a7c1385f1219b0a9bb7af60070fbdd1469ef3265e40377f3eaa",
|
||||||
|
".agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-mobile/progress-1.png": "3597007bfc13a2a9dcb9477ce836b68cccb78f55957f1f460431b67fe90e0f13",
|
||||||
|
".agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-mobile/progress-2.png": "f46672f555b73c705f838e6d1e1c3d25fe2f9ff29ad629903b85c9b129b83b3b",
|
||||||
|
".agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-mobile/progress-3.png": "c39155a3c4d4ae096cb73a892e8e86b40a2d4129c670a7b44d4b24daf8030983",
|
||||||
|
".agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-mobile/trace.zip": "022a0078453d25254bb6bb4af59fbd3696abd5acaaee750343adea3cd9b8aa0d",
|
||||||
|
".agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-desktop/copy-320-home.png": "872c362713d2013c7021770e3c222458f56ba0ee2ea2d21cf28bd28df8a6d613",
|
||||||
|
".agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-desktop/copy-320-results.png": "b1dae69c908b9911d536d3e41553447bc71908a035f28bbc1f885d1def337b92",
|
||||||
|
".agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-desktop/copy-360-home.png": "c04abd43e93e46fde7e1591bde24a3073d584226e93ba5661bac1b5cd78a4695",
|
||||||
|
".agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-desktop/copy-360-results.png": "5e2ef07c6c3b7672e0aa82f248a5a245d60a10f86633fab2b2dd45ecff81d7fa",
|
||||||
|
".agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-desktop/error-context.md": "d186519b7904a6ef3096e49c18e5e410528df127a7de409e237e7571d8a89f1b",
|
||||||
|
".agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-desktop/trace.zip": "6d2abede66a4b0784accca9a0fea36ea71cabb138855e84343a2cb7f64cdab71",
|
||||||
|
".agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-mobile/copy-320-home.png": "872c362713d2013c7021770e3c222458f56ba0ee2ea2d21cf28bd28df8a6d613",
|
||||||
|
".agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-mobile/copy-320-results.png": "b1dae69c908b9911d536d3e41553447bc71908a035f28bbc1f885d1def337b92",
|
||||||
|
".agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-mobile/copy-360-home.png": "c04abd43e93e46fde7e1591bde24a3073d584226e93ba5661bac1b5cd78a4695",
|
||||||
|
".agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-mobile/copy-360-results.png": "5e2ef07c6c3b7672e0aa82f248a5a245d60a10f86633fab2b2dd45ecff81d7fa",
|
||||||
|
".agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-mobile/error-context.md": "d186519b7904a6ef3096e49c18e5e410528df127a7de409e237e7571d8a89f1b",
|
||||||
|
".agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-mobile/trace.zip": "8ced8d12bbceb962456728ce1e2fe7c687503594ab0e14774f13368705b3ac6f",
|
||||||
|
".agent/evidence-v0.2.3/review-fixes/browser-results.json": "81cb42ae097d36878f0263e41f3a9e4fb2f5f2394d4331332517818b434ba521",
|
||||||
|
".agent/evidence-v0.2.3/review-fixes/chrome-sandbox.json": "915067209786cb6fe2c83e90fb8f9d9d9b3f7af876786819a9a54ee6a96aab6d",
|
||||||
|
".agent/evidence-v0.2.3/review-fixes/desktop-audio-integrity.json": "3d6defdb7ad3b8d4d7949ffe476f4ebf685e5dcc1ad0868b98bb4e639b6dcadb",
|
||||||
|
".agent/evidence-v0.2.3/review-fixes/desktop-runtime-audit.json": "61b9c48518a9cad75f53b8084ddf18910d6e028b2c8696cdda338a37f5bc283c",
|
||||||
|
".agent/evidence-v0.2.3/review-fixes/environment.json": "924a9c62b6f0da242b09c9374f6e9f5ef75b09a5f7c0eb8776ad1e701b31436e",
|
||||||
|
".agent/evidence-v0.2.3/review-fixes/mobile-audio-integrity.json": "3d6defdb7ad3b8d4d7949ffe476f4ebf685e5dcc1ad0868b98bb4e639b6dcadb",
|
||||||
|
".agent/evidence-v0.2.3/review-fixes/mobile-runtime-audit.json": "9059b42becd1dc1a3923053a5792c83ca9574f185b9a82c1cf1f6aa48296a055",
|
||||||
|
".agent/evidence-v0.2.3/review-fixes/npm-audit.json": "ea7bab3cc606a95eecdf538b0d02d3cf928bf0f3a1cfb1d2c8ddbe02846d5658",
|
||||||
|
".agent/evidence-v0.2.3/review-fixes/preservation.json": "5057edde3be25fb79d8dcbcaf54eaee315f40b4852064fc6509814da2e70b7bf",
|
||||||
|
".agent/evidence-v0.2.3/review-fixes/screenshots/desktop-early-exit.png": "47cf4429695d65ddad8d353aaa14dd5edcea3ef4c09c16b537d6a72c3e256533",
|
||||||
|
".agent/evidence-v0.2.3/review-fixes/screenshots/desktop-game.png": "17c22581f74ddcd78770ebfbb75f0041298baab336c17cd5b37ff5e29b8b6a7d",
|
||||||
|
".agent/evidence-v0.2.3/review-fixes/screenshots/desktop-normal-results.png": "85e8b066ac128239de765f001c3542e6905018f5deaec7abac4a985006fb03b5",
|
||||||
|
".agent/evidence-v0.2.3/review-fixes/screenshots/desktop-progress-1.png": "4d130e9ea43bdfcd7b35e300224d1b54f2875aa8c24d5551c6627b7abd8ce1fc",
|
||||||
|
".agent/evidence-v0.2.3/review-fixes/screenshots/desktop-progress-2.png": "4508a9c9e5c7533e9bf8afe6653fb4e1cd111de71141f0fb5404ab4c4b168ac9",
|
||||||
|
".agent/evidence-v0.2.3/review-fixes/screenshots/desktop-progress-3.png": "fde834aa2f803612ef9cc7a68cea0c8d5a225289a82321ba0a59063d151e66a0",
|
||||||
|
".agent/evidence-v0.2.3/review-fixes/screenshots/desktop-start.png": "911b923e3a68e8deb0063efd88ed43eb1ed6c597c14bd5b9ee71f6b5161b6d7b",
|
||||||
|
".agent/evidence-v0.2.3/review-fixes/screenshots/mobile-early-exit.png": "b838f6bbb4392ef8aa941c66dec5bef6bb27f06acada06b67272be926db9d576",
|
||||||
|
".agent/evidence-v0.2.3/review-fixes/screenshots/mobile-game.png": "13291f8ba632d1962611e25c99f73fa3d7732f7b8ef3a9222a5ddd5082576353",
|
||||||
|
".agent/evidence-v0.2.3/review-fixes/screenshots/mobile-normal-results.png": "2f973a00b336f2373cac53c79ae56eb7760cf4eeaff019bde949a86b7e92665a",
|
||||||
|
".agent/evidence-v0.2.3/review-fixes/screenshots/mobile-progress-1.png": "f46672f555b73c705f838e6d1e1c3d25fe2f9ff29ad629903b85c9b129b83b3b",
|
||||||
|
".agent/evidence-v0.2.3/review-fixes/screenshots/mobile-progress-2.png": "c39155a3c4d4ae096cb73a892e8e86b40a2d4129c670a7b44d4b24daf8030983",
|
||||||
|
".agent/evidence-v0.2.3/review-fixes/screenshots/mobile-progress-3.png": "9d198c8b07ea84e9f3d9ebad03831ffd61b98672a9e637e7ee9e9eead959cf28",
|
||||||
|
".agent/evidence-v0.2.3/review-fixes/screenshots/mobile-start.png": "a17b7cad00be132583d28f91a938a83f69663365575e1a91d17013e6d7369002",
|
||||||
|
".agent/evidence-v0.2.3/review-fixes/source-reverification.json": "f92d3d9a6d613eb7432b59c5587f39be4c23090566ae0f01bd0bd2fe2d25feaa",
|
||||||
|
".agent/evidence-v0.2.3/review-fixes/verified-code-sha256.json": "3002de6366d74baa493d28fa1009b04c09926d379d67da44e077cee3f6ec93cd",
|
||||||
|
".agent/evidence-v0.2.3/secret-scan.json": "8928209f4e2bef083901f845ae3fd8e949c0a266cefa15ff4563eef337a008d2",
|
||||||
|
".agent/evidence-v0.2.3/source-downloads.log": "c49692acca2fddc1cdbea155ef0ae6191a9f7eeee3508d3bf608a71bec349e46",
|
||||||
|
".agent/evidence-v0.2.3/source-integrity.json": "61c080d80081a3fdc9b2c78a4183805df6293184add2bca9534aee8d82bd5b96",
|
||||||
|
".agent/evidence/01-content-green.log": "5585acd257b49225218835acd69a1d240c7737d12dba62949f31a5b7c1c9ed2a",
|
||||||
|
".agent/evidence/01-content-red.log": "0f28fe2ae2c4669a52ba2fc15bfa6285e4922474dc2b2571098b522679948e12",
|
||||||
|
".agent/evidence/02-game-green.log": "5ca5895f8a09f4e9de7a846bf9ab37fb3715623e8e7654dab095505c097fc0c7",
|
||||||
|
".agent/evidence/02-game-red.log": "78468ee5c25c1685f3613926f636b6fb4569227533feda3547afc6b8123d6452",
|
||||||
|
".agent/evidence/03-dsp-green.log": "d3d08683a1426b845a2e987572861b82b3ac978b8c352991950c0f32a473d3de",
|
||||||
|
".agent/evidence/03-dsp-intermediate.log": "084a52294f718718256eb1516048a672d045a5f7dcb5d11c646092d29efbab58",
|
||||||
|
".agent/evidence/03-dsp-red.log": "bacf42e5c808d32702b9bcd30523d1fcf17d5ff75b281233d9e84f33b6e42589",
|
||||||
|
".agent/evidence/04-audio-green.log": "d48c93fa7d32315ed4f719dee19222e7398bc4c4bceb8cf345e0e221a9ac89d8",
|
||||||
|
".agent/evidence/04-audio-red.log": "58bbf8eae572f83e408dd101eac738a5f6963550e21c8265f42a7eeba18be7a7",
|
||||||
|
".agent/evidence/05-assets-red.log": "04388acb098f7dabe9a35783b496075ee7c39757d3fde5361c9ac080188ac371",
|
||||||
|
".agent/evidence/06-ui-05-assets-green.log": "ced2ad738cda673b24308dcb9d99d59e3ae918709eeb32de359d6ab1022133e2",
|
||||||
|
".agent/evidence/06-ui-intermediate.log": "3295b3ae691dadb8feb7f0aaf604a1aa56cbfae27b5dbdd486cb5645f5edabe9",
|
||||||
|
".agent/evidence/06-ui-red.log": "1f1ed6bd440af22f5abf59e4be194f969bee1d115d436a155d879d8cffddb747",
|
||||||
|
".agent/evidence/07-build-green.log": "ec98087d20a68c5b81c6c23406316f1e5f19c6124498e1fc005d04bb78894a57",
|
||||||
|
".agent/evidence/07-build-red.log": "138802de7bc67c1535668efe7a915424a70d5d7994acb7f366a139e89c1da77f",
|
||||||
|
".agent/evidence/08-rule-green.log": "91b7ce3fda181fbe51cbe4e6debb61dd44dd55226dcfa81ed73559ba76811f3f",
|
||||||
|
".agent/evidence/08-rule-red.log": "2cc1854cf6a4b9e8d53a7a36b1dde1fb6c6970b89f841b9e8f404e6e42bb929e",
|
||||||
|
".agent/evidence/09-ime-green.log": "e5d5d1cfa2b6db724ded97d5f3309a517bcf637d9b2b417e9110dc9da0a48d72",
|
||||||
|
".agent/evidence/09-ime-red.log": "10e5f9f99609044c768cd338df0d574a06a7442e0debe0e61ca16a6b5873adf3",
|
||||||
|
".agent/evidence/10-ime-reset-green.log": "e12761b3a2814a79d1448e7452474a086bf371921287718eb72dd9b0f6b8fc82",
|
||||||
|
".agent/evidence/10-ime-reset-red.log": "f6cb7c1724b8f9c410385e9970051577c03527fb7e719f43a77c967ca08ef18f",
|
||||||
|
".agent/evidence/11-provenance-green.log": "54dcc417b97f82422c5c3e0ae11caa1f15a60412853ea1dc0152d15031bcd935",
|
||||||
|
".agent/evidence/11-provenance-red.log": "e69fa7989223e659c16b8030f8668e562ad5b0daa060fbb1c9eff41a37fd56fd",
|
||||||
|
".agent/evidence/12-ime-replay-green.log": "a93d9f16c7d81ed5e9a7c0b70ffee1e393d2943ddf3149a5bb115c5517327c44",
|
||||||
|
".agent/evidence/12-ime-replay-red.log": "8cf5dab06d93cc544c21276ee633829f8b137b4b6d7c5fe47aadcad6fc2afb71",
|
||||||
|
".agent/evidence/13-heading-build-after.log": "19829ac264f97aa023baf7d5e1fd429343272f3bd952e8b6dfb9eec0f594b453",
|
||||||
|
".agent/evidence/13-heading-build-before.log": "646d197d2ef93c19fec4719e20297de1b22eff54f3e6155ba2125fd3dd372c46",
|
||||||
|
".agent/evidence/13-heading-green.log": "d59fa8546083e9d371c7a552287f27bf3acd572bd0cce3da8eba860da5c05880",
|
||||||
|
".agent/evidence/13-heading-red.log": "33acc2838786a87b8ecc170a1ac0a9d7521daf8e5b9aed2195e76e45ea327f76",
|
||||||
|
".agent/evidence/14-snr-browser-green.log": "fcb82296e9af4b96112fae0bbb77c6ba41230c117021243e85916ae1130a462d",
|
||||||
|
".agent/evidence/14-snr-browser-red.log": "36298e5bb1f45a69b0ca75e5cbce85ee1455c4485759670268fbbcf55bacd4d4",
|
||||||
|
".agent/evidence/14-snr-build.log": "1e9ce36a48904a58195f9d1c2d9ca6cf2895fcb8bd0b5ab9b72f76e92c6b2585",
|
||||||
|
".agent/evidence/14-snr-green.log": "ae74e57cea20841299a8c1ee5eaf60efad34bda697339f45527cdec83578e6df",
|
||||||
|
".agent/evidence/14-snr-red.log": "b39bdbd8815d0d9cfcedc41c61124afece2011ea6c6c250b0ee0139eae7e9edd",
|
||||||
|
".agent/evidence/15-volume-browser-green.log": "aeccd5f13eb9db4062cbf2c70eee332d0c39540d580e113d0a79a899b2ef02de",
|
||||||
|
".agent/evidence/15-volume-browser-red.log": "84954280c1729703f9e9c2680c8933c3b0752b19fb9c3562e7dbf2ea1b4a548c",
|
||||||
|
".agent/evidence/15-volume-build.log": "2767b794124804b3447f529eef025e2530975fcc506e1cbe8994acf8243e6ba8",
|
||||||
|
".agent/evidence/15-volume-green.log": "0f9a90923f4fdc477c8f2436653eb2bf0e4b251bcb52e795701309ba14f23c7d",
|
||||||
|
".agent/evidence/15-volume-red.log": "9beae6305080cd0d869bf3fd2093beb6e2e25e5424223aa7e4ad4db96954f37e",
|
||||||
|
".agent/evidence/16-copy-green.log": "dacbdbab5d4af2b6e19eb4e0502a70720aac9fb6cf3b9d6dfdc73a5bf7edabfe",
|
||||||
|
".agent/evidence/16-copy-red.log": "ebe3d7c86938d33d7f1a4818b18c7e94ab8feb18bee099fcb535a93d8083861b",
|
||||||
|
".agent/evidence/17-spacing-green.log": "8ab85362ceadcdfecf4f7b1e95abfb4237e15018692e14f937be90265c351b11",
|
||||||
|
".agent/evidence/17-spacing-red.log": "12db8083cd8627a81a52cd32358780a3c2257cb3bd702350b190b39226f6550f",
|
||||||
|
".agent/evidence/18-literal-green.log": "878a8d788a8cedbf652fe0e819fe482099249a52ae7b5cc3d8826e64b32c6377",
|
||||||
|
".agent/evidence/18-literal-red.log": "ad23ae7be3d9aab83907c12849012a01f9d1b12e5a174c3acede89817a74d2d2",
|
||||||
|
".agent/evidence/19-notices-green.log": "efc51aca0738f3cb5264ec3c3ad0d17bb150d685f5fdb5e200bc1eedc0e3c02b",
|
||||||
|
".agent/evidence/19-notices-red.log": "8f34c583cb8563803828d72fe56622d84bcf59a9541d983d6c0b705225955794",
|
||||||
|
".agent/evidence/20-audio-generate.log": "f864fc266f7ca50c600457399f198a77949e9ee1601b0d2fc19b64942a2030cb",
|
||||||
|
".agent/evidence/20-audio-green.log": "edb9b9f0aa1af11835960eee9bb6e8c013341aa528d2857bac0b89ac38457528",
|
||||||
|
".agent/evidence/20-audio-red.log": "c1cbd5b585e8a70e23b88bfcee0c6479f85fdec0d1e06d13c81c689a140c0ac0",
|
||||||
|
".agent/evidence/20-mechanics-green.log": "9776c68143f668e35df8b2e19884b25d2369e4800b4c264e635d0c260818c5f1",
|
||||||
|
".agent/evidence/20-mechanics-red.log": "d25a1c844366e14fe1db9bb7c243fe0adb6857ee5b4548cf2865de96589af647",
|
||||||
|
".agent/evidence/21-node-green.log": "3c36e9e45b6844ae2c184f943b61195482d9de53ceab06221093c8281d210d73",
|
||||||
|
".agent/evidence/21-node-red.log": "ee25556037bdbd6b099dbb087a522284e8df00bd573dfcf0e42c734e31e09e84",
|
||||||
|
".agent/evidence/22-sandbox-green.log": "e8a1a17e49c22dea81d7f85111c744473427466791ddeda75047cd0082e7faba",
|
||||||
|
".agent/evidence/22-sandbox-red.log": "c8a97270f0f68367d6edb3e5ee10f34bbda1127f8dae2c5639afd482198e7bcd",
|
||||||
|
".agent/evidence/23-delivery-browser-red.log": "180a61bbacf85db9e52f721b50da683103b719bc350454cc99d4c8954b2ae86e",
|
||||||
|
".agent/evidence/24-retry-audio-budget.log": "b9241872b4ecd80265df4c6c2be90b31e9de4d0754772655e50b7fb4f05e2d3b",
|
||||||
|
".agent/evidence/24-retry-final-browser.log": "68029aae89adf86fd60ee56a20a1e2f769cb4f894f27ae23963ca5b5b58c62c4",
|
||||||
|
".agent/evidence/24-retry-final-build.log": "702c20554872e437137097ca59a80d911188477f018bc48c4b49a770b73d5a84",
|
||||||
|
".agent/evidence/24-retry-final-lint.log": "8682ca1f55e3ec58f13321cc339c8647ef72c1934d74ea9b980aee717e528819",
|
||||||
|
".agent/evidence/24-retry-final-test.log": "b71bb1375a039bcc3d7b3c5070da85ece3551f32ae1b8bb3a2abc5ef1edd57b8",
|
||||||
|
".agent/evidence/24-retry-integrity.log": "a188fe54dce05f6caa868b3d9f2c22a852f6a8cdc462355673316578be623a08",
|
||||||
|
".agent/evidence/24-retry-targeted-green.log": "4e53f2de988040540f5075b2e4a483ca53b671486c35e864fbc3c2c9c5361c61",
|
||||||
|
".agent/evidence/audio-reproduce.log": "5f5726f3ed6845882c7a6d6f9a8d898c2b73bf61fa6328e8bbafd25f61ed4268",
|
||||||
|
".agent/evidence/browser-final.log": "9273c91613160e239027452894b3735f9657ccad97a52412eb889290aebd5adf",
|
||||||
|
".agent/evidence/browser-first.log": "f3087028d76aae36d61d7a14da488bd809079a9e121a2d8fb01fa034f99d4f05",
|
||||||
|
".agent/evidence/browser-second.log": "2ff1d16f51b9384cf431d5923ad87d773510fe4b89bdf62f09cbda2efae20e3b",
|
||||||
|
".agent/evidence/browser-third.log": "1b6c264930da8934e7f1c8da6c998543f35e68b1c3159dad722cfe23a8e5244c",
|
||||||
|
".agent/evidence/changed-files.txt": "2b609231e5c7becd581f79413a4f7443312e71f0099ac6a51b2c5f0dfdee576f",
|
||||||
|
".agent/evidence/desktop-game.png": "42702e89264357257db8bf54c2b3743e3212e62cfd3476a8c25bad83fb59ff81",
|
||||||
|
".agent/evidence/desktop-home.png": "bf2f515fcd483cd5ca9a3b408f484d3556b75b1be0bb70360b7fd5f7c3404993",
|
||||||
|
".agent/evidence/desktop-results.png": "003df3aeb08ce66618775377d9b2003809d696629f61cf54b7b86e7a0ed63593",
|
||||||
|
".agent/evidence/final-audit.log": "6d8c5c8f3d7684adb070417bd608d01ae90aa3dc26a65af03ffda4955f38d9a3",
|
||||||
|
".agent/evidence/final-browser.log": "5855691def462b23667a9d658338a0458a53d984b5b5f7e11b45f9a63092abcd",
|
||||||
|
".agent/evidence/final-build.log": "565a95a51a10f78bc08f256755afce5ef183440dcdea5e75b3aefde8d7c5b837",
|
||||||
|
".agent/evidence/final-lint.log": "d2354c241320f11f07890cbf32f99a5d88f1c7f4f236d860e2cd26db739badd8",
|
||||||
|
".agent/evidence/final-security.log": "c585566624a4596e97327fb1864b1ac2a3189c0794b1e25a9d6ff1abb86046cb",
|
||||||
|
".agent/evidence/final-test.log": "af03027cb22a090ecd107c10e3fc7e2f9ceb394122b0b73caa7d362310504170",
|
||||||
|
".agent/evidence/mobile-game.png": "20a3f02f70a28b2faae1b33d0d4d6fea10b77caa426e4bf9faa5ef6d4474a846",
|
||||||
|
".agent/evidence/mobile-home.png": "7f84bd54183fcdd03fe136b41145146ddfb323041c96a8b9e6b670c9a923033a",
|
||||||
|
".agent/evidence/mobile-results.png": "ec2938c03ac03da8e33e25f043522b317b60c16be1c29f9dd325a81ae84513a8",
|
||||||
|
".agent/evidence/neo-before-spacing-browser.log": "e5c214f14bd93ef1bb731f87ecfd3a02d299c9f9e5a788233f6eda5eb8946b4f",
|
||||||
|
".agent/evidence/neo-desktop-game.png": "f5966688ba46f14fab5125452f935e55f6e6dc4355c876416729866129daea70",
|
||||||
|
".agent/evidence/neo-desktop-heading.png": "db609f2f54af0e6b1bb96bce9bf839454403d6e2787e6520a2928fad31beb021",
|
||||||
|
".agent/evidence/neo-desktop-home.png": "826c5da794c4ea3c15bd6c13e81d1c021fbeb8a902fc4908b78f9c457f091c0f",
|
||||||
|
".agent/evidence/neo-desktop-results.png": "98a68ca050a4e66c17dcc3f1bd5f0e86bfc88c2ebe9a75284766d17e10426632",
|
||||||
|
".agent/evidence/neo-final-browser.log": "582e7cbb643201e4b197b566b021322448abaae0b383967ad0e816d0c351e96b",
|
||||||
|
".agent/evidence/neo-final-build.log": "f30138e53b8c12e70e80e2cd5f4bdfcf8d1f6a095216a4f9ade6687bca1f0488",
|
||||||
|
".agent/evidence/neo-final-lint.log": "d2354c241320f11f07890cbf32f99a5d88f1c7f4f236d860e2cd26db739badd8",
|
||||||
|
".agent/evidence/neo-final-test.log": "f718e2acda255fcba67b272c7fa625af450714b384bb67a72f09328bf6964f0b",
|
||||||
|
".agent/evidence/neo-intermediate-build.log": "9d8a1f0586d58196e03e45330b6e8ff5522fdd3c27870aae2fb052199f8cf5cb",
|
||||||
|
".agent/evidence/neo-intermediate-lint.log": "5e94ea847c3a092f4ff8e97ac5b61ebef805b3c859ad38461f4a437045d1b5b9",
|
||||||
|
".agent/evidence/neo-mobile-game.png": "1a6733a3293204e4841ec8722a1ffe37033943097c691bcfadbcd907fde024ef",
|
||||||
|
".agent/evidence/neo-mobile-heading.png": "ae07d0a1cb6f835525c7e0ef31655a543eaa9e10183596c2d409dead6faccf15",
|
||||||
|
".agent/evidence/neo-mobile-home.png": "9b3ba8b0a9f7b321882429e31ac4a0472fcc13a998dfadfc930c273bc37558d4",
|
||||||
|
".agent/evidence/neo-mobile-results.png": "d49fdf6ae9566d7a2003db3f252d84ed88ac4d73a0390ce404b47e7bab9c60df",
|
||||||
|
".agent/evidence/release-desktop-game.png": "7300a06a507f651a587ed3deb36cc5bb728f4a36c30b7b1cf409a3b209ba564c",
|
||||||
|
".agent/evidence/release-desktop-heading.png": "de454d77e29737e23c573646404489d5682004521deabfa01b439d607faa32ca",
|
||||||
|
".agent/evidence/release-desktop-home.png": "f28f744e11b66373ee8db6eda2f7bdc384da4f7e763fbb467a4cda30090e869b",
|
||||||
|
".agent/evidence/release-desktop-results.png": "2ebb4056d0ecdadea8a3469500801065ae158c17cd2db27817e813e53adc71f3",
|
||||||
|
".agent/evidence/release-docs-final.log": "3529acce5befee536ec7d8e9d22cbbf27182297bb07408ab6e31551aaee76ed3",
|
||||||
|
".agent/evidence/release-final-audit.log": "6d8c5c8f3d7684adb070417bd608d01ae90aa3dc26a65af03ffda4955f38d9a3",
|
||||||
|
".agent/evidence/release-final-browser.log": "2a9881cef8c379f41abf5d69dd5ad21881988f78c0579c95e463121dc37f6e09",
|
||||||
|
".agent/evidence/release-final-build.log": "3fba8356382341db9c562d985ca2229fd0b81969532746b0146bc489d54c321e",
|
||||||
|
".agent/evidence/release-final-lint.log": "d2354c241320f11f07890cbf32f99a5d88f1c7f4f236d860e2cd26db739badd8",
|
||||||
|
".agent/evidence/release-final-test.log": "46d5d0fc0180adc00a734b64db4acb4cbaa37d12567d0224836306312213870c",
|
||||||
|
".agent/evidence/release-format.log": "57658c36cb3161b53cdf934017e4b7a733a273509ace184e0a2a6eaa046c742b",
|
||||||
|
".agent/evidence/release-integrity.log": "cc77121b43a6b24a358999cf1a3bbf701d467fcee9730095f318303c2e80602b",
|
||||||
|
".agent/evidence/release-intermediate-lint.log": "ee597e984ebdf11ea247c8cb1551cda446580cbd7a3dc708f85fa78bb72700ad",
|
||||||
|
".agent/evidence/release-mobile-game.png": "83a918e5ff2142e540cd12b85806b3e69a71bc66df5d241f4b2f5abdaf493f82",
|
||||||
|
".agent/evidence/release-mobile-heading.png": "d5c92a3b62f749d5f064af12efa5a1a2ad13b177270ec01dd10a549a8437899d",
|
||||||
|
".agent/evidence/release-mobile-home.png": "c7fc37a247bbadba60de9dff3c8d87930a2e6ebb868f687a4135b3fd035ed1c3",
|
||||||
|
".agent/evidence/release-mobile-results.png": "587956c9ad5eca054e4bb4b44748a2c637655e407427ba5b4c6ad7bf5a74539a"
|
||||||
|
},
|
||||||
|
"voiceWavs": {
|
||||||
|
"public/audio/correction-apple.wav": "ccd7327a3fb54d3320d049ffdced3bc17595861cee69429c0ee97182d454195b",
|
||||||
|
"public/audio/correction-furniture.wav": "5c004a7b2f5a4a918c9f689f1a2dcb219a620ed14313f40a9655b36dbf64948d",
|
||||||
|
"public/audio/correction-hat.wav": "f9f98c91cfbcfcb106eef7d5d3795a9cf3c3aab7e19a60f13d7dffe284d19f86",
|
||||||
|
"public/audio/correction-market.wav": "b8d25b867497adcd0fe7c8b6a8a8d2e7a52965956738a83e53f58735708773f9",
|
||||||
|
"public/audio/correction-meat.wav": "48e91b3932d3798e852041a854b3ee08c72127e092c62083a47af6b99adff241",
|
||||||
|
"public/audio/correction-oil.wav": "f6eff0cdddcad9790351491e60c53cb2a70d222033a583652f2de0b8cd6abcc7",
|
||||||
|
"public/audio/correction-sea.wav": "9233431d78ab4b144e3c33ad0cf0d49fc0fb91b29514343230ba32987b794bb3",
|
||||||
|
"public/audio/correction-sound.wav": "5a603bc69979603afddcaeb6edf500a7c540b72405daeb33f5335d746b327da1",
|
||||||
|
"public/audio/correction-tree.wav": "b8e8bbe6b8b14727efd953fae9d4aed2caeb004055d52f611c6378322847edbe",
|
||||||
|
"public/audio/correction-umbrella.wav": "92b54f04884ab915783945077efd8f3bd443849a1720f72168b6348cae1f8e85",
|
||||||
|
"public/audio/first-apple.wav": "7c1dbcb3082055df2b8f087f7e906ec867c92f679de0894c34740c05e61a4bc1",
|
||||||
|
"public/audio/first-furniture.wav": "29f007b385b7182db1d8aeccad4fc3c260df5e66e14e52a46b0ef0fcd0ff3a0a",
|
||||||
|
"public/audio/first-hat.wav": "17c8cde90567e7574b0c0702663bd70713054089ee920241b5444d9b7869eef5",
|
||||||
|
"public/audio/first-market.wav": "1e00b8f70a796cdebb0feb00c605fece7488b06915e6e036f54206f05e201e0c",
|
||||||
|
"public/audio/first-meat.wav": "f51a37c1722fef581f7d642a4dcae7fcb9953b3c318dce971bf616cd1a81fecc",
|
||||||
|
"public/audio/first-oil.wav": "f415195e0cfc7ee711d09de7519e88eab62cc8b58d70772c83c3f5c27c267819",
|
||||||
|
"public/audio/first-sea.wav": "0f0b39314c5f7d7168d4854003c0c284e7bc3438cdc4d1d1c5adab7cb5ed30e5",
|
||||||
|
"public/audio/first-sound.wav": "46f6adeed928a16af0700f1e8626cf8049f124632a04a5d10604426fb06f9596",
|
||||||
|
"public/audio/first-tree.wav": "3178230fd5850b6277a2153b438ec5289720e3db7ac929914cc213964f004bd5",
|
||||||
|
"public/audio/first-umbrella.wav": "878e0bd2e6e4105f175aef51a028f6b141f3a2072be20f783193f3ba897a3ee0",
|
||||||
|
"public/audio/intro.wav": "90d9f46e6e3f9c8a0c1a781096df54d7809ef4ad38b289508ef7b8c0411465ce",
|
||||||
|
"public/audio/last-apple.wav": "4cb2a8579fa3a7b91bb36363826ce8ca0d6d86e96e16a479e226a2802edd82f7",
|
||||||
|
"public/audio/last-furniture.wav": "5ad4f776e35439d408abed0e66567d6b5cdc80fc54d579165472e474f1238776",
|
||||||
|
"public/audio/last-hat.wav": "bdaf8fbc54df8061e9e58aa8c14b3044a6e863dc54973ee3ee6ae2c5ae1a28f1",
|
||||||
|
"public/audio/last-market.wav": "7857e87e9dbfe8fe849cc0b18c1d45b60916cb337328099c7a87a42c82e2821e",
|
||||||
|
"public/audio/last-meat.wav": "10f8ad4259ed8945c9da831e80b3902303c09caef96d400298599168fb1efed4",
|
||||||
|
"public/audio/last-oil.wav": "b5ce34950b8b31b1baf6ce55410797f0d8aa5478a670d6eace87cf76d134d6d3",
|
||||||
|
"public/audio/last-sea.wav": "f755452e1da44674aa1df7d12edffa988091b89a394e7eb6d4a00eb721f07cbf",
|
||||||
|
"public/audio/last-sound.wav": "ec9c49802aebeb6a8b898a1c0d8ad1daa127d2d64c905c197ed49a8e0c4eb64a",
|
||||||
|
"public/audio/last-tree.wav": "589e56d940a3c9e80ec02ae0b2dd93463fdc85ef019a753fcd0fded0752055f9",
|
||||||
|
"public/audio/last-umbrella.wav": "c801293a34013a8d93d3289a2cc87cd3eed83f97ba4647f5060efa00b117a9ad",
|
||||||
|
"public/audio/luck-apple.wav": "7c8f413f4b7e164f090e508ba090448f1376c6012649bbb6a917d45851313883",
|
||||||
|
"public/audio/luck-furniture.wav": "52cb92cdb8ee92b6f581c9d68dbc346f180c470564809ba57185429c9eb84127",
|
||||||
|
"public/audio/luck-hat.wav": "4ff43dd042f4b5451e9fdeb3edd59f1e389a7d1dd488094587a3a9fc7dfffa44",
|
||||||
|
"public/audio/luck-market.wav": "356af25332bf2000ed349671f3ff39767929e1f4599af622c021f907d11fb7bf",
|
||||||
|
"public/audio/luck-meat.wav": "d36dfc395a5c53fbfa4abe9980db7bb59adfdac59e40318c4aca365365e3f2ab",
|
||||||
|
"public/audio/luck-oil.wav": "3fa1e662a3af8f2726b17b2baa5bec2934406e6595ebc243c8380dd16e190977",
|
||||||
|
"public/audio/luck-sea.wav": "47aa31d757c9fb49c9b53a1c052d90a5ced4be57549d649850d9b48f8864045b",
|
||||||
|
"public/audio/luck-sound.wav": "34e4d9758d2ed448646fda364610e34779c84794403d9051ab3d8c1d33e2c80c",
|
||||||
|
"public/audio/luck-tree.wav": "122f496834fb16d6da47f801e50e46e272e4e934af959467d1db4e490f79be7a",
|
||||||
|
"public/audio/luck-umbrella.wav": "8d3e8e8bc97e5fe3f3362184c4abb12f01a882a1f1174d2644f0f70aac677c0a",
|
||||||
|
"public/audio/message-apple.wav": "d85e6f47d871369f00de2274139e5ad6b4b5686b5e20e248df0ed6b9a320d942",
|
||||||
|
"public/audio/message-furniture.wav": "26c331b7e12311236f4bb48f88918dfbf53cccd2f50b55741ea6ff4473e71dd8",
|
||||||
|
"public/audio/message-hat.wav": "5a713a8522b231bb8276805c014b385b9150b79f58ff2618446607e2b442495e",
|
||||||
|
"public/audio/message-market.wav": "9242d4cd6e0030e6b073e4d2360f84aa8a454d1749711cdb2d64c14f28a7ea20",
|
||||||
|
"public/audio/message-meat.wav": "ce19735df079b54c171e775b6b365385a80160b9033442abab95b2b9c8505e1a",
|
||||||
|
"public/audio/message-oil.wav": "a2a71a7e5e07c81871a25c6cb7540c39aa0b32fc44f78cda66b5f34ace98d805",
|
||||||
|
"public/audio/message-sea.wav": "28a461fbe03bffe2560030dea8b60715f7c0fe262dcf85b5b7f7daf483836382",
|
||||||
|
"public/audio/message-sound.wav": "1e682147dae8026ba78dc8f256c7f24acb3a6743bfd88a0fcc86096930eef078",
|
||||||
|
"public/audio/message-tree.wav": "5d684aa710a63d36ed8dcc2a8bfbdd5c71b0b1c63dad2a324adecb76591e85b8",
|
||||||
|
"public/audio/message-umbrella.wav": "41d5866dae66600df4694a8312b531571d44cece6dba0e423e7c43d09d184819",
|
||||||
|
"public/audio/middle-apple.wav": "8832f1b793ab3eedbe663875ea8dbeabb122c329bd5879437c71230b0418c3c8",
|
||||||
|
"public/audio/middle-furniture.wav": "b45b1afc8d9b534ff3e0a2a2ecb99efc1f4e40d41f89f55c4ed8ba94ad6d76d4",
|
||||||
|
"public/audio/middle-hat.wav": "b01ef9762ac84e3eb757243bc9286c62f7d45444a821ae35ac36a8b095e1598a",
|
||||||
|
"public/audio/middle-market.wav": "c855b449e0d4ace74681bfe68e5e7f0b063568827ae872017234dbe8ae119e4c",
|
||||||
|
"public/audio/middle-meat.wav": "d416107cc05e7c5b92ca27100a10a8a9689de913346179945d5542de4a6bac0c",
|
||||||
|
"public/audio/middle-oil.wav": "7a6b122b11c07da86c95fb78e2db2a70681b5219c63d6441fe56da1979ac1dc3",
|
||||||
|
"public/audio/middle-sea.wav": "b6dbe0af143ea775f05bd59a3d6af348bcc770ab378ac91ea75a56e06c326edf",
|
||||||
|
"public/audio/middle-sound.wav": "4d00aa6114327f450a00dacbc7e7b572ebf1de4ce9dc2fe4b5505766cca71ce9",
|
||||||
|
"public/audio/middle-tree.wav": "341888c75275c13eb31058f53a1d4276be0daa0a1b5a3a45522036928b83b0c1",
|
||||||
|
"public/audio/middle-umbrella.wav": "399ea2f681f755918f1117c8baba42739ceca64b307b999342f457a9235050b6",
|
||||||
|
"public/audio/mission-apple.wav": "3ef42e276ff3500c3e197d149f29f79d6a0c1d5516ed1d5a2c57210333fded9c",
|
||||||
|
"public/audio/mission-furniture.wav": "af82e03b686635c3356e706fe5b05c1231aeaaeab33f275aa5b8714988c65d43",
|
||||||
|
"public/audio/mission-hat.wav": "308278ec2bd27d4224976a55632d1f7fa1edabb0792126d9d858a699c287aee4",
|
||||||
|
"public/audio/mission-market.wav": "cefa0e95649ea6bd1df4c8dfccd2b74b4f4c028714420ce1087b61db2f2a8d47",
|
||||||
|
"public/audio/mission-meat.wav": "94f8a4f9e116a787e5ed052661d6de9ecf3ad8629db476661dd59ad03014b0c9",
|
||||||
|
"public/audio/mission-oil.wav": "5fb63e04520c312aa6b7b48b70c2f7c140b5ab480e5c6992edbc2ba85b9a06e7",
|
||||||
|
"public/audio/mission-sea.wav": "8838d6a1ee8a790427dc5aa761e70b3d8872af62086efeed743297ff7f8b8a06",
|
||||||
|
"public/audio/mission-sound.wav": "659eb0e2b06e6b165b46744769743e032e2282519f8486c57bc45e0f7d07a069",
|
||||||
|
"public/audio/mission-tree.wav": "00d8e77ec0371971d632724d91f8cf8d947bfb83c582a513b6421be4c457a1da",
|
||||||
|
"public/audio/mission-umbrella.wav": "4b4c858a25659540f9dbc524664496fc6de61ab8c1627f3cfee8c9c744e11d5b",
|
||||||
|
"public/audio/password-apple.wav": "b6f5de3fe571fe3a7fdb722fe49250bcfeedef49475271e0ec76a7630907edd5",
|
||||||
|
"public/audio/password-furniture.wav": "fb2b631dd4e12120d08a84cce6450f9cd9cd68105d13d7001d808e7deaa1df4a",
|
||||||
|
"public/audio/password-hat.wav": "e91bfc97df90a1675b6cd856880ac15c54de32cfc3b23603bdd1c2c5ac3ce6b8",
|
||||||
|
"public/audio/password-market.wav": "02e325fb753ef7a3ee585a03d2ca2aa3f1fbc58523b062222ae1136eeed7a95c",
|
||||||
|
"public/audio/password-meat.wav": "b009caadd56350d6a641ff17f0973e2b2724c183e1f45ae0bf3c483e237fa99e",
|
||||||
|
"public/audio/password-oil.wav": "b472957b27ff98ea7b8894fa1ff12653f7e9f66f77870faa9e52a1c1bf116c41",
|
||||||
|
"public/audio/password-sea.wav": "03f45b8cb5b3dc72faf5c6e3d0e2a10cea6b60301ea400d0a4453596d2f0b337",
|
||||||
|
"public/audio/password-sound.wav": "044aafff08a19e39f21e58b963644715a987cd155896998769ef8e9ce6449628",
|
||||||
|
"public/audio/password-tree.wav": "67da8147296e35134ec254bc82b58317630061b2c64d2d63c4be197ce8692d50",
|
||||||
|
"public/audio/password-umbrella.wav": "ab3ca6398c879971dc793eb25b472fcc0db72d76e386f11ef4d32c639f37c69d",
|
||||||
|
"public/audio/remember-apple.wav": "1bf2aef9a9f030af1a8fd7dee8f44aa420a397b3ba99b575feeb3dc7a63ec191",
|
||||||
|
"public/audio/remember-furniture.wav": "442bdcb956f120c270e1f321feae0415c897de0183e468980fcc119b898b2a67",
|
||||||
|
"public/audio/remember-hat.wav": "31a6a4270bf368cda419094d87a303ac3cd5c22539786cb165f8044b0b8e9d6e",
|
||||||
|
"public/audio/remember-market.wav": "d89792da51c83ac49d27e55aa6d822a338899a5ee487b34b552748201e1522f6",
|
||||||
|
"public/audio/remember-meat.wav": "9183ef90b64f5ceaf3bb0178c689231ff3e9981d6ce889124a15f2a6e2b7a344",
|
||||||
|
"public/audio/remember-oil.wav": "3ca98682ff06d1d6b8af02c0fd5b2124f42266ac989884223eff4a9bbde1287a",
|
||||||
|
"public/audio/remember-sea.wav": "5c91a36496e274d2be9c6fa8d9b506cd04f2a1b7ceb05ed1b7bb03fe7fca99d9",
|
||||||
|
"public/audio/remember-sound.wav": "98387ccc7aab566f6487d4c250b2128082cc527e013a6f7b7bc4d0266ac295df",
|
||||||
|
"public/audio/remember-tree.wav": "bc8e54f5407e8866bf1ca1ddfd4f6c63d85fee29bd9e430c7dd33e87974fc5b8",
|
||||||
|
"public/audio/remember-umbrella.wav": "c8988e604ba05d52597e561389541e8f9cda86e052279f1862bbf8399ead314e",
|
||||||
|
"public/audio/repeat-apple.wav": "cb7da4e9a1288cac64d168b241f27d7d2bc2dfecace58744f9bbf2792dfad04e",
|
||||||
|
"public/audio/repeat-furniture.wav": "bf84dc6cff1f227924a3a62158d2fc18769fb0ca40b91418fa19e534dbf92f00",
|
||||||
|
"public/audio/repeat-hat.wav": "6e089a42fd7e65e82eec7186d369c926fb7fdac794365b2bd7658822fd92437c",
|
||||||
|
"public/audio/repeat-market.wav": "68a5b899115a66ab225d610ec47b4de56cc8793657362bc38f533c06f741e4cc",
|
||||||
|
"public/audio/repeat-meat.wav": "6599d2fac73ea616a793151b4ce6f51af673988d630bac6219a77e78ae6cb34e",
|
||||||
|
"public/audio/repeat-oil.wav": "55b2c7d6aa8bbce04edf8661882c9781da81c57f56217f99b80457a3bb895da0",
|
||||||
|
"public/audio/repeat-sea.wav": "db2f235bee26ac804b5362e8e013b8f40c8da24fd3a34e0fb3b43c6d264feb36",
|
||||||
|
"public/audio/repeat-sound.wav": "e9d636ff7f4777f38b1ff15bebdcec6fbde95b4b4b05625a7415b4cfa0025b59",
|
||||||
|
"public/audio/repeat-tree.wav": "8735c3d9672561ca237fa87317beec2878492eb9063d6048d5b214423561acc1",
|
||||||
|
"public/audio/repeat-umbrella.wav": "5e59ef39113c3d5e106862356d715f4cef2862ef8ee02654a97e532675c1ac6d"
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,93 @@
|
|||||||
|
# Find-Word v0.2.3 — Field recording notices
|
||||||
|
|
||||||
|
These third-party recordings retain their own licenses. The private project license does not apply to them.
|
||||||
|
All files are modified excerpts: trimmed, faded, downmixed, resampled, normalized and converted to WAV.
|
||||||
|
The market derivative remains CC BY-SA 4.0. No additional restrictions are imposed on that audio.
|
||||||
|
|
||||||
|
## 길거리 — street
|
||||||
|
|
||||||
|
Suggested: Sunday, 4th May 2008 5.05pm - sounds outside my window, by cori (Cori Samuel), via Wikimedia Commons; public domain.
|
||||||
|
|
||||||
|
Creator: cori (Cori Samuel)
|
||||||
|
Source: https://commons.wikimedia.org/wiki/File:Sunday_in_the_city_street_noise2.ogg
|
||||||
|
Download: https://upload.wikimedia.org/wikipedia/commons/2/24/Sunday_in_the_city_street_noise2.ogg
|
||||||
|
License: Public domain (PD-author) — https://commons.wikimedia.org/wiki/Template:PD-author
|
||||||
|
Output license: Public domain (PD-author)
|
||||||
|
Changes: excerpt, downmix, resample, linear end fades, bounded linear normalization, WAV encoding; source seconds 35–47.
|
||||||
|
|
||||||
|
## 쇼핑몰 — mall
|
||||||
|
|
||||||
|
Suggested: 1 minute at the Alexa mall in Berlin, by thore, via Wikimedia Commons; public domain.
|
||||||
|
|
||||||
|
Creator: thore (Thore)
|
||||||
|
Source: https://commons.wikimedia.org/wiki/File:1_minute_at_the_alexa_mall_in_berlin.ogg
|
||||||
|
Download: https://upload.wikimedia.org/wikipedia/commons/f/fd/1_minute_at_the_alexa_mall_in_berlin.ogg
|
||||||
|
License: Public domain (PD-author) — https://commons.wikimedia.org/wiki/Template:PD-author
|
||||||
|
Output license: Public domain (PD-author)
|
||||||
|
Changes: excerpt, downmix, resample, linear end fades, bounded linear normalization, WAV encoding; source seconds 36–48.
|
||||||
|
|
||||||
|
## 극장 — theater
|
||||||
|
|
||||||
|
Suggested: Crowd Ambience - Theater, by ElevatorFan2020, from Freesound, CC0 1.0.
|
||||||
|
|
||||||
|
Creator: ElevatorFan2020
|
||||||
|
Source: https://freesound.org/people/ElevatorFan2020/sounds/853576/
|
||||||
|
Download: https://cdn.freesound.org/previews/853/853576_14269391-lq.mp3
|
||||||
|
License: CC0 1.0 Universal — https://creativecommons.org/publicdomain/zero/1.0/
|
||||||
|
Output license: CC0 1.0 Universal
|
||||||
|
Changes: excerpt, downmix, resample, linear end fades, bounded linear normalization, WAV encoding; source seconds 45–57.
|
||||||
|
|
||||||
|
## 백화점 — department
|
||||||
|
|
||||||
|
Suggested: US Department store - checkouts, by icmusic, from Freesound, CC0 1.0.
|
||||||
|
|
||||||
|
Creator: icmusic
|
||||||
|
Source: https://freesound.org/people/icmusic/sounds/268941/
|
||||||
|
Download: https://cdn.freesound.org/previews/268/268941_40107-lq.mp3
|
||||||
|
License: CC0 1.0 Universal — https://creativecommons.org/publicdomain/zero/1.0/
|
||||||
|
Output license: CC0 1.0 Universal
|
||||||
|
Changes: excerpt, downmix, resample, linear end fades, bounded linear normalization, WAV encoding; source seconds 90–102.
|
||||||
|
|
||||||
|
## 시장 — market
|
||||||
|
|
||||||
|
Italia Palermo mercato-Ballaro 20161225 122421, by Marie Flutre, CC BY-SA 4.0, via Wikimedia Commons. Modified by excerpting, trimming, fades, normalization, downmixing, resampling and PCM WAV conversion. The derivative audio remains CC BY-SA 4.0.
|
||||||
|
|
||||||
|
Creator: Marie Flutre (Wikimedia user Timflutre)
|
||||||
|
Source: https://commons.wikimedia.org/wiki/File:Italia_Palermo_mercato-Ballaro_20161225_122421.ogg
|
||||||
|
Download: https://upload.wikimedia.org/wikipedia/commons/e/e8/Italia_Palermo_mercato-Ballaro_20161225_122421.ogg
|
||||||
|
License: CC BY-SA 4.0 — https://creativecommons.org/licenses/by-sa/4.0/
|
||||||
|
Output license: CC BY-SA 4.0
|
||||||
|
Changes: excerpt, downmix, resample, linear end fades, bounded linear normalization, WAV encoding; source seconds 24–36.
|
||||||
|
|
||||||
|
## 지하철 — subway
|
||||||
|
|
||||||
|
TTC Subway Line 1 Ambience - Museum to Union, by PascalHD, CC BY 4.0, via Wikimedia Commons/Freesound. Modified by excerpting, trimming, fades, normalization, downmixing, resampling and PCM WAV conversion.
|
||||||
|
|
||||||
|
Creator: PascalHD
|
||||||
|
Source: https://commons.wikimedia.org/wiki/File:TTC_Subway_Line_1_Ambience_-_Museum_to_Union_(Freesound).ogg
|
||||||
|
Download: https://upload.wikimedia.org/wikipedia/commons/d/d3/TTC_Subway_Line_1_Ambience_-_Museum_to_Union_%28Freesound%29.ogg
|
||||||
|
License: CC BY 4.0 — https://creativecommons.org/licenses/by/4.0/
|
||||||
|
Output license: CC BY 4.0
|
||||||
|
Changes: excerpt, downmix, resample, linear end fades, bounded linear normalization, WAV encoding; source seconds 65–77.
|
||||||
|
|
||||||
|
## 카페 — cafe
|
||||||
|
|
||||||
|
Suggested: Cafe ambiance, by Marble Toast, via Wikimedia Commons, CC0 1.0.
|
||||||
|
|
||||||
|
Creator: Marble Toast
|
||||||
|
Source: https://commons.wikimedia.org/wiki/File:Cafe_ambiance.ogg
|
||||||
|
Download: https://upload.wikimedia.org/wikipedia/commons/5/54/Cafe_ambiance.ogg
|
||||||
|
License: CC0 1.0 Universal — https://creativecommons.org/publicdomain/zero/1.0/
|
||||||
|
Output license: CC0 1.0 Universal
|
||||||
|
Changes: excerpt, downmix, resample, linear end fades, bounded linear normalization, WAV encoding; source seconds 0–12.
|
||||||
|
|
||||||
|
## 비 오는 거리 — rain
|
||||||
|
|
||||||
|
Suggested: Urban Street on a Rainy Afternoon, by Extemporalist, via Wikimedia Commons, CC0 1.0.
|
||||||
|
|
||||||
|
Creator: Extemporalist
|
||||||
|
Source: https://commons.wikimedia.org/wiki/File:Urban_Street_on_a_Rainy_Afternoon.flac
|
||||||
|
Download: https://upload.wikimedia.org/wikipedia/commons/8/8c/Urban_Street_on_a_Rainy_Afternoon.flac
|
||||||
|
License: CC0 1.0 Universal — https://creativecommons.org/publicdomain/zero/1.0/
|
||||||
|
Output license: CC0 1.0 Universal
|
||||||
|
Changes: excerpt, downmix, resample, linear end fades, bounded linear normalization, WAV encoding; source seconds 180–192.
|
||||||
@@ -0,0 +1,356 @@
|
|||||||
|
{
|
||||||
|
"version": "0.2.3",
|
||||||
|
"generatedAtUtc": "2026-10-14T09:33:24.077276+00:00",
|
||||||
|
"toolVersions": {
|
||||||
|
"ffmpeg": "ffmpeg version 6.1.1-3ubuntu5 Copyright (c) 2000-2023 the FFmpeg developers"
|
||||||
|
},
|
||||||
|
"sampleRate": 24000,
|
||||||
|
"channels": 1,
|
||||||
|
"encoding": "PCM16",
|
||||||
|
"files": [
|
||||||
|
{
|
||||||
|
"environmentId": "street",
|
||||||
|
"displayName": "길거리",
|
||||||
|
"pageUrl": "https://commons.wikimedia.org/wiki/File:Sunday_in_the_city_street_noise2.ogg",
|
||||||
|
"directUrl": "https://upload.wikimedia.org/wikipedia/commons/2/24/Sunday_in_the_city_street_noise2.ogg",
|
||||||
|
"creator": "cori (Cori Samuel)",
|
||||||
|
"license": "Public domain (PD-author)",
|
||||||
|
"licenseUrl": "https://commons.wikimedia.org/wiki/Template:PD-author",
|
||||||
|
"attribution": "Suggested: Sunday, 4th May 2008 5.05pm - sounds outside my window, by cori (Cori Samuel), via Wikimedia Commons; public domain.",
|
||||||
|
"expectedSourceSha256": "0ddb0be7eb3427f781c8268bcbc74b8ad7e1fbf75b9f6966e65274dbe85f3d9d",
|
||||||
|
"sourceBytes": 3414104,
|
||||||
|
"directMediaDurationSeconds": 264.254694,
|
||||||
|
"sourceVerification": {
|
||||||
|
"status": "verified",
|
||||||
|
"dateUtc": "2026-10-14",
|
||||||
|
"method": "SHA-256, byte count, ffprobe format.duration, full FFmpeg decode",
|
||||||
|
"evidence": ".agent/evidence-v0.2.3/source-integrity.json"
|
||||||
|
},
|
||||||
|
"selectedSegmentStartSeconds": 35,
|
||||||
|
"file": "street.wav",
|
||||||
|
"sourceSha256": "0ddb0be7eb3427f781c8268bcbc74b8ad7e1fbf75b9f6966e65274dbe85f3d9d",
|
||||||
|
"outputLicense": "Public domain (PD-author)",
|
||||||
|
"verificationDateUtc": "2026-10-14",
|
||||||
|
"sha256": "a8bffa201b174618955bc51b860167169125304811aabe2086b0bb35b06c3ae1",
|
||||||
|
"bytes": 576044,
|
||||||
|
"duration": 12.0,
|
||||||
|
"rms": 0.07999756262285758,
|
||||||
|
"peak": 0.396759033203125,
|
||||||
|
"conversion": {
|
||||||
|
"startSeconds": 35,
|
||||||
|
"durationSeconds": 12,
|
||||||
|
"seekMethod": "input seek",
|
||||||
|
"fadeSeconds": 0.05,
|
||||||
|
"sampleRate": 24000,
|
||||||
|
"channels": 1,
|
||||||
|
"encoding": "PCM16 little-endian",
|
||||||
|
"linearGain": 1.849547024580241,
|
||||||
|
"targetRms": 0.08,
|
||||||
|
"peakLimit": 0.85,
|
||||||
|
"maxGain": 4,
|
||||||
|
"operations": "excerpt, downmix, resample, linear end fades, bounded linear normalization, WAV encoding"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"environmentId": "mall",
|
||||||
|
"displayName": "쇼핑몰",
|
||||||
|
"pageUrl": "https://commons.wikimedia.org/wiki/File:1_minute_at_the_alexa_mall_in_berlin.ogg",
|
||||||
|
"directUrl": "https://upload.wikimedia.org/wikipedia/commons/f/fd/1_minute_at_the_alexa_mall_in_berlin.ogg",
|
||||||
|
"creator": "thore (Thore)",
|
||||||
|
"license": "Public domain (PD-author)",
|
||||||
|
"licenseUrl": "https://commons.wikimedia.org/wiki/Template:PD-author",
|
||||||
|
"attribution": "Suggested: 1 minute at the Alexa mall in Berlin, by thore, via Wikimedia Commons; public domain.",
|
||||||
|
"expectedSourceSha256": "bb066e130e5d665db57cb5f88e820d053c724d8f777b275213998d2074c6529a",
|
||||||
|
"sourceBytes": 1666896,
|
||||||
|
"directMediaDurationSeconds": 60.05551,
|
||||||
|
"sourceVerification": {
|
||||||
|
"status": "verified",
|
||||||
|
"dateUtc": "2026-10-14",
|
||||||
|
"method": "SHA-256, byte count, ffprobe format.duration, full FFmpeg decode",
|
||||||
|
"evidence": ".agent/evidence-v0.2.3/source-integrity.json"
|
||||||
|
},
|
||||||
|
"selectedSegmentStartSeconds": 36,
|
||||||
|
"file": "mall.wav",
|
||||||
|
"sourceSha256": "bb066e130e5d665db57cb5f88e820d053c724d8f777b275213998d2074c6529a",
|
||||||
|
"outputLicense": "Public domain (PD-author)",
|
||||||
|
"verificationDateUtc": "2026-10-14",
|
||||||
|
"sha256": "680a769940c08f0d12c6c954c08366598dd8b5745e276f39c82b10d1a88261a1",
|
||||||
|
"bytes": 576044,
|
||||||
|
"duration": 12.0,
|
||||||
|
"rms": 0.07999755012072322,
|
||||||
|
"peak": 0.71917724609375,
|
||||||
|
"conversion": {
|
||||||
|
"startSeconds": 36,
|
||||||
|
"durationSeconds": 12,
|
||||||
|
"seekMethod": "input seek",
|
||||||
|
"fadeSeconds": 0.05,
|
||||||
|
"sampleRate": 24000,
|
||||||
|
"channels": 1,
|
||||||
|
"encoding": "PCM16 little-endian",
|
||||||
|
"linearGain": 0.9433928828892831,
|
||||||
|
"targetRms": 0.08,
|
||||||
|
"peakLimit": 0.85,
|
||||||
|
"maxGain": 4,
|
||||||
|
"operations": "excerpt, downmix, resample, linear end fades, bounded linear normalization, WAV encoding"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"environmentId": "theater",
|
||||||
|
"displayName": "극장",
|
||||||
|
"pageUrl": "https://freesound.org/people/ElevatorFan2020/sounds/853576/",
|
||||||
|
"directUrl": "https://cdn.freesound.org/previews/853/853576_14269391-lq.mp3",
|
||||||
|
"creator": "ElevatorFan2020",
|
||||||
|
"license": "CC0 1.0 Universal",
|
||||||
|
"licenseUrl": "https://creativecommons.org/publicdomain/zero/1.0/",
|
||||||
|
"attribution": "Suggested: Crowd Ambience - Theater, by ElevatorFan2020, from Freesound, CC0 1.0.",
|
||||||
|
"expectedSourceSha256": "05c3ece7c088f34700b7610f791c0ad848a24c77be2c32fd1503a78356739a43",
|
||||||
|
"sourceBytes": 1485015,
|
||||||
|
"directMediaDurationSeconds": 176.901224,
|
||||||
|
"sourceVerification": {
|
||||||
|
"status": "verified",
|
||||||
|
"dateUtc": "2026-10-14",
|
||||||
|
"method": "SHA-256, byte count, ffprobe format.duration, full FFmpeg decode",
|
||||||
|
"evidence": ".agent/evidence-v0.2.3/source-integrity.json"
|
||||||
|
},
|
||||||
|
"selectedSegmentStartSeconds": 45,
|
||||||
|
"file": "theater.wav",
|
||||||
|
"sourceSha256": "05c3ece7c088f34700b7610f791c0ad848a24c77be2c32fd1503a78356739a43",
|
||||||
|
"outputLicense": "CC0 1.0 Universal",
|
||||||
|
"verificationDateUtc": "2026-10-14",
|
||||||
|
"sha256": "2d6a444fb7874cdf6b2d8a741a69175299b112eb66834912c025437d8277d635",
|
||||||
|
"bytes": 576044,
|
||||||
|
"duration": 12.0,
|
||||||
|
"rms": 0.0799975663639253,
|
||||||
|
"peak": 0.495086669921875,
|
||||||
|
"conversion": {
|
||||||
|
"startSeconds": 45,
|
||||||
|
"durationSeconds": 12,
|
||||||
|
"seekMethod": "input seek",
|
||||||
|
"fadeSeconds": 0.05,
|
||||||
|
"sampleRate": 24000,
|
||||||
|
"channels": 1,
|
||||||
|
"encoding": "PCM16 little-endian",
|
||||||
|
"linearGain": 1.438006249673014,
|
||||||
|
"targetRms": 0.08,
|
||||||
|
"peakLimit": 0.85,
|
||||||
|
"maxGain": 4,
|
||||||
|
"operations": "excerpt, downmix, resample, linear end fades, bounded linear normalization, WAV encoding"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"environmentId": "department",
|
||||||
|
"displayName": "백화점",
|
||||||
|
"pageUrl": "https://freesound.org/people/icmusic/sounds/268941/",
|
||||||
|
"directUrl": "https://cdn.freesound.org/previews/268/268941_40107-lq.mp3",
|
||||||
|
"creator": "icmusic",
|
||||||
|
"license": "CC0 1.0 Universal",
|
||||||
|
"licenseUrl": "https://creativecommons.org/publicdomain/zero/1.0/",
|
||||||
|
"attribution": "Suggested: US Department store - checkouts, by icmusic, from Freesound, CC0 1.0.",
|
||||||
|
"expectedSourceSha256": "261fda28722fba623483a90b32e7a2ec388c59887f56a5247156b53f1ffb6ccd",
|
||||||
|
"sourceBytes": 2445024,
|
||||||
|
"directMediaDurationSeconds": 292.872,
|
||||||
|
"sourceVerification": {
|
||||||
|
"status": "verified",
|
||||||
|
"dateUtc": "2026-10-14",
|
||||||
|
"method": "SHA-256, byte count, ffprobe format.duration, full FFmpeg decode",
|
||||||
|
"evidence": ".agent/evidence-v0.2.3/source-integrity.json"
|
||||||
|
},
|
||||||
|
"selectedSegmentStartSeconds": 90,
|
||||||
|
"file": "department.wav",
|
||||||
|
"sourceSha256": "261fda28722fba623483a90b32e7a2ec388c59887f56a5247156b53f1ffb6ccd",
|
||||||
|
"outputLicense": "CC0 1.0 Universal",
|
||||||
|
"verificationDateUtc": "2026-10-14",
|
||||||
|
"sha256": "aa43f3d1d3e7c2b1f8ace24ecbda45d0ea3a031db941c39506dc6c1665b8efa7",
|
||||||
|
"bytes": 576044,
|
||||||
|
"duration": 12.0,
|
||||||
|
"rms": 0.07999757899341044,
|
||||||
|
"peak": 0.4749755859375,
|
||||||
|
"conversion": {
|
||||||
|
"startSeconds": 90,
|
||||||
|
"durationSeconds": 12,
|
||||||
|
"seekMethod": "input seek",
|
||||||
|
"fadeSeconds": 0.05,
|
||||||
|
"sampleRate": 24000,
|
||||||
|
"channels": 1,
|
||||||
|
"encoding": "PCM16 little-endian",
|
||||||
|
"linearGain": 1.2266018453762095,
|
||||||
|
"targetRms": 0.08,
|
||||||
|
"peakLimit": 0.85,
|
||||||
|
"maxGain": 4,
|
||||||
|
"operations": "excerpt, downmix, resample, linear end fades, bounded linear normalization, WAV encoding"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"environmentId": "market",
|
||||||
|
"displayName": "시장",
|
||||||
|
"pageUrl": "https://commons.wikimedia.org/wiki/File:Italia_Palermo_mercato-Ballaro_20161225_122421.ogg",
|
||||||
|
"directUrl": "https://upload.wikimedia.org/wikipedia/commons/e/e8/Italia_Palermo_mercato-Ballaro_20161225_122421.ogg",
|
||||||
|
"creator": "Marie Flutre (Wikimedia user Timflutre)",
|
||||||
|
"license": "CC BY-SA 4.0",
|
||||||
|
"licenseUrl": "https://creativecommons.org/licenses/by-sa/4.0/",
|
||||||
|
"attribution": "Italia Palermo mercato-Ballaro 20161225 122421, by Marie Flutre, CC BY-SA 4.0, via Wikimedia Commons. Modified by excerpting, trimming, fades, normalization, downmixing, resampling and PCM WAV conversion. The derivative audio remains CC BY-SA 4.0.",
|
||||||
|
"expectedSourceSha256": "fc0075dce8ad05b56460c9f18754c27b2021f21f1c780a595ccda648d33c941d",
|
||||||
|
"sourceBytes": 622200,
|
||||||
|
"directMediaDurationSeconds": 76.696961,
|
||||||
|
"sourceVerification": {
|
||||||
|
"status": "verified",
|
||||||
|
"dateUtc": "2026-10-14",
|
||||||
|
"method": "SHA-256, byte count, ffprobe format.duration, full FFmpeg decode",
|
||||||
|
"evidence": ".agent/evidence-v0.2.3/source-integrity.json"
|
||||||
|
},
|
||||||
|
"selectedSegmentStartSeconds": 24,
|
||||||
|
"file": "market.wav",
|
||||||
|
"sourceSha256": "fc0075dce8ad05b56460c9f18754c27b2021f21f1c780a595ccda648d33c941d",
|
||||||
|
"outputLicense": "CC BY-SA 4.0",
|
||||||
|
"verificationDateUtc": "2026-10-14",
|
||||||
|
"sha256": "d6f73d86aea98b83e2995e61baaa7315a0ea7adeebc093769d76e1569b207658",
|
||||||
|
"bytes": 576044,
|
||||||
|
"duration": 12.0,
|
||||||
|
"rms": 0.04309857288377583,
|
||||||
|
"peak": 0.8499755859375,
|
||||||
|
"conversion": {
|
||||||
|
"startSeconds": 24,
|
||||||
|
"durationSeconds": 12,
|
||||||
|
"seekMethod": "input seek",
|
||||||
|
"fadeSeconds": 0.05,
|
||||||
|
"sampleRate": 24000,
|
||||||
|
"channels": 1,
|
||||||
|
"encoding": "PCM16 little-endian",
|
||||||
|
"linearGain": 0.8923059364616298,
|
||||||
|
"targetRms": 0.08,
|
||||||
|
"peakLimit": 0.85,
|
||||||
|
"maxGain": 4,
|
||||||
|
"operations": "excerpt, downmix, resample, linear end fades, bounded linear normalization, WAV encoding"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"environmentId": "subway",
|
||||||
|
"displayName": "지하철",
|
||||||
|
"pageUrl": "https://commons.wikimedia.org/wiki/File:TTC_Subway_Line_1_Ambience_-_Museum_to_Union_(Freesound).ogg",
|
||||||
|
"directUrl": "https://upload.wikimedia.org/wikipedia/commons/d/d3/TTC_Subway_Line_1_Ambience_-_Museum_to_Union_%28Freesound%29.ogg",
|
||||||
|
"creator": "PascalHD",
|
||||||
|
"license": "CC BY 4.0",
|
||||||
|
"licenseUrl": "https://creativecommons.org/licenses/by/4.0/",
|
||||||
|
"attribution": "TTC Subway Line 1 Ambience - Museum to Union, by PascalHD, CC BY 4.0, via Wikimedia Commons/Freesound. Modified by excerpting, trimming, fades, normalization, downmixing, resampling and PCM WAV conversion.",
|
||||||
|
"expectedSourceSha256": "41fcf064cde53cef1528fe98721347851e60c070d8ff9f213f354025cf272d4c",
|
||||||
|
"sourceBytes": 3343901,
|
||||||
|
"directMediaDurationSeconds": 425.024,
|
||||||
|
"sourceVerification": {
|
||||||
|
"status": "verified",
|
||||||
|
"dateUtc": "2026-10-14",
|
||||||
|
"method": "SHA-256, byte count, ffprobe format.duration, full FFmpeg decode",
|
||||||
|
"evidence": ".agent/evidence-v0.2.3/source-integrity.json"
|
||||||
|
},
|
||||||
|
"selectedSegmentStartSeconds": 65,
|
||||||
|
"file": "subway.wav",
|
||||||
|
"sourceSha256": "41fcf064cde53cef1528fe98721347851e60c070d8ff9f213f354025cf272d4c",
|
||||||
|
"outputLicense": "CC BY 4.0",
|
||||||
|
"verificationDateUtc": "2026-10-14",
|
||||||
|
"sha256": "9faf70b68617d267b367a0f3692ed90015458543ab4b0844f6c704e6a724728f",
|
||||||
|
"bytes": 576044,
|
||||||
|
"duration": 12.0,
|
||||||
|
"rms": 0.07999755256849092,
|
||||||
|
"peak": 0.42529296875,
|
||||||
|
"conversion": {
|
||||||
|
"startSeconds": 65,
|
||||||
|
"durationSeconds": 12,
|
||||||
|
"seekMethod": "input seek",
|
||||||
|
"fadeSeconds": 0.05,
|
||||||
|
"sampleRate": 24000,
|
||||||
|
"channels": 1,
|
||||||
|
"encoding": "PCM16 little-endian",
|
||||||
|
"linearGain": 0.4367522670617141,
|
||||||
|
"targetRms": 0.08,
|
||||||
|
"peakLimit": 0.85,
|
||||||
|
"maxGain": 4,
|
||||||
|
"operations": "excerpt, downmix, resample, linear end fades, bounded linear normalization, WAV encoding"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"environmentId": "cafe",
|
||||||
|
"displayName": "카페",
|
||||||
|
"pageUrl": "https://commons.wikimedia.org/wiki/File:Cafe_ambiance.ogg",
|
||||||
|
"directUrl": "https://upload.wikimedia.org/wikipedia/commons/5/54/Cafe_ambiance.ogg",
|
||||||
|
"creator": "Marble Toast",
|
||||||
|
"license": "CC0 1.0 Universal",
|
||||||
|
"licenseUrl": "https://creativecommons.org/publicdomain/zero/1.0/",
|
||||||
|
"attribution": "Suggested: Cafe ambiance, by Marble Toast, via Wikimedia Commons, CC0 1.0.",
|
||||||
|
"expectedSourceSha256": "6360791fdcee1f64638f0fc9abd6d2c7a1aa75fd3d2b80033170a02d025099dc",
|
||||||
|
"sourceBytes": 19947952,
|
||||||
|
"directMediaDurationSeconds": 1200.000998,
|
||||||
|
"sourceVerification": {
|
||||||
|
"status": "verified",
|
||||||
|
"dateUtc": "2026-10-14",
|
||||||
|
"method": "SHA-256, byte count, ffprobe format.duration, full FFmpeg decode",
|
||||||
|
"evidence": ".agent/evidence-v0.2.3/source-integrity.json"
|
||||||
|
},
|
||||||
|
"selectedSegmentStartSeconds": 0,
|
||||||
|
"file": "cafe.wav",
|
||||||
|
"sourceSha256": "6360791fdcee1f64638f0fc9abd6d2c7a1aa75fd3d2b80033170a02d025099dc",
|
||||||
|
"outputLicense": "CC0 1.0 Universal",
|
||||||
|
"verificationDateUtc": "2026-10-14",
|
||||||
|
"sha256": "6853c121104940041c268a2891eadae032c17aa22b4c3b3ddfbc025262434995",
|
||||||
|
"bytes": 576044,
|
||||||
|
"duration": 12.0,
|
||||||
|
"rms": 0.07999753838852817,
|
||||||
|
"peak": 0.405731201171875,
|
||||||
|
"conversion": {
|
||||||
|
"startSeconds": 0,
|
||||||
|
"durationSeconds": 12,
|
||||||
|
"seekMethod": "input seek",
|
||||||
|
"fadeSeconds": 0.05,
|
||||||
|
"sampleRate": 24000,
|
||||||
|
"channels": 1,
|
||||||
|
"encoding": "PCM16 little-endian",
|
||||||
|
"linearGain": 0.7436988602699036,
|
||||||
|
"targetRms": 0.08,
|
||||||
|
"peakLimit": 0.85,
|
||||||
|
"maxGain": 4,
|
||||||
|
"operations": "excerpt, downmix, resample, linear end fades, bounded linear normalization, WAV encoding"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"environmentId": "rain",
|
||||||
|
"displayName": "비 오는 거리",
|
||||||
|
"pageUrl": "https://commons.wikimedia.org/wiki/File:Urban_Street_on_a_Rainy_Afternoon.flac",
|
||||||
|
"directUrl": "https://upload.wikimedia.org/wikipedia/commons/8/8c/Urban_Street_on_a_Rainy_Afternoon.flac",
|
||||||
|
"creator": "Extemporalist",
|
||||||
|
"license": "CC0 1.0 Universal",
|
||||||
|
"licenseUrl": "https://creativecommons.org/publicdomain/zero/1.0/",
|
||||||
|
"attribution": "Suggested: Urban Street on a Rainy Afternoon, by Extemporalist, via Wikimedia Commons, CC0 1.0.",
|
||||||
|
"expectedSourceSha256": "ef0511593b1bb0ba47d5c5dafd83eb07ba854b5a65fd5d41b8c76a1b3ff2c22a",
|
||||||
|
"sourceBytes": 91187572,
|
||||||
|
"directMediaDurationSeconds": 1800.0,
|
||||||
|
"sourceVerification": {
|
||||||
|
"status": "verified",
|
||||||
|
"dateUtc": "2026-10-14",
|
||||||
|
"method": "SHA-256, byte count, ffprobe format.duration, full FFmpeg decode",
|
||||||
|
"evidence": ".agent/evidence-v0.2.3/source-integrity.json"
|
||||||
|
},
|
||||||
|
"selectedSegmentStartSeconds": 180,
|
||||||
|
"file": "rain.wav",
|
||||||
|
"sourceSha256": "ef0511593b1bb0ba47d5c5dafd83eb07ba854b5a65fd5d41b8c76a1b3ff2c22a",
|
||||||
|
"outputLicense": "CC0 1.0 Universal",
|
||||||
|
"verificationDateUtc": "2026-10-14",
|
||||||
|
"sha256": "f4315084e820f742b0709de5bb0d1abd3d5af1730620e08c2948b70347356dd9",
|
||||||
|
"bytes": 576044,
|
||||||
|
"duration": 12.0,
|
||||||
|
"rms": 0.011384632877156162,
|
||||||
|
"peak": 0.1024169921875,
|
||||||
|
"conversion": {
|
||||||
|
"startSeconds": 180,
|
||||||
|
"durationSeconds": 12,
|
||||||
|
"seekMethod": "input seek",
|
||||||
|
"fadeSeconds": 0.05,
|
||||||
|
"sampleRate": 24000,
|
||||||
|
"channels": 1,
|
||||||
|
"encoding": "PCM16 little-endian",
|
||||||
|
"linearGain": 4,
|
||||||
|
"targetRms": 0.08,
|
||||||
|
"peakLimit": 0.85,
|
||||||
|
"maxGain": 4,
|
||||||
|
"operations": "excerpt, downmix, resample, linear end fades, bounded linear normalization, WAV encoding"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -0,0 +1,935 @@
|
|||||||
|
{
|
||||||
|
"version": "0.2.3",
|
||||||
|
"provider": "Microsoft Edge online TTS",
|
||||||
|
"voice": "ko-KR-HyunsuMultilingualNeural",
|
||||||
|
"rate": "-6%",
|
||||||
|
"pitch": "-4Hz",
|
||||||
|
"sampleRate": 24000,
|
||||||
|
"channels": 1,
|
||||||
|
"sampleFormat": "PCM s16le",
|
||||||
|
"toolVersions": {
|
||||||
|
"edge-tts": "7.3.1",
|
||||||
|
"ffmpeg": "ffmpeg version 6.1.1-3ubuntu5 Copyright (c) 2000-2023 the FFmpeg developers"
|
||||||
|
},
|
||||||
|
"generatedAtUtc": "2026-10-14T06:55:41.751382+00:00",
|
||||||
|
"source": "https://github.com/rany2/edge-tts",
|
||||||
|
"method": "온라인 neural 생성 MP3 → FFmpeg decode → 파일별 선형 gain → 로컬 PCM WAV",
|
||||||
|
"normalization": {
|
||||||
|
"targetRms": 0.1,
|
||||||
|
"peakCeiling": 0.89,
|
||||||
|
"maxGain": 2.0
|
||||||
|
},
|
||||||
|
"files": [
|
||||||
|
{
|
||||||
|
"file": "intro.wav",
|
||||||
|
"text": "으하하하~~ 나는 에스다. 널 위한 행운의 단어를 불러주마, 잘 찾아보거라.",
|
||||||
|
"sha256": "90d9f46e6e3f9c8a0c1a781096df54d7809ef4ad38b289508ef7b8c0411465ce",
|
||||||
|
"bytes": 338732,
|
||||||
|
"duration": 7.056,
|
||||||
|
"rms": 0.09999999766232884,
|
||||||
|
"peak": 0.499847412109375
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "luck-apple.wav",
|
||||||
|
"text": "오늘의 행운을 담은 단어는 ‘사과’입니다.",
|
||||||
|
"sha256": "7c8f413f4b7e164f090e508ba090448f1376c6012649bbb6a917d45851313883",
|
||||||
|
"bytes": 188972,
|
||||||
|
"duration": 3.936,
|
||||||
|
"rms": 0.10000000059246013,
|
||||||
|
"peak": 0.401641845703125
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "luck-sea.wav",
|
||||||
|
"text": "오늘의 행운을 담은 단어는 ‘바다’입니다.",
|
||||||
|
"sha256": "47aa31d757c9fb49c9b53a1c052d90a5ced4be57549d649850d9b48f8864045b",
|
||||||
|
"bytes": 191276,
|
||||||
|
"duration": 3.984,
|
||||||
|
"rms": 0.09999997583491328,
|
||||||
|
"peak": 0.388702392578125
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "luck-tree.wav",
|
||||||
|
"text": "오늘의 행운을 담은 단어는 ‘나무’입니다.",
|
||||||
|
"sha256": "122f496834fb16d6da47f801e50e46e272e4e934af959467d1db4e490f79be7a",
|
||||||
|
"bytes": 183212,
|
||||||
|
"duration": 3.816,
|
||||||
|
"rms": 0.1000000469252297,
|
||||||
|
"peak": 0.36920166015625
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "luck-hat.wav",
|
||||||
|
"text": "오늘의 행운을 담은 단어는 ‘모자’입니다.",
|
||||||
|
"sha256": "4ff43dd042f4b5451e9fdeb3edd59f1e389a7d1dd488094587a3a9fc7dfffa44",
|
||||||
|
"bytes": 191276,
|
||||||
|
"duration": 3.984,
|
||||||
|
"rms": 0.09999997899323479,
|
||||||
|
"peak": 0.417083740234375
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "luck-umbrella.wav",
|
||||||
|
"text": "오늘의 행운을 담은 단어는 ‘우산’입니다.",
|
||||||
|
"sha256": "8d3e8e8bc97e5fe3f3362184c4abb12f01a882a1f1174d2644f0f70aac677c0a",
|
||||||
|
"bytes": 192428,
|
||||||
|
"duration": 4.008,
|
||||||
|
"rms": 0.09999996793233332,
|
||||||
|
"peak": 0.385650634765625
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "luck-market.wav",
|
||||||
|
"text": "오늘의 행운을 담은 단어는 ‘시장’입니다.",
|
||||||
|
"sha256": "356af25332bf2000ed349671f3ff39767929e1f4599af622c021f907d11fb7bf",
|
||||||
|
"bytes": 194732,
|
||||||
|
"duration": 4.056,
|
||||||
|
"rms": 0.09999998683675566,
|
||||||
|
"peak": 0.4022216796875
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "luck-oil.wav",
|
||||||
|
"text": "오늘의 행운을 담은 단어는 ‘기름’입니다.",
|
||||||
|
"sha256": "3fa1e662a3af8f2726b17b2baa5bec2934406e6595ebc243c8380dd16e190977",
|
||||||
|
"bytes": 190124,
|
||||||
|
"duration": 3.96,
|
||||||
|
"rms": 0.09999999431198445,
|
||||||
|
"peak": 0.3817138671875
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "luck-sound.wav",
|
||||||
|
"text": "오늘의 행운을 담은 단어는 ‘소리’입니다.",
|
||||||
|
"sha256": "34e4d9758d2ed448646fda364610e34779c84794403d9051ab3d8c1d33e2c80c",
|
||||||
|
"bytes": 184364,
|
||||||
|
"duration": 3.84,
|
||||||
|
"rms": 0.10000003234489044,
|
||||||
|
"peak": 0.386322021484375
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "luck-meat.wav",
|
||||||
|
"text": "오늘의 행운을 담은 단어는 ‘고기’입니다.",
|
||||||
|
"sha256": "d36dfc395a5c53fbfa4abe9980db7bb59adfdac59e40318c4aca365365e3f2ab",
|
||||||
|
"bytes": 187820,
|
||||||
|
"duration": 3.912,
|
||||||
|
"rms": 0.0999999898733683,
|
||||||
|
"peak": 0.371124267578125
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "luck-furniture.wav",
|
||||||
|
"text": "오늘의 행운을 담은 단어는 ‘가구’입니다.",
|
||||||
|
"sha256": "52cb92cdb8ee92b6f581c9d68dbc346f180c470564809ba57185429c9eb84127",
|
||||||
|
"bytes": 186668,
|
||||||
|
"duration": 3.888,
|
||||||
|
"rms": 0.10000004096194225,
|
||||||
|
"peak": 0.387054443359375
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "password-apple.wav",
|
||||||
|
"text": "연습 암호는 ‘다과’, 진짜 암호는 ‘사과’입니다.",
|
||||||
|
"sha256": "b6f5de3fe571fe3a7fdb722fe49250bcfeedef49475271e0ec76a7630907edd5",
|
||||||
|
"bytes": 235052,
|
||||||
|
"duration": 4.896,
|
||||||
|
"rms": 0.09999999690557956,
|
||||||
|
"peak": 0.483428955078125
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "password-sea.wav",
|
||||||
|
"text": "연습 암호는 ‘사다’, 진짜 암호는 ‘바다’입니다.",
|
||||||
|
"sha256": "03f45b8cb5b3dc72faf5c6e3d0e2a10cea6b60301ea400d0a4453596d2f0b337",
|
||||||
|
"bytes": 232748,
|
||||||
|
"duration": 4.848,
|
||||||
|
"rms": 0.09999999075635248,
|
||||||
|
"peak": 0.533905029296875
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "password-tree.wav",
|
||||||
|
"text": "연습 암호는 ‘나루’, 진짜 암호는 ‘나무’입니다.",
|
||||||
|
"sha256": "67da8147296e35134ec254bc82b58317630061b2c64d2d63c4be197ce8692d50",
|
||||||
|
"bytes": 233900,
|
||||||
|
"duration": 4.872,
|
||||||
|
"rms": 0.10000002225030123,
|
||||||
|
"peak": 0.490386962890625
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "password-hat.wav",
|
||||||
|
"text": "연습 암호는 ‘포자’, 진짜 암호는 ‘모자’입니다.",
|
||||||
|
"sha256": "e91bfc97df90a1675b6cd856880ac15c54de32cfc3b23603bdd1c2c5ac3ce6b8",
|
||||||
|
"bytes": 235052,
|
||||||
|
"duration": 4.896,
|
||||||
|
"rms": 0.10000000521661735,
|
||||||
|
"peak": 0.505889892578125
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "password-umbrella.wav",
|
||||||
|
"text": "연습 암호는 ‘부산’, 진짜 암호는 ‘우산’입니다.",
|
||||||
|
"sha256": "ab3ca6398c879971dc793eb25b472fcc0db72d76e386f11ef4d32c639f37c69d",
|
||||||
|
"bytes": 239660,
|
||||||
|
"duration": 4.992,
|
||||||
|
"rms": 0.10000000645104105,
|
||||||
|
"peak": 0.4776611328125
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "password-market.wav",
|
||||||
|
"text": "연습 암호는 ‘지장’, 진짜 암호는 ‘시장’입니다.",
|
||||||
|
"sha256": "02e325fb753ef7a3ee585a03d2ca2aa3f1fbc58523b062222ae1136eeed7a95c",
|
||||||
|
"bytes": 230444,
|
||||||
|
"duration": 4.8,
|
||||||
|
"rms": 0.10000002623625086,
|
||||||
|
"peak": 0.481689453125
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "password-oil.wav",
|
||||||
|
"text": "연습 암호는 ‘이름’, 진짜 암호는 ‘기름’입니다.",
|
||||||
|
"sha256": "b472957b27ff98ea7b8894fa1ff12653f7e9f66f77870faa9e52a1c1bf116c41",
|
||||||
|
"bytes": 240812,
|
||||||
|
"duration": 5.016,
|
||||||
|
"rms": 0.10000000204728039,
|
||||||
|
"peak": 0.4945068359375
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "password-sound.wav",
|
||||||
|
"text": "연습 암호는 ‘오리’, 진짜 암호는 ‘소리’입니다.",
|
||||||
|
"sha256": "044aafff08a19e39f21e58b963644715a987cd155896998769ef8e9ce6449628",
|
||||||
|
"bytes": 236204,
|
||||||
|
"duration": 4.92,
|
||||||
|
"rms": 0.10000000001020605,
|
||||||
|
"peak": 0.46209716796875
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "password-meat.wav",
|
||||||
|
"text": "연습 암호는 ‘보기’, 진짜 암호는 ‘고기’입니다.",
|
||||||
|
"sha256": "b009caadd56350d6a641ff17f0973e2b2724c183e1f45ae0bf3c483e237fa99e",
|
||||||
|
"bytes": 240812,
|
||||||
|
"duration": 5.016,
|
||||||
|
"rms": 0.10000000456206941,
|
||||||
|
"peak": 0.49786376953125
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "password-furniture.wav",
|
||||||
|
"text": "연습 암호는 ‘하구’, 진짜 암호는 ‘가구’입니다.",
|
||||||
|
"sha256": "fb2b631dd4e12120d08a84cce6450f9cd9cd68105d13d7001d808e7deaa1df4a",
|
||||||
|
"bytes": 233900,
|
||||||
|
"duration": 4.872,
|
||||||
|
"rms": 0.10000001899065697,
|
||||||
|
"peak": 0.483642578125
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "remember-apple.wav",
|
||||||
|
"text": "‘다과’. 이 단어는 잊으세요. 이제 ‘사과’, 이 단어를 기억하세요.",
|
||||||
|
"sha256": "1bf2aef9a9f030af1a8fd7dee8f44aa420a397b3ba99b575feeb3dc7a63ec191",
|
||||||
|
"bytes": 395180,
|
||||||
|
"duration": 8.232,
|
||||||
|
"rms": 0.10000000668138131,
|
||||||
|
"peak": 0.563568115234375
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "remember-sea.wav",
|
||||||
|
"text": "‘사다’. 이 단어는 잊으세요. 이제 ‘바다’, 이 단어를 기억하세요.",
|
||||||
|
"sha256": "5c91a36496e274d2be9c6fa8d9b506cd04f2a1b7ceb05ed1b7bb03fe7fca99d9",
|
||||||
|
"bytes": 399788,
|
||||||
|
"duration": 8.328,
|
||||||
|
"rms": 0.09999999180525658,
|
||||||
|
"peak": 0.546539306640625
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "remember-tree.wav",
|
||||||
|
"text": "‘나루’. 이 단어는 잊으세요. 이제 ‘나무’, 이 단어를 기억하세요.",
|
||||||
|
"sha256": "bc8e54f5407e8866bf1ca1ddfd4f6c63d85fee29bd9e430c7dd33e87974fc5b8",
|
||||||
|
"bytes": 409004,
|
||||||
|
"duration": 8.52,
|
||||||
|
"rms": 0.09999998112848245,
|
||||||
|
"peak": 0.54864501953125
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "remember-hat.wav",
|
||||||
|
"text": "‘포자’. 이 단어는 잊으세요. 이제 ‘모자’, 이 단어를 기억하세요.",
|
||||||
|
"sha256": "31a6a4270bf368cda419094d87a303ac3cd5c22539786cb165f8044b0b8e9d6e",
|
||||||
|
"bytes": 402092,
|
||||||
|
"duration": 8.376,
|
||||||
|
"rms": 0.09999997909968193,
|
||||||
|
"peak": 0.541778564453125
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "remember-umbrella.wav",
|
||||||
|
"text": "‘부산’. 이 단어는 잊으세요. 이제 ‘우산’, 이 단어를 기억하세요.",
|
||||||
|
"sha256": "c8988e604ba05d52597e561389541e8f9cda86e052279f1862bbf8399ead314e",
|
||||||
|
"bytes": 403244,
|
||||||
|
"duration": 8.4,
|
||||||
|
"rms": 0.10000001748273872,
|
||||||
|
"peak": 0.557830810546875
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "remember-market.wav",
|
||||||
|
"text": "‘지장’. 이 단어는 잊으세요. 이제 ‘시장’, 이 단어를 기억하세요.",
|
||||||
|
"sha256": "d89792da51c83ac49d27e55aa6d822a338899a5ee487b34b552748201e1522f6",
|
||||||
|
"bytes": 398636,
|
||||||
|
"duration": 8.304,
|
||||||
|
"rms": 0.09999999983200249,
|
||||||
|
"peak": 0.57281494140625
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "remember-oil.wav",
|
||||||
|
"text": "‘이름’. 이 단어는 잊으세요. 이제 ‘기름’, 이 단어를 기억하세요.",
|
||||||
|
"sha256": "3ca98682ff06d1d6b8af02c0fd5b2124f42266ac989884223eff4a9bbde1287a",
|
||||||
|
"bytes": 399788,
|
||||||
|
"duration": 8.328,
|
||||||
|
"rms": 0.09999999241389293,
|
||||||
|
"peak": 0.524383544921875
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "remember-sound.wav",
|
||||||
|
"text": "‘오리’. 이 단어는 잊으세요. 이제 ‘소리’, 이 단어를 기억하세요.",
|
||||||
|
"sha256": "98387ccc7aab566f6487d4c250b2128082cc527e013a6f7b7bc4d0266ac295df",
|
||||||
|
"bytes": 394028,
|
||||||
|
"duration": 8.208,
|
||||||
|
"rms": 0.10000002803973357,
|
||||||
|
"peak": 0.53778076171875
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "remember-meat.wav",
|
||||||
|
"text": "‘보기’. 이 단어는 잊으세요. 이제 ‘고기’, 이 단어를 기억하세요.",
|
||||||
|
"sha256": "9183ef90b64f5ceaf3bb0178c689231ff3e9981d6ce889124a15f2a6e2b7a344",
|
||||||
|
"bytes": 395180,
|
||||||
|
"duration": 8.232,
|
||||||
|
"rms": 0.10000003134220614,
|
||||||
|
"peak": 0.519287109375
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "remember-furniture.wav",
|
||||||
|
"text": "‘하구’. 이 단어는 잊으세요. 이제 ‘가구’, 이 단어를 기억하세요.",
|
||||||
|
"sha256": "442bdcb956f120c270e1f321feae0415c897de0183e468980fcc119b898b2a67",
|
||||||
|
"bytes": 403244,
|
||||||
|
"duration": 8.4,
|
||||||
|
"rms": 0.10000001858461878,
|
||||||
|
"peak": 0.5618896484375
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "last-apple.wav",
|
||||||
|
"text": "세 단어 중 마지막을 고르세요. ‘다과’, ‘사고’, ‘사과’.",
|
||||||
|
"sha256": "4cb2a8579fa3a7b91bb36363826ce8ca0d6d86e96e16a479e226a2802edd82f7",
|
||||||
|
"bytes": 356012,
|
||||||
|
"duration": 7.416,
|
||||||
|
"rms": 0.10000001764132661,
|
||||||
|
"peak": 0.622528076171875
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "last-sea.wav",
|
||||||
|
"text": "세 단어 중 마지막을 고르세요. ‘사다’, ‘보다’, ‘바다’.",
|
||||||
|
"sha256": "f755452e1da44674aa1df7d12edffa988091b89a394e7eb6d4a00eb721f07cbf",
|
||||||
|
"bytes": 345644,
|
||||||
|
"duration": 7.2,
|
||||||
|
"rms": 0.09999998238433916,
|
||||||
|
"peak": 0.591033935546875
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "last-tree.wav",
|
||||||
|
"text": "세 단어 중 마지막을 고르세요. ‘나루’, ‘너무’, ‘나무’.",
|
||||||
|
"sha256": "589e56d940a3c9e80ec02ae0b2dd93463fdc85ef019a753fcd0fded0752055f9",
|
||||||
|
"bytes": 382508,
|
||||||
|
"duration": 7.968,
|
||||||
|
"rms": 0.09999999432249608,
|
||||||
|
"peak": 0.58074951171875
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "last-hat.wav",
|
||||||
|
"text": "세 단어 중 마지막을 고르세요. ‘포자’, ‘모조’, ‘모자’.",
|
||||||
|
"sha256": "bdaf8fbc54df8061e9e58aa8c14b3044a6e863dc54973ee3ee6ae2c5ae1a28f1",
|
||||||
|
"bytes": 354860,
|
||||||
|
"duration": 7.392,
|
||||||
|
"rms": 0.099999998595968,
|
||||||
|
"peak": 0.550079345703125
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "last-umbrella.wav",
|
||||||
|
"text": "세 단어 중 마지막을 고르세요. ‘부산’, ‘오산’, ‘우산’.",
|
||||||
|
"sha256": "c801293a34013a8d93d3289a2cc87cd3eed83f97ba4647f5060efa00b117a9ad",
|
||||||
|
"bytes": 370988,
|
||||||
|
"duration": 7.728,
|
||||||
|
"rms": 0.09999998351512711,
|
||||||
|
"peak": 0.59765625
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "last-market.wav",
|
||||||
|
"text": "세 단어 중 마지막을 고르세요. ‘지장’, ‘사장’, ‘시장’.",
|
||||||
|
"sha256": "7857e87e9dbfe8fe849cc0b18c1d45b60916cb337328099c7a87a42c82e2821e",
|
||||||
|
"bytes": 359468,
|
||||||
|
"duration": 7.488,
|
||||||
|
"rms": 0.09999999842960891,
|
||||||
|
"peak": 0.600555419921875
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "last-oil.wav",
|
||||||
|
"text": "세 단어 중 마지막을 고르세요. ‘이름’, ‘거름’, ‘기름’.",
|
||||||
|
"sha256": "b5ce34950b8b31b1baf6ce55410797f0d8aa5478a670d6eace87cf76d134d6d3",
|
||||||
|
"bytes": 337580,
|
||||||
|
"duration": 7.032,
|
||||||
|
"rms": 0.10000002299391843,
|
||||||
|
"peak": 0.55706787109375
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "last-sound.wav",
|
||||||
|
"text": "세 단어 중 마지막을 고르세요. ‘오리’, ‘수리’, ‘소리’.",
|
||||||
|
"sha256": "ec9c49802aebeb6a8b898a1c0d8ad1daa127d2d64c905c197ed49a8e0c4eb64a",
|
||||||
|
"bytes": 354860,
|
||||||
|
"duration": 7.392,
|
||||||
|
"rms": 0.10000004316064788,
|
||||||
|
"peak": 0.5640869140625
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "last-meat.wav",
|
||||||
|
"text": "세 단어 중 마지막을 고르세요. ‘보기’, ‘고개’, ‘고기’.",
|
||||||
|
"sha256": "10f8ad4259ed8945c9da831e80b3902303c09caef96d400298599168fb1efed4",
|
||||||
|
"bytes": 346796,
|
||||||
|
"duration": 7.224,
|
||||||
|
"rms": 0.10000002519116054,
|
||||||
|
"peak": 0.537200927734375
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "last-furniture.wav",
|
||||||
|
"text": "세 단어 중 마지막을 고르세요. ‘하구’, ‘가교’, ‘가구’.",
|
||||||
|
"sha256": "5ad4f776e35439d408abed0e66567d6b5cdc80fc54d579165472e474f1238776",
|
||||||
|
"bytes": 357164,
|
||||||
|
"duration": 7.44,
|
||||||
|
"rms": 0.10000003394798516,
|
||||||
|
"peak": 0.583587646484375
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "first-apple.wav",
|
||||||
|
"text": "세 단어 중 첫 번째를 고르세요. ‘사과’, ‘다과’, ‘사고’.",
|
||||||
|
"sha256": "7c1dbcb3082055df2b8f087f7e906ec867c92f679de0894c34740c05e61a4bc1",
|
||||||
|
"bytes": 359468,
|
||||||
|
"duration": 7.488,
|
||||||
|
"rms": 0.1000000290826337,
|
||||||
|
"peak": 0.57977294921875
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "first-sea.wav",
|
||||||
|
"text": "세 단어 중 첫 번째를 고르세요. ‘바다’, ‘사다’, ‘보다’.",
|
||||||
|
"sha256": "0f0b39314c5f7d7168d4854003c0c284e7bc3438cdc4d1d1c5adab7cb5ed30e5",
|
||||||
|
"bytes": 349100,
|
||||||
|
"duration": 7.272,
|
||||||
|
"rms": 0.10000001935816175,
|
||||||
|
"peak": 0.57177734375
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "first-tree.wav",
|
||||||
|
"text": "세 단어 중 첫 번째를 고르세요. ‘나무’, ‘나루’, ‘너무’.",
|
||||||
|
"sha256": "3178230fd5850b6277a2153b438ec5289720e3db7ac929914cc213964f004bd5",
|
||||||
|
"bytes": 379052,
|
||||||
|
"duration": 7.896,
|
||||||
|
"rms": 0.09999998692384372,
|
||||||
|
"peak": 0.583343505859375
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "first-hat.wav",
|
||||||
|
"text": "세 단어 중 첫 번째를 고르세요. ‘모자’, ‘포자’, ‘모조’.",
|
||||||
|
"sha256": "17c8cde90567e7574b0c0702663bd70713054089ee920241b5444d9b7869eef5",
|
||||||
|
"bytes": 357164,
|
||||||
|
"duration": 7.44,
|
||||||
|
"rms": 0.1000000080433648,
|
||||||
|
"peak": 0.53125
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "first-umbrella.wav",
|
||||||
|
"text": "세 단어 중 첫 번째를 고르세요. ‘우산’, ‘부산’, ‘오산’.",
|
||||||
|
"sha256": "878e0bd2e6e4105f175aef51a028f6b141f3a2072be20f783193f3ba897a3ee0",
|
||||||
|
"bytes": 366380,
|
||||||
|
"duration": 7.632,
|
||||||
|
"rms": 0.10000000665263714,
|
||||||
|
"peak": 0.57000732421875
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "first-market.wav",
|
||||||
|
"text": "세 단어 중 첫 번째를 고르세요. ‘시장’, ‘지장’, ‘사장’.",
|
||||||
|
"sha256": "1e00b8f70a796cdebb0feb00c605fece7488b06915e6e036f54206f05e201e0c",
|
||||||
|
"bytes": 359468,
|
||||||
|
"duration": 7.488,
|
||||||
|
"rms": 0.10000001450369593,
|
||||||
|
"peak": 0.639068603515625
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "first-oil.wav",
|
||||||
|
"text": "세 단어 중 첫 번째를 고르세요. ‘기름’, ‘이름’, ‘거름’.",
|
||||||
|
"sha256": "f415195e0cfc7ee711d09de7519e88eab62cc8b58d70772c83c3f5c27c267819",
|
||||||
|
"bytes": 335276,
|
||||||
|
"duration": 6.984,
|
||||||
|
"rms": 0.10000000576279051,
|
||||||
|
"peak": 0.53472900390625
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "first-sound.wav",
|
||||||
|
"text": "세 단어 중 첫 번째를 고르세요. ‘소리’, ‘오리’, ‘수리’.",
|
||||||
|
"sha256": "46f6adeed928a16af0700f1e8626cf8049f124632a04a5d10604426fb06f9596",
|
||||||
|
"bytes": 353708,
|
||||||
|
"duration": 7.368,
|
||||||
|
"rms": 0.10000001446744461,
|
||||||
|
"peak": 0.518951416015625
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "first-meat.wav",
|
||||||
|
"text": "세 단어 중 첫 번째를 고르세요. ‘고기’, ‘보기’, ‘고개’.",
|
||||||
|
"sha256": "f51a37c1722fef581f7d642a4dcae7fcb9953b3c318dce971bf616cd1a81fecc",
|
||||||
|
"bytes": 345644,
|
||||||
|
"duration": 7.2,
|
||||||
|
"rms": 0.09999999288327781,
|
||||||
|
"peak": 0.51312255859375
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "first-furniture.wav",
|
||||||
|
"text": "세 단어 중 첫 번째를 고르세요. ‘가구’, ‘하구’, ‘가교’.",
|
||||||
|
"sha256": "29f007b385b7182db1d8aeccad4fc3c260df5e66e14e52a46b0ef0fcd0ff3a0a",
|
||||||
|
"bytes": 364076,
|
||||||
|
"duration": 7.584,
|
||||||
|
"rms": 0.09999997909045008,
|
||||||
|
"peak": 0.570037841796875
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "repeat-apple.wav",
|
||||||
|
"text": "두 번 들린 단어를 고르세요. ‘사과’, ‘다과’, ‘사과’, ‘사고’.",
|
||||||
|
"sha256": "cb7da4e9a1288cac64d168b241f27d7d2bc2dfecace58744f9bbf2792dfad04e",
|
||||||
|
"bytes": 397484,
|
||||||
|
"duration": 8.28,
|
||||||
|
"rms": 0.09999999222276726,
|
||||||
|
"peak": 0.641448974609375
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "repeat-sea.wav",
|
||||||
|
"text": "두 번 들린 단어를 고르세요. ‘바다’, ‘사다’, ‘바다’, ‘보다’.",
|
||||||
|
"sha256": "db2f235bee26ac804b5362e8e013b8f40c8da24fd3a34e0fb3b43c6d264feb36",
|
||||||
|
"bytes": 382508,
|
||||||
|
"duration": 7.968,
|
||||||
|
"rms": 0.10000003134647438,
|
||||||
|
"peak": 0.684326171875
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "repeat-tree.wav",
|
||||||
|
"text": "두 번 들린 단어를 고르세요. ‘나무’, ‘나루’, ‘나무’, ‘너무’.",
|
||||||
|
"sha256": "8735c3d9672561ca237fa87317beec2878492eb9063d6048d5b214423561acc1",
|
||||||
|
"bytes": 423980,
|
||||||
|
"duration": 8.832,
|
||||||
|
"rms": 0.10000000739222943,
|
||||||
|
"peak": 0.618743896484375
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "repeat-hat.wav",
|
||||||
|
"text": "두 번 들린 단어를 고르세요. ‘모자’, ‘포자’, ‘모자’, ‘모조’.",
|
||||||
|
"sha256": "6e089a42fd7e65e82eec7186d369c926fb7fdac794365b2bd7658822fd92437c",
|
||||||
|
"bytes": 396332,
|
||||||
|
"duration": 8.256,
|
||||||
|
"rms": 0.09999999984675931,
|
||||||
|
"peak": 0.616729736328125
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "repeat-umbrella.wav",
|
||||||
|
"text": "두 번 들린 단어를 고르세요. ‘우산’, ‘부산’, ‘우산’, ‘오산’.",
|
||||||
|
"sha256": "5e59ef39113c3d5e106862356d715f4cef2862ef8ee02654a97e532675c1ac6d",
|
||||||
|
"bytes": 410156,
|
||||||
|
"duration": 8.544,
|
||||||
|
"rms": 0.09999995863648034,
|
||||||
|
"peak": 0.674835205078125
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "repeat-market.wav",
|
||||||
|
"text": "두 번 들린 단어를 고르세요. ‘시장’, ‘지장’, ‘시장’, ‘사장’.",
|
||||||
|
"sha256": "68a5b899115a66ab225d610ec47b4de56cc8793657362bc38f533c06f741e4cc",
|
||||||
|
"bytes": 402092,
|
||||||
|
"duration": 8.376,
|
||||||
|
"rms": 0.09999998813966116,
|
||||||
|
"peak": 0.6822509765625
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "repeat-oil.wav",
|
||||||
|
"text": "두 번 들린 단어를 고르세요. ‘기름’, ‘이름’, ‘기름’, ‘거름’.",
|
||||||
|
"sha256": "55b2c7d6aa8bbce04edf8661882c9781da81c57f56217f99b80457a3bb895da0",
|
||||||
|
"bytes": 369836,
|
||||||
|
"duration": 7.704,
|
||||||
|
"rms": 0.0999999804882663,
|
||||||
|
"peak": 0.62396240234375
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "repeat-sound.wav",
|
||||||
|
"text": "두 번 들린 단어를 고르세요. ‘소리’, ‘오리’, ‘소리’, ‘수리’.",
|
||||||
|
"sha256": "e9d636ff7f4777f38b1ff15bebdcec6fbde95b4b4b05625a7415b4cfa0025b59",
|
||||||
|
"bytes": 395180,
|
||||||
|
"duration": 8.232,
|
||||||
|
"rms": 0.1000000073748717,
|
||||||
|
"peak": 0.6114501953125
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "repeat-meat.wav",
|
||||||
|
"text": "두 번 들린 단어를 고르세요. ‘고기’, ‘보기’, ‘고기’, ‘고개’.",
|
||||||
|
"sha256": "6599d2fac73ea616a793151b4ce6f51af673988d630bac6219a77e78ae6cb34e",
|
||||||
|
"bytes": 380204,
|
||||||
|
"duration": 7.92,
|
||||||
|
"rms": 0.10000001571010926,
|
||||||
|
"peak": 0.59210205078125
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "repeat-furniture.wav",
|
||||||
|
"text": "두 번 들린 단어를 고르세요. ‘가구’, ‘하구’, ‘가구’, ‘가교’.",
|
||||||
|
"sha256": "bf84dc6cff1f227924a3a62158d2fc18769fb0ca40b91418fa19e534dbf92f00",
|
||||||
|
"bytes": 397484,
|
||||||
|
"duration": 8.28,
|
||||||
|
"rms": 0.10000003132755503,
|
||||||
|
"peak": 0.667022705078125
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "correction-apple.wav",
|
||||||
|
"text": "정답은 ‘다과’입니다. 아니, 잘못 말했어요. 정정한 답은 ‘사과’입니다.",
|
||||||
|
"sha256": "ccd7327a3fb54d3320d049ffdced3bc17595861cee69429c0ee97182d454195b",
|
||||||
|
"bytes": 402092,
|
||||||
|
"duration": 8.376,
|
||||||
|
"rms": 0.10000001654596266,
|
||||||
|
"peak": 0.490325927734375
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "correction-sea.wav",
|
||||||
|
"text": "정답은 ‘사다’입니다. 아니, 잘못 말했어요. 정정한 답은 ‘바다’입니다.",
|
||||||
|
"sha256": "9233431d78ab4b144e3c33ad0cf0d49fc0fb91b29514343230ba32987b794bb3",
|
||||||
|
"bytes": 398636,
|
||||||
|
"duration": 8.304,
|
||||||
|
"rms": 0.09999997225238083,
|
||||||
|
"peak": 0.49615478515625
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "correction-tree.wav",
|
||||||
|
"text": "정답은 ‘나루’입니다. 아니, 잘못 말했어요. 정정한 답은 ‘나무’입니다.",
|
||||||
|
"sha256": "b8e8bbe6b8b14727efd953fae9d4aed2caeb004055d52f611c6378322847edbe",
|
||||||
|
"bytes": 400940,
|
||||||
|
"duration": 8.352,
|
||||||
|
"rms": 0.10000003932190811,
|
||||||
|
"peak": 0.470611572265625
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "correction-hat.wav",
|
||||||
|
"text": "정답은 ‘포자’입니다. 아니, 잘못 말했어요. 정정한 답은 ‘모자’입니다.",
|
||||||
|
"sha256": "f9f98c91cfbcfcb106eef7d5d3795a9cf3c3aab7e19a60f13d7dffe284d19f86",
|
||||||
|
"bytes": 398636,
|
||||||
|
"duration": 8.304,
|
||||||
|
"rms": 0.10000000019629104,
|
||||||
|
"peak": 0.470977783203125
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "correction-umbrella.wav",
|
||||||
|
"text": "정답은 ‘부산’입니다. 아니, 잘못 말했어요. 정정한 답은 ‘우산’입니다.",
|
||||||
|
"sha256": "92b54f04884ab915783945077efd8f3bd443849a1720f72168b6348cae1f8e85",
|
||||||
|
"bytes": 406700,
|
||||||
|
"duration": 8.472,
|
||||||
|
"rms": 0.10000000137593418,
|
||||||
|
"peak": 0.479034423828125
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "correction-market.wav",
|
||||||
|
"text": "정답은 ‘지장’입니다. 아니, 잘못 말했어요. 정정한 답은 ‘시장’입니다.",
|
||||||
|
"sha256": "b8d25b867497adcd0fe7c8b6a8a8d2e7a52965956738a83e53f58735708773f9",
|
||||||
|
"bytes": 405548,
|
||||||
|
"duration": 8.448,
|
||||||
|
"rms": 0.10000000759335076,
|
||||||
|
"peak": 0.491485595703125
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "correction-oil.wav",
|
||||||
|
"text": "정답은 ‘이름’입니다. 아니, 잘못 말했어요. 정정한 답은 ‘기름’입니다.",
|
||||||
|
"sha256": "f6eff0cdddcad9790351491e60c53cb2a70d222033a583652f2de0b8cd6abcc7",
|
||||||
|
"bytes": 406700,
|
||||||
|
"duration": 8.472,
|
||||||
|
"rms": 0.09999998611167496,
|
||||||
|
"peak": 0.470794677734375
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "correction-sound.wav",
|
||||||
|
"text": "정답은 ‘오리’입니다. 아니, 잘못 말했어요. 정정한 답은 ‘소리’입니다.",
|
||||||
|
"sha256": "5a603bc69979603afddcaeb6edf500a7c540b72405daeb33f5335d746b327da1",
|
||||||
|
"bytes": 397484,
|
||||||
|
"duration": 8.28,
|
||||||
|
"rms": 0.10000004224092506,
|
||||||
|
"peak": 0.469268798828125
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "correction-meat.wav",
|
||||||
|
"text": "정답은 ‘보기’입니다. 아니, 잘못 말했어요. 정정한 답은 ‘고기’입니다.",
|
||||||
|
"sha256": "48e91b3932d3798e852041a854b3ee08c72127e092c62083a47af6b99adff241",
|
||||||
|
"bytes": 403244,
|
||||||
|
"duration": 8.4,
|
||||||
|
"rms": 0.09999999319342226,
|
||||||
|
"peak": 0.481536865234375
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "correction-furniture.wav",
|
||||||
|
"text": "정답은 ‘하구’입니다. 아니, 잘못 말했어요. 정정한 답은 ‘가구’입니다.",
|
||||||
|
"sha256": "5c004a7b2f5a4a918c9f689f1a2dcb219a620ed14313f40a9655b36dbf64948d",
|
||||||
|
"bytes": 398636,
|
||||||
|
"duration": 8.304,
|
||||||
|
"rms": 0.10000003705538822,
|
||||||
|
"peak": 0.487396240234375
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "middle-apple.wav",
|
||||||
|
"text": "세 단어 중 가운데를 고르세요. ‘다과’, ‘사과’, ‘사고’.",
|
||||||
|
"sha256": "8832f1b793ab3eedbe663875ea8dbeabb122c329bd5879437c71230b0418c3c8",
|
||||||
|
"bytes": 360620,
|
||||||
|
"duration": 7.512,
|
||||||
|
"rms": 0.1000000102385111,
|
||||||
|
"peak": 0.553558349609375
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "middle-sea.wav",
|
||||||
|
"text": "세 단어 중 가운데를 고르세요. ‘사다’, ‘바다’, ‘보다’.",
|
||||||
|
"sha256": "b6dbe0af143ea775f05bd59a3d6af348bcc770ab378ac91ea75a56e06c326edf",
|
||||||
|
"bytes": 346796,
|
||||||
|
"duration": 7.224,
|
||||||
|
"rms": 0.1000000185368972,
|
||||||
|
"peak": 0.56494140625
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "middle-tree.wav",
|
||||||
|
"text": "세 단어 중 가운데를 고르세요. ‘나루’, ‘나무’, ‘너무’.",
|
||||||
|
"sha256": "341888c75275c13eb31058f53a1d4276be0daa0a1b5a3a45522036928b83b0c1",
|
||||||
|
"bytes": 382508,
|
||||||
|
"duration": 7.968,
|
||||||
|
"rms": 0.09999997157674806,
|
||||||
|
"peak": 0.600006103515625
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "middle-hat.wav",
|
||||||
|
"text": "세 단어 중 가운데를 고르세요. ‘포자’, ‘모자’, ‘모조’.",
|
||||||
|
"sha256": "b01ef9762ac84e3eb757243bc9286c62f7d45444a821ae35ac36a8b095e1598a",
|
||||||
|
"bytes": 353708,
|
||||||
|
"duration": 7.368,
|
||||||
|
"rms": 0.09999999400343942,
|
||||||
|
"peak": 0.555206298828125
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "middle-umbrella.wav",
|
||||||
|
"text": "세 단어 중 가운데를 고르세요. ‘부산’, ‘우산’, ‘오산’.",
|
||||||
|
"sha256": "399ea2f681f755918f1117c8baba42739ceca64b307b999342f457a9235050b6",
|
||||||
|
"bytes": 368684,
|
||||||
|
"duration": 7.68,
|
||||||
|
"rms": 0.10000004859108667,
|
||||||
|
"peak": 0.569549560546875
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "middle-market.wav",
|
||||||
|
"text": "세 단어 중 가운데를 고르세요. ‘지장’, ‘시장’, ‘사장’.",
|
||||||
|
"sha256": "c855b449e0d4ace74681bfe68e5e7f0b063568827ae872017234dbe8ae119e4c",
|
||||||
|
"bytes": 356012,
|
||||||
|
"duration": 7.416,
|
||||||
|
"rms": 0.10000000455585449,
|
||||||
|
"peak": 0.594970703125
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "middle-oil.wav",
|
||||||
|
"text": "세 단어 중 가운데를 고르세요. ‘이름’, ‘기름’, ‘거름’.",
|
||||||
|
"sha256": "7a6b122b11c07da86c95fb78e2db2a70681b5219c63d6441fe56da1979ac1dc3",
|
||||||
|
"bytes": 334124,
|
||||||
|
"duration": 6.96,
|
||||||
|
"rms": 0.10000001284837577,
|
||||||
|
"peak": 0.5399169921875
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "middle-sound.wav",
|
||||||
|
"text": "세 단어 중 가운데를 고르세요. ‘오리’, ‘소리’, ‘수리’.",
|
||||||
|
"sha256": "4d00aa6114327f450a00dacbc7e7b572ebf1de4ce9dc2fe4b5505766cca71ce9",
|
||||||
|
"bytes": 353708,
|
||||||
|
"duration": 7.368,
|
||||||
|
"rms": 0.09999999876572897,
|
||||||
|
"peak": 0.534820556640625
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "middle-meat.wav",
|
||||||
|
"text": "세 단어 중 가운데를 고르세요. ‘보기’, ‘고기’, ‘고개’.",
|
||||||
|
"sha256": "d416107cc05e7c5b92ca27100a10a8a9689de913346179945d5542de4a6bac0c",
|
||||||
|
"bytes": 342188,
|
||||||
|
"duration": 7.128,
|
||||||
|
"rms": 0.10000002241734321,
|
||||||
|
"peak": 0.510833740234375
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "middle-furniture.wav",
|
||||||
|
"text": "세 단어 중 가운데를 고르세요. ‘하구’, ‘가구’, ‘가교’.",
|
||||||
|
"sha256": "b45b1afc8d9b534ff3e0a2a2ecb99efc1f4e40d41f89f55c4ed8ba94ad6d76d4",
|
||||||
|
"bytes": 354860,
|
||||||
|
"duration": 7.392,
|
||||||
|
"rms": 0.10000000075274348,
|
||||||
|
"peak": 0.5576171875
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "message-apple.wav",
|
||||||
|
"text": "초록 불이면 앞 단어, 빨간 불이면 뒤 단어입니다. ‘다과’, ‘사과’. 지금은 빨간 불입니다.",
|
||||||
|
"sha256": "d85e6f47d871369f00de2274139e5ad6b4b5686b5e20e248df0ed6b9a320d942",
|
||||||
|
"bytes": 517292,
|
||||||
|
"duration": 10.776,
|
||||||
|
"rms": 0.10000001428889653,
|
||||||
|
"peak": 0.525360107421875
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "message-sea.wav",
|
||||||
|
"text": "초록 불이면 앞 단어, 빨간 불이면 뒤 단어입니다. ‘사다’, ‘바다’. 지금은 빨간 불입니다.",
|
||||||
|
"sha256": "28a461fbe03bffe2560030dea8b60715f7c0fe262dcf85b5b7f7daf483836382",
|
||||||
|
"bytes": 517292,
|
||||||
|
"duration": 10.776,
|
||||||
|
"rms": 0.09999998804256775,
|
||||||
|
"peak": 0.53521728515625
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "message-tree.wav",
|
||||||
|
"text": "초록 불이면 앞 단어, 빨간 불이면 뒤 단어입니다. ‘나루’, ‘나무’. 지금은 빨간 불입니다.",
|
||||||
|
"sha256": "5d684aa710a63d36ed8dcc2a8bfbdd5c71b0b1c63dad2a324adecb76591e85b8",
|
||||||
|
"bytes": 540332,
|
||||||
|
"duration": 11.256,
|
||||||
|
"rms": 0.09999996112285715,
|
||||||
|
"peak": 0.5262451171875
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "message-hat.wav",
|
||||||
|
"text": "초록 불이면 앞 단어, 빨간 불이면 뒤 단어입니다. ‘포자’, ‘모자’. 지금은 빨간 불입니다.",
|
||||||
|
"sha256": "5a713a8522b231bb8276805c014b385b9150b79f58ff2618446607e2b442495e",
|
||||||
|
"bytes": 518444,
|
||||||
|
"duration": 10.8,
|
||||||
|
"rms": 0.10000001032745777,
|
||||||
|
"peak": 0.587005615234375
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "message-umbrella.wav",
|
||||||
|
"text": "초록 불이면 앞 단어, 빨간 불이면 뒤 단어입니다. ‘부산’, ‘우산’. 지금은 빨간 불입니다.",
|
||||||
|
"sha256": "41d5866dae66600df4694a8312b531571d44cece6dba0e423e7c43d09d184819",
|
||||||
|
"bytes": 523052,
|
||||||
|
"duration": 10.896,
|
||||||
|
"rms": 0.09999985338851038,
|
||||||
|
"peak": 0.530364990234375
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "message-market.wav",
|
||||||
|
"text": "초록 불이면 앞 단어, 빨간 불이면 뒤 단어입니다. ‘지장’, ‘시장’. 지금은 빨간 불입니다.",
|
||||||
|
"sha256": "9242d4cd6e0030e6b073e4d2360f84aa8a454d1749711cdb2d64c14f28a7ea20",
|
||||||
|
"bytes": 523052,
|
||||||
|
"duration": 10.896,
|
||||||
|
"rms": 0.10000000012409799,
|
||||||
|
"peak": 0.534820556640625
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "message-oil.wav",
|
||||||
|
"text": "초록 불이면 앞 단어, 빨간 불이면 뒤 단어입니다. ‘이름’, ‘기름’. 지금은 빨간 불입니다.",
|
||||||
|
"sha256": "a2a71a7e5e07c81871a25c6cb7540c39aa0b32fc44f78cda66b5f34ace98d805",
|
||||||
|
"bytes": 509228,
|
||||||
|
"duration": 10.608,
|
||||||
|
"rms": 0.09999999520245731,
|
||||||
|
"peak": 0.51812744140625
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "message-sound.wav",
|
||||||
|
"text": "초록 불이면 앞 단어, 빨간 불이면 뒤 단어입니다. ‘오리’, ‘소리’. 지금은 빨간 불입니다.",
|
||||||
|
"sha256": "1e682147dae8026ba78dc8f256c7f24acb3a6743bfd88a0fcc86096930eef078",
|
||||||
|
"bytes": 521900,
|
||||||
|
"duration": 10.872,
|
||||||
|
"rms": 0.09999998164749332,
|
||||||
|
"peak": 0.51953125
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "message-meat.wav",
|
||||||
|
"text": "초록 불이면 앞 단어, 빨간 불이면 뒤 단어입니다. ‘보기’, ‘고기’. 지금은 빨간 불입니다.",
|
||||||
|
"sha256": "ce19735df079b54c171e775b6b365385a80160b9033442abab95b2b9c8505e1a",
|
||||||
|
"bytes": 512684,
|
||||||
|
"duration": 10.68,
|
||||||
|
"rms": 0.10000001752061703,
|
||||||
|
"peak": 0.5147705078125
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "message-furniture.wav",
|
||||||
|
"text": "초록 불이면 앞 단어, 빨간 불이면 뒤 단어입니다. ‘하구’, ‘가구’. 지금은 빨간 불입니다.",
|
||||||
|
"sha256": "26c331b7e12311236f4bb48f88918dfbf53cccd2f50b55741ea6ff4473e71dd8",
|
||||||
|
"bytes": 521900,
|
||||||
|
"duration": 10.872,
|
||||||
|
"rms": 0.09999998693144198,
|
||||||
|
"peak": 0.529327392578125
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "mission-apple.wav",
|
||||||
|
"text": "오른쪽 표지는 ‘사과’, 왼쪽 표지는 ‘다과’입니다.",
|
||||||
|
"sha256": "3ef42e276ff3500c3e197d149f29f79d6a0c1d5516ed1d5a2c57210333fded9c",
|
||||||
|
"bytes": 246572,
|
||||||
|
"duration": 5.136,
|
||||||
|
"rms": 0.10000000281248776,
|
||||||
|
"peak": 0.47015380859375
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "mission-sea.wav",
|
||||||
|
"text": "오른쪽 표지는 ‘바다’, 왼쪽 표지는 ‘사다’입니다.",
|
||||||
|
"sha256": "8838d6a1ee8a790427dc5aa761e70b3d8872af62086efeed743297ff7f8b8a06",
|
||||||
|
"bytes": 243116,
|
||||||
|
"duration": 5.064,
|
||||||
|
"rms": 0.10000001881351578,
|
||||||
|
"peak": 0.45013427734375
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "mission-tree.wav",
|
||||||
|
"text": "오른쪽 표지는 ‘나무’, 왼쪽 표지는 ‘나루’입니다.",
|
||||||
|
"sha256": "00d8e77ec0371971d632724d91f8cf8d947bfb83c582a513b6421be4c457a1da",
|
||||||
|
"bytes": 241964,
|
||||||
|
"duration": 5.04,
|
||||||
|
"rms": 0.09999999375024479,
|
||||||
|
"peak": 0.458526611328125
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "mission-hat.wav",
|
||||||
|
"text": "오른쪽 표지는 ‘모자’, 왼쪽 표지는 ‘포자’입니다.",
|
||||||
|
"sha256": "308278ec2bd27d4224976a55632d1f7fa1edabb0792126d9d858a699c287aee4",
|
||||||
|
"bytes": 245420,
|
||||||
|
"duration": 5.112,
|
||||||
|
"rms": 0.10000000114877691,
|
||||||
|
"peak": 0.4498291015625
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "mission-umbrella.wav",
|
||||||
|
"text": "오른쪽 표지는 ‘우산’, 왼쪽 표지는 ‘부산’입니다.",
|
||||||
|
"sha256": "4b4c858a25659540f9dbc524664496fc6de61ab8c1627f3cfee8c9c744e11d5b",
|
||||||
|
"bytes": 247724,
|
||||||
|
"duration": 5.16,
|
||||||
|
"rms": 0.1000000183428341,
|
||||||
|
"peak": 0.46533203125
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "mission-market.wav",
|
||||||
|
"text": "오른쪽 표지는 ‘시장’, 왼쪽 표지는 ‘지장’입니다.",
|
||||||
|
"sha256": "cefa0e95649ea6bd1df4c8dfccd2b74b4f4c028714420ce1087b61db2f2a8d47",
|
||||||
|
"bytes": 248876,
|
||||||
|
"duration": 5.184,
|
||||||
|
"rms": 0.10000000503014783,
|
||||||
|
"peak": 0.485687255859375
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "mission-oil.wav",
|
||||||
|
"text": "오른쪽 표지는 ‘기름’, 왼쪽 표지는 ‘이름’입니다.",
|
||||||
|
"sha256": "5fb63e04520c312aa6b7b48b70c2f7c140b5ab480e5c6992edbc2ba85b9a06e7",
|
||||||
|
"bytes": 241964,
|
||||||
|
"duration": 5.04,
|
||||||
|
"rms": 0.10000003066640888,
|
||||||
|
"peak": 0.443572998046875
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "mission-sound.wav",
|
||||||
|
"text": "오른쪽 표지는 ‘소리’, 왼쪽 표지는 ‘오리’입니다.",
|
||||||
|
"sha256": "659eb0e2b06e6b165b46744769743e032e2282519f8486c57bc45e0f7d07a069",
|
||||||
|
"bytes": 240812,
|
||||||
|
"duration": 5.016,
|
||||||
|
"rms": 0.10000000508879303,
|
||||||
|
"peak": 0.454803466796875
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "mission-meat.wav",
|
||||||
|
"text": "오른쪽 표지는 ‘고기’, 왼쪽 표지는 ‘보기’입니다.",
|
||||||
|
"sha256": "94f8a4f9e116a787e5ed052661d6de9ecf3ad8629db476661dd59ad03014b0c9",
|
||||||
|
"bytes": 244268,
|
||||||
|
"duration": 5.088,
|
||||||
|
"rms": 0.0999999931549985,
|
||||||
|
"peak": 0.441864013671875
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "mission-furniture.wav",
|
||||||
|
"text": "오른쪽 표지는 ‘가구’, 왼쪽 표지는 ‘하구’입니다.",
|
||||||
|
"sha256": "af82e03b686635c3356e706fe5b05c1231aeaaeab33f275aa5b8714988c65d43",
|
||||||
|
"bytes": 241964,
|
||||||
|
"duration": 5.04,
|
||||||
|
"rms": 0.09999996810995776,
|
||||||
|
"peak": 0.4852294921875
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"generatedForVersion": "0.1.1",
|
||||||
|
"releaseNote": "0.2.3 retains all 101 original v0.1.1 neural WAV bytes; only release metadata changed."
|
||||||
|
}
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
{
|
||||||
|
"status": "passed",
|
||||||
|
"failedTests": []
|
||||||
|
}
|
||||||
|
After Width: | Height: | Size: 86 KiB |
|
After Width: | Height: | Size: 167 KiB |
|
After Width: | Height: | Size: 85 KiB |
|
After Width: | Height: | Size: 69 KiB |
|
After Width: | Height: | Size: 142 KiB |
|
After Width: | Height: | Size: 73 KiB |
|
After Width: | Height: | Size: 85 KiB |
|
After Width: | Height: | Size: 288 B |
|
After Width: | Height: | Size: 289 B |
|
After Width: | Height: | Size: 248 B |
|
After Width: | Height: | Size: 73 KiB |
|
After Width: | Height: | Size: 262 B |
|
After Width: | Height: | Size: 262 B |
|
After Width: | Height: | Size: 224 B |
|
After Width: | Height: | Size: 139 KiB |
|
After Width: | Height: | Size: 68 KiB |
|
After Width: | Height: | Size: 142 KiB |
|
After Width: | Height: | Size: 68 KiB |
|
After Width: | Height: | Size: 139 KiB |
|
After Width: | Height: | Size: 68 KiB |
|
After Width: | Height: | Size: 142 KiB |
|
After Width: | Height: | Size: 68 KiB |
|
After Width: | Height: | Size: 81 KiB |
|
After Width: | Height: | Size: 68 KiB |
|
After Width: | Height: | Size: 86 KiB |
|
After Width: | Height: | Size: 68 KiB |
@@ -0,0 +1,4 @@
|
|||||||
|
{
|
||||||
|
"status": "passed",
|
||||||
|
"failedTests": []
|
||||||
|
}
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
"status": "failed",
|
||||||
|
"failedTests": [
|
||||||
|
"8b5f6416abeab163a0eb-f77a1fb967b324d0e8f6"
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -0,0 +1,265 @@
|
|||||||
|
# Instructions
|
||||||
|
|
||||||
|
- Following Playwright test failed.
|
||||||
|
- Explain why, be concise, respect Playwright best practices.
|
||||||
|
- Provide a snippet of code with the fix, if possible.
|
||||||
|
|
||||||
|
# Test info
|
||||||
|
|
||||||
|
- Name: gains.spec.ts >> 실제 GainNode의 배경 배율은 8환경 × SNR 경계·0에서 동일하다
|
||||||
|
- Location: tests/browser/gains.spec.ts:74:1
|
||||||
|
|
||||||
|
# Error details
|
||||||
|
|
||||||
|
```
|
||||||
|
Error: expect(received).toBeCloseTo(expected, precision)
|
||||||
|
|
||||||
|
Expected: 0.4198884518664126
|
||||||
|
Received: 1
|
||||||
|
|
||||||
|
Expected precision: 6
|
||||||
|
Expected difference: < 0.0000005
|
||||||
|
Received difference: 0.5801115481335875
|
||||||
|
```
|
||||||
|
|
||||||
|
# Page snapshot
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
- generic [ref=e2]:
|
||||||
|
- link "본문으로 건너뛰기" [ref=e3] [cursor=pointer]:
|
||||||
|
- /url: "#main"
|
||||||
|
- banner [ref=e4]:
|
||||||
|
- generic [ref=e5]:
|
||||||
|
- heading "단어를 맞춰라" [level=1] [ref=e11]
|
||||||
|
- generic [ref=e12]: v0.2.5
|
||||||
|
- generic [ref=e13]:
|
||||||
|
- button "문제 풀이 종료" [ref=e14] [cursor=pointer]
|
||||||
|
- text: 소리에 집중하는 시간
|
||||||
|
- main [ref=e16]:
|
||||||
|
- region "단어 찾기 게임" [ref=e17]:
|
||||||
|
- generic [ref=e18]:
|
||||||
|
- generic [ref=e19]: 나의 소리 탐험
|
||||||
|
- generic [ref=e20]: 문제 01 / 3
|
||||||
|
- progressbar "현재 문항 진행률" [ref=e21]
|
||||||
|
- generic [ref=e22]:
|
||||||
|
- complementary [ref=e23]:
|
||||||
|
- paragraph [ref=e24]: 지금 듣고 있는 공간
|
||||||
|
- heading "길거리" [level=2] [ref=e25]
|
||||||
|
- paragraph [ref=e26]: 지나가는 차와 도시의 웅성임
|
||||||
|
- generic [ref=e33]: S
|
||||||
|
- generic [ref=e70]: 1단계 · SNR -12 dB
|
||||||
|
- paragraph [ref=e71]: 소리에 익숙해지기
|
||||||
|
- generic [ref=e72]:
|
||||||
|
- generic [ref=e73]: 목표 음성 SNR
|
||||||
|
- slider "목표 음성 SNR" [ref=e74] [cursor=pointer]: "-12"
|
||||||
|
- status [ref=e75]: SNR -12 dB
|
||||||
|
- paragraph [ref=e76]: 음성이 기준보다 12 dB 작아요. 범위 −12~+12 dB · 1 dB 간격. 배경 크기는 일정해요. 양수는 음성을 더 크게, 0은 기준 크기로, 음수는 더 작게 들려줘요. 변경은 다음 재생·재청취부터 적용돼요.
|
||||||
|
- generic [ref=e77]:
|
||||||
|
- generic [ref=e78]: ◖)) 전체 음량
|
||||||
|
- slider "전체 음량" [ref=e79] [cursor=pointer]: "100"
|
||||||
|
- status [ref=e80]: 100%
|
||||||
|
- generic [ref=e81]:
|
||||||
|
- generic [ref=e82]:
|
||||||
|
- text: 점수
|
||||||
|
- generic [ref=e83]: "0"
|
||||||
|
- generic [ref=e84]:
|
||||||
|
- text: 연속 정답
|
||||||
|
- generic [ref=e85]: "0"
|
||||||
|
- generic [ref=e86]:
|
||||||
|
- generic [ref=e87]:
|
||||||
|
- generic [ref=e88]: 두 번의 힌트
|
||||||
|
- generic [ref=e89]: 객관식
|
||||||
|
- generic [ref=e90]:
|
||||||
|
- generic [aria-hidden] [ref=e91]: ♬
|
||||||
|
- heading "소리 사이에 집중해 보세요." [level=2] [ref=e92]
|
||||||
|
- paragraph [ref=e93]: 문장이 끝나면 질문이 나타나요.작은 단어 하나를 기억해 주세요.
|
||||||
|
- status [ref=e94]: 에스의 목소리를 듣고 있어요…
|
||||||
|
- generic [ref=e95]:
|
||||||
|
- button "듣는 중…" [disabled] [ref=e96]
|
||||||
|
- button "듣기 중단" [ref=e97] [cursor=pointer]
|
||||||
|
- generic [ref=e98]: 다시 들어도 점수는 줄어들지 않아요.
|
||||||
|
- contentinfo [ref=e99]:
|
||||||
|
- paragraph [ref=e100]: Designed by OZ at Heat-T Medical Inc.
|
||||||
|
- paragraph [ref=e101]: 청각적 주의·식별 게임 · 의료적 진단이나 치료를 제공하지 않습니다.
|
||||||
|
- generic [ref=e102]: 개인정보 수집 없이, 오직 플레이만.
|
||||||
|
- link "환경음 출처·라이선스" [ref=e103] [cursor=pointer]:
|
||||||
|
- /url: /ambience/AMBIENCE_NOTICES.md
|
||||||
|
```
|
||||||
|
|
||||||
|
# Test source
|
||||||
|
|
||||||
|
```ts
|
||||||
|
19 | }[];
|
||||||
|
20 | };
|
||||||
|
21 | }
|
||||||
|
22 | }
|
||||||
|
23 | test.beforeEach(async ({ page }) => {
|
||||||
|
24 | await page.addInitScript(() => {
|
||||||
|
25 | window.mixerProbe = { sources: [] };
|
||||||
|
26 | const edges = new WeakMap<AudioNode, AudioNode>();
|
||||||
|
27 | const settings = new WeakMap<AudioParam, number>();
|
||||||
|
28 | const connect = AudioNode.prototype.connect;
|
||||||
|
29 | const set = AudioParam.prototype.setValueAtTime;
|
||||||
|
30 | const start = AudioBufferSourceNode.prototype.start;
|
||||||
|
31 | AudioNode.prototype.connect = function (
|
||||||
|
32 | this: AudioNode,
|
||||||
|
33 | destination: AudioNode,
|
||||||
|
34 | output?: number,
|
||||||
|
35 | input?: number,
|
||||||
|
36 | ) {
|
||||||
|
37 | const result = Reflect.apply(connect, this, [
|
||||||
|
38 | destination,
|
||||||
|
39 | output ?? 0,
|
||||||
|
40 | input ?? 0,
|
||||||
|
41 | ]);
|
||||||
|
42 | edges.set(this, destination);
|
||||||
|
43 | return result;
|
||||||
|
44 | } as typeof connect;
|
||||||
|
45 | AudioParam.prototype.setValueAtTime = function (value, time) {
|
||||||
|
46 | const result = set.call(this, value, time);
|
||||||
|
47 | if (value > 0) settings.set(this, value);
|
||||||
|
48 | return result;
|
||||||
|
49 | };
|
||||||
|
50 | AudioBufferSourceNode.prototype.start = function (...args) {
|
||||||
|
51 | const gain = edges.get(this) as GainNode;
|
||||||
|
52 | const master = edges.get(gain) as GainNode;
|
||||||
|
53 | const data = this.buffer!.getChannelData(0);
|
||||||
|
54 | const record = {
|
||||||
|
55 | loop: this.loop,
|
||||||
|
56 | duration: this.buffer!.duration,
|
||||||
|
57 | rate: this.buffer!.sampleRate,
|
||||||
|
58 | peak: data.reduce((max, x) => Math.max(max, Math.abs(x)), 0),
|
||||||
|
59 | rms: Math.sqrt(data.reduce((sum, x) => sum + x * x, 0) / data.length),
|
||||||
|
60 | scheduled: settings.get(gain.gain)!,
|
||||||
|
61 | master: master.gain.value,
|
||||||
|
62 | observed: undefined as number | undefined,
|
||||||
|
63 | };
|
||||||
|
64 | window.mixerProbe.sources.push(record);
|
||||||
|
65 | if (this.loop)
|
||||||
|
66 | setTimeout(() => {
|
||||||
|
67 | record.observed = gain.gain.value;
|
||||||
|
68 | }, 350);
|
||||||
|
69 | return start.apply(this, args);
|
||||||
|
70 | };
|
||||||
|
71 | });
|
||||||
|
72 | });
|
||||||
|
73 |
|
||||||
|
74 | test("실제 GainNode의 배경 배율은 8환경 × SNR 경계·0에서 동일하다", async ({
|
||||||
|
75 | page,
|
||||||
|
76 | browser,
|
||||||
|
77 | }, info) => {
|
||||||
|
78 | const errors: string[] = [],
|
||||||
|
79 | failed: string[] = [],
|
||||||
|
80 | external: string[] = [];
|
||||||
|
81 | page.on("pageerror", (e) => errors.push(e.message));
|
||||||
|
82 | page.on("console", (m) => {
|
||||||
|
83 | if (m.type() === "error") errors.push(m.text());
|
||||||
|
84 | });
|
||||||
|
85 | page.on("requestfailed", (r) => failed.push(r.url()));
|
||||||
|
86 | page.on("request", (r) => {
|
||||||
|
87 | if (new URL(r.url()).origin !== "http://127.0.0.1:4173")
|
||||||
|
88 | external.push(r.url());
|
||||||
|
89 | });
|
||||||
|
90 | await page.goto("/");
|
||||||
|
91 | // master=1에서도 같은 안전 상한을 만족하는지 확인한다.
|
||||||
|
92 | await page.getByRole("slider", { name: "전체 음량" }).fill("100");
|
||||||
|
93 | const rows = [];
|
||||||
|
94 | for (const environment of ENVIRONMENTS)
|
||||||
|
95 | for (const db of [-12, 0, 12]) {
|
||||||
|
96 | await page.getByLabel("배경 환경").selectOption(environment.id);
|
||||||
|
97 | await page
|
||||||
|
98 | .getByRole("slider", { name: "목표 음성 SNR" })
|
||||||
|
99 | .fill(String(db));
|
||||||
|
100 | await page.evaluate(() => {
|
||||||
|
101 | window.mixerProbe.sources = [];
|
||||||
|
102 | });
|
||||||
|
103 | await page.getByRole("button", { name: "게임 시작 · 소리 듣기" }).click();
|
||||||
|
104 | await expect
|
||||||
|
105 | .poll(() =>
|
||||||
|
106 | page.evaluate(
|
||||||
|
107 | () =>
|
||||||
|
108 | window.mixerProbe.sources.filter((s) => s.observed !== undefined)
|
||||||
|
109 | .length,
|
||||||
|
110 | ),
|
||||||
|
111 | )
|
||||||
|
112 | .toBe(1);
|
||||||
|
113 | const sources = await page.evaluate(() => window.mixerProbe.sources);
|
||||||
|
114 | expect(sources).toHaveLength(3);
|
||||||
|
115 | const [background, intro, voice] = sources;
|
||||||
|
116 | expect(background!.loop).toBe(true);
|
||||||
|
117 | expect(background!.duration).toBe(12);
|
||||||
|
118 | expect(background!.scheduled).toBe(FIXED_HEADROOM_GAIN);
|
||||||
|
> 119 | expect(background!.observed).toBeCloseTo(FIXED_HEADROOM_GAIN, 6);
|
||||||
|
| ^ Error: expect(received).toBeCloseTo(expected, precision)
|
||||||
|
120 | expect(voice!.scheduled / background!.scheduled).toBeCloseTo(
|
||||||
|
121 | 10 ** (db / 20),
|
||||||
|
122 | 10,
|
||||||
|
123 | );
|
||||||
|
124 | expect(intro!.scheduled).toBeCloseTo(FIXED_HEADROOM_GAIN * 1.8, 10);
|
||||||
|
125 | expect(voice!.rms).toBeCloseTo(0.03, 6);
|
||||||
|
126 | expect(intro!.rms).toBeCloseTo(0.03, 6);
|
||||||
|
127 | for (const [kind, source] of [
|
||||||
|
128 | ["background", background],
|
||||||
|
129 | ["voice", voice],
|
||||||
|
130 | ["intro", intro],
|
||||||
|
131 | ] as const) {
|
||||||
|
132 | expect(source!.peak).toBeLessThanOrEqual(PEAK_BOUNDS[kind]);
|
||||||
|
133 | expect(source!.master).toBe(1);
|
||||||
|
134 | }
|
||||||
|
135 | rows.push({ environment: environment.id, db, sources });
|
||||||
|
136 | await page.getByRole("button", { name: "문제 풀이 종료" }).click();
|
||||||
|
137 | await page.getByRole("button", { name: "처음 화면으로" }).click();
|
||||||
|
138 | }
|
||||||
|
139 | // 같은 PCM의 RMS도 모든 SNR에서 보존된다. 배경 재정규화나 gain 보상이 없어야 한다.
|
||||||
|
140 | for (const environment of ENVIRONMENTS) {
|
||||||
|
141 | const rms = rows
|
||||||
|
142 | .filter((r) => r.environment === environment.id)
|
||||||
|
143 | .map((r) => r.sources[0]!.rms);
|
||||||
|
144 | expect(new Set(rms).size).toBe(1);
|
||||||
|
145 | }
|
||||||
|
146 | expect({ errors, failed, external }).toEqual({
|
||||||
|
147 | errors: [],
|
||||||
|
148 | failed: [],
|
||||||
|
149 | external: [],
|
||||||
|
150 | });
|
||||||
|
151 | await info.attach("actual-gain-nodes", {
|
||||||
|
152 | body: JSON.stringify(
|
||||||
|
153 | {
|
||||||
|
154 | chrome: browser.version(),
|
||||||
|
155 | fixedGain: FIXED_HEADROOM_GAIN,
|
||||||
|
156 | rows,
|
||||||
|
157 | errors,
|
||||||
|
158 | failed,
|
||||||
|
159 | external,
|
||||||
|
160 | },
|
||||||
|
161 | null,
|
||||||
|
162 | 2,
|
||||||
|
163 | ),
|
||||||
|
164 | contentType: "application/json",
|
||||||
|
165 | });
|
||||||
|
166 | });
|
||||||
|
167 |
|
||||||
|
168 | // HTTP 200으로 반환되는 실제 WAV 한 sample만 바꾼다. decoder가 허용하는 손상도 hash가 차단해야 한다.
|
||||||
|
169 | test("실제 WAV 변조는 소스 시작 전에 거부하고 원본 재시도로 회복한다", async ({
|
||||||
|
170 | page,
|
||||||
|
171 | }) => {
|
||||||
|
172 | await page.route(/\/ambience\/.*\.wav/, async (route) => {
|
||||||
|
173 | const response = await route.fetch();
|
||||||
|
174 | const body = await response.body();
|
||||||
|
175 | body[100] = body[100]! ^ 1;
|
||||||
|
176 | await route.fulfill({ response, body });
|
||||||
|
177 | });
|
||||||
|
178 | await page.goto("/");
|
||||||
|
179 | await page.getByRole("button", { name: "게임 시작 · 소리 듣기" }).click();
|
||||||
|
180 | await expect(page.getByRole("alert")).toContainText(
|
||||||
|
181 | "소리를 재생하지 못했어요",
|
||||||
|
182 | );
|
||||||
|
183 | expect(await page.evaluate(() => window.mixerProbe.sources)).toEqual([]);
|
||||||
|
184 | await page.unroute(/\/ambience\/.*\.wav/);
|
||||||
|
185 | await page.getByRole("button", { name: "다시 시도" }).click();
|
||||||
|
186 | await expect(page.getByRole("group", { name: "답 선택" })).toBeVisible({
|
||||||
|
187 | timeout: 30000,
|
||||||
|
188 | });
|
||||||
|
189 | });
|
||||||
|
190 |
|
||||||
|
```
|
||||||
|
After Width: | Height: | Size: 86 KiB |
|
After Width: | Height: | Size: 167 KiB |
|
After Width: | Height: | Size: 85 KiB |