diff --git a/.agent/ACCEPTANCE-v0.2.3.md b/.agent/ACCEPTANCE-v0.2.3.md new file mode 100644 index 0000000..c932e0a --- /dev/null +++ b/.agent/ACCEPTANCE-v0.2.3.md @@ -0,0 +1,62 @@ +# Find-Word v0.2.3 수용 기준 + +## 버전·문서 + +- [ ] package.json/package-lock.json/index.html/UI/README가 `0.2.3`이다. +- [ ] `CHANGELOG.md`가 존재하고 v0.2.3의 모든 요구사항·오류 수정·자산·검증 변경을 설명한다. +- [ ] 정확한 `Designed by OZ at Heat-T Medical Inc.`를 보존한다. +- [ ] README, ARCHITECTURE, DEPLOYMENT, 오디오 provenance가 새 동작과 일치한다. +- [ ] 직접 변경한 모듈·함수·클래스·핵심 변수/매개변수·비자명한 로직에 목적 중심의 상세 한국어 주석이 있다. + +## 3문항·난이도 + +- [ ] createQuestions는 라운드당 정확히 3개의 서로 다른 문제를 반환한다. +- [ ] 시작 난이도 1~5를 명시적으로 받으며 3문항이 모두 같은 level/db로 생성된다. +- [ ] 정상 완료 후 다음 단계 3문항을 시작할 수 있고 5단계 경계를 넘지 않는다. +- [ ] 진행률, 안내문, 결과 분모에 하드코딩된 10이 남지 않는다. +- [ ] mixed 모드가 3문항에서도 choice와 text를 모두 포함한다. + +## 수준/SNR 직접 조절 + +- [ ] 시작 화면에서 시작 난이도 1~5를 선택할 수 있다. +- [ ] 사용자가 배경 대비 목표 음성 SNR dB를 직접 조절할 수 있다. +- [ ] 허용 범위 밖·NaN 값은 안전한 범위/기본값으로 정규화한다. +- [ ] 변경 값은 현재 문제의 재청취와 남은 라운드 문항에 일관되게 적용된다. +- [ ] 화면에 양/0/음수 dB 의미와 현재 값을 정확히 설명한다. + +## 중도 종료 + +- [ ] loading/playing/answer/feedback 어느 단계에서도 종료할 수 있다. +- [ ] 종료 즉시 fetch/Web Audio source/timer가 취소되고 늦은 완료 이벤트가 상태를 되살리지 않는다. +- [ ] 중도 종료 결과가 정답 수/응답 수를 표시하고 무응답을 오답으로 세지 않는다. +- [ ] 결과에서 초기 화면으로 돌아가며 새 라운드에 이전 답·오디오·난이도 override가 새지 않는다. + +## 실제 배경음 + +- [ ] 8개 Environment 각각 고유 same-origin 정적 WAV URL을 가진다. +- [ ] 정확히 8개 실제 현장 녹음 WAV가 빌드에 포함된다. +- [ ] 8개 모두 24,000Hz mono PCM16이며 non-silent이고 hash가 서로 다르다. +- [ ] manifest/provenance에 environment id, 표시 이름, source page/direct URL, creator, license, attribution, conversion, source SHA-256, output SHA-256, bytes, duration, RMS, peak가 있다. +- [ ] 라이선스가 수정·공개 재배포를 허용하며 attribution/notice가 dist에도 포함된다. +- [ ] 실제 엔진은 procedural synth가 아니라 선택한 environment 파일을 fetch/decode/loop한다. +- [ ] 404/decode/timeout/abort 오류가 복구 가능한 한국어 메시지로 처리된다. +- [ ] 배경과 목표는 각각 RMS 정규화 후 `gain = 10^(dB/20)`의 상대 비율을 사용하고 clipping headroom을 유지한다. +- [ ] 외부 runtime 요청이 0이며 누락 배경/음성 경로는 SPA HTML이 아니라 404다. + +## 회귀·품질 + +- [ ] 기존 10개 mechanic/100개 목표 문장/101개 neural voice assets를 보존한다. +- [ ] 객관식·주관식·mixed, 채점, 점수, 재청취, IME 보호, 볼륨, 접근성이 동작한다. +- [ ] lint/typecheck, unit/component/Python tests, build verifier, npm audit가 통과한다. +- [ ] sandboxed system Chrome desktop/mobile browser suite가 실제 목표·배경 WAV를 decode/play한다. +- [ ] 브라우저에서 3문항 완료 → 다음 난이도, 시작 난이도 변경, SNR 변경, 재생 중 종료, 답변 후 종료, 초기화 흐름을 검증한다. +- [ ] console/page errors, failed requests, 외부 페이지 요청, axe 위반이 0이다. +- [ ] desktop/mobile start/game/normal-results/early-exit screenshots를 생성한다. +- [ ] 비밀정보 검사 0, production build에 runtime dependency 및 ambience attribution notice가 포함된다. + +## 릴리스 + +- [ ] Neo 독립 검증 후 feature branch를 push한다. +- [ ] `main` fast-forward merge, annotated tag `v0.2.3`, fresh-clone readback을 완료한다. +- [ ] findword.heart-m.com에 commit-addressed release로 원자 배포하고 기존 release를 rollback 대상으로 보존한다. +- [ ] 공개 서비스에서 버전, 배경/목표 MIME·hash, cache-busting, 3문항·다음 단계·중도 종료를 실제 Chrome으로 검증한다. diff --git a/.agent/AMBIENCE-SOURCES-v0.2.3.json b/.agent/AMBIENCE-SOURCES-v0.2.3.json new file mode 100644 index 0000000..ba8affd --- /dev/null +++ b/.agent/AMBIENCE-SOURCES-v0.2.3.json @@ -0,0 +1,180 @@ +{ + "version": "0.2.3", + "policy": { + "runtime": "All ambience files are bundled same-origin static assets; no runtime requests to source sites.", + "conversion": "Select a representative segment, remove unsuitable intelligible/incidental content where practical, trim, fade for loop safety, downmix, resample and normalize to 24000 Hz mono PCM16 WAV.", + "rights": "CC0/public-domain assets retain suggested credits; CC BY and CC BY-SA derivatives retain exact attribution, modification notice and license. The proprietary project does not claim exclusive rights over third-party recordings.", + "verified": "All eight approved direct-media files were verified on 2026-10-14 by SHA-256, byte count, ffprobe and full FFmpeg decode. The expected hashes/bytes are immutable release inputs, never learned or updated by the converter.", + "durationFields": "directMediaDurationSeconds is ffprobe format.duration of the exact directUrl bytes (including Freesound preview MP3s), not a rounded primary-page recording duration. Output duration and conversion.durationSeconds describe the 12-second WAV excerpt.", + "segmentSelection": "selectedSegmentStartSeconds is immutable per-asset release provenance: the start in exact direct-media seconds of the 12-second derivative. The generator reads it without a separate start map, inference or mutation and rejects segments outside directMediaDurationSeconds before conversion.", + "privacyScreening": "The mall 36–48s, market 24–36s and cafe 0–12s selections follow Neo's rescan of the hash-pinned sources through scripts/ambience_audio.convert with faster-whisper 1.2.1 tiny multilingual CPU int8, beam_size=5, best_of=5, default VAD and condition_on_previous_text=true. Exact final-WAV screening is recorded in .agent/evidence-v0.2.3/privacy-screening/final-asr.json; the release test requires requiredEmptyPassed=true. The rejected market 60s/cafe 180s attempt is preserved under prior-attempt-market60-cafe180. ASR is only a screening signal, not a verified transcript, proof of absence of speech/music, human listening acceptance or legal/privacy clearance. Supplementary no-VAD evidence is retained and does not override the VAD gate." + }, + "assets": [ + { + "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 + }, + { + "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 + }, + { + "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 + }, + { + "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 + }, + { + "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 + }, + { + "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 + }, + { + "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 + }, + { + "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 + } + ], + "releaseRisks": [ + "Audition chosen excerpts to avoid music and unnecessarily intelligible bystander speech.", + "The market derivative must stay CC BY-SA 4.0 with source, creator, change notice and license link.", + "The subway derivative needs CC BY 4.0 attribution and change notice.", + "Freesound direct URLs are preview MP3 files; preserve local source hashes and page/license evidence." + ] +} diff --git a/.agent/RESULT-v0.2.3.md b/.agent/RESULT-v0.2.3.md new file mode 100644 index 0000000..18464f2 --- /dev/null +++ b/.agent/RESULT-v0.2.3.md @@ -0,0 +1,394 @@ +# Find-Word v0.2.3 구현·검증 결과 + +작성일: 2026-10-14 UTC. worktree `/home/hermes/worktrees/find-word-v0.2.3`, branch `feat/v0.2.3`. +기준 HEAD `c92660b514f7af8eb556d3fa5c0fc80e4bdd4cf5`. 지정된 TASK/ACCEPTANCE/AMBIENCE-SOURCES를 먼저 읽고 기존 코드·테스트·문서를 확인했다. + +**Git commit/push/merge/tag, 외부 배포, secrets 사용은 하지 않았다.** 로컬 production preview만 사용했다. +정확한 credit **Designed by OZ at Heat-T Medical Inc.**와 private/UNLICENSED 프로젝트 권리를 보존했다. +제3자 현장음은 각각의 라이선스를 유지한다. + +**현재 screening 상태:** mall=36, market=24, cafe=0의 최종 WAV는 각각 segment 0개, +`duration_after_vad=0.0`, `requiredEmptyPassed=true`다. 사람의 청취 인수와 법적/privacy clearance는 false다. +전체 unit 125개·Python 36개·sandboxed Chrome 30개 및 lint/build가 통과했고 audit 취약점은 0개다. +실행 원문은 맨 아래 **최종 privacy screening 재시도** 절에 있다. +앞선 구현/독립 리뷰 기록은 당시 결과다. 이전 실패 screening은 별도 읽기 전용 경로에 원문 보존했다. + +## 최초 구현 내용 (아래 리뷰 수정 내역으로 보완) + +- 정확히 세 개의 서로 다른 문제/단어를 한 단계에서 출제한다. 시작 단계 1~5 선택, mixed 선택/입력/선택, + 진행률/안내/분모 3문항, 정상 완료→다음 단계의 새 3문항, 5단계 재도전과 홈 복귀를 구현했다. +- SNR을 −12~+12 dB, 1 dB 눈금으로 직접 설정한다. 범위 밖 값은 clamp, NaN/Infinity는 단계 기본값으로 복구한다. + 변경은 현재 재청취·미응답 문항·이후 라운드에 적용한다. 재생 중 gain을 바꾸지 않는다. + 다음 단계도 수동 값은 유지하고 홈 복귀 시 수동 override를 지운다. 시작 단계/모드/환경/전체 음량은 홈 설정으로 유지한다. +- ready/loading/playing/answer/feedback에서 `문제 풀이 종료`가 가능하다. token 무효화→엔진 정지→결과 전환으로 + 지연 콜백을 차단한다. 응답 수·정답 수·실제 응답 분모를 표시하고 무응답을 오답으로 세지 않는다. +- 여덟 고유 실제 현장 녹음을 fetch/decode/loop한다. 절차적 잡음 합성 코드는 제거했다. + 101개 음성 및 여덟 배경은 모두 same-origin `?v=0.2.3` 정적 요청이다. 런타임 외부 API/TTS/추적은 없다. +- 음성과 배경을 각각 RMS .03으로 정규화하고 상대 gain `10^(dB/20)`을 적용한다. + 안내/목표/배경의 피크 합에 공통 gain을 적용해 최악 합계 peak ≤ .8을 유지한다. + master 음량은 그 뒤 공통 적용되므로 SNR을 보존한다. 배경은 목표 ended에서 함께 정리한다. +- HTTP/decode/준비 15초 timeout/재생 길이+5초 timeout/abort 후 한국어 안내와 재시도를 유지한다. +- CHANGELOG 생성, package/lock/HTML/UI/자산 버전/README/설계/배포/오디오/단어/권리 문서를 0.2.3에 맞췄다. + 상세 한국어 설계 주석을 수정 코드의 모듈·함수·클래스·상태/매개변수·경합/수치 계산에 추가했다. + +## RED → GREEN 원문 + +각 동작/회귀는 테스트를 먼저 작성·실행한 뒤 구현했다. 아래 RED의 종료 코드는 1, GREEN은 0이다. +`-t`로 좁힌 실행의 skipped는 필터 제외이며 최종 전체 실행은 skip 0이다. 실패 원문을 성공 로그로 대체하지 않았다. + +| 계약/회귀 | RED → GREEN | 원문 | +| --- | --- | --- | +| 세 문항/같은 시작 단계/혼합/점수 | 기존 10문항·자동 단계에서 3 실패 → 9 통과 | [01 RED](evidence-v0.2.3/01-round-RED.log), [01 GREEN](evidence-v0.2.3/01-round-GREEN.log) | +| SNR 정규화/미응답 전파/전 단계 종료/지연 이벤트 | 누락 reducer action 등 7 실패 → 15 통과 | [02 RED](evidence-v0.2.3/02-snr-exit-RED.log), [02 GREEN](evidence-v0.2.3/02-snr-exit-GREEN.log) | +| 시작 단계/수동 SNR/다음 라운드/5단계 경계/중도 결과/UI 초기화 | 10 실패 → 18 통과 | [03 RED](evidence-v0.2.3/03-screen-RED.log), [03 GREEN](evidence-v0.2.3/03-screen-GREEN.log) | +| 고유 녹음 URL/절차적 매개변수 제거/peak/SNR 수학 | 2 실패 → 콘텐츠 포함 19 통과 | [04 RED](evidence-v0.2.3/04-recorded-mix-RED.log), [04 GREEN](evidence-v0.2.3/04-recorded-mix-GREEN.log) | +| 실제 배경 fetch/decode/loop/abort/timeout/재시도 | 전환 중 남은 합성 호출 및 누락 녹음 경로로 9 실패 → 11 통과 | [05 RED](evidence-v0.2.3/05-playback-RED.log), [05 GREEN](evidence-v0.2.3/05-playback-GREEN.log) | +| Node 직접 import 회귀 | ERR_MODULE_NOT_FOUND → 101문장 import 통과 | [06 RED](evidence-v0.2.3/06-node-import-RED.log), [06 GREEN](evidence-v0.2.3/06-node-import-GREEN.log) | +| 8개 배포 PCM/해시/출처/고지/루프 경계 | manifest ENOENT → 전수 통과 | [07 RED](evidence-v0.2.3/07-assets-RED.log), [07 GREEN](evidence-v0.2.3/07-assets-GREEN.log) | +| 실제 FFmpeg 변환/재현/무음 거부/길이 제한 | 변환 모듈 없음 → Python 2 통과 | [변환 RED](evidence-v0.2.3/07-converter-RED.log), [변환 GREEN](evidence-v0.2.3/07-converter-GREEN.log) | +| 재생 중 SNR 변경의 실제 청취 이력 | −10을 들었다고 잘못 기록 → 34 통과 | [08 RED](evidence-v0.2.3/08-heard-snr-RED.log), [08 GREEN](evidence-v0.2.3/08-heard-snr-GREEN.log) | +| 버전/문서/변경 이력/기존 voice metadata | 이전 버전·누락 CHANGELOG → 50 통과 | [09 RED](evidence-v0.2.3/09-version-docs-RED.log), [09 GREEN](evidence-v0.2.3/09-version-docs-GREEN.log) | +| 3문항의 환경 순환 회귀 | 3개 환경만 도달 → 8개 도달, 35 통과 | [10 RED](evidence-v0.2.3/10-environment-rotation-RED.log), [10 GREEN](evidence-v0.2.3/10-environment-rotation-GREEN.log) | +| dist 현장음/manifest/notice 변조·누락·원본 혼입/고지 링크 | 5 실패 → 26 통과 | [11 RED](evidence-v0.2.3/11-bundle-notice-RED.log), [11 GREEN](evidence-v0.2.3/11-bundle-notice-GREEN.log) | +| 누락 WAV의 SPA fallback | desktop/mobile 200 HTML → 양쪽 404, 4 통과 | [13 RED](evidence-v0.2.3/13-static-404-RED.log), [13 GREEN](evidence-v0.2.3/13-static-404-GREEN.log) | +| 결과 화면의 잘못된 도움말 anchor | 없는 #howto 링크 노출 → 제거 | [15 RED](evidence-v0.2.3/15-results-anchor-RED.log), [15 GREEN](evidence-v0.2.3/15-results-anchor-GREEN.log) | +| 새 설정의 터치 크기/카드 경계 | 양쪽 23px 높이 → 44px 이상, 2 통과 | [16 RED](evidence-v0.2.3/16-controls-layout-RED.log), [16 GREEN](evidence-v0.2.3/16-controls-layout-GREEN.log) | +| 3문항의 보너스 안내 | 당시 40점 → 20점 안내; 리뷰에서 문항별 20점/합계 30점으로 재정정 | [17 RED](evidence-v0.2.3/17-bonus-copy-RED.log), [17 GREEN](evidence-v0.2.3/17-bonus-copy-GREEN.log) | +| 모바일 select 선택값 잘림 | 360px에서 글자 폭 초과 → 중복 SNR을 아래 제어에 모음 | [21 RED](evidence-v0.2.3/21-select-label-RED.log), [21 GREEN](evidence-v0.2.3/21-select-label-GREEN.log) | +| Chrome favicon 기본 404 | 내장 icon 없음/실제 콘솔 오류 → 내장 SVG | [19 RED](evidence-v0.2.3/19-favicon-RED.log), [19 GREEN](evidence-v0.2.3/19-favicon-GREEN.log) | + +추가 진단 기록도 보존했다. `01-round-sampling-regression.log`의 96/100은 세 문항으로 줄인 뒤 +기존 200 seed 표본이 작아진 테스트 회귀여서 1000 seed로 전체 100조합 도달성을 검사했다. +`03-screen-duplicate-description-RED.log`는 같은 SNR 설명을 중복 배치한 회귀를 잡았다. +`05-playback-fixture-regression.log` 뒤 mock AudioBuffer의 copyToChannel을 실제 복사처럼 보완했고 +부동소수점 0.12000000000000001 비교를 근사 비교로 바꿨다. 실제 재생은 별도의 Chrome으로 검증한다. +`12-lint-initial.log`의 축소된 union 비교/fixture 타입 오류도 수정했다. + +## 현장음 원본과 변환 + +지정된 원본 8개를 모두 사용했다. **대체 원본은 0개**다. 여섯 기존 원본을 재사용했고 café는 +HTTP 429의 **Retry-After 600초** backoff 뒤 지정 직접 URL로 다운로드했다. rain도 지정 URL에서 받았다. +[다운로드 기록](evidence-v0.2.3/source-downloads.log), [rain 기록](evidence-v0.2.3/rain-download.log). + +[원본 전수 검사](evidence-v0.2.3/source-integrity.json)는 전체 원본 SHA-256/bytes/ffprobe 정보와 +FFmpeg **전체 디코드 8/8 성공, stderr 0**을 기록한다. café 19,947,952 bytes, rain 91,187,572 bytes는 +Commons primary 메타데이터의 크기와 일치한다. [Commons API 근거](evidence-v0.2.3/commons-license-audit.json), +[primary 페이지/권리 재확인](evidence-v0.2.3/primary-page-verification.json). + +`python3 scripts/ambience_audio.py`로 원본의 명시적 중간 구간을 선택해 전부 **12초 / 24,000Hz / mono / PCM16**으로 만들었다. +양끝 **50ms 선형 fade**, RMS 목표 **.08**, 최대 증폭 **4배**, peak ceiling **.85** 중 안전한 선형 gain을 적용했다. +저레벨 rain과 순간 peak가 큰 market은 제한 때문에 RMS 목표보다 낮다. 엔진은 재생 시 각각 다시 RMS 정규화한다. +양끝 PCM은 0, non-silent 8/8, 고유 출력 해시 8/8, 각 576,044 bytes, 합계 **4,608,352 bytes**다. +대형 OGG/MP3/FLAC 원본은 `/tmp/findword-ambience-sources`에만 있으며 Git/public/dist에 번들하지 않았다. + +| 배포 자산 (`public/ambience/`) | 원본 구간 | RMS | peak | 출력 SHA-256 | +| --- | --- | --- | --- | --- | +| street.wav | 35–47s | 0.07999756 | 0.39675903 | `a8bffa201b174618955bc51b860167169125304811aabe2086b0bb35b06c3ae1` | +| mall.wav | 20–32s | 0.07999757 | 0.55468750 | `6e9171f549cacadfaeedd57a41c8e2a76b0e789f5c9a97af029a8d3558c9f145` | +| theater.wav | 45–57s | 0.07999757 | 0.49508667 | `2d6a444fb7874cdf6b2d8a741a69175299b112eb66834912c025437d8277d635` | +| department.wav | 90–102s | 0.07999758 | 0.47497559 | `aa43f3d1d3e7c2b1f8ace24ecbda45d0ea3a031db941c39506dc6c1665b8efa7` | +| market.wav | 30–42s | 0.04922208 | 0.84997559 | `4287e971a12767f70da714e0c1aff30125268f9c3faf07ebfbcc0d2904f4a312` | +| subway.wav | 65–77s | 0.07999755 | 0.42529297 | `9faf70b68617d267b367a0f3692ed90015458543ab4b0844f6c704e6a724728f` | +| cafe.wav | 120–132s | 0.07999759 | 0.39709473 | `8db06f3f09bbd8409573ba4874c7ccdd1e7e825c8a61989a4efe66206a66c2d2` | +| rain.wav | 180–192s | 0.01138463 | 0.10241699 | `f4315084e820f742b0709de5bb0d1abd3d5af1730620e08c2948b70347356dd9` | + +[배포 manifest](../public/ambience/manifest.json)에 environment id/표시 이름, source page/direct URL, creator, +license/license URL, attribution, 원본/출력 SHA-256, bytes/duration/RMS/peak, 실제 FFmpeg 버전과 변환 설정을 기록했다. +[AMBIENCE_NOTICES](../public/ambience/AMBIENCE_NOTICES.md)를 dist에 포함하고 UI에서 접근할 수 있다. +시장 파생 WAV는 **CC BY-SA 4.0**, 지하철은 **CC BY 4.0**, 나머지는 CC0/PD이며 출처·변경 고지를 보존했다. +프로젝트의 UNLICENSED를 이 녹음에 적용하지 않는다. 런타임 React/ReactDOM/scheduler의 기존 MIT 전문도 그대로 배포한다. + +## 보존과 구체적 회귀 수정 + +- **101개 neural WAV 바이트/원문/해시 변경 0**. voice manifest는 배포 version만 0.2.3으로 올리고 + `generatedForVersion: 0.1.1`을 추가했으며 생성 시각·provider·voice·prosody·도구/실측값은 보존했다. +- 기존 10 mechanic/100문장, 정답·오답 규칙·점수 공식·재청취·객관식/주관식/mixed·IME 보호를 유지했다. +- **과거 .agent 추적 파일 180개 모두 Git blob hash 동일**. v0.1/v0.1.1 RESULT와 evidence 수정 0. + [보존 검사](evidence-v0.2.3/preservation.json). +- 짧아진 라운드 때문에 순환 환경이 street/mall/theater에만 갇히는 회귀를 seed 기반 환경 셔플로 수정했다. +- 환경 URL 모듈 추가로 Python 생성기의 Node 직접 import가 깨지는 회귀를 명시적 `.ts` 경로로 수정했다. +- `heardDb`를 PLAY 시점에 기록해 재생 중 조절값이 과거 청취 이력/결과를 덮어쓰지 않게 했다. +- 중복 SNR 설명, 결과 화면의 없는 도움말 anchor, 실제 라운드 보너스 상한 안내를 바로잡았다. +- Vite dev/preview의 누락 WAV HTML fallback을 차단하고 Nginx 인계에도 `/ambience/` 404 규칙을 추가했다. +- 모바일 최종 이미지에서 시작 단계 select의 긴 선택값 잘림을 찾아 글자 폭 검사로 재현하고, 중복 SNR 표기를 전용 제어로 모았다. +- 실제 Chrome의 기본 `/favicon.ico` 404 콘솔 오류를 내장 SVG로 제거했다. + +## 리뷰 전 검증 기록 (리뷰 수정 후 결과는 문서 하단) + +환경: Node **26.7.0**, npm **11.19.0**, Python **3.11.16**, FFmpeg **6.1.1-3ubuntu5**, system Chrome **146.0.7680.80**. +[환경](evidence-v0.2.3/environment.json). Chrome sandbox 활성화, `--no-sandbox` 0개를 실행 중 process argv로 확인했다. +[실행 sandbox 기록](evidence-v0.2.3/chrome-sandbox.json); 설정 계약 테스트도 통과했다. + +| 검증 | 결과 | 원문 | +| --- | --- | --- | +| `npm run lint` | PASS, ESLint + TypeScript strict, exit 0 | [22-lint](evidence-v0.2.3/22-lint.log) | +| `npm test` | **13 files / 94 passed**, skip 0, exit 0; Python runner 포함 | [22-full-test](evidence-v0.2.3/22-full-test.log) | +| `python3 -m unittest discover -s tests/python -v` | **20 passed**, exit 0 (기존 neural 18 + 새 변환 2) | [18-python](evidence-v0.2.3/18-python.log) | +| `npm run build` | PASS, 101 voice + 8 ambience + 두 notice 검증, exit 0 | [22-build](evidence-v0.2.3/22-build.log) | +| `npm audit --json` | **취약점 0** (info/low/moderate/high/critical 모두 0), exit 0 | [audit JSON](evidence-v0.2.3/14-npm-audit.json) | +| 최종 sandboxed system Chrome desktop/mobile | **26 passed / 0 failed / 0 skipped**, exit 0; 실제 재생·접근성·무외부 요청 검증 | [22-browser](evidence-v0.2.3/22-browser.log), [machine-readable 결과](evidence-v0.2.3/browser-results.json) | +| 원본/배포 녹음 및 101개 voice 보존 | PASS | [원본](evidence-v0.2.3/source-integrity.json), [보존](evidence-v0.2.3/preservation.json) | +| 비밀정보 형식 검사 | **0 findings**, 값 노출 없이 경로/개수만 기록 | [scan](evidence-v0.2.3/secret-scan.json) | +| `git diff --check` | PASS | [최종 worktree 점검](evidence-v0.2.3/final-review.log) | + +브라우저는 1280×1000 desktop / 360×800 mobile에서 같은 production build를 사용한다. +실제 디코드한 109 WAV의 response hash/bytes/24kHz/mono/duration/RMS/peak를 전수 대조하고, +앱에서 여덟 환경을 실제 loop로 재생 후 정지했다. 혼합 모드 세 문항 완주/재청취/키보드, +4단계 시작→5단계 새 라운드, 수동 SNR 유지/재청취/홈 초기화, 재생 중 종료/응답 뒤 종료, +intro/target/ambience 404 재시도, 누락 WAV의 HTML Accept 404, notice 원문 제공을 검사한다. +정상 흐름의 console/page errors·failed requests·외부 요청·axe violations가 모두 0이어야 통과한다. +브라우저 native audio 메서드를 관찰할 때 원래 메서드를 실행하며 가짜 decode/ended를 주입하지 않는다. + +최종 캡처 8개와 실제 검사 JSON을 새 evidence에 보존했다. 모바일 게임/시작과 desktop 시작/결과의 +레이아웃을 이미지로 확인했고, 결과 분모/현재 SNR/종료 버튼/고지 링크가 잘리지 않는다. + +| 화면 | Desktop | Mobile | +| --- | --- | --- | +| 시작 | [PNG](evidence-v0.2.3/browser/desktop-start.png) | [PNG](evidence-v0.2.3/browser/mobile-start.png) | +| 게임 | [PNG](evidence-v0.2.3/browser/desktop-game.png) | [PNG](evidence-v0.2.3/browser/mobile-game.png) | +| 정상 결과 | [PNG](evidence-v0.2.3/browser/desktop-normal-results.png) | [PNG](evidence-v0.2.3/browser/mobile-normal-results.png) | +| 중도 종료 | [PNG](evidence-v0.2.3/browser/desktop-early-exit.png) | [PNG](evidence-v0.2.3/browser/mobile-early-exit.png) | + +실제 109 WAV 해시/디코드/레벨 및 오류 0 집계: +[desktop JSON](evidence-v0.2.3/browser/desktop-audio-integrity.json), +[mobile JSON](evidence-v0.2.3/browser/mobile-audio-integrity.json). +세 문항→다음 단계→중도 종료→홈·재청취의 실제 소스 시작/정지 및 네트워크 집계: +[desktop runtime](evidence-v0.2.3/browser/desktop-runtime-audit.json), +[mobile runtime](evidence-v0.2.3/browser/mobile-runtime-audit.json). + +초기 browser suite 24/24 통과 후 console/requestfailed 검사를 강화해 missing favicon을 찾았다. +그 실패는 `18-browser.log`에 남기고, 최종 검증은 별도 로그로 구분했다. 오류를 숨기거나 예외 목록으로 제외하지 않았다. +404/잘못된 WAV 주입 테스트의 의도적 실패 응답은 정상 흐름의 오류 0 집계와 구분한다. + +## 실제 검증의 한계와 인계 + +- Chrome은 실제 WAV를 디코드하고 실제 AudioContext/BufferSource를 실행했다. 헤드리스 자동 검증은 + 스피커/헤드폰의 물리 음압, 한국어 청감, 개인의 난이도나 임상 효과를 보증하지 않는다. +- 녹음 장면은 primary 출처 설명으로 확인했고 짧은 연속 구간의 포맷/신호/해시/루프를 검증했다. + **사람이 여덟 구간을 직접 청취하여 음악·불필요하게 명료한 우연 대화가 없는지 판단하는 인수는 수행하지 않았다.** + 자동 검사를 인간 청취 인증으로 주장하지 않는다. [샘플과 provenance](../docs/AUDIO_PROVENANCE.md)를 Neo가 검토할 수 있다. +- mobile은 system Chrome 360×800 viewport/touch emulation이다. 실제 Android/iOS 기기 및 Safari 검증은 별도다. +- SNR은 전체 버퍼 RMS에 대한 디지털 상대값이다. 현장음의 시간 변화 때문에 순간/주파수별 SNR은 다르다. +- 로컬 `dist`만 검증했다. production HTTPS/MIME/cache/서버 설정은 배포 후 Neo의 독립 검증 대상이다. +- 사용자 지시대로 commit/push/merge/tag/deploy는 미실행이다. acceptance의 Neo 릴리스 항목은 완료로 표시하지 않았다. + [DEPLOYMENT](../docs/DEPLOYMENT.md)에 feature push→main FF→annotated tag→fresh clone→commit-addressed 원자 배포/rollback 절차를 인계했다. + + +## 독립 리뷰 수정 — 2026-10-14 + +사용자가 요약한 두 독립 리뷰와 본 결과 문서를 읽고 release-hardening을 수행했다. +기존 uncommitted v0.2.3 작업을 이어서 수정했으며 commit/push/merge/tag/deploy는 하지 않았다. +새 실패 테스트를 먼저 실행하고 생산 코드/검증기를 수정했다. 이전 evidence 로그는 수정하지 않았다. +신규 기록은 모두 [review-fixes/](evidence-v0.2.3/review-fixes/) 아래에 있다. + +### 수정 내용과 동작 + +1. 진행 막대는 답변 수가 아닌 **현재 문항 1/3 → 2/3 → 3/3**이다. 첫 재생·답변 전·피드백과 + 다음 라운드에서도 일관된다. 접근성 이름/값, native progress 위치, 실제 PNG 채움 픽셀까지 검사한다. +2. 결과/README/설계/CHANGELOG의 점수 설명은 **정답마다 단계×100점 + 연속 정답 보너스**, + **문항별 최대 20점, 라운드 합계 0+10+20=30점**이다. 1단계 세 정답의 **330점**을 실제 UI 흐름으로 검증했다. +3. 응답이 없으면 정답률은 **— / 응답 없음**이며 0%나 0/0을 보여 주지 않는다. 응답 없는 단계는 **미진행**이다. + 중도 종료 제목은 **문제 풀이를 중간에 종료했어요.**, 정상 결과는 **N단계 문제 풀이를 마쳤어요.**로 구분한다. +4. 실제 Chrome RED에서 `입력`, 결과의 `만나요`/`최대` 등 어절 분리를 검출했다. + 모드 설명과 결과 영역에 keep-all을 적용하고 줄바꿈을 허용했다. 320px/360px에서 어절 내부 Range 줄 분리와 + 요소/문서 overflow를 검사하며 시작·정상 결과·중도 결과 캡처를 남겼다. +5. README 현재 증거 경로를 `.agent/evidence-v0.2.3/review-fixes/`로 바로잡고 일본어 reducer 테스트 제목을 한국어로 바꿨다. +6. build verifier는 앱 콘텐츠의 10 patterns×10 words+intro로 **정확한 101개 이름**을 독립 구성한다. + manifest 정확히 101개, 중복 없는 예상 inventory, dist/audio의 추가/누락 파일을 모두 검사한다. + 양쪽 manifest와 디렉터리를 함께 비우기/축약/중복/이름 변경해도 실패하며 정상 사본은 통과한다. +7. 승인 계획과 배포 manifest의 `verifiedLocalSource` 및 모호한 `sourceDurationSeconds`를 제거했다. + `expectedSourceSha256`, `sourceBytes`, `sourceVerification`과 **directUrl 바이트의 ffprobe format.duration**인 + `directMediaDurationSeconds`를 보존한다. Freesound preview MP3의 길이와 primary 페이지 표시 길이를 혼동하지 않는다. + 파생 WAV의 `duration`/`conversion.durationSeconds`는 별도로 12초다. 기존 source-integrity 증거와 대조했다. +8. 생성기는 **첫 변환 전에 여덟 원본 전부**의 승인 해시/bytes를 확인한다. 불일치/누락/중복/잘못된 목록은 실패하고, + 현재 파일 값으로 승인 계획을 덮어쓰지 않는다. 실제 원본 8개도 새 승인 필드로 재검증했다. +9. 현장음 notice를 **public/ambience/AMBIENCE_NOTICES.md**로 옮겼다. 같은 파일시스템의 staging에서 + 8 WAV·manifest·notice와 실측 PCM을 전수 검사한 다음 Linux **renameat2(RENAME_EXCHANGE)** 한 번으로 교체한다. + 최초 생성은 rename 한 번이다. overlay를 없애 stale 파일을 제거하고 정상/dangling symlink 출력을 거부한다. + 모든 변환 위치의 실패/KeyboardInterrupt, manifest/notice 쓰기 실패, staged 변조, 교환 실패/미지원, + commit 전 SIGTERM에서 이전 디렉터리를 보존한다. 실제 교환 도중 디렉터리 fd로 읽은 세 파일이 + 같은 세대인 것도 확인했다. UI 링크·build verifier·권리·배포·재현 문서를 함께 수정했다. +10. 모든 배포 notice 항목에 **creator, primary page URL, direct download URL, license URL, + outputLicense, 명시적 Changes**가 있어야 한다. 다른 항목에 공통 URL이 남아도 누락을 감추지 못한다. + 8개 항목×6개 필드 제거와 public/dist 동시 metadata 변조를 build verifier에서 거부한다. +11. CHANGELOG와 본 문서에 실제 수정/검증을 반영했다. **109 WAV 재생성 0 / 바이트 변경 0**이다. + +### 새 RED → GREEN 원문 + +| 계약 | RED | GREEN | +| --- | --- | --- | +| 진행률·330점·보너스·무응답·종료/완료 문구·README | [01 RED](evidence-v0.2.3/review-fixes/01-ui-RED.log) | [01 GREEN-02: 27 통과](evidence-v0.2.3/review-fixes/01-ui-GREEN-02.log) | +| 실제 desktop/mobile 진행률·320/360px 어절·overflow | [02 RED: 4 실패](evidence-v0.2.3/review-fixes/02-browser-RED.log) | [02 GREEN: 4 통과](evidence-v0.2.3/review-fixes/02-browser-GREEN.log) | +| manifest/폴더 동시 축약·추가/누락 | [03 RED](evidence-v0.2.3/review-fixes/03-voice-inventory-RED.log) | [03 GREEN](evidence-v0.2.3/review-fixes/03-voice-inventory-GREEN.log) | +| durable 승인 원본 메타데이터 | [04 RED](evidence-v0.2.3/review-fixes/04-source-plan-RED.log) | [04 GREEN](evidence-v0.2.3/review-fixes/04-source-plan-GREEN.log) | +| 첫 변환 전 전수 원본 검사 | [05 RED](evidence-v0.2.3/review-fixes/05-source-guard-RED.log) | [05 GREEN](evidence-v0.2.3/review-fixes/05-source-guard-GREEN.log) | +| staging·notice·symlink·검증·원자 교환·실패/중단 보존 | [06 RED](evidence-v0.2.3/review-fixes/06-atomic-RED.log) | [06 GREEN](evidence-v0.2.3/review-fixes/06-atomic-GREEN.log) | +| notice 동시 발행 경로/UI 링크/항목 내용 | [07 RED](evidence-v0.2.3/review-fixes/07-notice-path-RED.log) | [07 GREEN](evidence-v0.2.3/review-fixes/07-notice-path-GREEN.log) | +| 항목별 필수 notice 강제 | [08 RED](evidence-v0.2.3/review-fixes/08-notice-verifier-RED.log) | [08–09 GREEN: 27 통과](evidence-v0.2.3/review-fixes/08-09-build-GREEN.log) | +| manifest 사본 동시 출처/라이선스/변경 변조 | [09 RED](evidence-v0.2.3/review-fixes/09-build-plan-RED.log) | [08–09 GREEN](evidence-v0.2.3/review-fixes/08-09-build-GREEN.log) | + +RED 로그는 exit 1, 표에 연결한 GREEN은 exit 0이다. 필터 실행의 skipped는 최종 전체 실행과 구분한다. +`01-ui-GREEN.log`는 이름과 달리 **exit 1**인 중간 실행이다. 새 계약은 통과했지만 기존 통합 테스트의 +이전 제목 regex가 남아 실패했고, 그것을 고친 `01-ui-GREEN-02.log`가 실제 GREEN이다. 실패 로그도 보존했다. + +초기 RED/GREEN browser PNG를 사후 픽셀 분석한 [RED](evidence-v0.2.3/review-fixes/02-progress-pixels-RED.log) / +[GREEN](evidence-v0.2.3/review-fixes/02-progress-pixels-GREEN.log)도 보존했다. desktop 1096px 막대는 +365→731→1096px, mobile 320px 막대는 107→213→320px 채워졌다. 같은 픽셀 검사를 최종 브라우저 테스트에도 넣었다. +추가 동시 읽기/미지원 교환 검증은 [10-atomic-additional](evidence-v0.2.3/review-fixes/10-atomic-additional.log)에 있다. + +### 리뷰 수정 후 전체 검증 + +| 실행 | 실제 결과 | 원문 | +| --- | --- | --- | +| npm run lint | PASS, exit 0 | [lint](evidence-v0.2.3/review-fixes/11-lint.log) | +| npm test | 13 files / **118 passed**, skip 0, exit 0 | [unit](evidence-v0.2.3/review-fixes/11-unit.log) | +| python3 -m unittest discover -s tests/python -v | **32 passed** (neural 18 + ambience 14), exit 0 | [Python](evidence-v0.2.3/review-fixes/11-python.log) | +| npm run build | PASS, 101 voice + 8 ambience + runtime/ambience notices, exit 0 | [build](evidence-v0.2.3/review-fixes/11-build.log) | +| npm audit --json | **취약점 0**, exit 0 | [audit](evidence-v0.2.3/review-fixes/npm-audit.json) | +| sandboxed system Chrome desktop/mobile | **30 passed / 0 failed / 0 skipped / 0 flaky**, 4.0분, exit 0 | [browser log](evidence-v0.2.3/review-fixes/12-browser.log), [JSON](evidence-v0.2.3/review-fixes/browser-results.json) | + +[보존 검사](evidence-v0.2.3/review-fixes/preservation.json): 리뷰 시작 시점의 WAV 109개와 이전 `.agent` 파일 +268개 모두 해시 동일하다. Git 추적된 v0.1/v0.1.1 `.agent` 파일 180개도 HEAD와 동일하다. +[원본 재확인](evidence-v0.2.3/review-fixes/source-reverification.json): 승인 원본 8개와 배포 bundle을 검증했고 변환은 호출하지 않았다. + +Chrome **146.0.7680.80**, desktop 1280×1000/mobile 360×800에 추가 320px/360px copy 검사를 수행했다. +실행 중인 이 테스트의 Chrome 프로세스 20개에 `--no-sandbox`가 없음을 [실제 process 기록](evidence-v0.2.3/review-fixes/chrome-sandbox.json)으로 확인했다. +원래 AudioContext/BufferSource를 실행한 109 WAV 해시·decode 검사와 8개 실제 ambience loop, 오류 재시도, +키보드/axe/외부 요청/콘솔 검사에 새 진행률 픽셀·한국어 어절 검사를 더했다. +[desktop 오디오](evidence-v0.2.3/review-fixes/desktop-audio-integrity.json), +[mobile 오디오](evidence-v0.2.3/review-fixes/mobile-audio-integrity.json), +[desktop runtime](evidence-v0.2.3/review-fixes/desktop-runtime-audit.json), +[mobile runtime](evidence-v0.2.3/review-fixes/mobile-runtime-audit.json). + +| 최종 화면 | Desktop | Mobile | +| --- | --- | --- | +| 시작 | [PNG](evidence-v0.2.3/review-fixes/screenshots/desktop-start.png) | [PNG](evidence-v0.2.3/review-fixes/screenshots/mobile-start.png) | +| 게임 | [PNG](evidence-v0.2.3/review-fixes/screenshots/desktop-game.png) | [PNG](evidence-v0.2.3/review-fixes/screenshots/mobile-game.png) | +| 330점 정상 결과 | [PNG](evidence-v0.2.3/review-fixes/screenshots/desktop-normal-results.png) | [PNG](evidence-v0.2.3/review-fixes/screenshots/mobile-normal-results.png) | +| 무응답 중도 종료 | [PNG](evidence-v0.2.3/review-fixes/screenshots/desktop-early-exit.png) | [PNG](evidence-v0.2.3/review-fixes/screenshots/mobile-early-exit.png) | + +### 리뷰 후에도 남는 한계 + +**사람이 여덟 현장음 구간을 청취하여 음악/우연 대화와 적절성을 판단하는 인수는 수행하지 않았다.** +자동 PCM/Chrome 재생 검증을 인간 청취 승인으로 주장하지 않는다. mobile은 Chrome viewport/touch emulation이며 +실제 Android/iOS/Safari, 물리적 음압 또는 임상 효과 검증은 아니다. + +원자 commit 전 실패/중단은 이전 디렉터리를 보존하며 commit 뒤에는 완성된 새 트리가 공개된다. +강제 kill은 숨은 stage를 남길 수 있다. 전원 손실 내구성이나 여러 HTTP 요청에 걸친 snapshot 격리는 검증하지 않았다. +로컬 build/preview만 확인했으며 사용자 지시대로 Git commit/push/merge/tag 및 배포는 하지 않았다. + + +## 최종 privacy screening 재시도 — 2026-10-14 + +이전 market 60초/cafe 180초의 ASR-empty 실패를 새 구간으로 수정했다. +현재 **mall=36, market=24, cafe=0**, 최종 8 WAV의 segment 수는 모두 0이다. +세 필수 환경의 `duration_after_vad=0.0`, `requiredEmptyPassed=true`를 실제 inference로 확인했다. +**humanListeningAcceptance=false / legalPrivacyClearance=false**이며 ASR만으로 청취 인수를 주장하지 않는다. + +### TDD·생성·이전 증거 보존 + +[01-release-RED](evidence-v0.2.3/privacy-screening/retry-market24-cafe0/01-release-RED.log)는 +구현 전 정확한 새 시작점, true gate, market/cafe 바이트 변경 조건에서 3개 실패했다. +[04-release-GREEN](evidence-v0.2.3/privacy-screening/retry-market24-cafe0/04-release-GREEN.log)은 +원자 재생성·실제 ASR 이후 같은 6개 테스트를 실행한 결과다. +테스트는 VAD/decoder 설정, manifest/WAV 해시, empty segment/text와 0.0 VAD duration, +청취/법적 인수 false, 이전 실패 상태·no-VAD 해시·모든 보존 파일 해시를 강제한다. + +계획의 market/cafe 시작점만 24/0으로 바꾸고 원본 해시·bytes·직접 미디어 길이·권리 정보는 유지했다. +[02-regeneration](evidence-v0.2.3/privacy-screening/retry-market24-cafe0/02-regeneration.log)과 +[regeneration.json](evidence-v0.2.3/privacy-screening/retry-market24-cafe0/regeneration.json)은 +원본 전수 확인 후 기존 하드닝된 생성기로 전체 bundle을 staging/검증/원자 교환한 근거다. +생성기는 계획을 변경하지 않았고 notice와 manifest도 같은 구간으로 발행했다. +이번에는 **market/cafe 두 WAV만 변경**, 101 voice와 다섯 unaffected ambience 및 mall WAV는 바이트 동일하다. + +이전 screening 파일 89개 전체를 읽기 전용 +[prior-attempt-market60-cafe180](evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/)에 복사·해시 고정했다. +[이전 final-asr.json](evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/final-asr.json)은 +`requiredEmptyPassed=false`, mall 0 / market 3 / cafe 1 segment 그대로다. +SHA-256은 `01c8a92fab9f8df7a5f778c5f7e478ce96bcedc33e11a1055bd29154a08b706b`이며 테스트에도 고정했다. +이전 source plan/manifest/notices/RESULT/docs의 사본과 +[시작 시점 baseline](evidence-v0.2.3/privacy-screening/retry-market24-cafe0/baseline.json)도 남겼다. +실패 로그를 지우거나 성공으로 고쳐 쓰지 않았다. + +### 정확한 최종 ASR와 한계 + +[현재 final-asr.json](evidence-v0.2.3/privacy-screening/final-asr.json), +[03-final-asr.log](evidence-v0.2.3/privacy-screening/retry-market24-cafe0/03-final-asr.log): +faster-whisper 1.2.1, tiny multilingual revision `d90ca5fe260221311c53c58e660288d3deb8d356`, +CPU int8/4 threads, beam_size=5, best_of=5, 기본 Silero VAD, condition_on_previous_text=true, +자동 언어 감지, random seed 0. 이전 실패 실행과 전체 decoder/VAD 인자가 같은지 대조했다. +모델/VAD·입력 WAV·manifest·실행 script 해시, 의존성·모든 기본 설정·원문 segment/info를 기록했다. +반환 segment 삭제나 threshold 튜닝 없이 각 현재 WAV를 검사했다. + +[no-vad-asr.json](evidence-v0.2.3/privacy-screening/no-vad-asr.json)의 SHA-256은 +`14b42ee0b80c194caa3c0de2644f647d6d7720c60c2208374778619f47c2e969` 그대로다. +그 결과는 이전 mall 36/market 60/cafe 180초에서 나온 환각 가능 text이며 새 market/cafe 검사가 아니다. +**no-VAD 결과는 지정된 VAD gate를 대체하거나 뒤집지 않는다.** 기존 scan/raw provenance도 바이트 보존했다. +빈 VAD 결과도 말소리·음악·개인 대화의 부재를 증명하지 않고 출력 text/language도 충실한 전사가 아니다. +독립적인 사람 청취 인증과 법적/privacy clearance는 수행하지 않았다. 제품 소유자 Oz는 +2026-10-14 제공된 최종 WAV 8개 검수 묶음과 자동 검사 한계를 기준으로 **현재 자산 그대로 +릴리스를 진행하도록 명시적으로 승인**했다. 이 제품 결정은 제3자의 법적/privacy clearance를 +대신하지 않는다. + +### 현재 자산 무결성 + +| WAV | 원본 구간 | RMS | peak | SHA-256 | +| --- | --- | --- | --- | --- | +| street.wav | 35–47s | 0.07999756 | 0.39675903 | `a8bffa201b174618955bc51b860167169125304811aabe2086b0bb35b06c3ae1` | +| mall.wav | 36–48s | 0.07999755 | 0.71917725 | `680a769940c08f0d12c6c954c08366598dd8b5745e276f39c82b10d1a88261a1` | +| theater.wav | 45–57s | 0.07999757 | 0.49508667 | `2d6a444fb7874cdf6b2d8a741a69175299b112eb66834912c025437d8277d635` | +| department.wav | 90–102s | 0.07999758 | 0.47497559 | `aa43f3d1d3e7c2b1f8ace24ecbda45d0ea3a031db941c39506dc6c1665b8efa7` | +| market.wav | 24–36s | 0.04309857 | 0.84997559 | `d6f73d86aea98b83e2995e61baaa7315a0ea7adeebc093769d76e1569b207658` | +| subway.wav | 65–77s | 0.07999755 | 0.42529297 | `9faf70b68617d267b367a0f3692ed90015458543ab4b0844f6c704e6a724728f` | +| cafe.wav | 0–12s | 0.07999754 | 0.40573120 | `6853c121104940041c268a2891eadae032c17aa22b4c3b3ddfbc025262434995` | +| rain.wav | 180–192s | 0.01138463 | 0.10241699 | `f4315084e820f742b0709de5bb0d1abd3d5af1730620e08c2948b70347356dd9` | + +### 재시도 전체 검증 + +| 검사 | 실제 결과 | 근거 | +| --- | --- | --- | +| lint / typecheck | PASS, exit 0 | [05-lint](evidence-v0.2.3/privacy-screening/retry-market24-cafe0/05-lint.log) | +| 전체 unit | 13 files / **125 passed, 0 failed, 0 skipped**, exit 0 | [05-unit](evidence-v0.2.3/privacy-screening/retry-market24-cafe0/05-unit.log) | +| 전체 Python | **36 passed**, exit 0 | [05-python](evidence-v0.2.3/privacy-screening/retry-market24-cafe0/05-python.log) | +| build | PASS, 101 voice + 8 ambience 및 notices, exit 0 | [05-build](evidence-v0.2.3/privacy-screening/retry-market24-cafe0/05-build.log) | +| npm audit | **취약점 0**, exit 0 | [audit](evidence-v0.2.3/privacy-screening/retry-market24-cafe0/npm-audit.json) | +| sandboxed Chrome desktop/mobile | **30 passed / 0 failed / 0 skipped / 0 flaky**, exit 0 | [06-browser](evidence-v0.2.3/privacy-screening/retry-market24-cafe0/06-browser.log), [JSON](evidence-v0.2.3/privacy-screening/retry-market24-cafe0/browser-results.json) | + +현재 자동 검증은 모두 통과했다. [validation-summary](evidence-v0.2.3/privacy-screening/retry-market24-cafe0/validation-summary.json)는 위 실행들의 +실제 exit code·결과를 확인한 뒤 작성했으며 사람의 인수/법적 clearance를 포함한 전체 승인으로 해석하지 않는다. +현재 ASR gate 통과를 이전 실패의 통과로 바꾸어 기록하지 않았다. + +Chrome 146.0.7680.80, desktop 1280×1000 / mobile 360×800 touch emulation의 전체 suite는 +240.7초 걸렸다. 이 runner의 Chrome 자손 process 4개에서 +`--no-sandbox`가 없음을 [실제 process 기록](evidence-v0.2.3/privacy-screening/retry-market24-cafe0/chrome-sandbox.json)으로 확인했다. +설정은 `chromiumSandbox=true`이고 opt-out 환경변수는 제거했다. +양쪽에서 현재 **109 WAV response SHA-256/bytes·실제 decode·길이·채널·sample rate**를 전수 확인했다. +[desktop 오디오](evidence-v0.2.3/privacy-screening/retry-market24-cafe0/desktop-audio-integrity.json), [mobile 오디오](evidence-v0.2.3/privacy-screening/retry-market24-cafe0/mobile-audio-integrity.json), +[독립 실측 대조](evidence-v0.2.3/privacy-screening/retry-market24-cafe0/browser-integrity-summary.json): hash/bytes 정확히 일치, +RMS/peak 차이는 브라우저 float scaling을 고려한 PCM16 한 step 이내다. +정상 요청에서 외부 요청·console/page 오류·failed request는 모두 0이며, +실제 여덟 ambience loop, 오류 재시도, UI·키보드·axe, 320/360px 어절·진행률 픽셀 검사도 통과했다. +[desktop runtime](evidence-v0.2.3/privacy-screening/retry-market24-cafe0/desktop-runtime-audit.json), [mobile runtime](evidence-v0.2.3/privacy-screening/retry-market24-cafe0/mobile-runtime-audit.json). + +브라우저는 첫 전체 실행에서 통과했다. 이후 artifact 수집의 +[08 실패](evidence-v0.2.3/privacy-screening/retry-market24-cafe0/08-browser-integrity.log)는 +runtime attachment를 별도 파일로 예상했으나 Playwright JSON 안의 base64 body였기 때문이다. +초기 수집 script와 실패 로그를 보존했고, body 원문을 추출한 +[09 성공](evidence-v0.2.3/privacy-screening/retry-market24-cafe0/09-browser-integrity.log)에서 +양쪽 109개 WAV와 runtime audit를 대조했다. 테스트 결과를 수정하거나 재분류하지 않았다. + +| 현재 화면 | Desktop | Mobile | +| --- | --- | --- | +| 시작 | [PNG](evidence-v0.2.3/privacy-screening/retry-market24-cafe0/screenshots/desktop-start.png) | [PNG](evidence-v0.2.3/privacy-screening/retry-market24-cafe0/screenshots/mobile-start.png) | +| 게임 | [PNG](evidence-v0.2.3/privacy-screening/retry-market24-cafe0/screenshots/desktop-game.png) | [PNG](evidence-v0.2.3/privacy-screening/retry-market24-cafe0/screenshots/mobile-game.png) | +| 정상 결과 | [PNG](evidence-v0.2.3/privacy-screening/retry-market24-cafe0/screenshots/desktop-normal-results.png) | [PNG](evidence-v0.2.3/privacy-screening/retry-market24-cafe0/screenshots/mobile-normal-results.png) | +| 중도 종료 | [PNG](evidence-v0.2.3/privacy-screening/retry-market24-cafe0/screenshots/desktop-early-exit.png) | [PNG](evidence-v0.2.3/privacy-screening/retry-market24-cafe0/screenshots/mobile-early-exit.png) | + +[보존 검사](evidence-v0.2.3/privacy-screening/retry-market24-cafe0/preservation.json): 101 voice·다섯 unaffected ambience·mall 바이트 동일, +이전 `.agent` 파일 484개·읽기 전용 prior-attempt 사본 89개·HEAD 추적 역사 파일 180개 해시 동일. +갱신 허용된 plan/RESULT/current ASR/current summary 4개는 이전 상태를 별도 보존했다. +원본 provenance는 지정 market/cafe 시작점 외에 변경이 없고 dist는 현재 bundle과 바이트 동일하다. + +**한계와 인계:** 지정된 자동 VAD acceptance를 충족했다. 사람의 청취 인수와 법적/privacy clearance는 +여전히 수행하지 않았으며 empty ASR은 말소리/음악의 부재 증거가 아니다. +mobile은 Chrome viewport/touch emulation이다. Git commit/push/merge/tag/deploy는 하지 않았다. diff --git a/.agent/TASK-v0.2.3.md b/.agent/TASK-v0.2.3.md new file mode 100644 index 0000000..755abc5 --- /dev/null +++ b/.agent/TASK-v0.2.3.md @@ -0,0 +1,35 @@ +# Find-Word v0.2.3 구현 작업 + +## 기준 + +- canonical repository: `https://source.ibit.kr/OZ-Group/Find-Word` +- 기준 커밋: `c92660b514f7af8eb556d3fa5c0fc80e4bdd4cf5` +- 작업 브랜치: `feat/v0.2.3` +- 제품 버전: `0.2.3` +- 배포 대상: `https://findword.heart-m.com/` +- 정확한 credit: `Designed by OZ at Heat-T Medical Inc.` +- 프로젝트 라이선스: private / all rights reserved / `UNLICENSED` + +## 사용자 요구사항의 실행 해석 + +1. 각 라운드는 정확히 3문항이다. +2. 한 라운드의 자동 난이도는 3문항 내내 동일하다. 정상 완료 결과 화면에서 다음 난이도 버튼을 누르면 바로 다음 단계의 새 3문항 라운드가 시작된다. 5단계에서 완료하면 같은 단계 재도전 또는 처음 화면으로 돌아간다. +3. 시작 화면에서 시작 난이도(1~5)를 선택한다. +4. 사용자가 배경 대비 목표 음성 비율을 직접 조정할 수 있도록 SNR dB 제어를 제공한다. 게임 중 변경은 현재 재생 전/재청취와 이후 라운드 문항에 적용하며 자동으로 문항마다 변하지 않는다. 범위와 step은 안전하고 명시적으로 제한한다. +5. 진행 중 `문제 풀이 종료`를 누르면 현재 오디오를 즉시 중단하고, 지금까지 답한 문항 수와 정답 수를 보여 주는 중도 종료 결과 화면을 표시한다. 사용자가 `처음 화면으로`를 눌러 초기 화면으로 돌아간다. 무응답 문항을 오답으로 세지 않는다. +6. 기존 procedural white-noise 환경음을 제거하고, 길거리·쇼핑몰·극장·백화점·시장·지하철·카페·비 오는 거리의 실제 현장 녹음 8개를 정적 자산으로 번들한다. 환경마다 서로 다른 녹음을 사용한다. +7. 현장음은 공개·수정·재배포가 허용된 라이선스만 사용한다. 원본 URL, 직접 다운로드 URL, 저작자, 라이선스, 변환, 원본/배포 해시와 attribution을 manifest와 문서에 기록한다. NC/ND/불명확한 자산은 금지한다. +8. 배경음은 24kHz mono PCM16 WAV로 통일하고, 재생 시 RMS를 정규화한다. 목표 음성과의 상대 SNR이 사용자의 dB 설정을 따른다. 짧은 자산은 click 없이 loop하고 목표 음성 종료 때 정리한다. +9. 앱 런타임은 same-origin 정적 자산만 요청하며 외부 네트워크, 분석, 추적, runtime TTS를 추가하지 않는다. +10. `CHANGELOG.md`를 버전 히스토리 파일로 생성하고 v0.2.3의 모든 변경, 오류 수정, 자산/라이선스, 테스트와 배포 관련 변경을 기록한다. 이전 v0.1.1/v0.1.0의 핵심 이력도 보존한다. +11. 버전 문자열을 package, lock, HTML title, UI, README, manifest/문서와 빌드에 일관되게 `0.2.3`으로 반영한다. +12. 직접 작성·수정한 소스 코드에는 모듈, 함수, 클래스, 핵심 변수·매개변수, 비자명한 로직의 목적과 이유를 설명하는 상세한 한국어 주석을 단다. 타입 선언·자명한 JSX 태그마다 형식적 주석을 반복하지 말고 설계 의도를 설명한다. + +## 개발 방식 + +- strict TDD: 각 동작의 실패하는 테스트를 먼저 실행해 RED를 남긴 뒤 최소 구현으로 GREEN을 확인한다. +- 과거 `.agent/evidence-v0.1.1`과 `.agent/RESULT*.md`는 수정하지 않는다. +- 새 evidence는 `.agent/evidence-v0.2.3/`, 결과는 `.agent/RESULT-v0.2.3.md`에 기록한다. +- production 코드 변경 전 테스트를 작성한다. +- 기존 100개 목표 음성과 게임 콘텐츠, 개인정보 미수집, 접근성, 정확한 credit을 보존한다. +- Codex는 commit, push, merge, tag, production 배포를 하지 않는다. Neo가 독립 검증 후 실행한다. diff --git a/.agent/evidence-v0.2.3/01-round-GREEN.log b/.agent/evidence-v0.2.3/01-round-GREEN.log new file mode 100644 index 0000000..88a372d --- /dev/null +++ b/.agent/evidence-v0.2.3/01-round-GREEN.log @@ -0,0 +1,9 @@ + + RUN v5.0.4 /home/hermes/worktrees/find-word-v0.2.3 + + + Test Files 1 passed (1) + Tests 9 passed | 6 skipped (15) + Start at 07:57:16 + Duration 914ms (environment 77%, setup 12%, transform 6%, tests 4%, import 1%, worker 1%) + diff --git a/.agent/evidence-v0.2.3/01-round-RED.log b/.agent/evidence-v0.2.3/01-round-RED.log new file mode 100644 index 0000000..3e45720 --- /dev/null +++ b/.agent/evidence-v0.2.3/01-round-RED.log @@ -0,0 +1,110 @@ + + RUN v5.0.4 /home/hermes/worktrees/find-word-v0.2.3 + + ❯ tests/game.test.ts (9 tests | 3 failed) 41ms + ❯ 출제와 정답 판정 (5) + × 세 문제를 한 단계로 출제하고 혼합 응답 방식과 고유 문제를 보장한다 8ms + ❯ 게임 상태·점수·경합 방지 (3) + × 세 문제를 끝내면 정답률·연속 정답·단계별 결과를 집계한다 2ms + × 시작 단계 1~5를 명시하면 세 문항 모두 같은 level/db이고 범위 밖 단계도 안전하다 2ms + +⎯⎯⎯⎯⎯⎯⎯ Failed Tests 3 ⎯⎯⎯⎯⎯⎯⎯ + + FAIL tests/game.test.ts > 출제와 정답 판정 > 세 문제를 한 단계로 출제하고 혼합 응답 방식과 고유 문제를 보장한다 +AssertionError: expected [ …(10) ] to have a length of 3 but got 10 + +- Expected ++ Received + +- 3 ++ 10 + + ❯ tests/game.test.ts:51:23 + 49| it("세 문제를 한 단계로 출제하고 혼합 응답 방식과 고유 문제를 보장한다", () => { + 50| const questions = createQuestions(42, "mixed"); + 51| expect(questions).toHaveLength(3); + | ^ + 52| expect(new Set(questions.map((q) => q.pattern.id)).size).toBe(3); + 53| expect(new Set(questions.map((q) => q.environment.id)).size).toBe(… + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[1/3]⎯ + + FAIL tests/game.test.ts > 게임 상태·점수·경합 방지 > 세 문제를 끝내면 정답률·연속 정답·단계별 결과를 집계한다 +AssertionError: expected 'ready' to be 'results' // Object.is equality + +Expected: "results" +Received: "ready" + + ❯ tests/game.test.ts:153:25 + 151| state = gameReducer(state, { type: "NEXT" }); + 152| } + 153| expect(state.phase).toBe("results"); + | ^ + 154| expect(state.bestStreak).toBe(2); + 155| expect(state.streak).toBe(0); + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[2/3]⎯ + + FAIL tests/game.test.ts > 시작 단계 1~5를 명시하면 세 문항 모두 같은 level/db이고 범위 밖 단계도 안전하다 +AssertionError: expected [ [ 1, 6 ], [ 1, 6 ], [ 2, 3 ], …(7) ] to deeply equal [ [ 1, 6 ], [ 1, 6 ], [ 1, 6 ] ] + +- Expected ++ Received + +@@ -6,9 +6,37 @@ + [ + 1, + 6, + ], + [ +- 1, +- 6, ++ 2, ++ 3, ++ ], ++ [ ++ 2, ++ 3, ++ ], ++ [ ++ 3, ++ 0, ++ ], ++ [ ++ 3, ++ 0, ++ ], ++ [ ++ 4, ++ -3, ++ ], ++ [ ++ 4, ++ -3, ++ ], ++ [ ++ 5, ++ -6, ++ ], ++ [ ++ 5, ++ -6, + ], + ] + + ❯ tests/game.test.ts:175:49 + 173| for (const level of LEVELS) { + 174| const questions = createQuestions(42, "mixed", "rotate", level.id); + 175| expect(questions.map(q => [q.level, q.db])).toEqual(Array(3).fill(… + | ^ + 176| } + 177| for (const [input, expected] of [[NaN, 1], [-4, 1], [99, 5], [2.7, 3… + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[3/3]⎯ + + + Test Files 1 failed (1) + Tests 3 failed | 6 passed (9) + Start at 07:56:19 + Duration 1.22s (environment 82%, setup 9%, transform 4%, tests 4%, worker 1%, import 1%) + diff --git a/.agent/evidence-v0.2.3/01-round-sampling-regression.log b/.agent/evidence-v0.2.3/01-round-sampling-regression.log new file mode 100644 index 0000000..b8bdb51 --- /dev/null +++ b/.agent/evidence-v0.2.3/01-round-sampling-regression.log @@ -0,0 +1,34 @@ + + RUN v5.0.4 /home/hermes/worktrees/find-word-v0.2.3 + + ❯ tests/game.test.ts (9 tests | 1 failed) 26ms + ❯ 출제와 정답 판정 (5) + × 목표 WAV 100개 모두 같은 명시적 cache-busting 버전과 정답 mapping을 유지한다 13ms + +⎯⎯⎯⎯⎯⎯⎯ Failed Tests 1 ⎯⎯⎯⎯⎯⎯⎯ + + FAIL tests/game.test.ts > 출제와 정답 판정 > 목표 WAV 100개 모두 같은 명시적 cache-busting 버전과 정답 mapping을 유지한다 +AssertionError: expected 96 to be 100 // Object.is equality + +- Expected ++ Received + +- 100 ++ 96 + + ❯ tests/game.test.ts:21:28 + 19| .map((q) => [q.id, q]), + 20| ); + 21| expect(questions.size).toBe(100); + | ^ + 22| const versions = new Set(); + 23| for (const q of questions.values()) { + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[1/1]⎯ + + + Test Files 1 failed (1) + Tests 1 failed | 8 passed (9) + Start at 07:56:50 + Duration 861ms (environment 76%, setup 13%, transform 6%, tests 4%, worker 1%, import 1%) + diff --git a/.agent/evidence-v0.2.3/02-snr-exit-GREEN.log b/.agent/evidence-v0.2.3/02-snr-exit-GREEN.log new file mode 100644 index 0000000..5d66524 --- /dev/null +++ b/.agent/evidence-v0.2.3/02-snr-exit-GREEN.log @@ -0,0 +1,9 @@ + + RUN v5.0.4 /home/hermes/worktrees/find-word-v0.2.3 + + + Test Files 1 passed (1) + Tests 15 passed (15) + Start at 07:57:18 + Duration 879ms (environment 75%, setup 13%, transform 5%, tests 4%, import 1%, worker 1%) + diff --git a/.agent/evidence-v0.2.3/02-snr-exit-RED.log b/.agent/evidence-v0.2.3/02-snr-exit-RED.log new file mode 100644 index 0000000..7621eb5 --- /dev/null +++ b/.agent/evidence-v0.2.3/02-snr-exit-RED.log @@ -0,0 +1,74 @@ + + RUN v5.0.4 /home/hermes/worktrees/find-word-v0.2.3 + + ❯ tests/game.test.ts (15 tests | 7 failed) 30ms + ❯ 출제와 정답 판정 (5) + × 목표 WAV 100개 모두 같은 명시적 cache-busting 버전과 정답 mapping을 유지한다 12ms + × SNR을 정수 -12~12 dB로 제한하고 현재/남은 문항에 일관되게 적용한다 1ms + × readyで中止しても無応答を加算せず終了結果を保つ 3ms + × loadingで中止しても無応答を加算せず終了結果を保つ 1ms + × playingで中止しても無応答を加算せず終了結果を保つ 1ms + × answerで中止しても無応答を加算せず終了結果を保つ 1ms + × feedbackで中止しても無応答を加算せず終了結果を保つ 1ms + +⎯⎯⎯⎯⎯⎯⎯ Failed Tests 7 ⎯⎯⎯⎯⎯⎯⎯ + + FAIL tests/game.test.ts > 출제와 정답 판정 > 목표 WAV 100개 모두 같은 명시적 cache-busting 버전과 정답 mapping을 유지한다 +AssertionError: expected 96 to be 100 // Object.is equality + +- Expected ++ Received + +- 100 ++ 96 + + ❯ tests/game.test.ts:21:28 + 19| .map((q) => [q.id, q]), + 20| ); + 21| expect(questions.size).toBe(100); + | ^ + 22| const versions = new Set(); + 23| for (const q of questions.values()) { + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[1/7]⎯ + + FAIL tests/game.test.ts > SNR을 정수 -12~12 dB로 제한하고 현재/남은 문항에 일관되게 적용한다 +TypeError: Cannot read properties of undefined (reading 'questions') + ❯ tests/game.test.ts:186:21 + 184| for (const [input, expected] of [[-99, -12], [99, 12], [NaN, 3], [1.… + 185| const adjusted = gameReducer(state, { type: "SNR", db: input! }); + 186| expect(adjusted.questions.map(q => q.db)).toEqual([expected, expec… + | ^ + 187| } + 188| for (const type of ["PLAY", "STARTED", "ENDED"] as const) state = ga… + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[2/7]⎯ + + FAIL tests/game.test.ts > readyで中止しても無応答を加算せず終了結果を保つ + FAIL tests/game.test.ts > loadingで中止しても無応答を加算せず終了結果を保つ + FAIL tests/game.test.ts > playingで中止しても無応答を加算せず終了結果を保つ + FAIL tests/game.test.ts > answerで中止しても無応答を加算せず終了結果を保つ + FAIL tests/game.test.ts > feedbackで中止しても無応答を加算せず終了結果を保つ +AssertionError: expected undefined to match object { phase: 'results', …(2) } + +- Expected: +{ + "answers": [], + "endedEarly": true, + "phase": "results", +} + ++ Received: +undefined + + ❯ tests/game.test.ts:199:17 + + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[3/7]⎯ + + + Test Files 1 failed (1) + Tests 7 failed | 8 passed (15) + Start at 07:56:51 + Duration 918ms (environment 74%, setup 14%, transform 6%, tests 4%, import 1%, worker 1%) + diff --git a/.agent/evidence-v0.2.3/03-screen-GREEN.log b/.agent/evidence-v0.2.3/03-screen-GREEN.log new file mode 100644 index 0000000..5d61d37 --- /dev/null +++ b/.agent/evidence-v0.2.3/03-screen-GREEN.log @@ -0,0 +1,9 @@ + + RUN v5.0.4 /home/hermes/worktrees/find-word-v0.2.3 + + + Test Files 1 passed (1) + Tests 18 passed (18) + Start at 07:59:18 + Duration 4.22s (tests 80%, environment 14%, setup 2%, transform 2%, import 1%) + diff --git a/.agent/evidence-v0.2.3/03-screen-RED.log b/.agent/evidence-v0.2.3/03-screen-RED.log new file mode 100644 index 0000000..13e5d24 --- /dev/null +++ b/.agent/evidence-v0.2.3/03-screen-RED.log @@ -0,0 +1,5491 @@ + + RUN v5.0.4 /home/hermes/worktrees/find-word-v0.2.3 + + ❯ tests/App.test.tsx (18 tests | 10 failed) 2380ms + ❯ 시작부터 결과까지 사용자 흐름 (13) + × 전체 음량을 시작 CTA 앞 설정 카드와 게임 환경 패널에 배치하고 값을 유지한다 216ms + × 다섯 난이도의 SNR과 음성·배경 크기 관계를 설명하고 결과에도 표시한다 402ms + × 한글 조합 도중 처음으로 돌아가도 새 세션의 입력은 정상 제출된다 148ms + × 혼합 모드 세 문제를 키보드·텍스트로 풀고 결과에서 다시 시작한다 342ms + × 음량 조절이 엔진에 전달되고 세션 종료 뒤 늦은 완료는 무시한다 104ms + × 시작 단계·SNR 선택, 재청취, 남은 문제와 다음 단계 라운드에 설정을 적용한다 37ms + × 오디오 started=false 중 종료는 즉시 정지하고 결과를 거쳐 홈으로 간다 87ms + × 오디오 started=true 중 종료는 즉시 정지하고 결과를 거쳐 홈으로 간다 88ms + × 답변 피드백에서 종료하면 답한 한 문항만 집계한다 121ms + × 5단계 완료는 6단계 대신 같은 단계의 새 세 문항을 시작한다 17ms + +⎯⎯⎯⎯⎯⎯ Failed Tests 10 ⎯⎯⎯⎯⎯⎯⎯ + + FAIL tests/App.test.tsx > 시작부터 결과까지 사용자 흐름 > 전체 음량을 시작 CTA 앞 설정 카드와 게임 환경 패널에 배치하고 값을 유지한다 +TestingLibraryElementError: Unable to find an accessible element with the role "button" and name "문제 풀이 종료" + +Here are the accessible roles: + + link: + + Name "본문으로 건너뛰기": +  + + -------------------------------------------------- + banner: + + Name "": +  + + -------------------------------------------------- + heading: + + Name "단어를 맞춰라": + 

 + + Name "길거리": + 

 + + Name "정정해서 알려준 단어는 무엇인가요?": +  + + -------------------------------------------------- + button: + + Name "처음으로": +  + + Name "시장": +  +  + 소리에 집중하는 시간 +  +  +  +  +  +  + 나의 소리 탐험 +  +  + 문제  +  + 01 +  +  / 10 +  +  +  +  +  +  + 지금 듣고 있는 공간 + 

 + 

 + 길거리 + 

 + 

 + 지나가는 차와 도시의 웅성임 + 

 +  +  +  +  +  +  +  + S +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 1 + 단계 ·  + SNR +6 dB +  +  + 음성이 배경보다 6 dB 커요. + 
 + 소리에 익숙해지기 + 

 +  +  +  + ◖)) +  +  전체 음량 +  +  +  + 60 + % +  +  +  +  + 점수  +  + 0 +  +  +  + 연속 정답  +  + 0 +  +  +  +  +  +  +  + 바로잡은 말 +  +  + 객관식 +  +  +  + 정정해서 알려준 단어는 무엇인가요? + 

 +  + 가장 또렷하게 기억나는 단어를 골라 주세요. + 

 +  +  +  +  +  +  +  +  + ↻ 다시 듣기 +  +  + 다시 들어도 점수는 줄어들지 않아요. +  +  +  +  +  +  +  + 

 + Designed by OZ at Heat-T Medical Inc. + 

 + 

 + 청각적 주의·식별 게임 · 의료적 진단이나 치료를 제공하지 않습니다. + 

 +  + 개인정보 수집 없이, 오직 플레이만. +  +  +  + + ❯ Object.getElementError node_modules/@testing-library/dom/dist/config.js:37:19 + ❯ node_modules/@testing-library/dom/dist/query-helpers.js:76:38 + ❯ node_modules/@testing-library/dom/dist/query-helpers.js:52:17 + ❯ node_modules/@testing-library/dom/dist/query-helpers.js:95:19 + ❯ tests/App.test.tsx:99:31 + 97| expect(f.audio.setVolume).toHaveBeenLastCalledWith(0.6); + 98| await f.finish(); + 99| await f.user.click(screen.getByRole("button", { name: "문제 풀이 종료" }… + | ^ + 100| await f.user.click(screen.getByRole("button", { name: "처음 화면으로" })… + 101| expect(screen.getByRole("slider", { name: "전체 음량" })).toHaveValue(… + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[1/10]⎯ + + FAIL tests/App.test.tsx > 시작부터 결과까지 사용자 흐름 > 다섯 난이도의 SNR과 음성·배경 크기 관계를 설명하고 결과에도 표시한다 +TestingLibraryElementError: Unable to find an accessible element with the role "button" and name `/결과 보기/` + +Here are the accessible roles: + + link: + + Name "본문으로 건너뛰기": +  + + -------------------------------------------------- + banner: + + Name "": +  + + -------------------------------------------------- + heading: + + Name "단어를 맞춰라": + 

 + + Name "극장": + 

 + + Name "정답이에요!": +  + + -------------------------------------------------- + button: + + Name "처음으로": +  + + Name "다음 문제": +  + + -------------------------------------------------- + main: + + Name "": +  + + -------------------------------------------------- + region: + + Name "단어 찾기 게임": +  + + -------------------------------------------------- + progressbar: + + Name "전체 진행률": +  + + -------------------------------------------------- + complementary: + + Name "": +  + + -------------------------------------------------- + paragraph: + + Name "": +  + + Name "": + 

 + + Name "": +  + + Name "": + 

 + + Name "": +  + + Name "": + 

 + + Name "": + 

 + + -------------------------------------------------- + slider: + + Name "전체 음량": +  + + -------------------------------------------------- + status: + + Name "": +  + + -------------------------------------------------- + strong: + + Name "": +  + + -------------------------------------------------- + blockquote: + + Name "": + 

 + + -------------------------------------------------- + contentinfo: + + Name "": +  + + -------------------------------------------------- + +Ignored nodes: comments, script, style + + 
 +  + 본문으로 건너뛰기 +  +  +  +  +  +  +  +  +  + 

 + 단어를 맞춰라 + 

 +  + v0.1.1 +  + 
 +  +  + 처음으로 +  +  + 소리에 집중하는 시간 +  +  +  +  +  +  + 나의 소리 탐험 +  +  + 문제  +  + 03 +  +  / 10 +  +  +  +  +  +  + 지금 듣고 있는 공간 + 

 + 

 + 극장 + 

 + 

 + 어두운 공간의 낮은 울림 + 

 +  +  +  +  +  +  +  + S +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 1 + 단계 ·  + SNR +6 dB +  +  + 음성이 배경보다 6 dB 커요. + 
 + 소리에 익숙해지기 + 

 +  +  +  + ◖)) +  +  전체 음량 +  +  +  + 35 + % +  +  +  +  + 점수  +  + 330 +  +  +  + 연속 정답  +  + 3 +  +  +  +  +  +  +  + 신호의 조건 +  +  + 객관식 +  +  +  +  + ✓ +  +  + 정답이에요! + 

 + 

 + 숨겨진 단어는  +  + 소리 +  + 

 + 
 + 초록 불이면 앞 단어, 빨간 불이면 뒤 단어입니다. ‘오리’, ‘소리’. 지금은 빨간 불입니다. + 
 +  + 내 답:  + 소리 +  · + + 120 + 점 + 

 +  + 다음 문제 +   +  + → +  +  +  +  +  +  +  +  + 

 + Designed by OZ at Heat-T Medical Inc. + 

 + 

 + 청각적 주의·식별 게임 · 의료적 진단이나 치료를 제공하지 않습니다. + 

 +  + 개인정보 수집 없이, 오직 플레이만. +  +  +  + + ❯ Object.getElementError node_modules/@testing-library/dom/dist/config.js:37:19 + ❯ node_modules/@testing-library/dom/dist/query-helpers.js:76:38 + ❯ node_modules/@testing-library/dom/dist/query-helpers.js:52:17 + ❯ node_modules/@testing-library/dom/dist/query-helpers.js:95:19 + ❯ tests/App.test.tsx:135:16 + 133| ); + 134| await f.user.click( + 135| screen.getByRole("button", { + | ^ + 136| name: index === questions.length - 1 ? /결과 보기/ : /다음 문제/, + 137| }), + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[2/10]⎯ + + FAIL tests/App.test.tsx > 시작부터 결과까지 사용자 흐름 > 한글 조합 도중 처음으로 돌아가도 새 세션의 입력은 정상 제출된다 +TestingLibraryElementError: Unable to find an accessible element with the role "button" and name "문제 풀이 종료" + +Here are the accessible roles: + + link: + + Name "본문으로 건너뛰기": +  + + -------------------------------------------------- + banner: + + Name "": +  + + -------------------------------------------------- + heading: + + Name "단어를 맞춰라": + 

 + + Name "길거리": + 

 + + Name "정정해서 알려준 단어는 무엇인가요?": +  + + -------------------------------------------------- + button: + + Name "처음으로": +  + + Name "정답 확인": +  + + Name "↻ 다시 듣기": +  + + -------------------------------------------------- + main: + + Name "": +  + + -------------------------------------------------- + region: + + Name "단어 찾기 게임": +  + + -------------------------------------------------- + progressbar: + + Name "전체 진행률": +  + + -------------------------------------------------- + complementary: + + Name "": +  + + -------------------------------------------------- + paragraph: + + Name "": +  + + Name "": + 

 + + Name "": +  + + Name "": +  + + Name "": + 

 + + Name "": + 

 + + -------------------------------------------------- + slider: + + Name "전체 음량": +  + + -------------------------------------------------- + status: + + Name "": +  + + -------------------------------------------------- + textbox: + + Name "들은 단어": +  + + -------------------------------------------------- + contentinfo: + + Name "": +  + + -------------------------------------------------- + +Ignored nodes: comments, script, style + + 

 +  + 본문으로 건너뛰기 +  +  +  +  +  +  +  +  +  + 

 + 단어를 맞춰라 + 

 +  + v0.1.1 +  + 
 +  +  + 처음으로 +  +  + 소리에 집중하는 시간 +  +  +  +  +  +  + 나의 소리 탐험 +  +  + 문제  +  + 01 +  +  / 10 +  +  +  +  +  +  + 지금 듣고 있는 공간 + 

 + 

 + 길거리 + 

 + 

 + 지나가는 차와 도시의 웅성임 + 

 +  +  +  +  +  +  +  + S +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 1 + 단계 ·  + SNR +6 dB +  +  + 음성이 배경보다 6 dB 커요. + 
 + 소리에 익숙해지기 + 

 +  +  +  + ◖)) +  +  전체 음량 +  +  +  + 35 + % +  +  +  +  + 점수  +  + 0 +  +  +  + 연속 정답  +  + 0 +  +  +  +  +  +  +  + 바로잡은 말 +  +  + 주관식 +  +  +  + 정정해서 알려준 단어는 무엇인가요? + 

 +  + 기억나는 단어 하나를 입력해 주세요. + 

 + 
 +  + 들은 단어 +  +  +  + 정답 확인 +  +  +  +  + ↻ 다시 듣기 +  +  + 다시 들어도 점수는 줄어들지 않아요. +  +  +  +  +  +  +  + 

 + Designed by OZ at Heat-T Medical Inc. + 

 + 

 + 청각적 주의·식별 게임 · 의료적 진단이나 치료를 제공하지 않습니다. + 

 +  + 개인정보 수집 없이, 오직 플레이만. +  +  +  + + ❯ Object.getElementError node_modules/@testing-library/dom/dist/config.js:37:19 + ❯ node_modules/@testing-library/dom/dist/query-helpers.js:76:38 + ❯ node_modules/@testing-library/dom/dist/query-helpers.js:52:17 + ❯ node_modules/@testing-library/dom/dist/query-helpers.js:95:19 + ❯ tests/App.test.tsx:160:31 + 158| screen.getByRole("textbox", { name: "들은 단어" }), + 159| ); + 160| await f.user.click(screen.getByRole("button", { name: "문제 풀이 종료" }… + | ^ + 161| await f.user.click(screen.getByRole("button", { name: "처음 화면으로" })… + 162| await f.user.click( + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[3/10]⎯ + + FAIL tests/App.test.tsx > 시작부터 결과까지 사용자 흐름 > 혼합 모드 세 문제를 키보드·텍스트로 풀고 결과에서 다시 시작한다 +TestingLibraryElementError: Unable to find an accessible element with the role "button" and name `/결과 보기/` + +Here are the accessible roles: + + link: + + Name "본문으로 건너뛰기": +  + + -------------------------------------------------- + banner: + + Name "": +  + + -------------------------------------------------- + heading: + + Name "단어를 맞춰라": + 

 + + Name "극장": + 

 + + Name "정답이에요!": +  + + -------------------------------------------------- + button: + + Name "처음으로": +  + + Name "다음 문제": +  + + -------------------------------------------------- + main: + + Name "": +  + + -------------------------------------------------- + region: + + Name "단어 찾기 게임": +  + + -------------------------------------------------- + progressbar: + + Name "전체 진행률": +  + + -------------------------------------------------- + complementary: + + Name "": +  + + -------------------------------------------------- + paragraph: + + Name "": +  + + Name "": + 

 + + Name "": +  + + Name "": + 

 + + Name "": +  + + Name "": + 

 + + Name "": + 

 + + -------------------------------------------------- + slider: + + Name "전체 음량": +  + + -------------------------------------------------- + status: + + Name "": +  + + -------------------------------------------------- + strong: + + Name "": +  + + -------------------------------------------------- + blockquote: + + Name "": + 

 + + -------------------------------------------------- + contentinfo: + + Name "": +  + + -------------------------------------------------- + +Ignored nodes: comments, script, style + + 
 +  + 본문으로 건너뛰기 +  +  +  +  +  +  +  +  +  + 

 + 단어를 맞춰라 + 

 +  + v0.1.1 +  + 
 +  +  + 처음으로 +  +  + 소리에 집중하는 시간 +  +  +  +  +  +  + 나의 소리 탐험 +  +  + 문제  +  + 03 +  +  / 10 +  +  +  +  +  +  + 지금 듣고 있는 공간 + 

 + 

 + 극장 + 

 + 

 + 어두운 공간의 낮은 울림 + 

 +  +  +  +  +  +  +  + S +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 1 + 단계 ·  + SNR +6 dB +  +  + 음성이 배경보다 6 dB 커요. + 
 + 소리에 익숙해지기 + 

 +  +  +  + ◖)) +  +  전체 음량 +  +  +  + 35 + % +  +  +  +  + 점수  +  + 330 +  +  +  + 연속 정답  +  + 3 +  +  +  +  +  +  +  + 신호의 조건 +  +  + 객관식 +  +  +  +  + ✓ +  +  + 정답이에요! + 

 + 

 + 숨겨진 단어는  +  + 소리 +  + 

 + 
 + 초록 불이면 앞 단어, 빨간 불이면 뒤 단어입니다. ‘오리’, ‘소리’. 지금은 빨간 불입니다. + 
 +  + 내 답:  + 소리 +  · + + 120 + 점 + 

 +  + 다음 문제 +   +  + → +  +  +  +  +  +  +  +  + 

 + Designed by OZ at Heat-T Medical Inc. + 

 + 

 + 청각적 주의·식별 게임 · 의료적 진단이나 치료를 제공하지 않습니다. + 

 +  + 개인정보 수집 없이, 오직 플레이만. +  +  +  + + ❯ Object.getElementError node_modules/@testing-library/dom/dist/config.js:37:19 + ❯ node_modules/@testing-library/dom/dist/query-helpers.js:76:38 + ❯ node_modules/@testing-library/dom/dist/query-helpers.js:52:17 + ❯ node_modules/@testing-library/dom/dist/query-helpers.js:95:19 + ❯ tests/App.test.tsx:263:16 + 261| expect(screen.getByText(q.sentence)).toBeInTheDocument(); + 262| await f.user.click( + 263| screen.getByRole("button", { + | ^ + 264| name: i === questions.length - 1 ? /결과 보기/ : /다음 문제/, + 265| }), + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[4/10]⎯ + + FAIL tests/App.test.tsx > 시작부터 결과까지 사용자 흐름 > 음량 조절이 엔진에 전달되고 세션 종료 뒤 늦은 완료는 무시한다 +TestingLibraryElementError: Unable to find an accessible element with the role "button" and name "문제 풀이 종료" + +Here are the accessible roles: + + link: + + Name "본문으로 건너뛰기": +  + + -------------------------------------------------- + banner: + + Name "": +  + + -------------------------------------------------- + heading: + + Name "단어를 맞춰라": + 

 + + Name "길거리": + 

 + + Name "소리 사이에 집중해 보세요.": +  + + -------------------------------------------------- + button: + + Name "처음으로": +  + + Name "듣는 중…": +  + + Name "듣기 중단": +  + + -------------------------------------------------- + main: + + Name "": +  + + -------------------------------------------------- + region: + + Name "단어 찾기 게임": +  + + -------------------------------------------------- + progressbar: + + Name "전체 진행률": +  + + -------------------------------------------------- + complementary: + + Name "": +  + + -------------------------------------------------- + paragraph: + + Name "": +  + + Name "": + 

 + + Name "": +  + + Name "": + 

 + + Name "": + 

 + + Name "": + 

 + + -------------------------------------------------- + slider: + + Name "전체 음량": +  + + -------------------------------------------------- + status: + + Name "": +  + + Name "": +  + + -------------------------------------------------- + contentinfo: + + Name "": +  + + -------------------------------------------------- + +Ignored nodes: comments, script, style + + 

 +  + 본문으로 건너뛰기 +  +  +  +  +  +  +  +  +  + 

 + 단어를 맞춰라 + 

 +  + v0.1.1 +  + 
 +  +  + 처음으로 +  +  + 소리에 집중하는 시간 +  +  +  +  +  +  + 나의 소리 탐험 +  +  + 문제  +  + 01 +  +  / 10 +  +  +  +  +  +  + 지금 듣고 있는 공간 + 

 + 

 + 길거리 + 

 + 

 + 지나가는 차와 도시의 웅성임 + 

 +  +  +  +  +  +  +  + S +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 1 + 단계 ·  + SNR +6 dB +  +  + 음성이 배경보다 6 dB 커요. + 
 + 소리에 익숙해지기 + 

 +  +  +  + ◖)) +  +  전체 음량 +  +  +  + 20 + % +  +  +  +  + 점수  +  + 0 +  +  +  + 연속 정답  +  + 0 +  +  +  +  +  +  +  + 바로잡은 말 +  +  + 객관식 +  +  +  +  + ♬ +  +  + 소리 사이에 집중해 보세요. + 

 + 

 + 문장이 끝나면 질문이 나타나요. + 
 + 작은 단어 하나를 기억해 주세요. + 

 +  + 에스의 목소리를 듣고 있어요… + 

 +  +  +  + 듣는 중… +  +  + 듣기 중단 +  +  + 다시 들어도 점수는 줄어들지 않아요. +  +  +  +  +  +  +  + 

 + Designed by OZ at Heat-T Medical Inc. + 

 + 

 + 청각적 주의·식별 게임 · 의료적 진단이나 치료를 제공하지 않습니다. + 

 +  + 개인정보 수집 없이, 오직 플레이만. +  +  +  + + ❯ Object.getElementError node_modules/@testing-library/dom/dist/config.js:37:19 + ❯ node_modules/@testing-library/dom/dist/query-helpers.js:76:38 + ❯ node_modules/@testing-library/dom/dist/query-helpers.js:52:17 + ❯ node_modules/@testing-library/dom/dist/query-helpers.js:95:19 + ❯ tests/App.test.tsx:330:31 + 328| screen.getByRole("button", { name: "게임 시작 · 소리 듣기" }), + 329| ); + 330| await f.user.click(screen.getByRole("button", { name: "문제 풀이 종료" }… + | ^ + 331| await f.user.click(screen.getByRole("button", { name: "처음 화면으로" })… + 332| await f.finish(); + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[5/10]⎯ + + FAIL tests/App.test.tsx > 시작 단계·SNR 선택, 재청취, 남은 문제와 다음 단계 라운드에 설정을 적용한다 +TestingLibraryElementError: Unable to find a label with the text of: 시작 난이도 + +Ignored nodes: comments, script, style + + 
 +  + 본문으로 건너뛰기 +  +  +  +  +  +  +  +  +  + 

 + 단어를 맞춰라 + 

 +  + v0.1.1 +  + 
 +  +  + 플레이 방법  +  + ↓ +  +  +  + 소리에 집중하는 시간 +  +  +  +  +  +  +  +  귀를 기울이면, 발견하는 즐거움 + 

 +  + 소음 속 작은 단어, + 
 +  + 들리시나요? +  +  +  + 도시의 소리 사이에 에스가 숨겨 둔 단어. + 
 + 조금 더 귀 기울여, 오늘의 행운을 찾아보세요. + 

 +  +  + 10개의 질문 +  +  + 5단계 도전 +  +  + 나만의 속도로 +  +  +  +  +  +  +  +  에스의 사운드 룸 +  +  + 8 + 가지 환경 +  +  +  +  +  + ♪ + 
 +  + ✳ +  +  + 행운의 단어를 찾아보거라! +  +  +  +  +  +  +  +  + S +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 소음 사이, 숨겨진 한마디 +  +  +  +  +  +  +  + 01 +  + 
 +  + 나의 소리 탐험 준비 +  + 

 + 편한 방식으로 시작하세요. 난이도는 조금씩 높아져요. + 

 + 
 +  + 약 3–5분 +  +  +  +  +  + 어떻게 답할까요? +  +  +  +  +  + ◈ +  +  + 골고루 풀기 +  +  + 선택 + 직접 입력 +  +  +  +  +  + ☷ +  +  + 보기에서 선택 +  +  + 4개 단어 중 하나 +  +  +  +  +  + ✎ +  +  + 직접 입력 +  +  + 기억한 단어 쓰기 +  +  +  +  +  +  + 배경 환경 +  +  +  + 여덟 가지 일상 속으로 +  +  + 길거리 +  +  + 쇼핑몰 +  +  + 극장 +  +  + 백화점 +  +  + 시장 +  +  + 지하철 +  +  + 카페 +  +  + 비 오는 거리 +  +  + 

 + 길거리부터 비 오는 거리까지, 매번 다른 공간을 만나요. + 

 +  +  + 길거리 +  +  + 카페 +  +  + 지하철 +  +  + +5개 환경 +  +  +  +  +  +  +  + ◖)) +  +  전체 음량 +  +  +  + 35 + % +  +  +  + 

 +  + ♬ +  +  편안한 작은 음량으로 시작해 보세요. + 

 +  + 게임 시작 · 소리 듣기  +  + → +  +  +  +  +  +  + 작은 단어를 발견하는 방법 +  +  + 
 +  + 01 +  + 

 + 먼저, 귀 기울이기 + 

 + 

 + 에스의 안내와 소음 속 문장을 들어요. + 
 + 처음에는 또렷하게, 점점 더 작게. + 

 + 
 + 
 +  + 02 +  + 

 + 기억한 단어 찾기 + 

 + 

 + 소리가 끝나면 질문이 나타나요. + 
 + 보기에서 고르거나 직접 입력해요. + 

 + 
 + 
 +  + 03 +  + 

 + 나의 발견 돌아보기 + 

 + 

 + 열 문제 뒤 나의 결과를 확인해요. + 
 + 놓쳤다면 언제든 다시 들어도 좋아요. + 

 + 
 +  +  +  +  + 

 + Designed by OZ at Heat-T Medical Inc. + 

 + 

 + 청각적 주의·식별 게임 · 의료적 진단이나 치료를 제공하지 않습니다. + 

 +  + 개인정보 수집 없이, 오직 플레이만. +  +  +  + + ❯ Object.getElementError node_modules/@testing-library/dom/dist/config.js:37:19 + ❯ getAllByLabelText node_modules/@testing-library/dom/dist/queries/label-text.js:111:38 + ❯ node_modules/@testing-library/dom/dist/query-helpers.js:52:17 + ❯ node_modules/@testing-library/dom/dist/query-helpers.js:95:19 + ❯ tests/App.test.tsx:346:37 + 344| const f = fixture(); + 345| await f.user.click(screen.getByRole("radio", { name: "보기에서 선택" })); + 346| await f.user.selectOptions(screen.getByLabelText("시작 난이도"), "4"); + | ^ + 347| expect(screen.getByRole("slider", { name: "목표 음성 SNR" })).toHaveValu… + 348| fireEvent.change(screen.getByRole("slider", { name: "목표 음성 SNR" }), … + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[6/10]⎯ + + FAIL tests/App.test.tsx > 오디오 started=false 중 종료는 즉시 정지하고 결과를 거쳐 홈으로 간다 +TestingLibraryElementError: Unable to find an accessible element with the role "button" and name "문제 풀이 종료" + +Here are the accessible roles: + + link: + + Name "본문으로 건너뛰기": +  + + -------------------------------------------------- + banner: + + Name "": +  + + -------------------------------------------------- + heading: + + Name "단어를 맞춰라": + 

 + + Name "길거리": + 

 + + Name "소리 사이에 집중해 보세요.": +  + + -------------------------------------------------- + button: + + Name "처음으로": +  + + Name "듣는 중…": +  + + Name "듣기 중단": +  + + -------------------------------------------------- + main: + + Name "": +  + + -------------------------------------------------- + region: + + Name "단어 찾기 게임": +  + + -------------------------------------------------- + progressbar: + + Name "전체 진행률": +  + + -------------------------------------------------- + complementary: + + Name "": +  + + -------------------------------------------------- + paragraph: + + Name "": +  + + Name "": + 

 + + Name "": +  + + Name "": + 

 + + Name "": + 

 + + Name "": + 

 + + -------------------------------------------------- + slider: + + Name "전체 음량": +  + + -------------------------------------------------- + status: + + Name "": +  + + Name "": +  + + -------------------------------------------------- + contentinfo: + + Name "": +  + + -------------------------------------------------- + +Ignored nodes: comments, script, style + + 

 +  + 본문으로 건너뛰기 +  +  +  +  +  +  +  +  +  + 

 + 단어를 맞춰라 + 

 +  + v0.1.1 +  + 
 +  +  + 처음으로 +  +  + 소리에 집중하는 시간 +  +  +  +  +  +  + 나의 소리 탐험 +  +  + 문제  +  + 01 +  +  / 10 +  +  +  +  +  +  + 지금 듣고 있는 공간 + 

 + 

 + 길거리 + 

 + 

 + 지나가는 차와 도시의 웅성임 + 

 +  +  +  +  +  +  +  + S +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 1 + 단계 ·  + SNR +6 dB +  +  + 음성이 배경보다 6 dB 커요. + 
 + 소리에 익숙해지기 + 

 +  +  +  + ◖)) +  +  전체 음량 +  +  +  + 35 + % +  +  +  +  + 점수  +  + 0 +  +  +  + 연속 정답  +  + 0 +  +  +  +  +  +  +  + 바로잡은 말 +  +  + 객관식 +  +  +  +  + ♬ +  +  + 소리 사이에 집중해 보세요. + 

 + 

 + 문장이 끝나면 질문이 나타나요. + 
 + 작은 단어 하나를 기억해 주세요. + 

 +  + 소리를 준비하고 있어요… + 

 +  +  +  + 듣는 중… +  +  + 듣기 중단 +  +  + 다시 들어도 점수는 줄어들지 않아요. +  +  +  +  +  +  +  + 

 + Designed by OZ at Heat-T Medical Inc. + 

 + 

 + 청각적 주의·식별 게임 · 의료적 진단이나 치료를 제공하지 않습니다. + 

 +  + 개인정보 수집 없이, 오직 플레이만. +  +  +  + + ❯ Object.getElementError node_modules/@testing-library/dom/dist/config.js:37:19 + ❯ node_modules/@testing-library/dom/dist/query-helpers.js:76:38 + ❯ node_modules/@testing-library/dom/dist/query-helpers.js:52:17 + ❯ node_modules/@testing-library/dom/dist/query-helpers.js:95:19 + ❯ tests/App.test.tsx:377:29 + 375| const f = fixture(started); + 376| await f.user.click(screen.getByRole("button", { name: "게임 시작 · 소리 듣기… + 377| await f.user.click(screen.getByRole("button", { name: "문제 풀이 종료" })); + | ^ + 378| expect(f.audio.stop).toHaveBeenCalledOnce(); + 379| expect(screen.getByRole("heading", { name: "문제 풀이를 종료했어요." })).toHav… + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[7/10]⎯ + + FAIL tests/App.test.tsx > 오디오 started=true 중 종료는 즉시 정지하고 결과를 거쳐 홈으로 간다 +TestingLibraryElementError: Unable to find an accessible element with the role "button" and name "문제 풀이 종료" + +Here are the accessible roles: + + link: + + Name "본문으로 건너뛰기": +  + + -------------------------------------------------- + banner: + + Name "": +  + + -------------------------------------------------- + heading: + + Name "단어를 맞춰라": + 

 + + Name "길거리": + 

 + + Name "소리 사이에 집중해 보세요.": +  + + -------------------------------------------------- + button: + + Name "처음으로": +  + + Name "듣는 중…": +  + + Name "듣기 중단": +  + + -------------------------------------------------- + main: + + Name "": +  + + -------------------------------------------------- + region: + + Name "단어 찾기 게임": +  + + -------------------------------------------------- + progressbar: + + Name "전체 진행률": +  + + -------------------------------------------------- + complementary: + + Name "": +  + + -------------------------------------------------- + paragraph: + + Name "": +  + + Name "": + 

 + + Name "": +  + + Name "": + 

 + + Name "": + 

 + + Name "": + 

 + + -------------------------------------------------- + slider: + + Name "전체 음량": +  + + -------------------------------------------------- + status: + + Name "": +  + + Name "": +  + + -------------------------------------------------- + contentinfo: + + Name "": +  + + -------------------------------------------------- + +Ignored nodes: comments, script, style + + 

 +  + 본문으로 건너뛰기 +  +  +  +  +  +  +  +  +  + 

 + 단어를 맞춰라 + 

 +  + v0.1.1 +  + 
 +  +  + 처음으로 +  +  + 소리에 집중하는 시간 +  +  +  +  +  +  + 나의 소리 탐험 +  +  + 문제  +  + 01 +  +  / 10 +  +  +  +  +  +  + 지금 듣고 있는 공간 + 

 + 

 + 길거리 + 

 + 

 + 지나가는 차와 도시의 웅성임 + 

 +  +  +  +  +  +  +  + S +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 1 + 단계 ·  + SNR +6 dB +  +  + 음성이 배경보다 6 dB 커요. + 
 + 소리에 익숙해지기 + 

 +  +  +  + ◖)) +  +  전체 음량 +  +  +  + 35 + % +  +  +  +  + 점수  +  + 0 +  +  +  + 연속 정답  +  + 0 +  +  +  +  +  +  +  + 바로잡은 말 +  +  + 객관식 +  +  +  +  + ♬ +  +  + 소리 사이에 집중해 보세요. + 

 + 

 + 문장이 끝나면 질문이 나타나요. + 
 + 작은 단어 하나를 기억해 주세요. + 

 +  + 에스의 목소리를 듣고 있어요… + 

 +  +  +  + 듣는 중… +  +  + 듣기 중단 +  +  + 다시 들어도 점수는 줄어들지 않아요. +  +  +  +  +  +  +  + 

 + Designed by OZ at Heat-T Medical Inc. + 

 + 

 + 청각적 주의·식별 게임 · 의료적 진단이나 치료를 제공하지 않습니다. + 

 +  + 개인정보 수집 없이, 오직 플레이만. +  +  +  + + ❯ Object.getElementError node_modules/@testing-library/dom/dist/config.js:37:19 + ❯ node_modules/@testing-library/dom/dist/query-helpers.js:76:38 + ❯ node_modules/@testing-library/dom/dist/query-helpers.js:52:17 + ❯ node_modules/@testing-library/dom/dist/query-helpers.js:95:19 + ❯ tests/App.test.tsx:377:29 + 375| const f = fixture(started); + 376| await f.user.click(screen.getByRole("button", { name: "게임 시작 · 소리 듣기… + 377| await f.user.click(screen.getByRole("button", { name: "문제 풀이 종료" })); + | ^ + 378| expect(f.audio.stop).toHaveBeenCalledOnce(); + 379| expect(screen.getByRole("heading", { name: "문제 풀이를 종료했어요." })).toHav… + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[8/10]⎯ + + FAIL tests/App.test.tsx > 답변 피드백에서 종료하면 답한 한 문항만 집계한다 +TestingLibraryElementError: Unable to find an accessible element with the role "button" and name "문제 풀이 종료" + +Here are the accessible roles: + + link: + + Name "본문으로 건너뛰기": +  + + -------------------------------------------------- + banner: + + Name "": +  + + -------------------------------------------------- + heading: + + Name "단어를 맞춰라": + 

 + + Name "길거리": + 

 + + Name "정답이에요!": +  + + -------------------------------------------------- + button: + + Name "처음으로": +  + + Name "다음 문제": +  + + -------------------------------------------------- + main: + + Name "": +  + + -------------------------------------------------- + region: + + Name "단어 찾기 게임": +  + + -------------------------------------------------- + progressbar: + + Name "전체 진행률": +  + + -------------------------------------------------- + complementary: + + Name "": +  + + -------------------------------------------------- + paragraph: + + Name "": +  + + Name "": + 

 + + Name "": +  + + Name "": + 

 + + Name "": +  + + Name "": + 

 + + Name "": + 

 + + -------------------------------------------------- + slider: + + Name "전체 음량": +  + + -------------------------------------------------- + status: + + Name "": +  + + -------------------------------------------------- + strong: + + Name "": +  + + -------------------------------------------------- + blockquote: + + Name "": + 

 + + -------------------------------------------------- + contentinfo: + + Name "": +  + + -------------------------------------------------- + +Ignored nodes: comments, script, style + + 
 +  + 본문으로 건너뛰기 +  +  +  +  +  +  +  +  +  + 

 + 단어를 맞춰라 + 

 +  + v0.1.1 +  + 
 +  +  + 처음으로 +  +  + 소리에 집중하는 시간 +  +  +  +  +  +  + 나의 소리 탐험 +  +  + 문제  +  + 01 +  +  / 10 +  +  +  +  +  +  + 지금 듣고 있는 공간 + 

 + 

 + 길거리 + 

 + 

 + 지나가는 차와 도시의 웅성임 + 

 +  +  +  +  +  +  +  + S +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 1 + 단계 ·  + SNR +6 dB +  +  + 음성이 배경보다 6 dB 커요. + 
 + 소리에 익숙해지기 + 

 +  +  +  + ◖)) +  +  전체 음량 +  +  +  + 35 + % +  +  +  +  + 점수  +  + 100 +  +  +  + 연속 정답  +  + 1 +  +  +  +  +  +  +  + 바로잡은 말 +  +  + 객관식 +  +  +  +  + ✓ +  +  + 정답이에요! + 

 + 

 + 숨겨진 단어는  +  + 시장 +  + 

 + 
 + 정답은 ‘지장’입니다. 아니, 잘못 말했어요. 정정한 답은 ‘시장’입니다. + 
 +  + 내 답:  + 시장 +  · + + 100 + 점 + 

 +  + 다음 문제 +   +  + → +  +  +  +  +  +  +  +  + 

 + Designed by OZ at Heat-T Medical Inc. + 

 + 

 + 청각적 주의·식별 게임 · 의료적 진단이나 치료를 제공하지 않습니다. + 

 +  + 개인정보 수집 없이, 오직 플레이만. +  +  +  + + ❯ Object.getElementError node_modules/@testing-library/dom/dist/config.js:37:19 + ❯ node_modules/@testing-library/dom/dist/query-helpers.js:76:38 + ❯ node_modules/@testing-library/dom/dist/query-helpers.js:52:17 + ❯ node_modules/@testing-library/dom/dist/query-helpers.js:95:19 + ❯ tests/App.test.tsx:393:29 + 391| await f.finish(); + 392| await f.user.click(screen.getByRole("button", { name: new RegExp(cre… + 393| await f.user.click(screen.getByRole("button", { name: "문제 풀이 종료" })); + | ^ + 394| expect(screen.getByText("응답 1문항 · 정답 1문항")).toBeInTheDocument(); + 395| expect(screen.getByText("정답률 · 1/1")).toBeInTheDocument(); + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[9/10]⎯ + + FAIL tests/App.test.tsx > 5단계 완료는 6단계 대신 같은 단계의 새 세 문항을 시작한다 +TestingLibraryElementError: Unable to find a label with the text of: 시작 난이도 + +Ignored nodes: comments, script, style + + 
 +  + 본문으로 건너뛰기 +  +  +  +  +  +  +  +  +  + 

 + 단어를 맞춰라 + 

 +  + v0.1.1 +  + 
 +  +  + 플레이 방법  +  + ↓ +  +  +  + 소리에 집중하는 시간 +  +  +  +  +  +  +  +  귀를 기울이면, 발견하는 즐거움 + 

 +  + 소음 속 작은 단어, + 
 +  + 들리시나요? +  +  +  + 도시의 소리 사이에 에스가 숨겨 둔 단어. + 
 + 조금 더 귀 기울여, 오늘의 행운을 찾아보세요. + 

 +  +  + 10개의 질문 +  +  + 5단계 도전 +  +  + 나만의 속도로 +  +  +  +  +  +  +  +  에스의 사운드 룸 +  +  + 8 + 가지 환경 +  +  +  +  +  + ♪ + 
 +  + ✳ +  +  + 행운의 단어를 찾아보거라! +  +  +  +  +  +  +  +  + S +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 소음 사이, 숨겨진 한마디 +  +  +  +  +  +  +  + 01 +  + 
 +  + 나의 소리 탐험 준비 +  + 

 + 편한 방식으로 시작하세요. 난이도는 조금씩 높아져요. + 

 + 
 +  + 약 3–5분 +  +  +  +  +  + 어떻게 답할까요? +  +  +  +  +  + ◈ +  +  + 골고루 풀기 +  +  + 선택 + 직접 입력 +  +  +  +  +  + ☷ +  +  + 보기에서 선택 +  +  + 4개 단어 중 하나 +  +  +  +  +  + ✎ +  +  + 직접 입력 +  +  + 기억한 단어 쓰기 +  +  +  +  +  +  + 배경 환경 +  +  +  + 여덟 가지 일상 속으로 +  +  + 길거리 +  +  + 쇼핑몰 +  +  + 극장 +  +  + 백화점 +  +  + 시장 +  +  + 지하철 +  +  + 카페 +  +  + 비 오는 거리 +  +  + 

 + 길거리부터 비 오는 거리까지, 매번 다른 공간을 만나요. + 

 +  +  + 길거리 +  +  + 카페 +  +  + 지하철 +  +  + +5개 환경 +  +  +  +  +  +  +  + ◖)) +  +  전체 음량 +  +  +  + 35 + % +  +  +  + 

 +  + ♬ +  +  편안한 작은 음량으로 시작해 보세요. + 

 +  + 게임 시작 · 소리 듣기  +  + → +  +  +  +  +  +  + 작은 단어를 발견하는 방법 +  +  + 
 +  + 01 +  + 

 + 먼저, 귀 기울이기 + 

 + 

 + 에스의 안내와 소음 속 문장을 들어요. + 
 + 처음에는 또렷하게, 점점 더 작게. + 

 + 
 + 
 +  + 02 +  + 

 + 기억한 단어 찾기 + 

 + 

 + 소리가 끝나면 질문이 나타나요. + 
 + 보기에서 고르거나 직접 입력해요. + 

 + 
 + 
 +  + 03 +  + 

 + 나의 발견 돌아보기 + 

 + 

 + 열 문제 뒤 나의 결과를 확인해요. + 
 + 놓쳤다면 언제든 다시 들어도 좋아요. + 

 + 
 +  +  +  +  + 

 + Designed by OZ at Heat-T Medical Inc. + 

 + 

 + 청각적 주의·식별 게임 · 의료적 진단이나 치료를 제공하지 않습니다. + 

 +  + 개인정보 수집 없이, 오직 플레이만. +  +  +  + + ❯ Object.getElementError node_modules/@testing-library/dom/dist/config.js:37:19 + ❯ getAllByLabelText node_modules/@testing-library/dom/dist/queries/label-text.js:111:38 + ❯ node_modules/@testing-library/dom/dist/query-helpers.js:52:17 + ❯ node_modules/@testing-library/dom/dist/query-helpers.js:95:19 + ❯ tests/App.test.tsx:400:37 + 398| it("5단계 완료는 6단계 대신 같은 단계의 새 세 문항을 시작한다", async () => { + 399| const f = fixture(); + 400| await f.user.selectOptions(screen.getByLabelText("시작 난이도"), "5"); + | ^ + 401| await f.user.click(screen.getByRole("radio", { name: "보기에서 선택" })); + 402| await f.user.click(screen.getByRole("button", { name: "게임 시작 · 소리 듣기… + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[10/10]⎯ + + + Test Files 1 failed (1) + Tests 10 failed | 8 passed (18) + Start at 07:58:09 + Duration 3.29s (tests 75%, environment 18%, setup 3%, transform 2%, import 1%) + diff --git a/.agent/evidence-v0.2.3/03-screen-duplicate-description-RED.log b/.agent/evidence-v0.2.3/03-screen-duplicate-description-RED.log new file mode 100644 index 0000000..9f17712 --- /dev/null +++ b/.agent/evidence-v0.2.3/03-screen-duplicate-description-RED.log @@ -0,0 +1,461 @@ + + RUN v5.0.4 /home/hermes/worktrees/find-word-v0.2.3 + + ❯ tests/App.test.tsx (18 tests | 1 failed) 3085ms + ❯ 시작부터 결과까지 사용자 흐름 (13) + × 다섯 난이도의 SNR과 음성·배경 크기 관계를 설명하고 결과에도 표시한다 112ms + +⎯⎯⎯⎯⎯⎯⎯ Failed Tests 1 ⎯⎯⎯⎯⎯⎯⎯ + + FAIL tests/App.test.tsx > 시작부터 결과까지 사용자 흐름 > 다섯 난이도의 SNR과 음성·배경 크기 관계를 설명하고 결과에도 표시한다 +TestingLibraryElementError: Found multiple elements with the text: 음성이 배경보다 6 dB 커요. + +Here are the matching elements: + +Ignored nodes: comments, script, style + + 음성이 배경보다 6 dB 커요. + 
 + 소리에 익숙해지기 +

 + +Ignored nodes: comments, script, style + + 음성이 배경보다 6 dB 커요. +  범위 −12~+12 dB · 1 dB 간격. 양수는 음성이 더 크게, 0은 같게, 음수는 더 작게 들려요. 변경은 다음 재생·재청취부터 적용돼요. +

 + +(If this is intentional, then use the `*AllBy*` variant of the query (like `queryAllByText`, `getAllByText`, or `findAllByText`)). + +Ignored nodes: comments, script, style + + 
 +  + 본문으로 건너뛰기 +  +  +  +  +  +  +  +  +  + 

 + 단어를 맞춰라 + 

 +  + v0.1.1 +  + 
 +  +  + 문제 풀이 종료 +  +  + 소리에 집중하는 시간 +  +  +  +  +  +  + 나의 소리 탐험 +  +  + 문제  +  + 01 +  +  /  + 3 +  +  +  +  +  +  + 지금 듣고 있는 공간 + 

 + 

 + 길거리 + 

 + 

 + 지나가는 차와 도시의 웅성임 + 

 +  +  +  +  +  +  +  + S +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 1 + 단계 ·  + SNR +6 dB +  +  + 음성이 배경보다 6 dB 커요. + 
 + 소리에 익숙해지기 + 

 +  +  + 목표 음성 SNR +  +  +  + SNR +6 dB +  +  + 음성이 배경보다 6 dB 커요. +  범위 −12~+12 dB · 1 dB 간격. 양수는 음성이 더 크게, 0은 같게, 음수는 더 작게 들려요. 변경은 다음 재생·재청취부터 적용돼요. + 

 +  +  +  +  + ◖)) +  +  전체 음량 +  +  +  + 35 + % +  +  +  +  + 점수  +  + 0 +  +  +  + 연속 정답  +  + 0 +  +  +  +  +  +  +  + 바로잡은 말 +  +  + 객관식 +  +  +  + 정정해서 알려준 단어는 무엇인가요? +  +  + 가장 또렷하게 기억나는 단어를 골라 주세요. + 

 +  +  +  +  +  +  +  +  + ↻ 다시 듣기 +  +  + 다시 들어도 점수는 줄어들지 않아요. +  +  +  +  +  +  +  + 

 + Designed by OZ at Heat-T Medical Inc. + 

 + 

 + 청각적 주의·식별 게임 · 의료적 진단이나 치료를 제공하지 않습니다. + 

 +  + 개인정보 수집 없이, 오직 플레이만. +  +  +  + + ❯ Object.getElementError node_modules/@testing-library/dom/dist/config.js:37:19 + ❯ getElementError node_modules/@testing-library/dom/dist/query-helpers.js:20:35 + ❯ getMultipleElementsFoundError node_modules/@testing-library/dom/dist/query-helpers.js:23:10 + ❯ node_modules/@testing-library/dom/dist/query-helpers.js:55:13 + ❯ node_modules/@testing-library/dom/dist/query-helpers.js:95:19 + ❯ tests/App.test.tsx:127:22 + 125| .toBeInTheDocument(); + 126| expect + 127| .soft(screen.queryByText(description, { exact: false })) + | ^ + 128| .toBeInTheDocument(); + 129| await f.user.click( + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[1/1]⎯ + + + Test Files 1 failed (1) + Tests 1 failed | 17 passed (18) + Start at 07:59:02 + Duration 4.01s (tests 79%, environment 14%, transform 2%, setup 2%, import 1%) + diff --git a/.agent/evidence-v0.2.3/04-recorded-mix-GREEN.log b/.agent/evidence-v0.2.3/04-recorded-mix-GREEN.log new file mode 100644 index 0000000..cd5d068 --- /dev/null +++ b/.agent/evidence-v0.2.3/04-recorded-mix-GREEN.log @@ -0,0 +1,9 @@ + + RUN v5.0.4 /home/hermes/worktrees/find-word-v0.2.3 + + + Test Files 2 passed (2) + Tests 19 passed (19) + Start at 08:00:13 + Duration 1.06s (environment 76%, setup 12%, transform 8%, tests 2%, import 1%, worker 1%) + diff --git a/.agent/evidence-v0.2.3/04-recorded-mix-RED.log b/.agent/evidence-v0.2.3/04-recorded-mix-RED.log new file mode 100644 index 0000000..632ef00 --- /dev/null +++ b/.agent/evidence-v0.2.3/04-recorded-mix-RED.log @@ -0,0 +1,47 @@ + + RUN v5.0.4 /home/hermes/worktrees/find-word-v0.2.3 + + ❯ tests/dsp.test.ts (4 tests | 2 failed) 13ms + ❯ 상대 dB와 결정론적 배경 합성 (4) + × 여덟 환경은 고유 same-origin WAV이며 절차적 합성 매개변수를 갖지 않는다 6ms + × 피크가 큰 녹음도 공통 감쇠로 합성 peak 0.8을 넘지 않고 SNR 비율을 보존한다 1ms + +⎯⎯⎯⎯⎯⎯⎯ Failed Tests 2 ⎯⎯⎯⎯⎯⎯⎯ + + FAIL tests/dsp.test.ts > 상대 dB와 결정론적 배경 합성 > 여덟 환경은 고유 same-origin WAV이며 절차적 합성 매개변수를 갖지 않는다 +AssertionError: expected 1 to be 8 // Object.is equality + +- Expected ++ Received + +- 8 ++ 1 + + ❯ tests/dsp.test.ts:23:61 + 21| }); + 22| it("여덟 환경은 고유 same-origin WAV이며 절차적 합성 매개변수를 갖지 않는다", () => { + 23| expect(new Set(ENVIRONMENTS.map(e => e.audioUrl)).size).toBe(8); + | ^ + 24| for (const environment of ENVIRONMENTS) { + 25| const url = new URL(environment.audioUrl, "http://localhost"); + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[1/2]⎯ + + FAIL tests/dsp.test.ts > 상대 dB와 결정론적 배경 합성 > 피크가 큰 녹음도 공통 감쇠로 합성 peak 0.8을 넘지 않고 SNR 비율을 보존한다 +TypeError: mixingGains is not a function + ❯ tests/dsp.test.ts:35:21 + 33| const background = normalizeRms(new Float32Array([0.2, -0.2]), 0.0… + 34| for (const db of [-12, -6, 0, 6, 12]) { + 35| const gains = mixingGains(voice, background, voice, db); + | ^ + 36| expect(20 * Math.log10(gains.voice / gains.background)).toBeClos… + 37| expect(Math.max(...voice) * (gains.voice + gains.intro) + 0.03 *… + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[2/2]⎯ + + + Test Files 1 failed (1) + Tests 2 failed | 2 passed (4) + Start at 07:59:47 + Duration 849ms (environment 78%, setup 14%, transform 5%, tests 2%, worker 1%, import 1%) + diff --git a/.agent/evidence-v0.2.3/05-playback-GREEN.log b/.agent/evidence-v0.2.3/05-playback-GREEN.log new file mode 100644 index 0000000..5e8e418 --- /dev/null +++ b/.agent/evidence-v0.2.3/05-playback-GREEN.log @@ -0,0 +1,9 @@ + + RUN v5.0.4 /home/hermes/worktrees/find-word-v0.2.3 + + + Test Files 1 passed (1) + Tests 11 passed (11) + Start at 08:01:57 + Duration 1.05s (environment 60%, tests 21%, setup 10%, transform 6%, import 1%, worker 1%) + diff --git a/.agent/evidence-v0.2.3/05-playback-RED.log b/.agent/evidence-v0.2.3/05-playback-RED.log new file mode 100644 index 0000000..3bb1503 --- /dev/null +++ b/.agent/evidence-v0.2.3/05-playback-RED.log @@ -0,0 +1,272 @@ + + RUN v5.0.4 /home/hermes/worktrees/find-word-v0.2.3 + + ❯ tests/audio.test.ts (11 tests | 9 failed) 139ms + ❯ 오디오 재생 수명과 믹서 (8) + × intro와 목표 실제 fetch URL에 같은 명시적 cache-busting 버전을 붙인다 21ms + × intro 404 후 intro·목표를 동일한 versioned URL로 다시 요청한다 19ms + × target 404 후 intro·목표를 동일한 versioned URL로 다시 요청한다 20ms + × 생성 시 무음이며 gesture의 play에서만 장치를 연다 13ms + × 동시 시작을 거부하고 정지하면 모든 노드와 대기 Promise를 취소한다 14ms + × HTTP·디코드·장치 실패를 전달하고 다음 시도는 다시 로드한다 3ms + × 전체 음량은 두 신호의 비율을 보존하며 0부터 1 범위로 제한한다 9ms + × 선택한 녹음을 디코드·루프하고 목표 종료에서 모든 소스와 fetch를 정리한다 11ms + × 배경 404·디코드 실패는 한국어 복구 메시지이고 재시도로 성공한다 10ms + +⎯⎯⎯⎯⎯⎯⎯ Failed Tests 9 ⎯⎯⎯⎯⎯⎯⎯ + + FAIL tests/audio.test.ts > 오디오 재생 수명과 믹서 > intro와 목표 실제 fetch URL에 같은 명시적 cache-busting 버전을 붙인다 +TypeError: Cannot read properties of undefined (reading 'onended') + ❯ tests/audio.test.ts:95:21 + 93| const done = f.engine.play(question, true, vi.fn()); + 94| await flush(); + 95| f.sources.at(-1)!.onended?.(); + | ^ + 96| await done; + 97| expect(f.fetcher.mock.calls.map(([url]) => url)).toEqual([ + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[1/9]⎯ + + FAIL tests/audio.test.ts > 오디오 재생 수명과 믹서 > intro 404 후 intro·목표를 동일한 versioned URL로 다시 요청한다 + FAIL tests/audio.test.ts > 오디오 재생 수명과 믹서 > target 404 후 intro·목표를 동일한 versioned URL로 다시 요청한다 +TypeError: Cannot read properties of undefined (reading 'onended') + ❯ tests/audio.test.ts:129:23 + 127| const done = f.engine.play(question, true, vi.fn()); + 128| await flush(); + 129| f.sources.at(-1)!.onended?.(); + | ^ + 130| await done; + 131| expect(f.fetcher.mock.calls.map(([url]) => url)).toEqual([ + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[2/9]⎯ + + FAIL tests/audio.test.ts > 오디오 재생 수명과 믹서 > 생성 시 무음이며 gesture의 play에서만 장치를 연다 +AssertionError: expected "vi.fn()" to be called once, but got 0 times + ❯ tests/audio.test.ts:150:21 + 148| expect(f.context.resume).toHaveBeenCalledOnce(); + 149| await flush(); + 150| expect(started).toHaveBeenCalledOnce(); + | ^ + 151| expect(f.sources).toHaveLength(3); + 152| expect( + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[3/9]⎯ + + FAIL tests/audio.test.ts > 오디오 재생 수명과 믹서 > 동시 시작을 거부하고 정지하면 모든 노드와 대기 Promise를 취소한다 +AssertionError: expected TypeError: (0 , __vite_ssr_import_1__.syn… to match object { name: 'AbortError' } + +- Expected ++ Received + +- { +- "name": "AbortError", ++ TypeError { ++ "message": "(0 , __vite_ssr_import_1__.synthesizeBackground) is not a function", + } + + ❯ tests/audio.test.ts:182:35 + 180| const f = fixture(); + 181| const done = f.engine.play(question, false, vi.fn()); + 182| const cancelled = expect(done).rejects.toMatchObject({ + | ^ + 183| name: "AbortError", + 184| }); + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[4/9]⎯ + + FAIL tests/audio.test.ts > 오디오 재생 수명과 믹서 > HTTP·디코드·장치 실패를 전달하고 다음 시도는 다시 로드한다 +AssertionError: expected [Function] to throw error including '해석' but got 'decode' + +Expected: "해석" +Received: "decode" + + ❯ tests/audio.test.ts:226:58 + 224| ); + 225| f.context.decodeAudioData.mockRejectedValueOnce(new Error("decode"… + 226| await expect(f.engine.play(question, false, vi.fn())).rejects.toTh… + | ^ + 227| "해석", + 228| ); + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[5/9]⎯ + + FAIL tests/audio.test.ts > 오디오 재생 수명과 믹서 > 전체 음량은 두 신호의 비율을 보존하며 0부터 1 범위로 제한한다 +TypeError: Cannot read properties of undefined (reading 'onended') + ❯ tests/audio.test.ts:248:21 + 246| f.engine.setVolume(-1); + 247| expect(f.gains[0]!.gain.setTargetAtTime).toHaveBeenCalledWith(0, 2… + 248| f.sources.at(-1)!.onended?.(); + | ^ + 249| await done; + 250| }); + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[6/9]⎯ + + FAIL tests/audio.test.ts > 선택한 녹음을 디코드·루프하고 목표 종료에서 모든 소스와 fetch를 정리한다 +AssertionError: expected "vi.fn()" to be called with arguments: [ Array(2) ] + +Received: + + 1st vi.fn() call: + + [ +- "/ambience/street.wav?v=0.1.1", +- ObjectContaining { +- "signal": Any, ++ "/audio/correction-market.wav?v=0.1.1", ++ { ++ "signal": AbortSignal { ++ Symbol(kEvents): undefined, ++ Symbol(events.maxEventTargetListeners): 0, ++ Symbol(events.maxEventTargetListenersWarned): false, ++ Symbol(kHandlers): undefined, ++ Symbol(kAborted): true, ++ Symbol(kReason): AbortError { ++ "message": "This operation was aborted", ++ }, ++ Symbol(kComposite): false, ++ }, + }, + ] + + +Number of calls: 1 + + ❯ tests/audio.test.ts:258:21 + 256| const done = f.engine.play(question, false, vi.fn()); + 257| await flush(); + 258| expect(f.fetcher).toHaveBeenCalledWith(question.environment.audioUrl… + | ^ + 259| expect(f.context.decodeAudioData).toHaveBeenCalledTimes(2); + 260| expect(f.sources[0]!.loop).toBe(true); + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[7/9]⎯ + + FAIL tests/audio.test.ts > 배경 404·디코드 실패는 한국어 복구 메시지이고 재시도로 성공한다 +AssertionError: expected [Function] to throw error matching /배경.*다시/ but got '(0 , __vite_ssr_import_1__.synthesize…' + +- Expected: +/배경.*다시/ + ++ Received: +"(0 , __vite_ssr_import_1__.synthesizeBackground) is not a function" + + ❯ tests/audio.test.ts:272:56 + 270| f.fetcher.mockImplementationOnce(async () => ({ ok: true, arrayBuffe… + 271| f.fetcher.mockResolvedValueOnce({ ok: false } as Response); + 272| await expect(f.engine.play(question, false, vi.fn())).rejects.toThro… + | ^ + 273| f.context.decodeAudioData.mockRejectedValueOnce(new Error("EncodingE… + 274| await expect(f.engine.play(question, false, vi.fn())).rejects.toThro… + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[8/9]⎯ + +⎯⎯⎯⎯⎯⎯ Unhandled Errors ⎯⎯⎯⎯⎯⎯ + +Vitest caught 6 unhandled errors during the test run. +This might cause false positive tests. Resolve unhandled errors to make sure your tests are not affected. + +⎯⎯⎯⎯ Unhandled Rejection ⎯⎯⎯⎯⎯ +TypeError: synthesizeBackground is not a function + ❯ src/audio/engine.ts:131:15 + 129| background.copyToChannel( + 130| normalizeRms( + 131| synthesizeBackground( + | ^ + 132| question.environment, + 133| context.sampleRate, + ❯ process.processTicksAndRejections node:internal/process/task_queues:104:5 + +This error originated in "tests/audio.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. +The last test to run before this error was "로드 시간초과는 fetch를 취소하고 늦은 디코드가 소스를 만들지 않는다". This means either: +- the error was thrown while Vitest was running this test, or +- the error was thrown after the test completed, and this was the most recent test at that point. + +⎯⎯⎯⎯ Unhandled Rejection ⎯⎯⎯⎯⎯ +TypeError: synthesizeBackground is not a function + ❯ src/audio/engine.ts:131:15 + 129| background.copyToChannel( + 130| normalizeRms( + 131| synthesizeBackground( + | ^ + 132| question.environment, + 133| context.sampleRate, + ❯ process.processTicksAndRejections node:internal/process/task_queues:104:5 + +This error originated in "tests/audio.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. +The last test to run before this error was "로드 시간초과는 fetch를 취소하고 늦은 디코드가 소스를 만들지 않는다". This means either: +- the error was thrown while Vitest was running this test, or +- the error was thrown after the test completed, and this was the most recent test at that point. + +⎯⎯⎯⎯ Unhandled Rejection ⎯⎯⎯⎯⎯ +TypeError: synthesizeBackground is not a function + ❯ src/audio/engine.ts:131:15 + 129| background.copyToChannel( + 130| normalizeRms( + 131| synthesizeBackground( + | ^ + 132| question.environment, + 133| context.sampleRate, + ❯ process.processTicksAndRejections node:internal/process/task_queues:104:5 + +This error originated in "tests/audio.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. +The last test to run before this error was "로드 시간초과는 fetch를 취소하고 늦은 디코드가 소스를 만들지 않는다". This means either: +- the error was thrown while Vitest was running this test, or +- the error was thrown after the test completed, and this was the most recent test at that point. + +⎯⎯⎯⎯ Unhandled Rejection ⎯⎯⎯⎯⎯ +TypeError: synthesizeBackground is not a function + ❯ src/audio/engine.ts:131:15 + 129| background.copyToChannel( + 130| normalizeRms( + 131| synthesizeBackground( + | ^ + 132| question.environment, + 133| context.sampleRate, + ❯ process.processTicksAndRejections node:internal/process/task_queues:104:5 + +This error originated in "tests/audio.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. +The last test to run before this error was "로드 시간초과는 fetch를 취소하고 늦은 디코드가 소스를 만들지 않는다". This means either: +- the error was thrown while Vitest was running this test, or +- the error was thrown after the test completed, and this was the most recent test at that point. + +⎯⎯⎯⎯ Unhandled Rejection ⎯⎯⎯⎯⎯ +TypeError: synthesizeBackground is not a function + ❯ src/audio/engine.ts:131:15 + 129| background.copyToChannel( + 130| normalizeRms( + 131| synthesizeBackground( + | ^ + 132| question.environment, + 133| context.sampleRate, + ❯ process.processTicksAndRejections node:internal/process/task_queues:104:5 + +This error originated in "tests/audio.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. +The last test to run before this error was "로드 시간초과는 fetch를 취소하고 늦은 디코드가 소스를 만들지 않는다". This means either: +- the error was thrown while Vitest was running this test, or +- the error was thrown after the test completed, and this was the most recent test at that point. + +⎯⎯⎯⎯ Unhandled Rejection ⎯⎯⎯⎯⎯ +TypeError: synthesizeBackground is not a function + ❯ src/audio/engine.ts:131:15 + 129| background.copyToChannel( + 130| normalizeRms( + 131| synthesizeBackground( + | ^ + 132| question.environment, + 133| context.sampleRate, + ❯ process.processTicksAndRejections node:internal/process/task_queues:104:5 + +This error originated in "tests/audio.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. +The last test to run before this error was "로드 시간초과는 fetch를 취소하고 늦은 디코드가 소스를 만들지 않는다". This means either: +- the error was thrown while Vitest was running this test, or +- the error was thrown after the test completed, and this was the most recent test at that point. +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ + + + Test Files 1 failed (1) + Tests 9 failed | 2 passed (11) + Errors 6 errors + Start at 08:00:38 + Duration 979ms (environment 65%, tests 16%, setup 11%, transform 6%, import 1%, worker 1%) + diff --git a/.agent/evidence-v0.2.3/05-playback-fixture-regression.log b/.agent/evidence-v0.2.3/05-playback-fixture-regression.log new file mode 100644 index 0000000..e232051 --- /dev/null +++ b/.agent/evidence-v0.2.3/05-playback-fixture-regression.log @@ -0,0 +1,60 @@ + + RUN v5.0.4 /home/hermes/worktrees/find-word-v0.2.3 + + ❯ tests/audio.test.ts (11 tests | 1 failed) 207ms + ❯ 오디오 재생 수명과 믹서 (8) + × 생성 시 무음이며 gesture의 play에서만 장치를 연다 30ms + +⎯⎯⎯⎯⎯⎯⎯ Failed Tests 1 ⎯⎯⎯⎯⎯⎯⎯ + + FAIL tests/audio.test.ts > 오디오 재생 수명과 믹서 > 생성 시 무음이며 gesture의 play에서만 장치를 연다 +AssertionError: expected "vi.fn()" to be called with arguments: [ 1, Any ] + +Received: + + 1st vi.fn() call: + + [ +- 1, +- Any, ++ 0.834156648304508, ++ 2.05, + ] + + 2nd vi.fn() call: + + [ +- 1, +- Any, ++ 0, ++ 2.05, + ] + + 3rd vi.fn() call: + + [ +- 1, +- Any, ++ 0.834156648304508, ++ 4.340000000000001, + ] + + +Number of calls: 3 + + ❯ tests/audio.test.ts:158:45 + 156| ).toEqual(["/audio/intro.wav", `/audio/${question.id}.wav`, new UR… + 157| // master, 배경, 목표, 안내의 gain을 분리한다. 안내는 점차 소음에 묻힌다. + 158| expect(f.gains[1]!.gain.setValueAtTime).toHaveBeenCalledWith( + | ^ + 159| 1, + 160| expect.any(Number), + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[1/1]⎯ + + + Test Files 1 failed (1) + Tests 1 failed | 10 passed (11) + Start at 08:01:14 + Duration 1.05s (environment 61%, tests 22%, setup 10%, transform 5%, import 1%, worker 1%) + diff --git a/.agent/evidence-v0.2.3/06-node-import-GREEN.log b/.agent/evidence-v0.2.3/06-node-import-GREEN.log new file mode 100644 index 0000000..fd23933 --- /dev/null +++ b/.agent/evidence-v0.2.3/06-node-import-GREEN.log @@ -0,0 +1,9 @@ + + RUN v5.0.4 /home/hermes/worktrees/find-word-v0.2.3 + + + Test Files 1 passed (1) + Tests 1 passed | 1 skipped (2) + Start at 08:01:59 + Duration 305ms (setup 52%, tests 39%, transform 5%, worker 2%, import 1%) + diff --git a/.agent/evidence-v0.2.3/06-node-import-RED.log b/.agent/evidence-v0.2.3/06-node-import-RED.log new file mode 100644 index 0000000..43213c3 --- /dev/null +++ b/.agent/evidence-v0.2.3/06-node-import-RED.log @@ -0,0 +1,53 @@ + + RUN v5.0.4 /home/hermes/worktrees/find-word-v0.2.3 + + ❯ tests/generator.test.ts (2 tests | 1 failed | 1 skipped) 87ms + × Node type stripping 경로에서 기존 101문장 원문을 읽을 수 있다 86ms + +⎯⎯⎯⎯⎯⎯⎯ Failed Tests 1 ⎯⎯⎯⎯⎯⎯⎯ + + FAIL tests/generator.test.ts > Node type stripping 경로에서 기존 101문장 원문을 읽을 수 있다 +AssertionError: node:internal/modules/esm/resolve:272 + throw new ERR_MODULE_NOT_FOUND( + ^ + +Error [ERR_MODULE_NOT_FOUND]: Cannot find module '/home/hermes/worktrees/find-word-v0.2.3/src/audio/assets' imported from /home/hermes/worktrees/find-word-v0.2.3/src/content.ts + at finalizeResolution (node:internal/modules/esm/resolve:272:11) + at moduleResolve (node:internal/modules/esm/resolve:879:10) + at defaultResolve (node:internal/modules/esm/resolve:1006:11) + at #cachedDefaultResolve (node:internal/modules/esm/loader:708:20) + at #resolveAndMaybeBlockOnLoaderThread (node:internal/modules/esm/loader:728:38) + at ModuleLoader.resolveSync (node:internal/modules/esm/loader:766:56) + at #resolve (node:internal/modules/esm/loader:690:17) + at ModuleLoader.getOrCreateModuleJob (node:internal/modules/esm/loader:610:35) + at ModuleJob.syncLink (node:internal/modules/esm/module_job:277:33) + at ModuleJob.link (node:internal/modules/esm/module_job:389:17) { + code: 'ERR_MODULE_NOT_FOUND', + url: 'file:///home/hermes/worktrees/find-word-v0.2.3/src/audio/assets' +} + +Node.js v26.7.0 +: expected 1 to be +0 // Object.is equality + +- Expected ++ Received + +- 0 ++ 1 + + ❯ tests/generator.test.ts:20:40 + 18| const result = spawnSync("node", ["--experimental-strip-types", "--i… + 19| "import {INTRO,PATTERNS,WORDS} from './src/content.ts'; console.lo… + 20| expect(result.status, result.stderr).toBe(0); + | ^ + 21| expect(result.stdout.trim()).toBe("101"); + 22| }); + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[1/1]⎯ + + + Test Files 1 failed (1) + Tests 1 failed | 1 skipped (2) + Start at 08:01:37 + Duration 340ms (setup 45%, tests 39%, transform 12%, worker 2%, import 1%) + diff --git a/.agent/evidence-v0.2.3/07-asset-conversion.log b/.agent/evidence-v0.2.3/07-asset-conversion.log new file mode 100644 index 0000000..39b8cf7 --- /dev/null +++ b/.agent/evidence-v0.2.3/07-asset-conversion.log @@ -0,0 +1,4 @@ +{ + "files": 8, + "bytes": 4608352 +} diff --git a/.agent/evidence-v0.2.3/07-assets-GREEN.log b/.agent/evidence-v0.2.3/07-assets-GREEN.log new file mode 100644 index 0000000..741f44f --- /dev/null +++ b/.agent/evidence-v0.2.3/07-assets-GREEN.log @@ -0,0 +1,9 @@ + + RUN v5.0.4 /home/hermes/worktrees/find-word-v0.2.3 + + + Test Files 1 passed (1) + Tests 1 passed (1) + Start at 08:08:06 + Duration 482ms (tests 66%, setup 27%, transform 3%, import 2%, worker 1%) + diff --git a/.agent/evidence-v0.2.3/07-assets-RED.log b/.agent/evidence-v0.2.3/07-assets-RED.log new file mode 100644 index 0000000..82be06f --- /dev/null +++ b/.agent/evidence-v0.2.3/07-assets-RED.log @@ -0,0 +1,26 @@ + + RUN v5.0.4 /home/hermes/worktrees/find-word-v0.2.3 + + ❯ tests/ambience.test.ts (1 test | 1 failed) 10ms + × 여덟 현장 녹음은 고유 PCM16 WAV·짧은 fade·완전한 provenance/notice를 가진다 8ms + +⎯⎯⎯⎯⎯⎯⎯ Failed Tests 1 ⎯⎯⎯⎯⎯⎯⎯ + + FAIL tests/ambience.test.ts > 여덟 현장 녹음은 고유 PCM16 WAV·짧은 fade·완전한 provenance/notice를 가진다 +Error: ENOENT: no such file or directory, open 'public/ambience/manifest.json' + ❯ tests/ambience.test.ts:9:31 + 7| // 생성기 자기 보고 대신 배포 바이트의 형식·파형·권리 추적 정보를 독립 측정한다. + 8| it("여덟 현장 녹음은 고유 PCM16 WAV·짧은 fade·완전한 provenance/notice를 가진다", () => { + 9| const manifest = JSON.parse(readFileSync("public/ambience/manifest.j… + | ^ + 10| expect(manifest.version).toBe("0.2.3"); + 11| expect(manifest.files.map((f: {environmentId: string}) => f.environm… + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[1/1]⎯ + + + Test Files 1 failed (1) + Tests 1 failed (1) + Start at 08:02:57 + Duration 378ms (setup 63%, transform 25%, import 5%, tests 4%, worker 2%) + diff --git a/.agent/evidence-v0.2.3/07-converter-GREEN.log b/.agent/evidence-v0.2.3/07-converter-GREEN.log new file mode 100644 index 0000000..b70823d --- /dev/null +++ b/.agent/evidence-v0.2.3/07-converter-GREEN.log @@ -0,0 +1,9 @@ +test_convert_format_fade_normalization_and_reproducibility (test_ambience_audio.AmbienceConversion.test_convert_format_fade_normalization_and_reproducibility) +스테레오 48kHz 입력을 실제로 내려 섞고 길이·양끝·안전 피크를 확인한다. ... ok +test_silence_fails_before_publishing (test_ambience_audio.AmbienceConversion.test_silence_fails_before_publishing) +무음을 정상 현장 녹음으로 포장하지 않는다. ... ok + +---------------------------------------------------------------------- +Ran 2 tests in 1.134s + +OK diff --git a/.agent/evidence-v0.2.3/07-converter-RED.log b/.agent/evidence-v0.2.3/07-converter-RED.log new file mode 100644 index 0000000..6f30908 --- /dev/null +++ b/.agent/evidence-v0.2.3/07-converter-RED.log @@ -0,0 +1,21 @@ +test_ambience_audio (unittest.loader._FailedTest.test_ambience_audio) ... ERROR + +====================================================================== +ERROR: test_ambience_audio (unittest.loader._FailedTest.test_ambience_audio) +---------------------------------------------------------------------- +ImportError: Failed to import test module: test_ambience_audio +Traceback (most recent call last): + File "/home/hermes/.local/share/uv/python/cpython-3.11.16-linux-x86_64-gnu/lib/python3.11/unittest/loader.py", line 419, in _find_test_path + module = self._get_module_from_name(name) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/hermes/.local/share/uv/python/cpython-3.11.16-linux-x86_64-gnu/lib/python3.11/unittest/loader.py", line 362, in _get_module_from_name + __import__(name) + File "/home/hermes/worktrees/find-word-v0.2.3/tests/python/test_ambience_audio.py", line 11, in + import ambience_audio as audio +ModuleNotFoundError: No module named 'ambience_audio' + + +---------------------------------------------------------------------- +Ran 1 test in 0.000s + +FAILED (errors=1) diff --git a/.agent/evidence-v0.2.3/08-heard-snr-GREEN.log b/.agent/evidence-v0.2.3/08-heard-snr-GREEN.log new file mode 100644 index 0000000..ba87f7d --- /dev/null +++ b/.agent/evidence-v0.2.3/08-heard-snr-GREEN.log @@ -0,0 +1,9 @@ + + RUN v5.0.4 /home/hermes/worktrees/find-word-v0.2.3 + + + Test Files 2 passed (2) + Tests 34 passed (34) + Start at 08:04:49 + Duration 4.34s (tests 66%, environment 26%, setup 4%, transform 2%, import 1%) + diff --git a/.agent/evidence-v0.2.3/08-heard-snr-RED.log b/.agent/evidence-v0.2.3/08-heard-snr-RED.log new file mode 100644 index 0000000..21e79e0 --- /dev/null +++ b/.agent/evidence-v0.2.3/08-heard-snr-RED.log @@ -0,0 +1,33 @@ + + RUN v5.0.4 /home/hermes/worktrees/find-word-v0.2.3 + + ❯ tests/game.test.ts (16 tests | 1 failed) 39ms + × 재생 중 변경된 SNR은 재청취 전 답변의 청취 이력을 덮어쓰지 않는다 7ms + +⎯⎯⎯⎯⎯⎯⎯ Failed Tests 1 ⎯⎯⎯⎯⎯⎯⎯ + + FAIL tests/game.test.ts > 재생 중 변경된 SNR은 재청취 전 답변의 청취 이력을 덮어쓰지 않는다 +AssertionError: expected -10 to be 6 // Object.is equality + +- Expected ++ Received + +- 6 ++ -10 + + ❯ tests/game.test.ts:215:32 + 213| state = gameReducer(state, { type: "ENDED" }); + 214| state = gameReducer(state, { type: "ANSWER", input: state.questions[… + 215| expect(state.answers[0]!.db).toBe(6); + | ^ + 216| expect(state.questions[1]!.db).toBe(-10); + 217| }); + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[1/1]⎯ + + + Test Files 1 failed (1) + Tests 1 failed | 15 passed (16) + Start at 08:04:23 + Duration 904ms (environment 74%, setup 12%, transform 6%, tests 5%, import 1%, worker 1%) + diff --git a/.agent/evidence-v0.2.3/09-version-docs-GREEN.log b/.agent/evidence-v0.2.3/09-version-docs-GREEN.log new file mode 100644 index 0000000..a99568c --- /dev/null +++ b/.agent/evidence-v0.2.3/09-version-docs-GREEN.log @@ -0,0 +1,13 @@ + + RUN v5.0.4 /home/hermes/worktrees/find-word-v0.2.3 + + + Test Files 5 passed (5) + Tests 50 passed (50) + Start at 08:07:17 + Duration 4.95s (tests 52%, environment 34%, setup 9%, transform 3%, import 1%) + +Environment jsdom was created 5 times · 2.74s total, 34% of tracked time + create it once per worker with pool: 'vmThreads' (keeps per-file isolation) or isolate: false (shares it across files) + learn more: https://vitest.dev/guide/improving-performance#test-environments + diff --git a/.agent/evidence-v0.2.3/09-version-docs-RED.log b/.agent/evidence-v0.2.3/09-version-docs-RED.log new file mode 100644 index 0000000..443c754 --- /dev/null +++ b/.agent/evidence-v0.2.3/09-version-docs-RED.log @@ -0,0 +1,2751 @@ + + RUN v5.0.4 /home/hermes/worktrees/find-word-v0.2.3 + + ❯ tests/assets.test.ts (2 tests | 1 failed) 336ms + ❯ 저장한 한국어 neural 음성 자산 (2) + × 0.2.3 neural provider·voice·prosody와 실측 도구 버전을 기록한다 10ms + ❯ tests/audio.test.ts (11 tests | 3 failed) 272ms + ❯ 오디오 재생 수명과 믹서 (8) + × intro와 목표 실제 fetch URL에 같은 명시적 cache-busting 버전을 붙인다 52ms + × intro 404 후 intro·목표를 동일한 versioned URL로 다시 요청한다 45ms + × target 404 후 intro·목표를 동일한 versioned URL로 다시 요청한다 29ms + ❯ tests/neural-release.test.ts (3 tests | 2 failed) 64ms + × 0.2.3 버전을 package·lock·UI·index·문서에 일치시킨다 48ms + × 현재 문서·manifest·CHANGELOG는 0.2.3 동작과 역사 보존을 설명한다 11ms + ❯ tests/game.test.ts (16 tests | 1 failed) 50ms + ❯ 출제와 정답 판정 (5) + × 목표 WAV 100개 모두 같은 명시적 cache-busting 버전과 정답 mapping을 유지한다 33ms + ❯ tests/App.test.tsx (18 tests | 1 failed) 3592ms + ❯ 시작부터 결과까지 사용자 흐름 (13) + × 브랜드·버전·크레딧을 보여주며 직접 시작하기 전에는 재생하지 않는다 44ms + +⎯⎯⎯⎯⎯⎯⎯ Failed Tests 8 ⎯⎯⎯⎯⎯⎯⎯ + + FAIL tests/App.test.tsx > 시작부터 결과까지 사용자 흐름 > 브랜드·버전·크레딧을 보여주며 직접 시작하기 전에는 재생하지 않는다 +TestingLibraryElementError: Unable to find an element with the text: v0.2.3. This could be because the text is broken up by multiple elements. In this case, you can provide a function for your text matcher to make your matcher more flexible. + +Ignored nodes: comments, script, style + + 
 +  + 본문으로 건너뛰기 +  +  +  +  +  +  +  +  +  + 

 + 단어를 맞춰라 + 

 +  + v0.1.1 +  + 
 +  +  + 플레이 방법  +  + ↓ +  +  +  + 소리에 집중하는 시간 +  +  +  +  +  +  +  +  귀를 기울이면, 발견하는 즐거움 + 

 +  + 소음 속 작은 단어, + 
 +  + 들리시나요? +  +  +  + 도시의 소리 사이에 에스가 숨겨 둔 단어. + 
 + 조금 더 귀 기울여, 오늘의 행운을 찾아보세요. + 

 +  +  + 한 라운드  + 3 + 개의 질문 +  +  + 5단계 도전 +  +  + 나만의 속도로 +  +  +  +  +  +  +  +  에스의 사운드 룸 +  +  + 8 + 가지 환경 +  +  +  +  +  + ♪ + 
 +  + ✳ +  +  + 행운의 단어를 찾아보거라! +  +  +  +  +  +  +  +  + S +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  저장한 한국어 neural 음성 자산 > 0.2.3 neural provider·voice·prosody와 실측 도구 버전을 기록한다 +AssertionError: expected '0.1.1' to be '0.2.3' // Object.is equality + +Expected: "0.2.3" +Received: "0.1.1" + + ❯ tests/assets.test.ts:39:35 + 37| describe("저장한 한국어 neural 음성 자산", () => { + 38| it("0.2.3 neural provider·voice·prosody와 실측 도구 버전을 기록한다", () => { + 39| expect.soft(manifest.version).toBe("0.2.3"); + | ^ + 40| expect.soft(manifest.provider).toBe("Microsoft Edge online TTS"); + 41| expect.soft(manifest.voice).toBe("ko-KR-HyunsuMultilingualNeural"); + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[2/20]⎯ + + FAIL tests/audio.test.ts > 오디오 재생 수명과 믹서 > intro와 목표 실제 fetch URL에 같은 명시적 cache-busting 버전을 붙인다 +AssertionError: expected [ '/audio/intro.wav?v=0.1.1', …(2) ] to deeply equal [ '/audio/intro.wav?v=0.2.3', …(2) ] + +- Expected ++ Received + + [ +- "/audio/intro.wav?v=0.2.3", +- "/audio/correction-market.wav?v=0.2.3", ++ "/audio/intro.wav?v=0.1.1", ++ "/audio/correction-market.wav?v=0.1.1", + "/ambience/street.wav?v=0.1.1", + ] + + ❯ tests/audio.test.ts:98:54 + 96| f.sources.at(-1)!.onended?.(); + 97| await done; + 98| expect(f.fetcher.mock.calls.map(([url]) => url)).toEqual([ + | ^ + 99| "/audio/intro.wav?v=0.2.3", + 100| `/audio/${question.id}.wav?v=0.2.3`, + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[3/20]⎯ + + FAIL tests/audio.test.ts > 오디오 재생 수명과 믹서 > intro 404 후 intro·목표를 동일한 versioned URL로 다시 요청한다 + FAIL tests/audio.test.ts > 오디오 재생 수명과 믹서 > target 404 후 intro·목표를 동일한 versioned URL로 다시 요청한다 +AssertionError: expected [ '/audio/intro.wav?v=0.1.1', …(5) ] to deeply equal [ '/audio/intro.wav?v=0.2.3', …(5) ] + +- Expected ++ Received + + [ +- "/audio/intro.wav?v=0.2.3", +- "/audio/correction-market.wav?v=0.2.3", ++ "/audio/intro.wav?v=0.1.1", ++ "/audio/correction-market.wav?v=0.1.1", + "/ambience/street.wav?v=0.1.1", +- "/audio/intro.wav?v=0.2.3", +- "/audio/correction-market.wav?v=0.2.3", ++ "/audio/intro.wav?v=0.1.1", ++ "/audio/correction-market.wav?v=0.1.1", + "/ambience/street.wav?v=0.1.1", + ] + + ❯ tests/audio.test.ts:132:56 + 130| f.sources.at(-1)!.onended?.(); + 131| await done; + 132| expect(f.fetcher.mock.calls.map(([url]) => url)).toEqual([ + | ^ + 133| "/audio/intro.wav?v=0.2.3", + 134| `/audio/${question.id}.wav?v=0.2.3`, + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[4/20]⎯ + + FAIL tests/game.test.ts > 출제와 정답 판정 > 목표 WAV 100개 모두 같은 명시적 cache-busting 버전과 정답 mapping을 유지한다 +AssertionError: expected Set{ '0.1.1' } to deeply equal Set{ '0.2.3' } + +- Expected ++ Received + + Set { +- "0.2.3", ++ "0.1.1", + } + + ❯ tests/game.test.ts:32:22 + 30| versions.add(url.searchParams.get("v")); + 31| } + 32| expect(versions).toEqual(new Set(["0.2.3"])); + | ^ + 33| }); + 34| it("실제 보기에 있는 경쟁 단어를 문장에 넣고 청취 연산별 순서를 유지한다", () => { + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[5/20]⎯ + + FAIL tests/neural-release.test.ts > 0.2.3 버전을 package·lock·UI·index·문서에 일치시킨다 +AssertionError: expected '0.1.1' to be '0.2.3' // Object.is equality + +Expected: "0.2.3" +Received: "0.1.1" + + ❯ tests/neural-release.test.ts:9:28 + 7| const pkg = JSON.parse(readFileSync("package.json", "utf8")); + 8| const lock = JSON.parse(readFileSync("package-lock.json", "utf8")); + 9| expect.soft(pkg.version).toBe("0.2.3"); + | ^ + 10| expect.soft(lock.version).toBe("0.2.3"); + 11| expect.soft(lock.packages[""].version).toBe("0.2.3"); + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[6/20]⎯ + + FAIL tests/neural-release.test.ts > 0.2.3 버전을 package·lock·UI·index·문서에 일치시킨다 +AssertionError: expected '0.1.1' to be '0.2.3' // Object.is equality + +Expected: "0.2.3" +Received: "0.1.1" + + ❯ tests/neural-release.test.ts:10:29 + 8| const lock = JSON.parse(readFileSync("package-lock.json", "utf8")); + 9| expect.soft(pkg.version).toBe("0.2.3"); + 10| expect.soft(lock.version).toBe("0.2.3"); + | ^ + 11| expect.soft(lock.packages[""].version).toBe("0.2.3"); + 12| for (const path of [ + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[7/20]⎯ + + FAIL tests/neural-release.test.ts > 0.2.3 버전을 package·lock·UI·index·문서에 일치시킨다 +AssertionError: expected '0.1.1' to be '0.2.3' // Object.is equality + +Expected: "0.2.3" +Received: "0.1.1" + + ❯ tests/neural-release.test.ts:11:42 + 9| expect.soft(pkg.version).toBe("0.2.3"); + 10| expect.soft(lock.version).toBe("0.2.3"); + 11| expect.soft(lock.packages[""].version).toBe("0.2.3"); + | ^ + 12| for (const path of [ + 13| "src/App.tsx", + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[8/20]⎯ + + FAIL tests/neural-release.test.ts > 0.2.3 버전을 package·lock·UI·index·문서에 일치시킨다 +AssertionError: src/App.tsx: expected 'import { useEffect, useRef, useState …' to contain '0.2.3' + +- Expected ++ Received + +- 0.2.3 ++ import { useEffect, useRef, useState } from "react"; ++ import { AudioEngine, type AudioPort } from "./audio/engine"; ++ import { ENVIRONMENTS, LEVELS } from "./content"; ++ import { ++ createQuestions, ++ gameReducer, ++ initialGame, ++ normalizeAnswer, ++ normalizeSnr, ++ ROUND_SIZE, ++ SNR_MIN, ++ SNR_MAX, ++ summarize, ++ type Action, ++ type GameState, ++ type Mode, ++ type Question, ++ } from "./game"; ++ ++ // 화면은 순수 reducer의 단계만 표시한다. 엔진과 난수 seed를 주입할 수 있어 ++ // 사용자 흐름을 실제 장치 없이도 재현하고 별도로 실제 브라우저에서 검증한다. ++ export interface AppProps { ++ audio?: AudioPort; ++ seed?: number; ++ } ++ ++ function SoundWave({ active = false }: { active?: boolean }) { ++ // 파형은 장식이며 답의 글자 수나 실제 음성 데이터를 노출하지 않는다. ++ return ( ++ ++ ); ++ } ++ ++ function Mascot({ small = false }: { small?: boolean }) { ++ // CSS로 직접 그린 캐릭터라 외부 이미지·폰트·저작권 불명 자산이 필요 없다. ++ return ( ++ ++ ); ++ } ++ ++ // 난이도의 dB는 배경 대비 음성의 상대 크기다. 게임·결과에서 같은 표기를 ++ // 쓰고 부호의 의미를 풀어 설명하되 엔진에 전달하는 수치는 바꾸지 않는다. ++ function formatSnr(db: number) { ++ return `SNR ${db > 0 ? "+" : ""}${db} dB`; ++ } ++ ++ function describeSnr(db: number) { ++ if (db === 0) return "음성과 배경의 크기가 같아요."; ++ return `음성이 배경보다 ${Math.abs(db)} dB ${db > 0 ? "커요" : "작아요"}.`; ++ } ++ ++ export default function App({ audio, seed }: AppProps) { ++ const [engine] = useState(() => audio ?? new AudioEngine()); ++ const [mode, setMode] = useState("mixed"); ++ const [environment, setEnvironment] = useState("rotate"); ++ // 시작 단계는 홈 설정, snrOverride는 사용자가 직접 바꾼 라운드 간 SNR이다. ++ // null이면 각 새 단계의 기본값을 사용하므로 자동 진행과 수동 선택을 구분한다. ++ const [startingLevel, setStartingLevel] = useState(1); ++ const [snrOverride, setSnrOverride] = useState(null); ++ const [volume, setVolume] = useState(35); ++ const [game, setGame] = useState(null); ++ const [input, setInput] = useState(""); ++ const [attempt, setAttempt] = useState(0); ++ const token = useRef(0); ++ const playing = useRef(false); ++ const introDone = useRef(false); ++ // 한글 IME의 Enter는 글자 조합 확정에도 사용된다. 조합 중 form 제출은 ++ // 막고 확정 뒤 명시적인 제출만 채점하여 모바일·데스크톱 입력을 보호한다. ++ const composing = useRef(false); ++ const focusTarget = useRef(null); ++ const startButton = useRef(null); ++ // 함수형 갱신으로 같은 클릭 안의 초기화와 PLAY도 순서대로 reducer에 전달한다. ++ const dispatch = (action: Action) => ++ setGame((previous) => ++ previous ? gameReducer(previous, action) : previous, ++ ); ++ ++ useEffect( ++ () => () => { ++ token.current++; ++ playing.current = false; ++ engine.dispose(); ++ }, ++ [engine], ++ ); ++ useEffect(() => { ++ // 단계가 바뀌면 제목으로 초점을 옮겨 스크린리더·키보드 사용자 모두 새 ++ // 질문/피드백의 위치를 알게 한다. 입력 중 재렌더에는 초점을 빼앗지 않는다. ++ if ( ++ game?.phase === "answer" || ++ game?.phase === "feedback" || ++ game?.phase === "results" || ++ game?.phase === "ready" ++ ) ++ focusTarget.current?.focus(); ++ }, [game?.phase, game?.index]); ++ ++ // token은 엔진 취소가 지연되는 장치에서도 오래된 콜백이 새 화면을 바꾸지 못하게 한다. ++ const run = async (question: Question) => { ++ if (playing.current) return; ++ // 다시 듣기로 입력 DOM이 사라질 때 compositionend가 생략되는 브라우저도 ++ // 있으므로 재생 경계에서 조합 잠금을 해제한다. 입력 값 자체는 유지한다. ++ composing.current = false; ++ playing.current = true; ++ const currentToken = ++token.current; ++ dispatch({ type: "PLAY" }); ++ try { ++ await engine.play(question, !introDone.current, () => { ++ if (currentToken === token.current) dispatch({ type: "STARTED" }); ++ }); ++ if (currentToken !== token.current) return; ++ introDone.current = true; ++ dispatch({ type: "ENDED" }); ++ } catch (error) { ++ if (currentToken !== token.current) return; ++ // 내부 URL·예외 스택 대신 이해할 수 있는 복구 동작을 안내한다. ++ const detail = ++ error instanceof Error && error.name === "AbortError" ++ ? "듣기를 중단했습니다. 다시 시도해 주세요." ++ : "소리를 재생하지 못했어요. 브라우저의 소리 허용과 연결 상태를 확인한 뒤 다시 시도해 주세요."; ++ dispatch({ type: "ERROR", message: detail }); ++ } finally { ++ if (currentToken === token.current) playing.current = false; ++ } ++ }; ++ ++ // 다음 단계도 사용자 클릭에서 즉시 새 세 문항을 재생한다. 모든 입력 수명은 새로 시작한다. ++ const begin = (level = startingLevel) => { ++ const questions = createQuestions( ++ (seed ?? Date.now()) + attempt, ++ mode, ++ environment, ++ level, ++ ).map(q => ({ ...q, db: snrOverride ?? q.db })); ++ setAttempt(a => a + 1); ++ introDone.current = false; ++ composing.current = false; ++ setInput(""); ++ setGame(initialGame(questions)); ++ // 사용자 클릭 호출 스택에서 엔진을 열어 자동 재생 정책을 준수한다. ++ void run(questions[0]!); ++ }; ++ // 종료 결과를 읽은 뒤 홈으로 복귀할 때 수동 SNR만 지우고 명시적 홈 설정은 보존한다. ++ const home = () => { ++ token.current++; ++ playing.current = false; ++ engine.stop(); ++ composing.current = false; ++ setGame(null); ++ setInput(""); ++ setSnrOverride(null); ++ requestAnimationFrame(() => startButton.current?.focus()); ++ }; ++ // 종료를 먼저 무효화한 뒤 엔진을 정지해야 동기/비동기 완료 경합도 차단된다. ++ const exitRound = () => { ++ token.current++; ++ playing.current = false; ++ engine.stop(); ++ composing.current = false; ++ dispatch({ type: "EXIT" }); ++ }; ++ // 문항 전환은 청취를 강제하지 않는다. 준비된 사용자가 다음 소리를 시작한다. ++ const next = () => { ++ composing.current = false; ++ setInput(""); ++ dispatch({ type: "NEXT" }); ++ }; ++ const question = game?.questions[game.index]; ++ const result = game ? summarize(game) : null; ++ const busy = game?.phase === "loading" || game?.phase === "playing"; ++ ++ // 현재 재생의 gain은 바꾸지 않는다. 다음 재청취/미응답 문항/새 라운드에 적용한다. ++ const selectedSnr = snrOverride ?? LEVELS[(question?.level ?? startingLevel) - 1]!.db; ++ const snrControl = ( ++
++ ++ { ++ const db = normalizeSnr(Number(event.target.value), LEVELS[(question?.level ?? startingLevel) - 1]!.db); ++ setSnrOverride(db); ++ dispatch({ type: "SNR", db }); ++ }} /> ++ {formatSnr(selectedSnr)} ++

{describeSnr(selectedSnr)} 범위 −12~+12 dB · 1 dB 간격. ++ 양수는 음성이 더 크게, 0은 같게, 음수는 더 작게 들려요. ++ 변경은 다음 재생·재청취부터 적용돼요.

++
++ ); ++ ++ // 상태와 엔진 연결은 공유하고 각 화면에는 컨트롤 하나만 배치한다. ++ // 위치가 바뀌어도 기존 접근성 이름·label 연결·사용자가 정한 음량을 유지한다. ++ const volumeControl = ( ++
++ ++ { ++ const value = Number(event.target.value); ++ setVolume(value); ++ engine.setVolume(value / 100); ++ }} ++ /> ++ {volume}% ++
++ ); ++ ++ return ( ++ <> ++ ++ 본문으로 건너뛰기 ++ ++
++
++ ++

단어를 맞춰라

++ v0.1.1 ++
++
++ {game && game.phase !== "results" ? ( ++ ++ ) : ( ++ ++ 플레이 방법 ++ ++ )} ++ ++ 소리에 집중하는 시간 ++
++
++ ++
++ {!game ? ( ++ <> ++
++
++

++ 귀를 기울이면, 발견하는 즐거움 ++

++

++ 소음 속 작은 단어, ++
++ 들리시나요? ++

++

++ 도시의 소리 사이에 에스가 숨겨 둔 단어. ++
++ 조금 더 귀 기울여, 오늘의 행운을 찾아보세요. ++

++
++ 한 라운드 {ROUND_SIZE}개의 질문 ++ 5단계 도전 ++ 나만의 속도로 ++
++
++
++
++ ++ 에스의 사운드 룸 ++ ++ {ENVIRONMENTS.length}가지 환경 ++
++
++
++ ++ ++
행운의 단어를 찾아보거라!
++ ++
++ ++ 소음 사이, 숨겨진 한마디 ++
++
++
++ ++
++
++ 01 ++
++

나의 소리 탐험 준비

++

한 단계에서 세 문제를 풀고, 완료 후 다음 단계에 도전해요.

++
++ 라운드당 약 1–2분 ++
++
++
++ 어떻게 답할까요? ++
++ {( ++ [ ++ { ++ value: "mixed", ++ name: "골고루 풀기", ++ sub: "선택 + 직접 입력", ++ icon: "◈", ++ }, ++ { ++ value: "choice", ++ name: "보기에서 선택", ++ sub: "4개 단어 중 하나", ++ icon: "☷", ++ }, ++ { ++ value: "text", ++ name: "직접 입력", ++ sub: "기억한 단어 쓰기", ++ icon: "✎", ++ }, ++ ] as const ++ ).map((option) => ( ++ ++ ))} ++
++
++
++ ++ ++

++ {ENVIRONMENTS.find((e) => e.id === environment) ++ ?.description ?? ++ "길거리부터 비 오는 거리까지, 매번 다른 공간을 만나요."} ++

++
++ 길거리 ++ 카페 ++ 지하철 ++ +5개 환경 ++
++
++
++
++ ++ ++
++ {snrControl} ++ {volumeControl} ++
++

++ 편안한 작은 음량으로 시작해 ++ 보세요. ++

++ ++
++
++ ++
++

작은 단어를 발견하는 방법

++
++
++ 01 ++

먼저, 귀 기울이기

++

++ 에스의 안내와 소음 속 문장을 들어요. ++
++ 한 라운드 동안 같은 난이도로 들어요. ++

++
++
++ 02 ++

기억한 단어 찾기

++

++ 소리가 끝나면 질문이 나타나요. ++
++ 보기에서 고르거나 직접 입력해요. ++

++
++
++ 03 ++

나의 발견 돌아보기

++

++ 세 문제 뒤 나의 결과를 확인해요. ++
++ 놓쳤다면 언제든 다시 들어도 좋아요. ++

++
++
++
++ ++ ) : game.phase === "results" && result ? ( ++
++ {game.endedEarly ? "지금까지의 소리 탐험" : "세 번의 귀 기울임, 하나의 발견"} ++
++ ++
++

++ {game.endedEarly ? "문제 풀이를 종료했어요." : "오늘의 소리 탐험을 마쳤어요."} ++

++

++ 작은 소리에 집중한 당신, 다음 탐험에서도 만나요. ++

++

응답 {result.answered}문항 · 정답 {result.correct}문항

++
++
++ {result.score.toLocaleString()} ++ 총 점수 ++
++
++ {result.accuracy}% ++ 정답률 · {result.correct}/{result.answered} ++
++
++ ++ {game.bestStreak} ++ 회 ++ ++ 최고 연속 정답 ++
++
++ ++ ++ ++ ++ ++ ++ ++ ++ ++ {result.byLevel.map((row) => ( ++ ++ ++ ++ ++ ++ ))} ++ ++
난이도SNR맞힌 문제
{row.level}단계 ++ {[...new Set(game.answers.filter(a => a.level === row.level).map(a => a.db))].map(formatSnr).join(", ") || formatSnr(LEVELS[row.level - 1]!.db)} ++ ++ {row.correct} / {row.total} ++
++

단계 × 100점 + 연속 정답 보너스 (최대 40점)

++ {!game.endedEarly && ( ++ ++ )} ++ ++
++ ) : question && result ? ( ++
++
++ 나의 소리 탐험 ++ ++ 문제 {String(game.index + 1).padStart(2, "0")} / {game.questions.length} ++ ++
++ ++
++ ++
++
++ {question.pattern.title} ++ ++ {question.mode === "choice" ? "객관식" : "주관식"} ++ ++
++ {game.phase === "answer" ? ( ++ <> ++

++ {question.pattern.question} ++

++

++ {question.mode === "choice" ++ ? "가장 또렷하게 기억나는 단어를 골라 주세요." ++ : "기억나는 단어 하나를 입력해 주세요."} ++

++ {question.mode === "choice" ? ( ++
++ {question.options.map((option, i) => ( ++ ++ ))} ++
++ ) : ( ++
{ ++ event.preventDefault(); ++ if (composing.current) return; ++ dispatch({ type: "ANSWER", input }); ++ }} ++ > ++ ++ { ++ composing.current = true; ++ }} ++ onCompositionEnd={() => { ++ composing.current = false; ++ }} ++ onKeyDown={(event) => { ++ if ( ++ event.key === "Enter" && ++ (event.nativeEvent.isComposing || ++ event.nativeEvent.keyCode === 229) ++ ) ++ event.preventDefault(); ++ }} ++ autoComplete="off" ++ maxLength={60} ++ value={input} ++ onChange={(event) => setInput(event.target.value)} ++ placeholder="여기에 단어를 적어 주세요" ++ /> ++ ++
++ )} ++ ++ ) : game.phase === "feedback" ? ( ++
++ ++

++ {game.answers.at(-1)!.correct ++ ? "정답이에요!" ++ : "다음엔 찾을 수 있어요."} ++

++

++ 숨겨진 단어는 {question.word.answer} ++

++
{question.sentence}
++

++ 내 답: {game.answers.at(-1)!.input} · + ++ {game.answers.at(-1)!.points}점 ++

++ ++
++ ) : ( ++
++ ++

++ {busy ++ ? "소리 사이에 집중해 보세요." ++ : "다음 단어를 만나 볼까요?"} ++

++

++ 문장이 끝나면 질문이 나타나요. ++
++ 작은 단어 하나를 기억해 주세요. ++

++

++ {game.phase === "loading" ++ ? "소리를 준비하고 있어요…" ++ : game.phase === "playing" ++ ? "에스의 목소리를 듣고 있어요…" ++ : "준비되면 문장 듣기를 눌러 주세요."} ++

++
++ )} ++ {game.error && ( ++
++

{game.error}

++ ++
++ )} ++ {game.phase !== "feedback" && !game.error && ( ++
++ ++ {busy && ( ++ ++ )} ++ 다시 들어도 점수는 줄어들지 않아요. ++
++ )} ++
++
++
++ ) : null} ++ {game?.phase === "results" && volumeControl} ++
++
++

Designed by OZ at Heat-T Medical Inc.

++

청각적 주의·식별 게임 · 의료적 진단이나 치료를 제공하지 않습니다.

++ 개인정보 수집 없이, 오직 플레이만. ++
++ ++ ); ++ } ++ + + ❯ tests/neural-release.test.ts:19:51 + 17| "docs/AUDIO_PROVENANCE.md", + 18| ]) { + 19| expect.soft(readFileSync(path, "utf8"), path).toContain("0.2.3"); + | ^ + 20| } + 21| }); + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[9/20]⎯ + + FAIL tests/neural-release.test.ts > 0.2.3 버전을 package·lock·UI·index·문서에 일치시킨다 +AssertionError: index.html: expected '\n ++ ++ ++ ++ ++ ++ ++ 단어를 맞춰라 · Find-Word v0.1.1 ++ ++ ++
++ ++ ++ ++ + + ❯ tests/neural-release.test.ts:19:51 + 17| "docs/AUDIO_PROVENANCE.md", + 18| ]) { + 19| expect.soft(readFileSync(path, "utf8"), path).toContain("0.2.3"); + | ^ + 20| } + 21| }); + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[10/20]⎯ + + FAIL tests/neural-release.test.ts > 0.2.3 버전을 package·lock·UI·index·문서에 일치시킨다 +AssertionError: README.md: expected '# 단어를 맞춰라 · Find-Word v0.1.1\n\n소음 속에…' to contain '0.2.3' + +- Expected ++ Received + +- 0.2.3 ++ # 단어를 맞춰라 · Find-Word v0.1.1 ++ ++ 소음 속에 숨은 한국어 단어를 듣고 찾는 반응형 웹 게임입니다. ++ ++ **Designed by OZ at Heat-T Medical Inc.** ++ ++ Canonical repository: [OZ-Group/Find-Word](https://source.ibit.kr/OZ-Group/Find-Word). ++ 프로젝트 자체는 **private / all-rights-reserved**이며 `package.json`의 ++ `license`는 `UNLICENSED`입니다. [LICENSE](LICENSE)를 참고하세요. ++ 런타임 의존성 React, ReactDOM, scheduler의 MIT 전문은 ++ [THIRD_PARTY_NOTICES.md](THIRD_PARTY_NOTICES.md)에 보존하며, ++ `public/THIRD_PARTY_NOTICES.md`가 빌드 시 `dist/THIRD_PARTY_NOTICES.md`로 복사됩니다. ++ 빌드 검증기는 설치된 의존성의 라이선스 전문·버전과 세 사본을 대조합니다. ++ ++ React + TypeScript strict + Vite로 만든 정적 SPA입니다. 로그인, 개인정보 저장, ++ 분석 도구, 외부 CDN, 런타임 TTS/API 요청이 없습니다. 청각적 주의·식별 게임이며 ++ 의료적 진단·치료나 효과를 주장하지 않습니다. ++ ++ ## 실행 ++ ++ Node.js 최소 버전은 **22.22.2** (`>=22.22.2`)입니다. 잠긴 jsdom 계열 의존성이 ++ 요구하는 지원 범위는 22.x의 22.22.2 이상, 24.x의 24.15.0 이상 또는 26.0.0 이상입니다. ++ 이 중 지원되는 LTS 버전을 사용하세요. `package-lock.json`을 ++ 포함하므로 새 환경에서는 `npm ci`를 사용합니다. 이번 검증 환경은 Node 26.7.0입니다. ++ ++ ```bash ++ npm ci ++ npm run dev ++ ``` ++ ++ 표시되는 `http://127.0.0.1:5173`에서 사용합니다. 소리는 사용자가 **게임 시작 · 소리 듣기**를 ++ 누른 뒤에만 재생합니다. 낮은 음량부터 조절하고 헤드폰이나 스피커를 사용할 수 있습니다. ++ ++ ## 플레이 ++ ++ - 골고루 풀기, 보기에서 선택, 직접 입력 중 선택합니다. ++ - 8개 환경을 순환하거나 하나를 지정합니다. ++ - 에스의 안내가 배경에 묻힌 뒤 목표 문장이 나옵니다. 재생 후 질문에 답합니다. ++ - 10문제 동안 2문제마다 난이도가 올라갑니다: **SNR +6, +3, 0, −3, −6 dB**. ++ 양수는 음성이 배경보다 크고, 0은 같고, 음수는 더 작다는 뜻입니다. ++ - 다시 듣기는 감점하지 않습니다. 정답은 `단계 × 100점`, 연속 정답은 최대 40점의 보너스를 받습니다. ++ - 결과에서 점수·정답률·최고 연속 정답·단계별 결과를 확인하고 다시 시작할 수 있습니다. ++ - 새로고침하면 기록이 사라집니다. 결과를 브라우저나 서버에 저장하지 않습니다. ++ ++ 10개 유형 × 10개 단어의 100개 목표 문장을 저장했습니다. 각 세션은 유형과 ++ 단어를 섞어 출제하며 정답 위치도 섞습니다. 사전 표제어와 변형 규칙은 ++ [WORDS.md](docs/WORDS.md)에 설명했습니다. ++ 청취 과제는 직접 목표 식별, 연습 암호와 진짜 암호 구별, 앞 단어를 잊고 다음 ++ 단어 기억, 첫째·마지막·가운데 선택, 반복 찾기, 정정 반영, 신호 조건 적용, ++ 오른쪽 표지 선택의 10가지입니다. 문장에 실제 보기의 오답도 포함됩니다. ++ ++ ## 검증과 정적 빌드 ++ ++ ```bash ++ npm run lint ++ npm test ++ npm run build ++ npm run preview ++ ``` ++ ++ `lint`는 ESLint와 TypeScript 검사, `test`는 unit/component/자산/빌드 검증기 ++ 테스트를 실행합니다. `build`는 `dist/`를 만들고 음성 101개가 원본 해시 그대로 ++ 포함되었는지 확인합니다. 빌드에는 음성 합성 도구가 필요하지 않습니다. ++ 런타임 MIT notice가 `dist/`에 전문 그대로 포함되는지도 검증합니다. ++ ++ 실제 오디오·360px/1280px 화면·키보드·접근성·오류 재시도 검증: ++ ++ ```bash ++ # Chromium이 없는 개발 환경에서 한 번만 실행합니다. ++ npx playwright install chromium ++ npm run test:browser ++ # 이미 설치된 Chrome을 사용할 때의 대안입니다. ++ CHROME_PATH=/usr/bin/google-chrome npm run test:browser ++ ``` ++ ++ Chromium sandbox는 기본으로 켭니다. sandbox를 지원하지 않는 격리된 개발 ++ 환경에서만 `PLAYWRIGHT_NO_SANDBOX=1`을 명시해 끌 수 있습니다. `0`, `false`, ++ 빈 값이나 미설정은 sandbox를 유지합니다. `CHROME_PATH` 지정은 sandbox를 끄지 않습니다. ++ ++ 브라우저 테스트는 기존 `dist/`를 사용하므로 소스 변경 후 먼저 빌드하세요. ++ 실제 음성 재생이 끝나기를 기다려 약 2–3분이 걸립니다. 로컬 4173 포트를 ++ 테스트 중에만 열고 종료합니다. 스크린샷과 101개 WAV의 query URL·해시·디코드 ++ 결과는 `test-results/`에 저장합니다. 인수 기록은 실행별 새 evidence 경로에 ++ 복사하여 `.agent/evidence-v0.1.1/`의 과거 결과를 보존합니다. ++ ++ ## 음성과 문서 ++ ++ 한국어 WAV 101개는 직접 쓴 문장을 Microsoft Edge online TTS의 ++ `ko-KR-HyunsuMultilingualNeural`로 새로 생성했습니다. edge-tts **7.3.1**, ++ rate `-6%`, pitch `-4Hz`이며 FFmpeg로 **24kHz mono PCM16**으로 변환합니다. ++ 생성 시 네트워크가 필요하며 앱은 저장된 WAV만 재생합니다. 환경음은 브라우저에서 ++ 고정 seed로 합성합니다. 생성 음성의 독점 권리를 주장하지 않습니다. ++ ++ intro와 목표 WAV는 모두 `/audio/파일명.wav?v=0.1.1`로 요청합니다. ++ `src/audio/assets.ts`의 자산 버전 한 곳을 사용하며, 같은 파일명으로 음성을 ++ 교체할 때 이 값을 갱신해 기존 7일 캐시와 구분합니다. 제품 버전은 0.1.1입니다. ++ ++ Linux에서 Python 3.11 이상과 FFmpeg를 준비한 뒤 다음 명령을 사용합니다. ++ 클라이언트 버전을 고정해도 원격 모델 변경으로 동일 바이트 재생성은 보장하지 않습니다. ++ ++ ```bash ++ python3 -m venv .venv-audio ++ .venv-audio/bin/python -m pip install -r requirements-audio.txt ++ .venv-audio/bin/python -m pip check ++ npm run audio:generate ++ ``` ++ ++ 고정 venv의 Python이 101개 모두 임시 생성·검증하고 디렉터리를 원자 교체합니다. ++ 요청별 60초 제한과 최대 3회 시도를 적용하며, 실패 시 기존 자산을 보존합니다. ++ 청취 샘플: [안내](public/audio/intro.wav), [행운의 사과](public/audio/luck-apple.wav). ++ 생성 방법, 도구 라이선스, 합성 음질의 한계는 [AUDIO_PROVENANCE.md](docs/AUDIO_PROVENANCE.md)를 ++ 참고하세요. 실제 음량은 출력 장치에 따라 달라지며 표기 dB는 디지털 상대값입니다. ++ ++ - [설계와 상태 전이](docs/ARCHITECTURE.md) ++ - [Neo를 위한 정적 배포 안내](docs/DEPLOYMENT.md) ++ - [v0.1.1 RED/GREEN 및 실제 검증 결과](.agent/RESULT-v0.1.1.md) ++ - [v0.1 역사 기록](.agent/RESULT.md) ++ ++ 이번 작업에서는 서버 배포와 Git commit/push를 실행하지 않습니다. ++ + + ❯ tests/neural-release.test.ts:19:51 + 17| "docs/AUDIO_PROVENANCE.md", + 18| ]) { + 19| expect.soft(readFileSync(path, "utf8"), path).toContain("0.2.3"); + | ^ + 20| } + 21| }); + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[11/20]⎯ + + FAIL tests/neural-release.test.ts > 0.2.3 버전을 package·lock·UI·index·문서에 일치시킨다 +AssertionError: LICENSE: expected 'Find-Word v0.1.1\nPrivate / proprieta…' to contain '0.2.3' + +- Expected ++ Received + +- 0.2.3 ++ Find-Word v0.1.1 ++ Private / proprietary. All rights reserved. ++ ++ No license is granted to use, copy, modify, publish, distribute, sublicense, ++ or sell the original project code or documentation without prior ++ written permission from the respective rights holders. ++ ++ Third-party components remain subject to their own licenses. Their notices ++ are reproduced in THIRD_PARTY_NOTICES.md and accompany the distribution. ++ ++ This project does not claim exclusive rights to generated speech. ++ Provider terms and any third-party rights remain applicable to generated audio; ++ the project notice does not grant or warrant rights in that output. ++ See docs/AUDIO_PROVENANCE.md. ++ + + ❯ tests/neural-release.test.ts:19:51 + 17| "docs/AUDIO_PROVENANCE.md", + 18| ]) { + 19| expect.soft(readFileSync(path, "utf8"), path).toContain("0.2.3"); + | ^ + 20| } + 21| }); + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[12/20]⎯ + + FAIL tests/neural-release.test.ts > 0.2.3 버전을 package·lock·UI·index·문서에 일치시킨다 +AssertionError: docs/AUDIO_PROVENANCE.md: expected '# Find-Word v0.1.1 오디오 출처와 재현\n\n## 포…' to contain '0.2.3' + +- Expected ++ Received + +- 0.2.3 ++ # Find-Word v0.1.1 오디오 출처와 재현 ++ ++ ## 포함 자산과 생성 설정 ++ ++ | 대상 | 생성 방식 | 원문/설정 | 배포 방식 | ++ | --- | --- | --- | --- | ++ | `public/audio/intro.wav` | Microsoft Edge online TTS neural 음성 | `src/content.ts`의 INTRO | 24kHz mono PCM16 WAV | ++ | 목표 음성 100개 | 같은 provider·voice | 10 패턴 × 10 단어, `renderSentence` | 같은 WAV | ++ | 8개 배경 환경 | 직접 작성한 결정론적 DSP | `ENVIRONMENTS`, 고정 seed | 브라우저 메모리에서 합성 | ++ | 화면 파형·S 캐릭터 | 직접 작성한 CSS | `App.tsx`, `styles.css` | CSS | ++ ++ voice는 **`ko-KR-HyunsuMultilingualNeural`**, rate는 **`-6%`**, pitch는 ++ **`-4Hz`**, 생성 클라이언트는 **edge-tts 7.3.1**이다. 직접 작성한 한국어 ++ 문장을 온라인 provider에 보내 MP3 응답을 받은 뒤 FFmpeg로 PCM을 만든다. ++ 음성 복제나 사람의 녹음 샘플을 사용하지 않는다. 웃음은 INTRO의 ‘으하하하~~’를 ++ 같은 voice로 합성한다. 앱은 저장한 WAV만 같은 출처에서 가져오며 런타임 외부 ++ TTS/API, speechSynthesis, 인증정보가 필요하지 않다. ++ ++ 청취용 샘플은 [intro.wav](../public/audio/intro.wav)와 ++ [luck-apple.wav](../public/audio/luck-apple.wav)이다. 101개 전체 생성 결과의 ++ 크기·길이 범위와 독립 검증은 [v0.1.1 RESULT](../.agent/RESULT-v0.1.1.md)에 기록한다. ++ `public/audio/manifest.json`은 version, provider, voice, rate, pitch, sampleRate, ++ 생성 시각, 실측 edge-tts/FFmpeg 버전, 파일별 원문·SHA-256·bytes·duration·RMS·peak를 담는다. ++ ++ ## 설치와 생성 ++ ++ 생성 환경은 Linux (기존 디렉터리 교체에 `renameat2(RENAME_EXCHANGE)` 필요), ++ Python 3.11 이상, FFmpeg, Node.js 22.22.2 이상이다. **이미 포함된 WAV를 ++ 빌드·실행할 때는 Python/FFmpeg/provider 연결이 필요 없다.** 생성기 계약 테스트는 ++ Python과 FFmpeg를 사용하되 네트워크 없이 동작한다. ++ ++ ```bash ++ python3 -m venv .venv-audio ++ .venv-audio/bin/python -m pip install -r requirements-audio.txt ++ .venv-audio/bin/python -m pip check ++ npm run audio:generate ++ npm test ++ npm run build ++ ``` ++ ++ `audio:generate`는 `.venv-audio/bin/python scripts/generate_audio.py`로 고정되어 ++ 전역 Python으로 대체되지 않는다. `requirements-audio.txt`는 edge-tts==7.3.1과 ++ 전이 의존성 버전을 고정한다. 생성기는 실제 설치 버전을 조회하고 7.3.1이 아니면 ++ 외부 요청 전에 실패한다. `.venv-audio/`는 Git과 배포물에서 제외한다. ++ ++ 원문을 Node type stripping으로 앱 데이터에서 읽고, 101개 모두 같은 파일시스템의 ++ `public/.audio-stage-*/`에 순차 생성한다. 각 provider 요청은 최대 60초, 최대 ++ 3회 시도이며 실패 사이 1초/2초를 기다린다. FFmpeg도 60초 제한이 있다. ++ 재시도 전 불완전 MP3를 삭제하고 변환·검증 실패는 즉시 중단한다. 로그에는 ++ 파일명·시도 횟수만 남기고 provider stderr/응답·쿠키·인증 헤더를 저장하지 않는다. ++ ++ 전체 WAV와 manifest를 검증한 뒤 기존 `public/audio`와 완성 디렉터리를 단일 ++ 원자 교환으로 바꾼다. 실패·Ctrl-C는 기존 디렉터리의 바이트를 그대로 보존한다. ++ 원자 교환을 지원하지 않는 파일시스템에서는 실패하며 비원자 방식으로 우회하지 않는다. ++ 성공 후 이전 자산과 임시 MP3를 정리한다. 강제 종료(SIGKILL)·전원 손실 때는 ++ 숨김 staging 폴더가 남을 수 있으나 공개 디렉터리는 교환 전 또는 후의 전체 집합이다. ++ 이는 전원 손실 시 저장장치 내구성 보장을 뜻하지 않는다. ++ ++ 고정 클라이언트와 설정으로 **생성 절차**를 재현할 수 있다. 원격 모델·서비스 버전은 ++ 고정할 수 없어 재생성 WAV의 바이트 동일성은 보장하지 않는다. 새 실행의 manifest를 ++ 검토해야 한다. 빌드는 이미 생성한 WAV의 해시를 보존하고 101개 모두 포함됐는지 확인한다. ++ ++ ## 레벨 처리와 검증 ++ ++ MP3를 24kHz mono signed 16-bit little-endian PCM으로 디코드한다. 파일 전체에 ++ 동일한 선형 gain을 적용해 RMS 0.10을 목표로 하며 증폭은 최대 2배, peak는 ++ 0.89로 제한한다. 동적 압축·노이즈 게이트·침묵 제거·시간 변형은 하지 않는다. ++ 원래 신호의 자음과 억양을 보존하면서 파일 간 레벨 차이와 피크를 완화한다. ++ ++ 생성기와 독립 자산 테스트는 101개 파일의 원문·집합·SHA-256·bytes·duration, ++ 24kHz mono PCM16, 1–20초 길이, RMS > 100/32768, full-scale 미도달, ++ 총 48MiB 미만을 검사한다. 런타임 RMS 0.03과 최대 +6dB에서도 peak < 0.8을 ++ 요구한다. 기존 앱은 Web Audio에서 배경·음성을 RMS 정규화한 뒤 상대 SNR을 적용한다. ++ 물리적 음압이나 주파수별 청감을 보정한 값은 아니다. ++ ++ ## 도구 라이선스와 서비스 조건 ++ ++ - [edge-tts 7.3.1 LICENSE](https://github.com/rany2/edge-tts/blob/7.3.1/LICENSE): ++ 대부분의 코드에 LGPLv3, `srt_composer.py`에만 MIT가 적용된다. ++ [공식 프로젝트](https://github.com/rany2/edge-tts)는 Microsoft Edge의 온라인 ++ TTS를 이용하는 클라이언트다. 클라이언트 라이선스가 provider 사용·음성 출력의 ++ 재배포 권한을 대신 부여하지 않는다. 이 프로젝트는 클라이언트/모델을 번들하지 않는다. ++ - [FFmpeg 공식 라이선스](https://ffmpeg.org/legal.html): 빌드 옵션에 따라 LGPL/GPL이 ++ 적용된다. 실제 사용 버전은 manifest에 남기며 실행 파일은 배포하지 않는다. ++ - [Microsoft Services Agreement](https://www.microsoft.com/en-us/servicesagreement)의 ++ AI Services 등 해당 서비스 조건은 도구의 오픈소스 라이선스와 별개다. ++ 위 문서 §13(s)(vi)는 출력의 권리·사용 가능성을 이용자가 판단하도록 설명한다. ++ API 키 없이 호출된다는 사실이 상업 사용·재배포의 포괄적 허락이나 SLA를 뜻하지 않는다. ++ 배포자는 자신의 이용 상황에 적용되는 최신 조건을 확인해야 한다. ++ - 프로젝트는 생성 음성 자체에 **독점 권리를 주장하지 않는다**. [LICENSE](../LICENSE)의 ++ 소스·문서 권리 유보와 provider 및 제3자의 권리는 구분한다. 런타임 React, ++ ReactDOM, scheduler의 MIT 전문은 [THIRD_PARTY_NOTICES.md](../THIRD_PARTY_NOTICES.md)에 있다. ++ ++ 문서 확인일: 2026-10-14 UTC. provider의 음성 목록, rate/pitch 지원, 가용성, ++ 접근 제한, 조건은 바뀔 수 있다. 온라인 생성이 중단되어도 포함된 WAV의 빌드·재생에는 ++ 영향이 없다. 실패 시 다른 voice로 자동 대체하지 않는다. ++ ++ ## 청감과 평가의 한계 ++ ++ 자동 검증은 PCM 신호·무결성·재생 흐름을 확인한다. 한국어 발음, 유사 자모의 ++ 구분, 웃음의 자연스러움과 실제 사용자의 난이도는 청취 평가가 필요하다. ++ 대표 샘플과 게임 내 소음 혼합 상태를 직접 들어 인수 판단한다. 배경은 장소를 ++ 추상화한 합성 신호다. 이 게임의 수치는 임상 검증·치료·청력 판정용이 아니다. ++ + + ❯ tests/neural-release.test.ts:19:51 + 17| "docs/AUDIO_PROVENANCE.md", + 18| ]) { + 19| expect.soft(readFileSync(path, "utf8"), path).toContain("0.2.3"); + | ^ + 20| } + 21| }); + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[13/20]⎯ + + FAIL tests/neural-release.test.ts > 현재 문서·manifest·CHANGELOG는 0.2.3 동작과 역사 보존을 설명한다 +AssertionError: docs/ARCHITECTURE.md: expected '# Find-Word v0.1.1 설계\n\n## 데이터와 출제\n…' to contain '0.2.3' + +- Expected ++ Received + +- 0.2.3 ++ # Find-Word v0.1.1 설계 ++ ++ ## 데이터와 출제 ++ ++ `src/content.ts`는 패턴, 질문, 단어, 오답 규칙, 배경 프리셋, 상대 dB를 서로 다른 ++ 배열로 보관한다. `renderSentence`가 각 패턴의 `{word}`를 정답으로, ++ `{distractor1}`·`{distractor2}`를 해당 보기의 오답으로 채운다. 같은 함수를 ++ 음성 생성기도 사용하며 런타임 문장과 WAV의 대응은 manifest 테스트가 검증한다. ++ ++ `Pattern.mechanic`은 다음 10개 고유 청취 연산을 나타낸다. 인용 단어를 활용형으로 ++ 바꾸지 않으므로 동사·부사 표제어가 오답으로 나와도 문장이 자연스럽다. ++ ++ | mechanic | 청취 과제 | ++ | --- | --- | ++ | `direct-target` | 한 개의 목표 단어를 직접 식별 | ++ | `distractor-password` | 연습 암호를 제외하고 진짜 암호 선택 | ++ | `ignore-then-remember` | 앞 단어를 잊고 이후에 지시된 단어 기억 | ++ | `first` | 세 단어 중 처음 선택 | ++ | `last` | 세 단어 중 마지막 선택 | ++ | `middle` | 세 단어 중 가운데 선택 | ++ | `repetition` | 오답 사이에서 두 번 등장한 단어 찾기 | ++ | `correction` | 처음 답을 취소하고 정정된 답 선택 | ++ | `conditional-cue` | 초록/빨강 규칙과 현재 신호를 함께 적용 | ++ | `spatial-right-cue` | 좌우 표지 중 오른쪽에 해당하는 단어 선택 | ++ ++ 방향 단서는 문장의 의미이며 stereo 위치 재현 과제는 아니다. 모든 음성은 mono다. ++ 직접 식별을 제외한 문장은 실제 보기의 경쟁 단어도 발화하므로, 들린 단어 하나를 ++ 무조건 고르는 것으로 해결되지 않는다. 테스트는 100개 문장 전체에서 단어 순서, ++ 목표 반복 횟수, 취소·조건·방향 단서와 질문 의도를 검증한다. ++ ++ `src/game.ts`의 `createQuestions`는 seed 기반 PRNG와 Fisher–Yates로 ++ 유형·단어·정답 위치를 섞는다. 한 세션에서 유형과 정답 단어는 각각 한 번씩 ++ 나온다. 100개 문장 조합에 응답 방식·환경·난이도를 독립적으로 결합한다. ++ ++ 오답의 `rule`은 `RULE_DIFFICULTY`에 연결된다. 음절 교체 1, 초성 교체 2, ++ 모음 교체 3, 받침 교체 4는 편집상 예상 혼동 순서이며 검증된 청각 척도가 ++ 아니다. 모든 문항에 서로 다른 세 변형을 포함한다. 음량 단계는 이 값과 분리된다. ++ ++ ## 게임 상태 ++ ++ ```mermaid ++ stateDiagram-v2 ++ [*] --> ready ++ ready --> loading: PLAY ++ loading --> playing: STARTED ++ loading --> ready: ERROR ++ playing --> ready: ERROR / 중단 ++ playing --> answer: ENDED ++ answer --> loading: 다시 듣기 ++ answer --> feedback: ANSWER ++ feedback --> ready: NEXT (다음 문제) ++ feedback --> results: NEXT (마지막 문제) ++ ``` ++ ++ 허용되지 않은 이벤트는 동일 상태를 반환한다. 재생 전/중에는 채점할 수 없고, ++ 피드백 이후의 중복 답변·다음 클릭도 한 번만 반영된다. UI에서도 버튼 비활성화와 ++ 동기 ref 잠금을 함께 사용한다. 세션 토큰으로 처음 화면 복귀·unmount 뒤 완료된 ++ Promise를 무시한다. 질문과 보기는 재생 완료 후 DOM에 생성되며 정답 문장은 ++ 채점 후에만 표시된다. ++ ++ 주관식은 NFC 한글 정규화 후 공백과 유니코드 문장부호만 제거한다. 비어 있는 ++ 답변과 부분 일치는 정답으로 인정하지 않는다. React 텍스트 노드로만 출력하여 ++ 입력을 HTML로 해석하지 않는다. ++ ++ 점수는 정답 시 `100 × 단계 + 10 × min(연속 정답 - 1, 4)`이다. 오답은 0점, ++ 현재 연속 정답을 초기화한다. 최고 연속 정답과 난이도별 정답 수는 유지한다. ++ ++ ## 오디오 ++ ++ 101개 저장 WAV는 edge-tts 7.3.1의 `ko-KR-HyunsuMultilingualNeural`로 ++ 빌드 전에 생성한다. 24kHz mono PCM16이며 원문·도구·해시는 manifest에 남긴다. ++ 생성기는 임시 디렉터리에서 전체 검증 후 원자 교체한다. 생성 절차는 ++ [AUDIO_PROVENANCE](AUDIO_PROVENANCE.md)에 있으며 앱은 provider에 연결하지 않는다. ++ ++ `src/audio/dsp.ts`는 순수 수치 함수이며 장치가 없어도 테스트할 수 있다. ++ 정수 seed 잡음에 저역 통과 필터, 사인파, 진폭 변조를 조합하고 양 끝을 페이드한다. ++ 8개 프리셋은 실제 현장 녹음이 아니라 환경을 추상적으로 표현한 합성 신호다. ++ ++ `src/audio/engine.ts`는 클릭 이벤트에서 AudioContext 생성·resume을 호출한 뒤 ++ 같은 출처의 WAV를 로드한다. mono PCM을 decode하고 음성과 배경의 전체 버퍼 ++ RMS를 0.03으로 정규화한다. `gain = 10^(dB/20)`으로 목표 gain을 지정한다. ++ 시간별·주파수별 청감이나 물리적 dB SPL을 보장하는 수치는 아니다. ++ ++ `src/audio/assets.ts`는 음성 자산 버전과 URL 생성을 한 곳에서 관리한다. ++ intro와 목표 100개 모두 `?v=0.1.1`을 붙여 동일 파일명에 남은 이전 캐시를 ++ 피한다. 파일을 다시 생성하면 제품 버전 유지 여부와 관계없이 자산 버전을 ++ 갱신한다. 버전 확인을 위한 외부 요청이나 런타임 manifest 요청은 없다. ++ ++ ```text ++ 배경 BufferSource → 배경 Gain (1, 시작/끝 fade) ─┐ ++ 목표 BufferSource → 음성 Gain (10^(dB/20)) ─────┼→ master Gain → destination ++ 안내 BufferSource → 안내 Gain (1.8 → 0.12) ─────┘ ++ ``` ++ ++ 첫 문제에서는 웃음과 안내 음성을 낮추어 배경에 묻히게 한 후 목표 문장을 ++ 재생한다. 이후에는 목표만 재생한다. 안내 도중 실패했으면 재시도 시 안내도 ++ 다시 재생한다. 기본 master는 35%이며 음량 조절은 두 신호의 비율을 유지한다. ++ ++ 동시 play는 거부한다. 정지·실패·완료는 onended 해제, 소스 stop/disconnect, ++ AbortController 취소, 타이머 제거를 수행한다. load/decode 뒤에도 작업 토큰을 ++ 검사하여 취소된 이전 작업이 소리를 시작하지 못하게 한다. 준비 15초, ++ 재생 길이 + 5초의 제한으로 무한 대기를 피한다. unmount는 context까지 닫는다. ++ ++ ## 화면·접근성·보안 ++ ++ `App.tsx`는 시작·플레이·결과 화면, 음량, 모드, 배경 선택을 담당한다. ++ 정답/피드백/결과 제목으로 초점을 이동하고 결과표에 caption에 해당하는 ++ 접근성 이름과 scope를 둔다. 네이티브 radio/select/button/form으로 방향키, ++ Tab/Enter와 터치 조작을 지원한다. 장식 파형·캐릭터는 aria-hidden이며 ++ reduced motion에서는 파형이 움직이지 않는다. 오류는 role=alert로 전달한다. ++ ++ 외부 폰트, CDN, 이미지, 분석 도구, 로그인, 쿠키, localStorage 사용이 없다. ++ 개인 입력과 점수는 현재 React 메모리에만 존재한다. 단어·정답은 클라이언트 ++ 번들에 있으므로 개발자 도구를 통한 정답 열람을 막는 시험 시스템은 아니다. ++ ++ ## 검증 경계 ++ ++ Vitest는 실제 RED/GREEN으로 데이터·채점·상태·오디오 그래프·화면을 검증한다. ++ Playwright는 production build와 실제 Chrome AudioContext로 두 크기의 10문제 ++ 완주·재청취·오류 복구·axe 검사를 수행한다. 테스트 자동화는 한국어 발음의 ++ 자연스러움, 실제 사용자의 청각 난이도, 모바일 Safari의 장치별 정책까지 ++ 증명하지 않으므로 인수 시 직접 청취를 추가한다. ++ + + ❯ tests/neural-release.test.ts:49:51 + 47| it("현재 문서·manifest·CHANGELOG는 0.2.3 동작과 역사 보존을 설명한다", () => { + 48| for (const path of ["docs/ARCHITECTURE.md", "docs/DEPLOYMENT.md", "d… + 49| expect.soft(readFileSync(path, "utf8"), path).toContain("0.2.3"); + | ^ + 50| const history = readFileSync("CHANGELOG.md", "utf8"); + 51| for (const version of ["0.2.3", "0.1.1", "0.1.0"]) expect(history).t… + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[14/20]⎯ + + FAIL tests/neural-release.test.ts > 현재 문서·manifest·CHANGELOG는 0.2.3 동작과 역사 보존을 설명한다 +AssertionError: docs/DEPLOYMENT.md: expected '# Find-Word v0.1.1 정적 배포 인계\n\n이 문서는 …' to contain '0.2.3' + +- Expected ++ Received + +- 0.2.3 ++ # Find-Word v0.1.1 정적 배포 인계 ++ ++ 이 문서는 **Neo가 검토 후 수행할 절차**다. Codex는 서버, DNS, 인증정보에 ++ 접근하지 않았고 배포·서비스 생성·Git commit/push도 하지 않았다. ++ ++ ## 산출물 ++ ++ Node.js 최소 **22.22.2** (`>=22.22.2`)의 지원 LTS 환경에서 `npm ci`, `npm run lint`, `npm test`, ++ `npm run build`를 실행한다. `dist/` 전체를 하나의 릴리스로 전달한다. ++ `dist/audio/`의 24kHz neural WAV 101개와 version 0.1.1 manifest가 반드시 포함되어야 한다. 런타임은 ++ Nginx 정적 파일만 필요하며 Node 서버·TTS 엔진·DB·환경변수·API 키는 필요 없다. ++ 잠긴 jsdom 계열 의존성 때문에 24.x는 24.15.0 이상, 26.x는 26.0.0 이상이어야 한다. ++ 브라우저 검증의 Chromium sandbox는 기본 활성화다. sandbox를 지원하지 않는 ++ 격리된 개발 환경에서만 `PLAYWRIGHT_NO_SANDBOX=1`로 명시적으로 끈다. ++ ++ Canonical repository는 [OZ-Group/Find-Word](https://source.ibit.kr/OZ-Group/Find-Word)다. ++ 프로젝트 자체는 private / all-rights-reserved이며 [LICENSE](../LICENSE)를 따른다. ++ 생성 음성은 프로젝트의 독점 권리 주장 대상이 아니며 provider 조건은 ++ [AUDIO_PROVENANCE](AUDIO_PROVENANCE.md)에 기록한다. ++ React, ReactDOM, scheduler의 MIT 전문을 담은 `dist/THIRD_PARTY_NOTICES.md`도 ++ 반드시 배포한다. `build` 검증기는 고지 파일이 없거나 축약·변조되면 실패한다. ++ ++ 현재 앱은 도메인 루트(`/`) 배포 기준이다. 하위 경로 배포 시 Vite base뿐 아니라 ++ 음성 URL도 함께 변경하고 테스트해야 한다. 예정 도메인은 `findword.heart-m.com`이다. ++ ++ ## Nginx 예시 ++ ++ 아래 root는 예시다. 실제 경로·기존 서버 블록·인증서는 Neo가 확인한다. ++ 기존 서비스 설정을 덮어쓰지 않고 검토 후 적용한다. ++ ++ ```nginx ++ # 정적 릴리스 디렉터리를 가리킨다. 인증서와 HTTPS 설정은 운영자가 별도 추가한다. ++ server { ++ listen 80; ++ server_name findword.heart-m.com; ++ root /var/www/findword/current; ++ index index.html; ++ ++ # 기본 MIME 정의로 JS/CSS/WAV가 올바른 타입으로 제공되게 한다. ++ include /etc/nginx/mime.types; ++ add_header X-Content-Type-Options nosniff always; ++ add_header Referrer-Policy no-referrer always; ++ add_header Content-Security-Policy "default-src 'self'; script-src 'self'; style-src 'self' 'unsafe-inline'; img-src 'self' data:; connect-src 'self'; media-src 'self'; object-src 'none'; base-uri 'self'; frame-ancestors 'none'" always; ++ ++ # 파일명이 해시로 바뀌는 번들만 장기 캐시한다. ++ location /assets/ { ++ try_files $uri =404; ++ expires 1y; ++ } ++ ++ # 앱은 intro·목표 모두 같은 자산 버전 query를 붙여 이전 캐시와 구분한다. ++ # $uri는 query를 제외한 실제 WAV 경로다. 누락 시 index.html 대신 404로 응답한다. ++ location /audio/ { ++ try_files $uri =404; ++ expires 7d; ++ } ++ ++ # SPA의 직접 진입·새로고침을 index.html로 받되 HTML은 재검증한다. ++ location / { ++ try_files $uri $uri/ /index.html; ++ expires -1; ++ } ++ } ++ ``` ++ ++ ## 인수 확인 ++ ++ 1. 서버에 적용하기 전 `nginx -t`, 기존 서비스 충돌, 파일 읽기 권한을 확인한다. ++ 2. TLS/HTTPS와 DNS를 운영자가 확인한다. 실제 도메인에서 시작 후 음성이 들리는지 확인한다. ++ 3. `audio/intro.wav?v=0.1.1`와 목표 WAV의 같은 버전 query가 정상 응답하고 ++ 존재하지 않는 오디오는 query가 있어도 404인지 확인한다. ++ 4. 모바일 Safari/Chrome, 데스크톱에서 음량·중단·다시 듣기·10문제 완주를 직접 확인한다. ++ 5. 원자적으로 릴리스 디렉터리를 전환하고 이전 디렉터리를 보관해 되돌릴 수 있게 한다. ++ ++ 오프라인 캐시를 제공하는 PWA는 아니다. 정적 자산의 최초 로드에는 해당 서버 ++ 연결이 필요하다. HTML은 재검증하고, 오디오는 URL의 자산 버전으로 구분한다. ++ 같은 파일명으로 WAV를 교체할 때 `src/audio/assets.ts`의 `AUDIO_ASSET_VERSION`도 ++ 갱신한다. 제품 버전을 유지하는 음성 수정에서도 새 자산 버전이 필요하다. ++ 이 query는 로컬 정적 파일 요청에만 사용하며 런타임 외부 요청을 추가하지 않는다. ++ + + ❯ tests/neural-release.test.ts:49:51 + 47| it("현재 문서·manifest·CHANGELOG는 0.2.3 동작과 역사 보존을 설명한다", () => { + 48| for (const path of ["docs/ARCHITECTURE.md", "docs/DEPLOYMENT.md", "d… + 49| expect.soft(readFileSync(path, "utf8"), path).toContain("0.2.3"); + | ^ + 50| const history = readFileSync("CHANGELOG.md", "utf8"); + 51| for (const version of ["0.2.3", "0.1.1", "0.1.0"]) expect(history).t… + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[15/20]⎯ + + FAIL tests/neural-release.test.ts > 현재 문서·manifest·CHANGELOG는 0.2.3 동작과 역사 보존을 설명한다 +AssertionError: docs/WORDS.md: expected '# 단어와 오답 변형\n\n임의의 한글 조합을 자동 생성하지 않고 …' to contain '0.2.3' + +- Expected ++ Received + +- 0.2.3 ++ # 단어와 오답 변형 ++ ++ 임의의 한글 조합을 자동 생성하지 않고 사전에 있는 표제어만 고른다. 다음의 ++ 짧은 의미 구분은 앱 작성자가 작성한 설명이며 사전의 정의·예문·음성을 ++ 복제한 데이터셋이 아니다. 표기 단어는 `src/content.ts`에 명시적으로 저장한다. ++ ++ | 정답 | 초성 교체 | 모음 교체 | 세 번째 변형 | ++ | --- | --- | --- | --- | ++ | 사과 | 다과 (차와 간식) | 사고 (뜻밖의 사건) | 사자 (동물), 음절 교체 | ++ | 바다 | 사다 (구매하다) | 보다 (눈으로 살피다) | 받다 (수령하다), 받침 추가 | ++ | 나무 | 나루 (배가 오가는 곳) | 너무 (정도가 지나치게) | 나물 (먹는 풀), 받침 추가 | ++ | 모자 | 포자 (생물의 번식 단위) | 모조 (원본을 본뜸) | 목자 (양을 돌보는 사람), 받침 추가 | ++ | 우산 | 부산 (도시 이름) | 오산 (잘못된 계산) | 우상 (숭배의 대상), 받침 교체 | ++ | 시장 | 지장 (일을 방해하는 사정) | 사장 (회사 책임자) | 신장 (몸의 키), 받침 추가 | ++ | 기름 | 이름 (대상을 부르는 말) | 거름 (식물에 주는 영양) | 기틀 (기본 구조), 음절 교체 | ++ | 소리 | 오리 (새) | 수리 (고침) | 소금 (조미료), 음절 교체 | ++ | 고기 | 보기 (예시) | 고개 (목 위의 머리) | 공기 (대기), 받침 추가 | ++ | 가구 | 하구 (강이 바다와 만나는 곳) | 가교 (연결하는 다리) | 강구 (방안을 찾음), 받침 추가 | ++ ++ 동사·부사는 사전 표제어 형태를 사용하고 부산은 사전에 등재된 고유명사로 ++ 사용한다. 문장의 의미 적합성을 오답 생성 규칙으로 삼지 않고 **들은 낱말의 ++ 소리 차이**를 묻는다. 이는 의미상 동의어가 아니라 음운상 비슷한 오답이다. ++ ++ 참조 사전은 국립국어원의 [한국어기초사전](https://krdict.korean.go.kr/kor/mainAction), ++ [표준국어대사전](https://stdict.korean.go.kr/main/main.do), ++ [우리말샘](https://opendict.korean.go.kr/)이다. 혼동하기 쉬운 일부 표제어의 ++ 직접 확인 링크는 [하구](https://krdict.korean.go.kr/kor/dicSearch/SearchView?ParaWordNo=85229), ++ [목자](https://krdict.korean.go.kr/eng/dicSearch/SearchView?ParaWordNo=55879), ++ [부산](https://krdict.korean.go.kr/kor/dicSearch/SearchView?ParaWordNo=68895)이다. ++ [국립국어원의 나루 설명](https://www.korean.go.kr/front/mcfaq/mcfaqView.do?mcfaq_seq=8815)도 참고한다. ++ 앱 실행 중에는 사전에 접속하지 않는다. ++ ++ `tests/content.test.ts`는 한글 완성형을 초성·중성·종성으로 분해한다. 초성·모음·받침 ++ 변형은 정확히 한 자모만 바뀌는지 확인한다. 음절 교체는 더 큰 차이를 허용한다. ++ 받침 추가도 종성 0에서 다른 값으로 바뀌는 ‘받침 교체’로 분류한다. ++ ++ `RULE_DIFFICULTY`는 음절 1, 초성 2, 모음 3, 받침 4의 예상 혼동 순서를 ++ 기록한다. 각 묶음의 세 오답은 서로 다른 규칙과 순위를 가진다. 이 순서는 ++ 출제 메타데이터이며 청감·발음·청력에 대한 실측 난이도나 임상 척도가 아니다. ++ 새 단어를 넣을 때는 표제어·의미·변형 규칙을 검토하고 이 목록을 갱신한다. ++ + + ❯ tests/neural-release.test.ts:49:51 + 47| it("현재 문서·manifest·CHANGELOG는 0.2.3 동작과 역사 보존을 설명한다", () => { + 48| for (const path of ["docs/ARCHITECTURE.md", "docs/DEPLOYMENT.md", "d… + 49| expect.soft(readFileSync(path, "utf8"), path).toContain("0.2.3"); + | ^ + 50| const history = readFileSync("CHANGELOG.md", "utf8"); + 51| for (const version of ["0.2.3", "0.1.1", "0.1.0"]) expect(history).t… + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[16/20]⎯ + + FAIL tests/neural-release.test.ts > 현재 문서·manifest·CHANGELOG는 0.2.3 동작과 역사 보존을 설명한다 +AssertionError: public/audio/manifest.json: expected '{\n "version": "0.1.1",\n "provider…' to contain '0.2.3' + +- Expected ++ Received + +- 0.2.3 ++ { ++ "version": "0.1.1", ++ "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 ++ } ++ ] ++ } ++ + + ❯ tests/neural-release.test.ts:49:51 + 47| it("현재 문서·manifest·CHANGELOG는 0.2.3 동작과 역사 보존을 설명한다", () => { + 48| for (const path of ["docs/ARCHITECTURE.md", "docs/DEPLOYMENT.md", "d… + 49| expect.soft(readFileSync(path, "utf8"), path).toContain("0.2.3"); + | ^ + 50| const history = readFileSync("CHANGELOG.md", "utf8"); + 51| for (const version of ["0.2.3", "0.1.1", "0.1.0"]) expect(history).t… + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[17/20]⎯ + + FAIL tests/neural-release.test.ts > 현재 문서·manifest·CHANGELOG는 0.2.3 동작과 역사 보존을 설명한다 +AssertionError: src/audio/assets.ts: expected '// WAV를 같은 파일명으로 교체하면 장기 캐시가 남는다. 음성 …' to contain '0.2.3' + +- Expected ++ Received + +- 0.2.3 ++ // WAV를 같은 파일명으로 교체하면 장기 캐시가 남는다. 음성 내용이 바뀔 때 ++ // 이 자산 버전도 갱신한다. 제품 버전과 별개로 관리하며 intro·목표에 함께 쓴다. ++ export const AUDIO_ASSET_VERSION = "0.1.1"; ++ ++ export function audioAssetUrl(file: string): string { ++ return `/audio/${file}?v=${AUDIO_ASSET_VERSION}`; ++ } ++ ++ // 배경 녹음도 목표 WAV와 같은 자산 버전으로 캐시를 갱신한다. ++ export function ambienceAssetUrl(file: string): string { ++ return `/ambience/${file}?v=${AUDIO_ASSET_VERSION}`; ++ } ++ + + ❯ tests/neural-release.test.ts:49:51 + 47| it("현재 문서·manifest·CHANGELOG는 0.2.3 동작과 역사 보존을 설명한다", () => { + 48| for (const path of ["docs/ARCHITECTURE.md", "docs/DEPLOYMENT.md", "d… + 49| expect.soft(readFileSync(path, "utf8"), path).toContain("0.2.3"); + | ^ + 50| const history = readFileSync("CHANGELOG.md", "utf8"); + 51| for (const version of ["0.2.3", "0.1.1", "0.1.0"]) expect(history).t… + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[18/20]⎯ + + FAIL tests/neural-release.test.ts > 현재 문서·manifest·CHANGELOG는 0.2.3 동작과 역사 보존을 설명한다 +Error: ENOENT: no such file or directory, open 'CHANGELOG.md' + ❯ tests/neural-release.test.ts:50:19 + 48| for (const path of ["docs/ARCHITECTURE.md", "docs/DEPLOYMENT.md", "d… + 49| expect.soft(readFileSync(path, "utf8"), path).toContain("0.2.3"); + 50| const history = readFileSync("CHANGELOG.md", "utf8"); + | ^ + 51| for (const version of ["0.2.3", "0.1.1", "0.1.0"]) expect(history).t… + 52| for (const change of ["SNR", "3문항", "중도 종료", "CC BY-SA", "Chrome", "… + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[19/20]⎯ + + + Test Files 5 failed (5) + Tests 8 failed | 42 passed (50) + Start at 08:04:54 + Duration 5.05s (tests 51%, environment 34%, setup 9%, transform 3%, import 2%, worker 1%) + +Environment jsdom was created 5 times · 2.91s total, 34% of tracked time + create it once per worker with pool: 'vmThreads' (keeps per-file isolation) or isolate: false (shares it across files) + learn more: https://vitest.dev/guide/improving-performance#test-environments + diff --git a/.agent/evidence-v0.2.3/10-environment-rotation-GREEN.log b/.agent/evidence-v0.2.3/10-environment-rotation-GREEN.log new file mode 100644 index 0000000..7ad2e90 --- /dev/null +++ b/.agent/evidence-v0.2.3/10-environment-rotation-GREEN.log @@ -0,0 +1,9 @@ + + RUN v5.0.4 /home/hermes/worktrees/find-word-v0.2.3 + + + Test Files 2 passed (2) + Tests 35 passed (35) + Start at 08:07:59 + Duration 4.38s (tests 66%, environment 26%, setup 4%, transform 2%, import 1%) + diff --git a/.agent/evidence-v0.2.3/10-environment-rotation-RED.log b/.agent/evidence-v0.2.3/10-environment-rotation-RED.log new file mode 100644 index 0000000..aa9d9b9 --- /dev/null +++ b/.agent/evidence-v0.2.3/10-environment-rotation-RED.log @@ -0,0 +1,33 @@ + + RUN v5.0.4 /home/hermes/worktrees/find-word-v0.2.3 + + ❯ tests/game.test.ts (17 tests | 1 failed) 43ms + × 순환 환경은 여러 라운드에서 여덟 장소 모두를 선택하고 라운드 내에는 중복되지 않는다 8ms + +⎯⎯⎯⎯⎯⎯⎯ Failed Tests 1 ⎯⎯⎯⎯⎯⎯⎯ + + FAIL tests/game.test.ts > 순환 환경은 여러 라운드에서 여덟 장소 모두를 선택하고 라운드 내에는 중복되지 않는다 +AssertionError: expected 3 to be 8 // Object.is equality + +- Expected ++ Received + +- 8 ++ 3 + + ❯ tests/game.test.ts:227:21 + 225| questions.forEach(q => seen.add(q.environment.id)); + 226| } + 227| expect(seen.size).toBe(8); + | ^ + 228| }); + 229| + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[1/1]⎯ + + + Test Files 1 failed (1) + Tests 1 failed | 16 passed (17) + Start at 08:07:35 + Duration 902ms (environment 74%, setup 13%, transform 6%, tests 5%, import 1%, worker 1%) + diff --git a/.agent/evidence-v0.2.3/11-bundle-notice-GREEN.log b/.agent/evidence-v0.2.3/11-bundle-notice-GREEN.log new file mode 100644 index 0000000..27eb898 --- /dev/null +++ b/.agent/evidence-v0.2.3/11-bundle-notice-GREEN.log @@ -0,0 +1,9 @@ + + RUN v5.0.4 /home/hermes/worktrees/find-word-v0.2.3 + + + Test Files 2 passed (2) + Tests 26 passed (26) + Start at 08:08:44 + Duration 4.72s (tests 85%, environment 9%, setup 3%, transform 2%, import 1%) + diff --git a/.agent/evidence-v0.2.3/11-bundle-notice-RED.log b/.agent/evidence-v0.2.3/11-bundle-notice-RED.log new file mode 100644 index 0000000..0c84064 --- /dev/null +++ b/.agent/evidence-v0.2.3/11-bundle-notice-RED.log @@ -0,0 +1,596 @@ + + RUN v5.0.4 /home/hermes/worktrees/find-word-v0.2.3 + + ❯ tests/App.test.tsx (19 tests | 1 failed | 18 skipped) 485ms + × 환경음 저작자·라이선스 고지를 같은 출처 링크로 제공한다 483ms + ❯ tests/build.test.ts (7 tests | 4 failed | 3 skipped) 1387ms + × 현장음 wav 손상은 빌드 실패로 처리한다 348ms + × 현장음 manifest 손상은 빌드 실패로 처리한다 342ms + × 현장음 notice 손상은 빌드 실패로 처리한다 371ms + × 현장음 extra 손상은 빌드 실패로 처리한다 324ms + +⎯⎯⎯⎯⎯⎯⎯ Failed Tests 5 ⎯⎯⎯⎯⎯⎯⎯ + + FAIL tests/App.test.tsx > 환경음 저작자·라이선스 고지를 같은 출처 링크로 제공한다 +TestingLibraryElementError: Unable to find an accessible element with the role "link" and name "환경음 출처·라이선스" + +Here are the accessible roles: + + link: + + Name "본문으로 건너뛰기": +  + + Name "플레이 방법": +  + + -------------------------------------------------- + banner: + + Name "": +  + + -------------------------------------------------- + heading: + + Name "단어를 맞춰라": + 

 + + Name "소음 속 작은 단어,들리시나요?": +  + + Name "나의 소리 탐험 준비": +  + + Name "작은 단어를 발견하는 방법": +  + + Name "먼저, 귀 기울이기": + 

 + + Name "기억한 단어 찾기": + 

 + + Name "나의 발견 돌아보기": + 

 + + -------------------------------------------------- + main: + + Name "": +  + + -------------------------------------------------- + region: + + Name "소음 속 작은 단어,들리시나요?": +  + + Name "나의 소리 탐험 준비": +  + + Name "작은 단어를 발견하는 방법": +  + + -------------------------------------------------- + paragraph: + + Name "": +  + + Name "": +  + + Name "": + 

 + + Name "": + 

 + + Name "": +  + + Name "": + 

 + + Name "": + 

 + + Name "": + 

 + + Name "": + 

 + + Name "": + 

 + + Name "": + 

 + + -------------------------------------------------- + emphasis: + + Name "": +  + + -------------------------------------------------- + group: + + Name "어떻게 답할까요?": +  + + -------------------------------------------------- + radio: + + Name "골고루 풀기": +  + + Name "보기에서 선택": +  + + Name "직접 입력": +  + + -------------------------------------------------- + strong: + + Name "": +  + + Name "": +  + + Name "": +  + + -------------------------------------------------- + combobox: + + Name "배경 환경": +  + + Name "시작 난이도": +  + + -------------------------------------------------- + option: + + Name "여덟 가지 일상 속으로": +  + + Name "길거리": +  + + Name "쇼핑몰": +  + + Name "극장": +  + + Name "백화점": +  + + Name "시장": +  + + Name "지하철": +  + + Name "카페": +  + + Name "비 오는 거리": +  + + Name "1단계 · 소리에 익숙해지기 · SNR +6 dB": +  + + Name "2단계 · 귀 기울이기 · SNR +3 dB": +  + + Name "3단계 · 소음 사이로 · SNR 0 dB": +  + + Name "4단계 · 작은 단서 찾기 · SNR -3 dB": +  + + Name "5단계 · 깊이 집중하기 · SNR -6 dB": +  + + -------------------------------------------------- + slider: + + Name "목표 음성 SNR": +  + + Name "전체 음량": +  + + -------------------------------------------------- + status: + + Name "": +  + + Name "": +  + + -------------------------------------------------- + button: + + Name "게임 시작 · 소리 듣기": +  + + -------------------------------------------------- + article: + + Name "": + 

 + + Name "": + 
 + + Name "": + 
 + + -------------------------------------------------- + contentinfo: + + Name "": +  + + -------------------------------------------------- + +Ignored nodes: comments, script, style + + 
 +  + 본문으로 건너뛰기 +  +  +  +  +  +  +  +  +  + 

 + 단어를 맞춰라 + 

 +  + v0.2.3 +  + 
 +  +  + 플레이 방법  +  + ↓ +  +  +  + 소리에 집중하는 시간 +  +  +  +  +  +  +  +  귀를 기울이면, 발견하는 즐거움 + 

 +  + 소음 속 작은 단어, + 
 +  + 들리시나요? +  + 

 +  + 도시의 소리 사이에 에스가 숨겨 둔 단어. + 
 + 조금 더 귀 기울여, 오늘의 행운을 찾아보세요. + 

 +  +  + 한 라운드  + 3 + 개의 질문 +  +  + 5단계 도전 +  +  + 나만의 속도로 +  +  +  +  +  +  +  +  에스의 사운드 룸 +  +  + 8 + 가지 환경 +  +  +  +  +  + ♪ +  +  + ✳ +  +  + 행운의 단어를 찾아보거라! +  +  +  +  +  +  +  +  + S +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  { + 419| fixture(); + 420| expect(screen.getByRole("link", { name: "환경음 출처·라이선스" })).toHaveAttr… + | ^ + 421| }); + 422| + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[1/5]⎯ + + FAIL tests/build.test.ts > 현장음 wav 손상은 빌드 실패로 처리한다 + FAIL tests/build.test.ts > 현장음 manifest 손상은 빌드 실패로 처리한다 + FAIL tests/build.test.ts > 현장음 notice 손상은 빌드 실패로 처리한다 + FAIL tests/build.test.ts > 현장음 extra 손상은 빌드 실패로 처리한다 +AssertionError: expected [Function verify] to throw an error + +- Expected: +null + ++ Received: +undefined + + ❯ tests/build.test.ts:76:20 + 74| if (damage === "notice") rmSync(join(temporary, "AMBIENCE_NOTICES.… + 75| if (damage === "extra") writeFileSync(join(temporary, "ambience/or… + 76| expect(verify).toThrow(/현장음/); + | ^ + 77| } finally { rmSync(temporary, {recursive: true, force: true}); } + 78| }); + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[2/5]⎯ + + + Test Files 2 failed (2) + Tests 5 failed | 21 skipped (26) + Start at 08:08:41 + Duration 1.71s (tests 64%, environment 23%, setup 8%, transform 3%, import 2%) + diff --git a/.agent/evidence-v0.2.3/12-build-initial.log b/.agent/evidence-v0.2.3/12-build-initial.log new file mode 100644 index 0000000..15d66d4 --- /dev/null +++ b/.agent/evidence-v0.2.3/12-build-initial.log @@ -0,0 +1,15 @@ + +> find-word@0.2.3 build +> tsc --noEmit && vite build && node scripts/check-build.mjs + +vite v8.3.4 building client environment for production... +transforming... +✓ 21 modules transformed. +rendering chunks... +computing gzip size... +dist/index.html 0.89 kB │ gzip: 0.63 kB +dist/assets/index-KT6VDfPn.css 15.25 kB │ gzip: 4.39 kB +dist/assets/index-3VUCfIq1.js 247.59 kB │ gzip: 77.91 kB + +✓ built in 178ms +빌드 음성 자산 101개 + 현장음 8개 및 런타임/현장음 notice 확인 diff --git a/.agent/evidence-v0.2.3/12-lint-followup.log b/.agent/evidence-v0.2.3/12-lint-followup.log new file mode 100644 index 0000000..39db469 --- /dev/null +++ b/.agent/evidence-v0.2.3/12-lint-followup.log @@ -0,0 +1,4 @@ + +> find-word@0.2.3 lint +> eslint . && tsc --noEmit + diff --git a/.agent/evidence-v0.2.3/12-lint-initial.log b/.agent/evidence-v0.2.3/12-lint-initial.log new file mode 100644 index 0000000..7836098 --- /dev/null +++ b/.agent/evidence-v0.2.3/12-lint-initial.log @@ -0,0 +1,13 @@ + +> find-word@0.2.3 lint +> eslint . && tsc --noEmit + +src/App.tsx(249,54): error TS2367: This comparison appears to be unintentional because the types '"ready" | "loading" | "playing" | "answer" | "feedback"' and '"results"' have no overlap. +src/App.tsx(250,16): error TS2367: This comparison appears to be unintentional because the types '"ready" | "loading" | "playing" | "answer" | "feedback"' and '"results"' have no overlap. +tests/audio.test.ts(284,95): error TS2352: Conversion of type '(value: { duration: number; length: number; sampleRate: number; numberOfChannels: number; getChannelData: () => Float32Array; copyToChannel: Mock<(samples: Float32Array<...>) => void>; } | PromiseLike<...>) => void' to type '(buffer: AudioBuffer) => void' may be a mistake because neither type sufficiently overlaps with the other. If this was intentional, convert the expression to 'unknown' first. + Types of parameters 'value' and 'buffer' are incompatible. + Type 'AudioBuffer' is not comparable to type '{ duration: number; length: number; sampleRate: number; numberOfChannels: number; getChannelData: () => Float32Array; copyToChannel: Mock<(samples: Float32Array) => void>; } | PromiseLike<...>'. + Type 'AudioBuffer' is not comparable to type '{ duration: number; length: number; sampleRate: number; numberOfChannels: number; getChannelData: () => Float32Array; copyToChannel: Mock<(samples: Float32Array) => void>; }'. + Types of property 'getChannelData' are incompatible. + Type '(channel: number) => Float32Array' is not comparable to type '() => Float32Array'. + Target signature provides too few arguments. Expected 1 or more, but got 0. diff --git a/.agent/evidence-v0.2.3/13-static-404-GREEN.log b/.agent/evidence-v0.2.3/13-static-404-GREEN.log new file mode 100644 index 0000000..c452909 --- /dev/null +++ b/.agent/evidence-v0.2.3/13-static-404-GREEN.log @@ -0,0 +1,23 @@ + +> find-word@0.2.3 test:browser +> playwright test tests/browser/release.spec.ts + +[WebServer] (node:810785) 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 4 tests using 2 workers + +(node:810805) 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:810806) 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) + ✓ 2 [desktop] › tests/browser/release.spec.ts:24:1 › 누락 음성·환경음은 query와 HTML accept에도 404이고 출처 고지는 번들된다 (76ms) + ✓ 1 [desktop] › tests/browser/release.spec.ts:6:1 › 릴리스는 사용자 크레딧과 런타임 MIT notice 전문을 제공한다 (582ms) +(node:810893) 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:810963) 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 [mobile] › tests/browser/release.spec.ts:6:1 › 릴리스는 사용자 크레딧과 런타임 MIT notice 전문을 제공한다 (589ms) + ✓ 4 [mobile] › tests/browser/release.spec.ts:24:1 › 누락 음성·환경음은 query와 HTML accept에도 404이고 출처 고지는 번들된다 (75ms) + + 4 passed (2.8s) diff --git a/.agent/evidence-v0.2.3/13-static-404-RED.log b/.agent/evidence-v0.2.3/13-static-404-RED.log new file mode 100644 index 0000000..d085121 --- /dev/null +++ b/.agent/evidence-v0.2.3/13-static-404-RED.log @@ -0,0 +1,79 @@ + +> find-word@0.2.3 test:browser +> playwright test tests/browser/release.spec.ts + +[WebServer] (node:810330) 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 4 tests using 2 workers + +(node:810350) 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:810351) 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) + ✘ 2 [desktop] › tests/browser/release.spec.ts:24:1 › 누락 음성·환경음은 query와 HTML accept에도 404이고 출처 고지는 번들된다 (65ms) + ✓ 1 [desktop] › tests/browser/release.spec.ts:6:1 › 릴리스는 사용자 크레딧과 런타임 MIT notice 전문을 제공한다 (571ms) +(node:810452) 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:810501) 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 [mobile] › tests/browser/release.spec.ts:6:1 › 릴리스는 사용자 크레딧과 런타임 MIT notice 전문을 제공한다 (607ms) + ✘ 4 [mobile] › tests/browser/release.spec.ts:24:1 › 누락 음성·환경음은 query와 HTML accept에도 404이고 출처 고지는 번들된다 (64ms) + + + 1) [desktop] › tests/browser/release.spec.ts:24:1 › 누락 음성·환경음은 query와 HTML accept에도 404이고 출처 고지는 번들된다 + + Error: expect(received).toBe(expected) // Object.is equality + + Expected: 404 + Received: 200 + + 25 | for (const directory of ["audio", "ambience"]) { + 26 | const response = await request.get(`/${directory}/not-found.wav?v=0.2.3`, { headers: { Accept: "text/html" } }); + > 27 | expect(response.status()).toBe(404); + | ^ + 28 | expect(await response.text()).not.toContain('
'); + 29 | } + 30 | const notice = await request.get("/AMBIENCE_NOTICES.md"); + at /home/hermes/worktrees/find-word-v0.2.3/tests/browser/release.spec.ts:27:31 + + Error Context: test-results/release-누락-음성·환경음은-query와-HTML-accept에도-404이고-출처-고지는-번들된다-desktop/error-context.md + + attachment #2: trace (application/zip) ───────────────────────────────────────────────────────── + test-results/release-누락-음성·환경음은-query와-HTML-accept에도-404이고-출처-고지는-번들된다-desktop/trace.zip + Usage: + + npx playwright show-trace test-results/release-누락-음성·환경음은-query와-HTML-accept에도-404이고-출처-고지는-번들된다-desktop/trace.zip + + ──────────────────────────────────────────────────────────────────────────────────────────────── + + 2) [mobile] › tests/browser/release.spec.ts:24:1 › 누락 음성·환경음은 query와 HTML accept에도 404이고 출처 고지는 번들된다 + + Error: expect(received).toBe(expected) // Object.is equality + + Expected: 404 + Received: 200 + + 25 | for (const directory of ["audio", "ambience"]) { + 26 | const response = await request.get(`/${directory}/not-found.wav?v=0.2.3`, { headers: { Accept: "text/html" } }); + > 27 | expect(response.status()).toBe(404); + | ^ + 28 | expect(await response.text()).not.toContain('
'); + 29 | } + 30 | const notice = await request.get("/AMBIENCE_NOTICES.md"); + at /home/hermes/worktrees/find-word-v0.2.3/tests/browser/release.spec.ts:27:31 + + Error Context: test-results/release-누락-음성·환경음은-query와-HTML-accept에도-404이고-출처-고지는-번들된다-mobile/error-context.md + + attachment #2: trace (application/zip) ───────────────────────────────────────────────────────── + test-results/release-누락-음성·환경음은-query와-HTML-accept에도-404이고-출처-고지는-번들된다-mobile/trace.zip + Usage: + + npx playwright show-trace test-results/release-누락-음성·환경음은-query와-HTML-accept에도-404이고-출처-고지는-번들된다-mobile/trace.zip + + ──────────────────────────────────────────────────────────────────────────────────────────────── + + 2 failed + [desktop] › tests/browser/release.spec.ts:24:1 › 누락 음성·환경음은 query와 HTML accept에도 404이고 출처 고지는 번들된다 + [mobile] › tests/browser/release.spec.ts:24:1 › 누락 음성·환경음은 query와 HTML accept에도 404이고 출처 고지는 번들된다 + 2 passed (2.9s) diff --git a/.agent/evidence-v0.2.3/14-browser-initial.log b/.agent/evidence-v0.2.3/14-browser-initial.log new file mode 100644 index 0000000..11226d9 --- /dev/null +++ b/.agent/evidence-v0.2.3/14-browser-initial.log @@ -0,0 +1,43 @@ + +> find-word@0.2.3 test:browser +> playwright test + +[WebServer] (node:811225) 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 24 tests using 2 workers + +(node:811278) 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:811277) 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 [desktop] › tests/browser/audio.spec.ts:7:1 › 음성·현장음 109개 versioned WAV를 실제 Chrome에서 해시·디코드 검증한다 (18.5s) + ✓ 3 [desktop] › tests/browser/game.spec.ts:130:3 › intro WAV query URL의 404를 표시하고 같은 URL로 재시도·정답 mapping한다 (12.6s) + ✓ 2 [desktop] › tests/browser/game.spec.ts:8:1 › 실제 오디오로 혼합 모드 완주·레이아웃·접근성·외부 요청 없음 (40.4s) + ✓ 5 [desktop] › tests/browser/release.spec.ts:6:1 › 릴리스는 사용자 크레딧과 런타임 MIT notice 전문을 제공한다 (454ms) + ✓ 6 [desktop] › tests/browser/release.spec.ts:24:1 › 누락 음성·환경음은 query와 HTML accept에도 404이고 출처 고지는 번들된다 (28ms) + ✓ 4 [desktop] › tests/browser/game.spec.ts:130:3 › target WAV query URL의 404를 표시하고 같은 URL로 재시도·정답 mapping한다 (17.1s) + ✓ 8 [desktop] › tests/browser/rounds.spec.ts:84:1 › 여덟 환경의 실제 WAV를 각각 디코드하고 루프 재생한 뒤 즉시 정지한다 (8.0s) + ✓ 9 [desktop] › tests/browser/rounds.spec.ts:112:1 › 환경음 404는 한국어 오류와 재시도 후 정상 답변으로 복구한다 (16.2s) + ✓ 10 [desktop] › tests/browser/ui.spec.ts:4:1 › 전체 음량은 설정 흐름 안에 들어가며 키보드로 조절된다 (1.6s) + ✓ 11 [desktop] › tests/browser/ui.spec.ts:52:1 › 난이도 설명은 모바일에서도 보인다 (1.1s) + ✓ 12 [desktop] › tests/browser/ui.spec.ts:68:1 › 한국어 제목은 단어 중간에서 줄바꿈하지 않는다 (17.5s) +(node:812211) 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) + ✓ 7 [desktop] › tests/browser/rounds.spec.ts:29:1 › 시작 단계·SNR·3문항 완료→다음 단계·재생 중 종료·응답 후 종료·홈 초기화 (1.1m) +(node:812418) 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) + ✓ 13 [mobile] › tests/browser/audio.spec.ts:7:1 › 음성·현장음 109개 versioned WAV를 실제 Chrome에서 해시·디코드 검증한다 (16.1s) + ✓ 15 [mobile] › tests/browser/game.spec.ts:130:3 › intro WAV query URL의 404를 표시하고 같은 URL로 재시도·정답 mapping한다 (17.2s) + ✓ 16 [mobile] › tests/browser/game.spec.ts:130:3 › target WAV query URL의 404를 표시하고 같은 URL로 재시도·정답 mapping한다 (12.6s) + ✓ 17 [mobile] › tests/browser/release.spec.ts:6:1 › 릴리스는 사용자 크레딧과 런타임 MIT notice 전문을 제공한다 (306ms) + ✓ 18 [mobile] › tests/browser/release.spec.ts:24:1 › 누락 음성·환경음은 query와 HTML accept에도 404이고 출처 고지는 번들된다 (20ms) + ✓ 14 [mobile] › tests/browser/game.spec.ts:8:1 › 실제 오디오로 혼합 모드 완주·레이아웃·접근성·외부 요청 없음 (37.7s) + ✓ 20 [mobile] › tests/browser/rounds.spec.ts:84:1 › 여덟 환경의 실제 WAV를 각각 디코드하고 루프 재생한 뒤 즉시 정지한다 (6.1s) + ✓ 21 [mobile] › tests/browser/rounds.spec.ts:112:1 › 환경음 404는 한국어 오류와 재시도 후 정상 답변으로 복구한다 (16.0s) + ✓ 22 [mobile] › tests/browser/ui.spec.ts:4:1 › 전체 음량은 설정 흐름 안에 들어가며 키보드로 조절된다 (834ms) + ✓ 23 [mobile] › tests/browser/ui.spec.ts:52:1 › 난이도 설명은 모바일에서도 보인다 (637ms) + ✓ 24 [mobile] › tests/browser/ui.spec.ts:68:1 › 한국어 제목은 단어 중간에서 줄바꿈하지 않는다 (17.0s) + ✓ 19 [mobile] › tests/browser/rounds.spec.ts:29:1 › 시작 단계·SNR·3문항 완료→다음 단계·재생 중 종료·응답 후 종료·홈 초기화 (57.4s) + + 24 passed (3.4m) diff --git a/.agent/evidence-v0.2.3/14-full-test-initial.log b/.agent/evidence-v0.2.3/14-full-test-initial.log new file mode 100644 index 0000000..4295b61 --- /dev/null +++ b/.agent/evidence-v0.2.3/14-full-test-initial.log @@ -0,0 +1,16 @@ + +> find-word@0.2.3 test +> vitest run + + + RUN v5.0.4 /home/hermes/worktrees/find-word-v0.2.3 + + + Test Files 13 passed (13) + Tests 91 passed (91) + Start at 08:12:39 + Duration 16.80s (tests 76%, environment 16%, setup 6%, transform 1%, import 1%) + + Isolate 13 workers spawned · ~782ms startup each (spawn + environment, per file) + at least ~2.61s faster with isolate: false — reuses workers across files instead of one per file + diff --git a/.agent/evidence-v0.2.3/14-npm-audit.json b/.agent/evidence-v0.2.3/14-npm-audit.json new file mode 100644 index 0000000..c046bc2 --- /dev/null +++ b/.agent/evidence-v0.2.3/14-npm-audit.json @@ -0,0 +1,22 @@ +{ + "auditReportVersion": 2, + "vulnerabilities": {}, + "metadata": { + "vulnerabilities": { + "info": 0, + "low": 0, + "moderate": 0, + "high": 0, + "critical": 0, + "total": 0 + }, + "dependencies": { + "prod": 4, + "dev": 260, + "optional": 27, + "peer": 8, + "peerOptional": 0, + "total": 263 + } + } +} diff --git a/.agent/evidence-v0.2.3/15-results-anchor-GREEN.log b/.agent/evidence-v0.2.3/15-results-anchor-GREEN.log new file mode 100644 index 0000000..8e7cb1c --- /dev/null +++ b/.agent/evidence-v0.2.3/15-results-anchor-GREEN.log @@ -0,0 +1,9 @@ + + RUN v5.0.4 /home/hermes/worktrees/find-word-v0.2.3 + + + Test Files 1 passed (1) + Tests 1 passed | 19 skipped (20) + Start at 08:13:17 + Duration 1.81s (environment 53%, tests 25%, transform 9%, setup 9%, import 4%) + diff --git a/.agent/evidence-v0.2.3/15-results-anchor-RED.log b/.agent/evidence-v0.2.3/15-results-anchor-RED.log new file mode 100644 index 0000000..b6845de --- /dev/null +++ b/.agent/evidence-v0.2.3/15-results-anchor-RED.log @@ -0,0 +1,37 @@ + + RUN v5.0.4 /home/hermes/worktrees/find-word-v0.2.3 + + ❯ tests/App.test.tsx (20 tests | 1 failed | 19 skipped) 451ms + × 결과 헤더에 존재하지 않는 플레이 방법 앵커를 표시하지 않는다 449ms + +⎯⎯⎯⎯⎯⎯⎯ Failed Tests 1 ⎯⎯⎯⎯⎯⎯⎯ + + FAIL tests/App.test.tsx > 결과 헤더에 존재하지 않는 플레이 방법 앵커를 표시하지 않는다 +Error: expect(element).not.toBeInTheDocument() + +expected document not to contain element, found + 플레이 방법 + + instead + ❯ tests/App.test.tsx:427:60 + 425| await f.user.click(screen.getByRole("button", {name: "게임 시작 · 소리 듣기"… + 426| await f.user.click(screen.getByRole("button", {name: "문제 풀이 종료"})); + 427| expect(screen.queryByRole("link", {name: "플레이 방법"})).not.toBeInTheDo… + | ^ + 428| await f.finish(); + 429| }); + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[1/1]⎯ + + + Test Files 1 failed (1) + Tests 1 failed | 19 skipped (20) + Start at 08:13:14 + Duration 1.88s (environment 54%, tests 28%, setup 8%, transform 6%, import 4%, worker 1%) + diff --git a/.agent/evidence-v0.2.3/16-controls-build.log b/.agent/evidence-v0.2.3/16-controls-build.log new file mode 100644 index 0000000..fcf930f --- /dev/null +++ b/.agent/evidence-v0.2.3/16-controls-build.log @@ -0,0 +1,15 @@ + +> find-word@0.2.3 build +> tsc --noEmit && vite build && node scripts/check-build.mjs + +vite v8.3.4 building client environment for production... +transforming... +✓ 21 modules transformed. +rendering chunks... +computing gzip size... +dist/index.html 0.89 kB │ gzip: 0.63 kB +dist/assets/index-ouf4Br0q.css 16.03 kB │ gzip: 4.51 kB +dist/assets/index-GPW5SsSV.js 247.60 kB │ gzip: 77.92 kB + +✓ built in 187ms +빌드 음성 자산 101개 + 현장음 8개 및 런타임/현장음 notice 확인 diff --git a/.agent/evidence-v0.2.3/16-controls-layout-GREEN.log b/.agent/evidence-v0.2.3/16-controls-layout-GREEN.log new file mode 100644 index 0000000..43fcd96 --- /dev/null +++ b/.agent/evidence-v0.2.3/16-controls-layout-GREEN.log @@ -0,0 +1,17 @@ + +> find-word@0.2.3 test:browser +> playwright test tests/browser/ui.spec.ts -g 시작 단계와 SNR 설정 + +[WebServer] (node:813432) 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 2 tests using 2 workers + +(node:813452) 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:813453) 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 [mobile] › tests/browser/ui.spec.ts:121:1 › 시작 단계와 SNR 설정은 카드 안에 들어가고 터치 영역을 확보한다 (780ms) + ✓ 2 [desktop] › tests/browser/ui.spec.ts:121:1 › 시작 단계와 SNR 설정은 카드 안에 들어가고 터치 영역을 확보한다 (765ms) + + 2 passed (2.2s) diff --git a/.agent/evidence-v0.2.3/16-controls-layout-RED.log b/.agent/evidence-v0.2.3/16-controls-layout-RED.log new file mode 100644 index 0000000..a6bcd3d --- /dev/null +++ b/.agent/evidence-v0.2.3/16-controls-layout-RED.log @@ -0,0 +1,72 @@ + +> find-word@0.2.3 test:browser +> playwright test tests/browser/ui.spec.ts -g 시작 단계와 SNR 설정 + +[WebServer] (node:813040) 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 2 tests using 2 workers + +(node:813061) 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:813062) 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 [mobile] › tests/browser/ui.spec.ts:121:1 › 시작 단계와 SNR 설정은 카드 안에 들어가고 터치 영역을 확보한다 (798ms) + ✘ 2 [desktop] › tests/browser/ui.spec.ts:121:1 › 시작 단계와 SNR 설정은 카드 안에 들어가고 터치 영역을 확보한다 (795ms) + + + 1) [desktop] › tests/browser/ui.spec.ts:121:1 › 시작 단계와 SNR 설정은 카드 안에 들어가고 터치 영역을 확보한다 ──────────── + + Error: expect(received).toBeGreaterThanOrEqual(expected) + + Expected: >= 44 + Received: 23 + + 131 | ]) { + 132 | const bounds = (await control.boundingBox())!; + > 133 | expect(bounds.height).toBeGreaterThanOrEqual(44); + | ^ + 134 | expect(bounds.x).toBeGreaterThanOrEqual(panel.x); + 135 | expect(bounds.x + bounds.width).toBeLessThanOrEqual(panel.x + panel.width); + 136 | } + at /home/hermes/worktrees/find-word-v0.2.3/tests/browser/ui.spec.ts:133:27 + + Error Context: test-results/ui-시작-단계와-SNR-설정은-카드-안에-들어가고-터치-영역을-확보한다-desktop/error-context.md + + attachment #2: trace (application/zip) ───────────────────────────────────────────────────────── + test-results/ui-시작-단계와-SNR-설정은-카드-안에-들어가고-터치-영역을-확보한다-desktop/trace.zip + Usage: + + npx playwright show-trace test-results/ui-시작-단계와-SNR-설정은-카드-안에-들어가고-터치-영역을-확보한다-desktop/trace.zip + + ──────────────────────────────────────────────────────────────────────────────────────────────── + + 2) [mobile] › tests/browser/ui.spec.ts:121:1 › 시작 단계와 SNR 설정은 카드 안에 들어가고 터치 영역을 확보한다 ───────────── + + Error: expect(received).toBeGreaterThanOrEqual(expected) + + Expected: >= 44 + Received: 23 + + 131 | ]) { + 132 | const bounds = (await control.boundingBox())!; + > 133 | expect(bounds.height).toBeGreaterThanOrEqual(44); + | ^ + 134 | expect(bounds.x).toBeGreaterThanOrEqual(panel.x); + 135 | expect(bounds.x + bounds.width).toBeLessThanOrEqual(panel.x + panel.width); + 136 | } + at /home/hermes/worktrees/find-word-v0.2.3/tests/browser/ui.spec.ts:133:27 + + Error Context: test-results/ui-시작-단계와-SNR-설정은-카드-안에-들어가고-터치-영역을-확보한다-mobile/error-context.md + + attachment #2: trace (application/zip) ───────────────────────────────────────────────────────── + test-results/ui-시작-단계와-SNR-설정은-카드-안에-들어가고-터치-영역을-확보한다-mobile/trace.zip + Usage: + + npx playwright show-trace test-results/ui-시작-단계와-SNR-설정은-카드-안에-들어가고-터치-영역을-확보한다-mobile/trace.zip + + ──────────────────────────────────────────────────────────────────────────────────────────────── + + 2 failed + [desktop] › tests/browser/ui.spec.ts:121:1 › 시작 단계와 SNR 설정은 카드 안에 들어가고 터치 영역을 확보한다 ───────────── + [mobile] › tests/browser/ui.spec.ts:121:1 › 시작 단계와 SNR 설정은 카드 안에 들어가고 터치 영역을 확보한다 ────────────── diff --git a/.agent/evidence-v0.2.3/17-bonus-copy-GREEN.log b/.agent/evidence-v0.2.3/17-bonus-copy-GREEN.log new file mode 100644 index 0000000..b897463 --- /dev/null +++ b/.agent/evidence-v0.2.3/17-bonus-copy-GREEN.log @@ -0,0 +1,9 @@ + + RUN v5.0.4 /home/hermes/worktrees/find-word-v0.2.3 + + + Test Files 1 passed (1) + Tests 1 passed | 20 skipped (21) + Start at 08:17:35 + Duration 1.21s (environment 51%, tests 27%, setup 9%, transform 8%, import 4%, worker 1%) + diff --git a/.agent/evidence-v0.2.3/17-bonus-copy-RED.log b/.agent/evidence-v0.2.3/17-bonus-copy-RED.log new file mode 100644 index 0000000..a4a6bdc --- /dev/null +++ b/.agent/evidence-v0.2.3/17-bonus-copy-RED.log @@ -0,0 +1,329 @@ + + RUN v5.0.4 /home/hermes/worktrees/find-word-v0.2.3 + + ❯ tests/App.test.tsx (21 tests | 1 failed | 20 skipped) 303ms + × 세 문항 라운드에서 가능한 연속 정답 보너스 상한을 설명한다 301ms + +⎯⎯⎯⎯⎯⎯⎯ Failed Tests 1 ⎯⎯⎯⎯⎯⎯⎯ + + FAIL tests/App.test.tsx > 세 문항 라운드에서 가능한 연속 정답 보너스 상한을 설명한다 +TestingLibraryElementError: Unable to find an element with the text: 단계 × 100점 + 연속 정답 보너스 (라운드 내 최대 20점). This could be because the text is broken up by multiple elements. In this case, you can provide a function for your text matcher to make your matcher more flexible. + +Ignored nodes: comments, script, style + + 
 +  + 본문으로 건너뛰기 +  +  +  +  +  +  +  +  +  + 

 + 단어를 맞춰라 + 

 +  + v0.2.3 +  + 
 +  +  + 소리에 집중하는 시간 + 
 +  +  +  +  + 지금까지의 소리 탐험 +  +  +  +  +  +  +  +  +  + S +  + 
 +  +  + 문제 풀이를 종료했어요. + 

 +  + 작은 소리에 집중한 당신, 다음 탐험에서도 만나요. + 

 + 

 + 응답  + 0 + 문항 · 정답  + 0 + 문항 + 

 +  + 
 +  + 0 +  +  + 총 점수 +  + 
 + 
 +  + 0 + % +  +  + 정답률 ·  + 0 + / + 0 +  + 
 + 
 +  + 0 +  + 회 +  +  +  + 최고 연속 정답 +  + 
 +  +  +  +  +  + 난이도 +  +  + SNR +  +  + 맞힌 문제 +  +  +  +  +  +  + 1 + 단계 +  +  + SNR +6 dB +  +  + 0 +  /  + 0 +  +  +  +  + 2 + 단계 +  +  + SNR +3 dB +  +  + 0 +  /  + 0 +  +  +  +  + 3 + 단계 +  +  + SNR 0 dB +  +  + 0 +  /  + 0 +  +  +  +  + 4 + 단계 +  +  + SNR -3 dB +  +  + 0 +  /  + 0 +  +  +  +  + 5 + 단계 +  +  + SNR -6 dB +  +  + 0 +  /  + 0 +  +  +  +  +  + 단계 × 100점 + 연속 정답 보너스 (최대 40점) + 

 +  + 처음 화면으로 +  +  +  +  +  + ◖)) +  +  전체 음량 +  +  +  + 35 + % +  +  +  +  + 

 + Designed by OZ at Heat-T Medical Inc. + 

 + 

 + 청각적 주의·식별 게임 · 의료적 진단이나 치료를 제공하지 않습니다. + 

 +  + 개인정보 수집 없이, 오직 플레이만. +  +  + 환경음 출처·라이선스 +  +  +  + + ❯ Object.getElementError node_modules/@testing-library/dom/dist/config.js:37:19 + ❯ node_modules/@testing-library/dom/dist/query-helpers.js:76:38 + ❯ node_modules/@testing-library/dom/dist/query-helpers.js:52:17 + ❯ node_modules/@testing-library/dom/dist/query-helpers.js:95:19 + ❯ tests/App.test.tsx:504:17 + 502| await f.user.click(screen.getByRole("button", {name: "게임 시작 · 소리 듣기"… + 503| await f.user.click(screen.getByRole("button", {name: "문제 풀이 종료"})); + 504| expect(screen.getByText("단계 × 100점 + 연속 정답 보너스 (라운드 내 최대 20점)")).toB… + | ^ + 505| await f.finish(); + 506| }); + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[1/1]⎯ + + + Test Files 1 failed (1) + Tests 1 failed | 20 skipped (21) + Start at 08:17:33 + Duration 1.26s (environment 49%, tests 27%, transform 12%, setup 8%, import 4%, worker 1%) + diff --git a/.agent/evidence-v0.2.3/18-browser.log b/.agent/evidence-v0.2.3/18-browser.log new file mode 100644 index 0000000..29ea9b0 --- /dev/null +++ b/.agent/evidence-v0.2.3/18-browser.log @@ -0,0 +1,191 @@ + +> find-word@0.2.3 test:browser +> playwright test --reporter=list,json + +[WebServer] (node:814103) 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 26 tests using 2 workers + +(node:814172) 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:814173) 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 [desktop] › tests/browser/audio.spec.ts:7:1 › 음성·현장음 109개 versioned WAV를 실제 Chrome에서 해시·디코드 검증한다 (26.1s) +(node:814746) 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 [desktop] › tests/browser/game.spec.ts:130:3 › intro WAV query URL의 404를 표시하고 같은 URL로 재시도·정답 mapping한다 (17.3s) + ✓ 2 [desktop] › tests/browser/game.spec.ts:8:1 › 실제 오디오로 혼합 모드 완주·레이아웃·접근성·외부 요청 없음 (48.0s) + ✓ 5 [desktop] › tests/browser/release.spec.ts:6:1 › 릴리스는 사용자 크레딧과 런타임 MIT notice 전문을 제공한다 (420ms) + ✓ 6 [desktop] › tests/browser/release.spec.ts:24:1 › 누락 음성·환경음은 query와 HTML accept에도 404이고 출처 고지는 번들된다 (29ms) + ✓ 4 [desktop] › tests/browser/game.spec.ts:130:3 › target WAV query URL의 404를 표시하고 같은 URL로 재시도·정답 mapping한다 (16.9s) + ✘ 8 [desktop] › tests/browser/rounds.spec.ts:135:1 › 여덟 환경의 실제 WAV를 각각 디코드하고 루프 재생한 뒤 즉시 정지한다 (9.2s) +(node:815064) 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) + ✓ 9 [desktop] › tests/browser/rounds.spec.ts:178:1 › 환경음 404는 한국어 오류와 재시도 후 정상 답변으로 복구한다 (17.3s) + ✓ 10 [desktop] › tests/browser/ui.spec.ts:4:1 › 전체 음량은 설정 흐름 안에 들어가며 키보드로 조절된다 (1.4s) + ✓ 11 [desktop] › tests/browser/ui.spec.ts:52:1 › 난이도 설명은 모바일에서도 보인다 (1.0s) + ✓ 7 [desktop] › tests/browser/rounds.spec.ts:35:1 › 시작 단계·SNR·3문항 완료→다음 단계·재생 중 종료·응답 후 종료·홈 초기화 (1.0m) + ✓ 13 [desktop] › tests/browser/ui.spec.ts:121:1 › 시작 단계와 SNR 설정은 카드 안에 들어가고 터치 영역을 확보한다 (737ms) + ✓ 12 [desktop] › tests/browser/ui.spec.ts:68:1 › 한국어 제목은 단어 중간에서 줄바꿈하지 않는다 (17.5s) +(node:815385) 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:815426) 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) + ✘ 14 [mobile] › tests/browser/audio.spec.ts:7:1 › 음성·현장음 109개 versioned WAV를 실제 Chrome에서 해시·디코드 검증한다 (21.6s) +(node:815734) 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) + ✓ 16 [mobile] › tests/browser/game.spec.ts:130:3 › intro WAV query URL의 404를 표시하고 같은 URL로 재시도·정답 mapping한다 (17.5s) + ✓ 15 [mobile] › tests/browser/game.spec.ts:8:1 › 실제 오디오로 혼합 모드 완주·레이아웃·접근성·외부 요청 없음 (42.8s) + ✓ 18 [mobile] › tests/browser/release.spec.ts:6:1 › 릴리스는 사용자 크레딧과 런타임 MIT notice 전문을 제공한다 (289ms) + ✓ 19 [mobile] › tests/browser/release.spec.ts:24:1 › 누락 음성·환경음은 query와 HTML accept에도 404이고 출처 고지는 번들된다 (17ms) + ✓ 17 [mobile] › tests/browser/game.spec.ts:130:3 › target WAV query URL의 404를 표시하고 같은 URL로 재시도·정답 mapping한다 (17.1s) + ✘ 21 [mobile] › tests/browser/rounds.spec.ts:135:1 › 여덟 환경의 실제 WAV를 각각 디코드하고 루프 재생한 뒤 즉시 정지한다 (6.7s) +(node:816040) 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) + ✓ 22 [mobile] › tests/browser/rounds.spec.ts:178:1 › 환경음 404는 한국어 오류와 재시도 후 정상 답변으로 복구한다 (15.6s) + ✓ 23 [mobile] › tests/browser/ui.spec.ts:4:1 › 전체 음량은 설정 흐름 안에 들어가며 키보드로 조절된다 (877ms) + ✓ 24 [mobile] › tests/browser/ui.spec.ts:52:1 › 난이도 설명은 모바일에서도 보인다 (588ms) + ✓ 25 [mobile] › tests/browser/ui.spec.ts:68:1 › 한국어 제목은 단어 중간에서 줄바꿈하지 않는다 (17.1s) + ✓ 26 [mobile] › tests/browser/ui.spec.ts:121:1 › 시작 단계와 SNR 설정은 카드 안에 들어가고 터치 영역을 확보한다 (319ms) + ✓ 20 [mobile] › tests/browser/rounds.spec.ts:35:1 › 시작 단계·SNR·3문항 완료→다음 단계·재생 중 종료·응답 후 종료·홈 초기화 (1.1m) + + + 1) [desktop] › tests/browser/audio.spec.ts:7:1 › 음성·현장음 109개 versioned WAV를 실제 Chrome에서 해시·디코드 검증한다 + + Error: expect(received).toEqual(expected) // deep equality + + - Expected - 1 + + Received + 3 + + - Array [] + + Array [ + + "Failed to load resource: the server responded with a status of 404 (Not Found)", + + ] + + 141 | expect([...requests].sort()).toEqual([...urls].sort()); + 142 | expect(external).toEqual([]); + > 143 | expect(errors).toEqual([]); + | ^ + 144 | expect(failed).toEqual([]); + 145 | const path = info.outputPath("browser-audio-integrity.json"); + 146 | writeFileSync( + at /home/hermes/worktrees/find-word-v0.2.3/tests/browser/audio.spec.ts:143:18 + + Error Context: test-results/audio-음성·현장음-109개-versioned-WAV를-실제-Chrome에서-해시·디코드-검증한다-desktop/error-context.md + + attachment #2: trace (application/zip) ───────────────────────────────────────────────────────── + test-results/audio-음성·현장음-109개-versioned-WAV를-실제-Chrome에서-해시·디코드-검증한다-desktop/trace.zip + Usage: + + npx playwright show-trace test-results/audio-음성·현장음-109개-versioned-WAV를-실제-Chrome에서-해시·디코드-검증한다-desktop/trace.zip + + ──────────────────────────────────────────────────────────────────────────────────────────────── + + 2) [desktop] › tests/browser/rounds.spec.ts:135:1 › 여덟 환경의 실제 WAV를 각각 디코드하고 루프 재생한 뒤 즉시 정지한다 ───── + + Error: expect(received).toEqual(expected) // deep equality + + - Expected - 1 + + Received + 3 + + Object { + - "errors": Array [], + + "errors": Array [ + + "Failed to load resource: the server responded with a status of 404 (Not Found)", + + ], + "external": Array [], + "failed": Array [], + } + + 168 | expect(probe.stops).toBe(24); + 169 | expect(requests).toEqual(ENVIRONMENTS.map((e) => `/ambience/${e.id}.wav`)); + > 170 | expect({ errors, failed, external }).toEqual({ + | ^ + 171 | errors: [], + 172 | failed: [], + 173 | external: [], + at /home/hermes/worktrees/find-word-v0.2.3/tests/browser/rounds.spec.ts:170:40 + + Error Context: test-results/rounds-여덟-환경의-실제-WAV를-각각-디코드하고-루프-재생한-뒤-즉시-정지한다-desktop/error-context.md + + attachment #2: trace (application/zip) ───────────────────────────────────────────────────────── + test-results/rounds-여덟-환경의-실제-WAV를-각각-디코드하고-루프-재생한-뒤-즉시-정지한다-desktop/trace.zip + Usage: + + npx playwright show-trace test-results/rounds-여덟-환경의-실제-WAV를-각각-디코드하고-루프-재생한-뒤-즉시-정지한다-desktop/trace.zip + + ──────────────────────────────────────────────────────────────────────────────────────────────── + + 3) [mobile] › tests/browser/audio.spec.ts:7:1 › 음성·현장음 109개 versioned WAV를 실제 Chrome에서 해시·디코드 검증한다 + + Error: expect(received).toEqual(expected) // deep equality + + - Expected - 1 + + Received + 3 + + - Array [] + + Array [ + + "Failed to load resource: the server responded with a status of 404 (Not Found)", + + ] + + 141 | expect([...requests].sort()).toEqual([...urls].sort()); + 142 | expect(external).toEqual([]); + > 143 | expect(errors).toEqual([]); + | ^ + 144 | expect(failed).toEqual([]); + 145 | const path = info.outputPath("browser-audio-integrity.json"); + 146 | writeFileSync( + at /home/hermes/worktrees/find-word-v0.2.3/tests/browser/audio.spec.ts:143:18 + + Error Context: test-results/audio-음성·현장음-109개-versioned-WAV를-실제-Chrome에서-해시·디코드-검증한다-mobile/error-context.md + + attachment #2: trace (application/zip) ───────────────────────────────────────────────────────── + test-results/audio-음성·현장음-109개-versioned-WAV를-실제-Chrome에서-해시·디코드-검증한다-mobile/trace.zip + Usage: + + npx playwright show-trace test-results/audio-음성·현장음-109개-versioned-WAV를-실제-Chrome에서-해시·디코드-검증한다-mobile/trace.zip + + ──────────────────────────────────────────────────────────────────────────────────────────────── + + 4) [mobile] › tests/browser/rounds.spec.ts:135:1 › 여덟 환경의 실제 WAV를 각각 디코드하고 루프 재생한 뒤 즉시 정지한다 ────── + + Error: expect(received).toEqual(expected) // deep equality + + - Expected - 1 + + Received + 3 + + Object { + - "errors": Array [], + + "errors": Array [ + + "Failed to load resource: the server responded with a status of 404 (Not Found)", + + ], + "external": Array [], + "failed": Array [], + } + + 168 | expect(probe.stops).toBe(24); + 169 | expect(requests).toEqual(ENVIRONMENTS.map((e) => `/ambience/${e.id}.wav`)); + > 170 | expect({ errors, failed, external }).toEqual({ + | ^ + 171 | errors: [], + 172 | failed: [], + 173 | external: [], + at /home/hermes/worktrees/find-word-v0.2.3/tests/browser/rounds.spec.ts:170:40 + + Error Context: test-results/rounds-여덟-환경의-실제-WAV를-각각-디코드하고-루프-재생한-뒤-즉시-정지한다-mobile/error-context.md + + attachment #2: trace (application/zip) ───────────────────────────────────────────────────────── + test-results/rounds-여덟-환경의-실제-WAV를-각각-디코드하고-루프-재생한-뒤-즉시-정지한다-mobile/trace.zip + Usage: + + npx playwright show-trace test-results/rounds-여덟-환경의-실제-WAV를-각각-디코드하고-루프-재생한-뒤-즉시-정지한다-mobile/trace.zip + + ──────────────────────────────────────────────────────────────────────────────────────────────── + + 4 failed + [desktop] › tests/browser/audio.spec.ts:7:1 › 음성·현장음 109개 versioned WAV를 실제 Chrome에서 해시·디코드 검증한다 + [desktop] › tests/browser/rounds.spec.ts:135:1 › 여덟 환경의 실제 WAV를 각각 디코드하고 루프 재생한 뒤 즉시 정지한다 ────── + [mobile] › tests/browser/audio.spec.ts:7:1 › 음성·현장음 109개 versioned WAV를 실제 Chrome에서 해시·디코드 검증한다 + [mobile] › tests/browser/rounds.spec.ts:135:1 › 여덟 환경의 실제 WAV를 각각 디코드하고 루프 재생한 뒤 즉시 정지한다 ─────── + 22 passed (3.7m) diff --git a/.agent/evidence-v0.2.3/18-build.log b/.agent/evidence-v0.2.3/18-build.log new file mode 100644 index 0000000..f3eb801 --- /dev/null +++ b/.agent/evidence-v0.2.3/18-build.log @@ -0,0 +1,15 @@ + +> find-word@0.2.3 build +> tsc --noEmit && vite build && node scripts/check-build.mjs + +vite v8.3.4 building client environment for production... +transforming... +✓ 21 modules transformed. +rendering chunks... +computing gzip size... +dist/index.html 0.89 kB │ gzip: 0.63 kB +dist/assets/index-ouf4Br0q.css 16.03 kB │ gzip: 4.51 kB +dist/assets/index-DX70bphC.js 247.63 kB │ gzip: 77.92 kB + +✓ built in 179ms +빌드 음성 자산 101개 + 현장음 8개 및 런타임/현장음 notice 확인 diff --git a/.agent/evidence-v0.2.3/18-format.log b/.agent/evidence-v0.2.3/18-format.log new file mode 100644 index 0000000..133f31b --- /dev/null +++ b/.agent/evidence-v0.2.3/18-format.log @@ -0,0 +1,5 @@ +src/App.tsx 216ms +src/styles.css 156ms (unchanged) +tests/App.test.tsx 107ms +tests/browser/rounds.spec.ts 40ms +tests/browser/audio.spec.ts 33ms diff --git a/.agent/evidence-v0.2.3/18-full-test.log b/.agent/evidence-v0.2.3/18-full-test.log new file mode 100644 index 0000000..97291e3 --- /dev/null +++ b/.agent/evidence-v0.2.3/18-full-test.log @@ -0,0 +1,16 @@ + +> find-word@0.2.3 test +> vitest run + + + RUN v5.0.4 /home/hermes/worktrees/find-word-v0.2.3 + + + Test Files 13 passed (13) + Tests 93 passed (93) + Start at 08:18:35 + Duration 21.89s (tests 77%, environment 16%, setup 5%, transform 1%) + + Isolate 13 workers spawned · ~1.02s startup each (spawn + environment, per file) + at least ~3.38s faster with isolate: false — reuses workers across files instead of one per file + diff --git a/.agent/evidence-v0.2.3/18-lint.log b/.agent/evidence-v0.2.3/18-lint.log new file mode 100644 index 0000000..39db469 --- /dev/null +++ b/.agent/evidence-v0.2.3/18-lint.log @@ -0,0 +1,4 @@ + +> find-word@0.2.3 lint +> eslint . && tsc --noEmit + diff --git a/.agent/evidence-v0.2.3/18-python.log b/.agent/evidence-v0.2.3/18-python.log new file mode 100644 index 0000000..ded9bb8 --- /dev/null +++ b/.agent/evidence-v0.2.3/18-python.log @@ -0,0 +1,436 @@ +test_convert_format_fade_normalization_and_reproducibility (test_ambience_audio.AmbienceConversion.test_convert_format_fade_normalization_and_reproducibility) +스테레오 48kHz 입력을 실제로 내려 섞고 길이·양끝·안전 피크를 확인한다. ... ok +test_silence_fails_before_publishing (test_ambience_audio.AmbienceConversion.test_silence_fails_before_publishing) +무음을 정상 현장 녹음으로 포장하지 않는다. ... 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 20 tests in 14.965s + +OK diff --git a/.agent/evidence-v0.2.3/19-favicon-GREEN.log b/.agent/evidence-v0.2.3/19-favicon-GREEN.log new file mode 100644 index 0000000..3c7f298 --- /dev/null +++ b/.agent/evidence-v0.2.3/19-favicon-GREEN.log @@ -0,0 +1,9 @@ + + RUN v5.0.4 /home/hermes/worktrees/find-word-v0.2.3 + + + Test Files 1 passed (1) + Tests 1 passed | 4 skipped (5) + Start at 08:20:33 + Duration 456ms (setup 82%, transform 9%, worker 3%, import 3%, tests 2%) + diff --git a/.agent/evidence-v0.2.3/19-favicon-RED.log b/.agent/evidence-v0.2.3/19-favicon-RED.log new file mode 100644 index 0000000..22054d4 --- /dev/null +++ b/.agent/evidence-v0.2.3/19-favicon-RED.log @@ -0,0 +1,52 @@ + + RUN v5.0.4 /home/hermes/worktrees/find-word-v0.2.3 + + ❯ tests/release.test.ts (5 tests | 1 failed | 4 skipped) 15ms + × HTML은 같은 문서의 내장 아이콘을 제공해 누락 favicon 요청을 막는다 12ms + +⎯⎯⎯⎯⎯⎯⎯ Failed Tests 1 ⎯⎯⎯⎯⎯⎯⎯ + + FAIL tests/release.test.ts > HTML은 같은 문서의 내장 아이콘을 제공해 누락 favicon 요청을 막는다 +AssertionError: expected '\n + + + + + + + 단어를 맞춰라 · Find-Word v0.2.3 + + +
+ + + +" + + ❯ tests/release.test.ts:82:16 + 80| it("HTML은 같은 문서의 내장 아이콘을 제공해 누락 favicon 요청을 막는다", () => { + 81| const html = readFileSync("index.html", "utf8"); + 82| expect(html).toMatch(/ 143 | expect(errors).toEqual([]);\n | ^\n 144 | expect(failed).toEqual([]);\n 145 | const path = info.outputPath(\"browser-audio-integrity.json\");\n 146 | writeFileSync(" + }, + "errors": [ + { + "location": { + "file": "/home/hermes/worktrees/find-word-v0.2.3/tests/browser/audio.spec.ts", + "column": 18, + "line": 143 + }, + "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoEqual\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // deep equality\u001b[22m\n\n\u001b[32m- Expected - 1\u001b[39m\n\u001b[31m+ Received + 3\u001b[39m\n\n\u001b[32m- Array []\u001b[39m\n\u001b[31m+ Array [\u001b[39m\n\u001b[31m+ \"Failed to load resource: the server responded with a status of 404 (Not Found)\",\u001b[39m\n\u001b[31m+ ]\u001b[39m\n\n 141 | expect([...requests].sort()).toEqual([...urls].sort());\n 142 | expect(external).toEqual([]);\n> 143 | expect(errors).toEqual([]);\n | ^\n 144 | expect(failed).toEqual([]);\n 145 | const path = info.outputPath(\"browser-audio-integrity.json\");\n 146 | writeFileSync(\n at /home/hermes/worktrees/find-word-v0.2.3/tests/browser/audio.spec.ts:143:18" + } + ], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T08:18:40.907Z", + "annotations": [], + "attachments": [ + { + "name": "error-context", + "contentType": "text/markdown", + "path": "/home/hermes/worktrees/find-word-v0.2.3/test-results/audio-음성·현장음-109개-versioned-WAV를-실제-Chrome에서-해시·디코드-검증한다-desktop/error-context.md" + }, + { + "name": "trace", + "contentType": "application/zip", + "path": "/home/hermes/worktrees/find-word-v0.2.3/test-results/audio-음성·현장음-109개-versioned-WAV를-실제-Chrome에서-해시·디코드-검증한다-desktop/trace.zip" + } + ], + "errorLocation": { + "file": "/home/hermes/worktrees/find-word-v0.2.3/tests/browser/audio.spec.ts", + "column": 18, + "line": 143 + } + } + ], + "status": "unexpected" + } + ], + "id": "87be2dcdb54c25970a35-d93130048b0c80dc4106", + "file": "audio.spec.ts", + "line": 7, + "column": 1 + }, + { + "title": "음성·현장음 109개 versioned WAV를 실제 Chrome에서 해시·디코드 검증한다", + "ok": false, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "mobile", + "projectName": "mobile", + "results": [ + { + "workerIndex": 4, + "parallelIndex": 1, + "status": "failed", + "duration": 21579, + "error": { + "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoEqual\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // deep equality\u001b[22m\n\n\u001b[32m- Expected - 1\u001b[39m\n\u001b[31m+ Received + 3\u001b[39m\n\n\u001b[32m- Array []\u001b[39m\n\u001b[31m+ Array [\u001b[39m\n\u001b[31m+ \"Failed to load resource: the server responded with a status of 404 (Not Found)\",\u001b[39m\n\u001b[31m+ ]\u001b[39m", + "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoEqual\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // deep equality\u001b[22m\n\n\u001b[32m- Expected - 1\u001b[39m\n\u001b[31m+ Received + 3\u001b[39m\n\n\u001b[32m- Array []\u001b[39m\n\u001b[31m+ Array [\u001b[39m\n\u001b[31m+ \"Failed to load resource: the server responded with a status of 404 (Not Found)\",\u001b[39m\n\u001b[31m+ ]\u001b[39m\n at /home/hermes/worktrees/find-word-v0.2.3/tests/browser/audio.spec.ts:143:18", + "location": { + "file": "/home/hermes/worktrees/find-word-v0.2.3/tests/browser/audio.spec.ts", + "column": 18, + "line": 143 + }, + "snippet": " 141 | expect([...requests].sort()).toEqual([...urls].sort());\n 142 | expect(external).toEqual([]);\n> 143 | expect(errors).toEqual([]);\n | ^\n 144 | expect(failed).toEqual([]);\n 145 | const path = info.outputPath(\"browser-audio-integrity.json\");\n 146 | writeFileSync(" + }, + "errors": [ + { + "location": { + "file": "/home/hermes/worktrees/find-word-v0.2.3/tests/browser/audio.spec.ts", + "column": 18, + "line": 143 + }, + "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoEqual\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // deep equality\u001b[22m\n\n\u001b[32m- Expected - 1\u001b[39m\n\u001b[31m+ Received + 3\u001b[39m\n\n\u001b[32m- Array []\u001b[39m\n\u001b[31m+ Array [\u001b[39m\n\u001b[31m+ \"Failed to load resource: the server responded with a status of 404 (Not Found)\",\u001b[39m\n\u001b[31m+ ]\u001b[39m\n\n 141 | expect([...requests].sort()).toEqual([...urls].sort());\n 142 | expect(external).toEqual([]);\n> 143 | expect(errors).toEqual([]);\n | ^\n 144 | expect(failed).toEqual([]);\n 145 | const path = info.outputPath(\"browser-audio-integrity.json\");\n 146 | writeFileSync(\n at /home/hermes/worktrees/find-word-v0.2.3/tests/browser/audio.spec.ts:143:18" + } + ], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T08:20:33.265Z", + "annotations": [], + "attachments": [ + { + "name": "error-context", + "contentType": "text/markdown", + "path": "/home/hermes/worktrees/find-word-v0.2.3/test-results/audio-음성·현장음-109개-versioned-WAV를-실제-Chrome에서-해시·디코드-검증한다-mobile/error-context.md" + }, + { + "name": "trace", + "contentType": "application/zip", + "path": "/home/hermes/worktrees/find-word-v0.2.3/test-results/audio-음성·현장음-109개-versioned-WAV를-실제-Chrome에서-해시·디코드-검증한다-mobile/trace.zip" + } + ], + "errorLocation": { + "file": "/home/hermes/worktrees/find-word-v0.2.3/tests/browser/audio.spec.ts", + "column": 18, + "line": 143 + } + } + ], + "status": "unexpected" + } + ], + "id": "87be2dcdb54c25970a35-9f9914a49e88a65e211e", + "file": "audio.spec.ts", + "line": 7, + "column": 1 + } + ] + }, + { + "title": "game.spec.ts", + "file": "game.spec.ts", + "column": 0, + "line": 0, + "specs": [ + { + "title": "실제 오디오로 혼합 모드 완주·레이아웃·접근성·외부 요청 없음", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "desktop", + "projectName": "desktop", + "results": [ + { + "workerIndex": 1, + "parallelIndex": 1, + "status": "passed", + "duration": 47958, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T08:18:41.499Z", + "annotations": [], + "attachments": [] + } + ], + "status": "expected" + } + ], + "id": "8b1bb1493a64c9fc3ab6-d223e249bc9a81f166b0", + "file": "game.spec.ts", + "line": 8, + "column": 1 + }, + { + "title": "intro WAV query URL의 404를 표시하고 같은 URL로 재시도·정답 mapping한다", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "desktop", + "projectName": "desktop", + "results": [ + { + "workerIndex": 2, + "parallelIndex": 0, + "status": "passed", + "duration": 17288, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T08:19:09.800Z", + "annotations": [], + "attachments": [] + } + ], + "status": "expected" + } + ], + "id": "8b1bb1493a64c9fc3ab6-ab45385409470bdf7ef2", + "file": "game.spec.ts", + "line": 130, + "column": 3 + }, + { + "title": "target WAV query URL의 404를 표시하고 같은 URL로 재시도·정답 mapping한다", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "desktop", + "projectName": "desktop", + "results": [ + { + "workerIndex": 2, + "parallelIndex": 0, + "status": "passed", + "duration": 16918, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T08:19:27.309Z", + "annotations": [], + "attachments": [] + } + ], + "status": "expected" + } + ], + "id": "8b1bb1493a64c9fc3ab6-52922f8228abc9f39bfe", + "file": "game.spec.ts", + "line": 130, + "column": 3 + }, + { + "title": "실제 오디오로 혼합 모드 완주·레이아웃·접근성·외부 요청 없음", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "mobile", + "projectName": "mobile", + "results": [ + { + "workerIndex": 5, + "parallelIndex": 0, + "status": "passed", + "duration": 42808, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T08:20:34.074Z", + "annotations": [], + "attachments": [] + } + ], + "status": "expected" + } + ], + "id": "8b1bb1493a64c9fc3ab6-e4766fea5c25788202a8", + "file": "game.spec.ts", + "line": 8, + "column": 1 + }, + { + "title": "intro WAV query URL의 404를 표시하고 같은 URL로 재시도·정답 mapping한다", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "mobile", + "projectName": "mobile", + "results": [ + { + "workerIndex": 6, + "parallelIndex": 1, + "status": "passed", + "duration": 17531, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T08:20:57.406Z", + "annotations": [], + "attachments": [] + } + ], + "status": "expected" + } + ], + "id": "8b1bb1493a64c9fc3ab6-84b7835dc149f0ebaeb2", + "file": "game.spec.ts", + "line": 130, + "column": 3 + }, + { + "title": "target WAV query URL의 404를 표시하고 같은 URL로 재시도·정답 mapping한다", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "mobile", + "projectName": "mobile", + "results": [ + { + "workerIndex": 6, + "parallelIndex": 1, + "status": "passed", + "duration": 17132, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T08:21:15.131Z", + "annotations": [], + "attachments": [] + } + ], + "status": "expected" + } + ], + "id": "8b1bb1493a64c9fc3ab6-05de2d3047fb33c59bd2", + "file": "game.spec.ts", + "line": 130, + "column": 3 + } + ] + }, + { + "title": "release.spec.ts", + "file": "release.spec.ts", + "column": 0, + "line": 0, + "specs": [ + { + "title": "릴리스는 사용자 크레딧과 런타임 MIT notice 전문을 제공한다", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "desktop", + "projectName": "desktop", + "results": [ + { + "workerIndex": 1, + "parallelIndex": 1, + "status": "passed", + "duration": 420, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T08:19:30.123Z", + "annotations": [], + "attachments": [] + } + ], + "status": "expected" + } + ], + "id": "7324964a6aa193ebd049-64d3eb3e631d5e3a7482", + "file": "release.spec.ts", + "line": 6, + "column": 1 + }, + { + "title": "누락 음성·환경음은 query와 HTML accept에도 404이고 출처 고지는 번들된다", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "desktop", + "projectName": "desktop", + "results": [ + { + "workerIndex": 1, + "parallelIndex": 1, + "status": "passed", + "duration": 29, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T08:19:30.577Z", + "annotations": [], + "attachments": [] + } + ], + "status": "expected" + } + ], + "id": "7324964a6aa193ebd049-a9a4a24641e1381cb656", + "file": "release.spec.ts", + "line": 24, + "column": 1 + }, + { + "title": "릴리스는 사용자 크레딧과 런타임 MIT notice 전문을 제공한다", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "mobile", + "projectName": "mobile", + "results": [ + { + "workerIndex": 5, + "parallelIndex": 0, + "status": "passed", + "duration": 289, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T08:21:17.169Z", + "annotations": [], + "attachments": [] + } + ], + "status": "expected" + } + ], + "id": "7324964a6aa193ebd049-b2bb581aa05f7bfc0a11", + "file": "release.spec.ts", + "line": 6, + "column": 1 + }, + { + "title": "누락 음성·환경음은 query와 HTML accept에도 404이고 출처 고지는 번들된다", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "mobile", + "projectName": "mobile", + "results": [ + { + "workerIndex": 5, + "parallelIndex": 0, + "status": "passed", + "duration": 17, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T08:21:17.482Z", + "annotations": [], + "attachments": [] + } + ], + "status": "expected" + } + ], + "id": "7324964a6aa193ebd049-87e393dee6d378b60b88", + "file": "release.spec.ts", + "line": 24, + "column": 1 + } + ] + }, + { + "title": "rounds.spec.ts", + "file": "rounds.spec.ts", + "column": 0, + "line": 0, + "specs": [ + { + "title": "시작 단계·SNR·3문항 완료→다음 단계·재생 중 종료·응답 후 종료·홈 초기화", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "desktop", + "projectName": "desktop", + "results": [ + { + "workerIndex": 1, + "parallelIndex": 1, + "status": "passed", + "duration": 60892, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T08:19:30.627Z", + "annotations": [], + "attachments": [ + { + "name": "runtime-audit", + "contentType": "application/json", + "body": "ewogICJlcnJvcnMiOiBbXSwKICAiZmFpbGVkIjogW10sCiAgImV4dGVybmFsIjogW10sCiAgImF1ZGlvIjogewogICAgInN0YXJ0cyI6IFsKICAgICAgewogICAgICAgICJsb29wIjogdHJ1ZSwKICAgICAgICAiZHVyYXRpb24iOiAxMgogICAgICB9LAogICAgICB7CiAgICAgICAgImxvb3AiOiBmYWxzZSwKICAgICAgICAiZHVyYXRpb24iOiA3LjA1NTk4NjM5NDU1NzgyMwogICAgICB9LAogICAgICB7CiAgICAgICAgImxvb3AiOiBmYWxzZSwKICAgICAgICAiZHVyYXRpb24iOiA4LjM3NTk4NjM5NDU1NzgyNAogICAgICB9LAogICAgICB7CiAgICAgICAgImxvb3AiOiB0cnVlLAogICAgICAgICJkdXJhdGlvbiI6IDEyCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAibG9vcCI6IGZhbHNlLAogICAgICAgICJkdXJhdGlvbiI6IDMuODg3OTgxODU5NDEwNDMwNwogICAgICB9LAogICAgICB7CiAgICAgICAgImxvb3AiOiB0cnVlLAogICAgICAgICJkdXJhdGlvbiI6IDEyCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAibG9vcCI6IGZhbHNlLAogICAgICAgICJkdXJhdGlvbiI6IDguMjU1OTg2Mzk0NTU3ODIzCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAibG9vcCI6IHRydWUsCiAgICAgICAgImR1cmF0aW9uIjogMTIKICAgICAgfSwKICAgICAgewogICAgICAgICJsb29wIjogZmFsc2UsCiAgICAgICAgImR1cmF0aW9uIjogNy4wNTU5ODYzOTQ1NTc4MjMKICAgICAgfSwKICAgICAgewogICAgICAgICJsb29wIjogZmFsc2UsCiAgICAgICAgImR1cmF0aW9uIjogOC4zOTk5NzczMjQyNjMwNAogICAgICB9LAogICAgICB7CiAgICAgICAgImxvb3AiOiB0cnVlLAogICAgICAgICJkdXJhdGlvbiI6IDEyCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAibG9vcCI6IGZhbHNlLAogICAgICAgICJkdXJhdGlvbiI6IDcuMDU1OTg2Mzk0NTU3ODIzCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAibG9vcCI6IGZhbHNlLAogICAgICAgICJkdXJhdGlvbiI6IDguODMxOTk1NDY0ODUyNjA3CiAgICAgIH0sCiAgICAgIHsKICAgICAgICAibG9vcCI6IHRydWUsCiAgICAgICAgImR1cmF0aW9uIjogMTIKICAgICAgfSwKICAgICAgewogICAgICAgICJsb29wIjogZmFsc2UsCiAgICAgICAgImR1cmF0aW9uIjogOC44MzE5OTU0NjQ4NTI2MDcKICAgICAgfQogICAgXSwKICAgICJzdG9wcyI6IDE1CiAgfQp9" + } + ] + } + ], + "status": "expected" + } + ], + "id": "5d80d20ef944a60dee29-84fa7dcc311fcc9f3abb", + "file": "rounds.spec.ts", + "line": 35, + "column": 1 + }, + { + "title": "여덟 환경의 실제 WAV를 각각 디코드하고 루프 재생한 뒤 즉시 정지한다", + "ok": false, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "desktop", + "projectName": "desktop", + "results": [ + { + "workerIndex": 2, + "parallelIndex": 0, + "status": "failed", + "duration": 9175, + "error": { + "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoEqual\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // deep equality\u001b[22m\n\n\u001b[32m- Expected - 1\u001b[39m\n\u001b[31m+ Received + 3\u001b[39m\n\n\u001b[2m Object {\u001b[22m\n\u001b[32m- \"errors\": Array [],\u001b[39m\n\u001b[31m+ \"errors\": Array [\u001b[39m\n\u001b[31m+ \"Failed to load resource: the server responded with a status of 404 (Not Found)\",\u001b[39m\n\u001b[31m+ ],\u001b[39m\n\u001b[2m \"external\": Array [],\u001b[22m\n\u001b[2m \"failed\": Array [],\u001b[22m\n\u001b[2m }\u001b[22m", + "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoEqual\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // deep equality\u001b[22m\n\n\u001b[32m- Expected - 1\u001b[39m\n\u001b[31m+ Received + 3\u001b[39m\n\n\u001b[2m Object {\u001b[22m\n\u001b[32m- \"errors\": Array [],\u001b[39m\n\u001b[31m+ \"errors\": Array [\u001b[39m\n\u001b[31m+ \"Failed to load resource: the server responded with a status of 404 (Not Found)\",\u001b[39m\n\u001b[31m+ ],\u001b[39m\n\u001b[2m \"external\": Array [],\u001b[22m\n\u001b[2m \"failed\": Array [],\u001b[22m\n\u001b[2m }\u001b[22m\n at /home/hermes/worktrees/find-word-v0.2.3/tests/browser/rounds.spec.ts:170:40", + "location": { + "file": "/home/hermes/worktrees/find-word-v0.2.3/tests/browser/rounds.spec.ts", + "column": 40, + "line": 170 + }, + "snippet": " 168 | expect(probe.stops).toBe(24);\n 169 | expect(requests).toEqual(ENVIRONMENTS.map((e) => `/ambience/${e.id}.wav`));\n> 170 | expect({ errors, failed, external }).toEqual({\n | ^\n 171 | errors: [],\n 172 | failed: [],\n 173 | external: []," + }, + "errors": [ + { + "location": { + "file": "/home/hermes/worktrees/find-word-v0.2.3/tests/browser/rounds.spec.ts", + "column": 40, + "line": 170 + }, + "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoEqual\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // deep equality\u001b[22m\n\n\u001b[32m- Expected - 1\u001b[39m\n\u001b[31m+ Received + 3\u001b[39m\n\n\u001b[2m Object {\u001b[22m\n\u001b[32m- \"errors\": Array [],\u001b[39m\n\u001b[31m+ \"errors\": Array [\u001b[39m\n\u001b[31m+ \"Failed to load resource: the server responded with a status of 404 (Not Found)\",\u001b[39m\n\u001b[31m+ ],\u001b[39m\n\u001b[2m \"external\": Array [],\u001b[22m\n\u001b[2m \"failed\": Array [],\u001b[22m\n\u001b[2m }\u001b[22m\n\n 168 | expect(probe.stops).toBe(24);\n 169 | expect(requests).toEqual(ENVIRONMENTS.map((e) => `/ambience/${e.id}.wav`));\n> 170 | expect({ errors, failed, external }).toEqual({\n | ^\n 171 | errors: [],\n 172 | failed: [],\n 173 | external: [],\n at /home/hermes/worktrees/find-word-v0.2.3/tests/browser/rounds.spec.ts:170:40" + } + ], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T08:19:44.275Z", + "annotations": [], + "attachments": [ + { + "name": "error-context", + "contentType": "text/markdown", + "path": "/home/hermes/worktrees/find-word-v0.2.3/test-results/rounds-여덟-환경의-실제-WAV를-각각-디코드하고-루프-재생한-뒤-즉시-정지한다-desktop/error-context.md" + }, + { + "name": "trace", + "contentType": "application/zip", + "path": "/home/hermes/worktrees/find-word-v0.2.3/test-results/rounds-여덟-환경의-실제-WAV를-각각-디코드하고-루프-재생한-뒤-즉시-정지한다-desktop/trace.zip" + } + ], + "errorLocation": { + "file": "/home/hermes/worktrees/find-word-v0.2.3/tests/browser/rounds.spec.ts", + "column": 40, + "line": 170 + } + } + ], + "status": "unexpected" + } + ], + "id": "5d80d20ef944a60dee29-67ee259e43d6a5758a4c", + "file": "rounds.spec.ts", + "line": 135, + "column": 1 + }, + { + "title": "환경음 404는 한국어 오류와 재시도 후 정상 답변으로 복구한다", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "desktop", + "projectName": "desktop", + "results": [ + { + "workerIndex": 3, + "parallelIndex": 0, + "status": "passed", + "duration": 17276, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T08:19:55.385Z", + "annotations": [], + "attachments": [] + } + ], + "status": "expected" + } + ], + "id": "5d80d20ef944a60dee29-b3270c20fde2468292dc", + "file": "rounds.spec.ts", + "line": 178, + "column": 1 + }, + { + "title": "시작 단계·SNR·3문항 완료→다음 단계·재생 중 종료·응답 후 종료·홈 초기화", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "mobile", + "projectName": "mobile", + "results": [ + { + "workerIndex": 5, + "parallelIndex": 0, + "status": "passed", + "duration": 63184, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T08:21:17.517Z", + "annotations": [], + "attachments": [ + { + "name": "runtime-audit", + "contentType": "application/json", + "body": "ewogICJlcnJvcnMiOiBbXSwKICAiZmFpbGVkIjogW10sCiAgImV4dGVybmFsIjogW10sCiAgImF1ZGlvIjogewogICAgInN0YXJ0cyI6IFsKICAgICAgewogICAgICAgICJsb29wIjogdHJ1ZSwKICAgICAgICAiZHVyYXRpb24iOiAxMgogICAgICB9LAogICAgICB7CiAgICAgICAgImxvb3AiOiBmYWxzZSwKICAgICAgICAiZHVyYXRpb24iOiA3LjA1NTk4NjM5NDU1NzgyMwogICAgICB9LAogICAgICB7CiAgICAgICAgImxvb3AiOiBmYWxzZSwKICAgICAgICAiZHVyYXRpb24iOiAzLjkxMTk5NTQ2NDg1MjYwNzYKICAgICAgfSwKICAgICAgewogICAgICAgICJsb29wIjogdHJ1ZSwKICAgICAgICAiZHVyYXRpb24iOiAxMgogICAgICB9LAogICAgICB7CiAgICAgICAgImxvb3AiOiBmYWxzZSwKICAgICAgICAiZHVyYXRpb24iOiA4LjQ3MTk5NTQ2NDg1MjYwOAogICAgICB9LAogICAgICB7CiAgICAgICAgImxvb3AiOiB0cnVlLAogICAgICAgICJkdXJhdGlvbiI6IDEyCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAibG9vcCI6IGZhbHNlLAogICAgICAgICJkdXJhdGlvbiI6IDcuMzkxOTk1NDY0ODUyNjA4CiAgICAgIH0sCiAgICAgIHsKICAgICAgICAibG9vcCI6IHRydWUsCiAgICAgICAgImR1cmF0aW9uIjogMTIKICAgICAgfSwKICAgICAgewogICAgICAgICJsb29wIjogZmFsc2UsCiAgICAgICAgImR1cmF0aW9uIjogNy4wNTU5ODYzOTQ1NTc4MjMKICAgICAgfSwKICAgICAgewogICAgICAgICJsb29wIjogZmFsc2UsCiAgICAgICAgImR1cmF0aW9uIjogMy45ODM5OTA5Mjk3MDUyMTU0CiAgICAgIH0sCiAgICAgIHsKICAgICAgICAibG9vcCI6IHRydWUsCiAgICAgICAgImR1cmF0aW9uIjogMTIKICAgICAgfSwKICAgICAgewogICAgICAgICJsb29wIjogZmFsc2UsCiAgICAgICAgImR1cmF0aW9uIjogNy4wNTU5ODYzOTQ1NTc4MjMKICAgICAgfSwKICAgICAgewogICAgICAgICJsb29wIjogZmFsc2UsCiAgICAgICAgImR1cmF0aW9uIjogMTAuODcxOTk1NDY0ODUyNjA4CiAgICAgIH0sCiAgICAgIHsKICAgICAgICAibG9vcCI6IHRydWUsCiAgICAgICAgImR1cmF0aW9uIjogMTIKICAgICAgfSwKICAgICAgewogICAgICAgICJsb29wIjogZmFsc2UsCiAgICAgICAgImR1cmF0aW9uIjogMTAuODcxOTk1NDY0ODUyNjA4CiAgICAgIH0KICAgIF0sCiAgICAic3RvcHMiOiAxNQogIH0KfQ==" + } + ] + } + ], + "status": "expected" + } + ], + "id": "5d80d20ef944a60dee29-13a6d49b3ccf87a3e87d", + "file": "rounds.spec.ts", + "line": 35, + "column": 1 + }, + { + "title": "여덟 환경의 실제 WAV를 각각 디코드하고 루프 재생한 뒤 즉시 정지한다", + "ok": false, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "mobile", + "projectName": "mobile", + "results": [ + { + "workerIndex": 6, + "parallelIndex": 1, + "status": "failed", + "duration": 6738, + "error": { + "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoEqual\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // deep equality\u001b[22m\n\n\u001b[32m- Expected - 1\u001b[39m\n\u001b[31m+ Received + 3\u001b[39m\n\n\u001b[2m Object {\u001b[22m\n\u001b[32m- \"errors\": Array [],\u001b[39m\n\u001b[31m+ \"errors\": Array [\u001b[39m\n\u001b[31m+ \"Failed to load resource: the server responded with a status of 404 (Not Found)\",\u001b[39m\n\u001b[31m+ ],\u001b[39m\n\u001b[2m \"external\": Array [],\u001b[22m\n\u001b[2m \"failed\": Array [],\u001b[22m\n\u001b[2m }\u001b[22m", + "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoEqual\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // deep equality\u001b[22m\n\n\u001b[32m- Expected - 1\u001b[39m\n\u001b[31m+ Received + 3\u001b[39m\n\n\u001b[2m Object {\u001b[22m\n\u001b[32m- \"errors\": Array [],\u001b[39m\n\u001b[31m+ \"errors\": Array [\u001b[39m\n\u001b[31m+ \"Failed to load resource: the server responded with a status of 404 (Not Found)\",\u001b[39m\n\u001b[31m+ ],\u001b[39m\n\u001b[2m \"external\": Array [],\u001b[22m\n\u001b[2m \"failed\": Array [],\u001b[22m\n\u001b[2m }\u001b[22m\n at /home/hermes/worktrees/find-word-v0.2.3/tests/browser/rounds.spec.ts:170:40", + "location": { + "file": "/home/hermes/worktrees/find-word-v0.2.3/tests/browser/rounds.spec.ts", + "column": 40, + "line": 170 + }, + "snippet": " 168 | expect(probe.stops).toBe(24);\n 169 | expect(requests).toEqual(ENVIRONMENTS.map((e) => `/ambience/${e.id}.wav`));\n> 170 | expect({ errors, failed, external }).toEqual({\n | ^\n 171 | errors: [],\n 172 | failed: [],\n 173 | external: []," + }, + "errors": [ + { + "location": { + "file": "/home/hermes/worktrees/find-word-v0.2.3/tests/browser/rounds.spec.ts", + "column": 40, + "line": 170 + }, + "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoEqual\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // deep equality\u001b[22m\n\n\u001b[32m- Expected - 1\u001b[39m\n\u001b[31m+ Received + 3\u001b[39m\n\n\u001b[2m Object {\u001b[22m\n\u001b[32m- \"errors\": Array [],\u001b[39m\n\u001b[31m+ \"errors\": Array [\u001b[39m\n\u001b[31m+ \"Failed to load resource: the server responded with a status of 404 (Not Found)\",\u001b[39m\n\u001b[31m+ ],\u001b[39m\n\u001b[2m \"external\": Array [],\u001b[22m\n\u001b[2m \"failed\": Array [],\u001b[22m\n\u001b[2m }\u001b[22m\n\n 168 | expect(probe.stops).toBe(24);\n 169 | expect(requests).toEqual(ENVIRONMENTS.map((e) => `/ambience/${e.id}.wav`));\n> 170 | expect({ errors, failed, external }).toEqual({\n | ^\n 171 | errors: [],\n 172 | failed: [],\n 173 | external: [],\n at /home/hermes/worktrees/find-word-v0.2.3/tests/browser/rounds.spec.ts:170:40" + } + ], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T08:21:32.301Z", + "annotations": [], + "attachments": [ + { + "name": "error-context", + "contentType": "text/markdown", + "path": "/home/hermes/worktrees/find-word-v0.2.3/test-results/rounds-여덟-환경의-실제-WAV를-각각-디코드하고-루프-재생한-뒤-즉시-정지한다-mobile/error-context.md" + }, + { + "name": "trace", + "contentType": "application/zip", + "path": "/home/hermes/worktrees/find-word-v0.2.3/test-results/rounds-여덟-환경의-실제-WAV를-각각-디코드하고-루프-재생한-뒤-즉시-정지한다-mobile/trace.zip" + } + ], + "errorLocation": { + "file": "/home/hermes/worktrees/find-word-v0.2.3/tests/browser/rounds.spec.ts", + "column": 40, + "line": 170 + } + } + ], + "status": "unexpected" + } + ], + "id": "5d80d20ef944a60dee29-986d947b51ae90d63e40", + "file": "rounds.spec.ts", + "line": 135, + "column": 1 + }, + { + "title": "환경음 404는 한국어 오류와 재시도 후 정상 답변으로 복구한다", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "mobile", + "projectName": "mobile", + "results": [ + { + "workerIndex": 7, + "parallelIndex": 1, + "status": "passed", + "duration": 15645, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T08:21:40.140Z", + "annotations": [], + "attachments": [] + } + ], + "status": "expected" + } + ], + "id": "5d80d20ef944a60dee29-cf677d38ab55c08f0ba0", + "file": "rounds.spec.ts", + "line": 178, + "column": 1 + } + ] + }, + { + "title": "ui.spec.ts", + "file": "ui.spec.ts", + "column": 0, + "line": 0, + "specs": [ + { + "title": "전체 음량은 설정 흐름 안에 들어가며 키보드로 조절된다", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "desktop", + "projectName": "desktop", + "results": [ + { + "workerIndex": 3, + "parallelIndex": 0, + "status": "passed", + "duration": 1376, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T08:20:12.943Z", + "annotations": [], + "attachments": [] + } + ], + "status": "expected" + } + ], + "id": "d425444c687fa36b5882-2f651fec20696a7afab2", + "file": "ui.spec.ts", + "line": 4, + "column": 1 + }, + { + "title": "난이도 설명은 모바일에서도 보인다", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "desktop", + "projectName": "desktop", + "results": [ + { + "workerIndex": 3, + "parallelIndex": 0, + "status": "passed", + "duration": 1043, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T08:20:14.341Z", + "annotations": [], + "attachments": [] + } + ], + "status": "expected" + } + ], + "id": "d425444c687fa36b5882-7db7ff839d8655c45b58", + "file": "ui.spec.ts", + "line": 52, + "column": 1 + }, + { + "title": "한국어 제목은 단어 중간에서 줄바꿈하지 않는다", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "desktop", + "projectName": "desktop", + "results": [ + { + "workerIndex": 3, + "parallelIndex": 0, + "status": "passed", + "duration": 17545, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T08:20:15.409Z", + "annotations": [], + "attachments": [] + } + ], + "status": "expected" + } + ], + "id": "d425444c687fa36b5882-7518419f9a74847f1877", + "file": "ui.spec.ts", + "line": 68, + "column": 1 + }, + { + "title": "시작 단계와 SNR 설정은 카드 안에 들어가고 터치 영역을 확보한다", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "desktop", + "projectName": "desktop", + "results": [ + { + "workerIndex": 1, + "parallelIndex": 1, + "status": "passed", + "duration": 737, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T08:20:31.555Z", + "annotations": [], + "attachments": [] + } + ], + "status": "expected" + } + ], + "id": "d425444c687fa36b5882-8c65d4cc796bafc3d050", + "file": "ui.spec.ts", + "line": 121, + "column": 1 + }, + { + "title": "전체 음량은 설정 흐름 안에 들어가며 키보드로 조절된다", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "mobile", + "projectName": "mobile", + "results": [ + { + "workerIndex": 7, + "parallelIndex": 1, + "status": "passed", + "duration": 877, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T08:21:55.999Z", + "annotations": [], + "attachments": [] + } + ], + "status": "expected" + } + ], + "id": "d425444c687fa36b5882-42b32cae06f88c5571de", + "file": "ui.spec.ts", + "line": 4, + "column": 1 + }, + { + "title": "난이도 설명은 모바일에서도 보인다", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "mobile", + "projectName": "mobile", + "results": [ + { + "workerIndex": 7, + "parallelIndex": 1, + "status": "passed", + "duration": 588, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T08:21:56.893Z", + "annotations": [], + "attachments": [] + } + ], + "status": "expected" + } + ], + "id": "d425444c687fa36b5882-9bad02fda46134f05a95", + "file": "ui.spec.ts", + "line": 52, + "column": 1 + }, + { + "title": "한국어 제목은 단어 중간에서 줄바꿈하지 않는다", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "mobile", + "projectName": "mobile", + "results": [ + { + "workerIndex": 7, + "parallelIndex": 1, + "status": "passed", + "duration": 17118, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T08:21:57.499Z", + "annotations": [], + "attachments": [] + } + ], + "status": "expected" + } + ], + "id": "d425444c687fa36b5882-6ac401056de90e7e3757", + "file": "ui.spec.ts", + "line": 68, + "column": 1 + }, + { + "title": "시작 단계와 SNR 설정은 카드 안에 들어가고 터치 영역을 확보한다", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "mobile", + "projectName": "mobile", + "results": [ + { + "workerIndex": 7, + "parallelIndex": 1, + "status": "passed", + "duration": 319, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T08:22:14.634Z", + "annotations": [], + "attachments": [] + } + ], + "status": "expected" + } + ], + "id": "d425444c687fa36b5882-c761fe2d98a1c83f2536", + "file": "ui.spec.ts", + "line": 121, + "column": 1 + } + ] + } + ], + "errors": [], + "stats": { + "startTime": "2026-10-14T08:18:36.344Z", + "duration": 224479.539, + "expected": 22, + "skipped": 0, + "unexpected": 4, + "flaky": 0 + } +} \ No newline at end of file diff --git a/.agent/evidence-v0.2.3/browser-results.json b/.agent/evidence-v0.2.3/browser-results.json new file mode 100644 index 0000000..fbd587e --- /dev/null +++ b/.agent/evidence-v0.2.3/browser-results.json @@ -0,0 +1,1108 @@ +{ + "config": { + "argv": [ + "/home/hermes/.hermes/node/bin/node", + "/home/hermes/worktrees/find-word-v0.2.3/node_modules/.bin/playwright", + "test", + "--reporter=list,json" + ], + "configFile": "/home/hermes/worktrees/find-word-v0.2.3/playwright.config.ts", + "rootDir": "/home/hermes/worktrees/find-word-v0.2.3/tests/browser", + "failOnFlakyTests": false, + "forbidOnly": false, + "fullyParallel": true, + "globalSetup": null, + "globalTeardown": null, + "globalTimeout": 0, + "grep": {}, + "grepInvert": null, + "maxFailures": 0, + "metadata": { + "actualWorkers": 2 + }, + "preserveOutput": "always", + "projects": [ + { + "outputDir": "/home/hermes/worktrees/find-word-v0.2.3/test-results", + "repeatEach": 1, + "retries": 0, + "metadata": { + "actualWorkers": 2 + }, + "id": "desktop", + "name": "desktop", + "testDir": "/home/hermes/worktrees/find-word-v0.2.3/tests/browser", + "testIgnore": [], + "testMatch": [ + "**/*.@(spec|test).?(c|m)[jt]s?(x)" + ], + "timeout": 120000 + }, + { + "outputDir": "/home/hermes/worktrees/find-word-v0.2.3/test-results", + "repeatEach": 1, + "retries": 0, + "metadata": { + "actualWorkers": 2 + }, + "id": "mobile", + "name": "mobile", + "testDir": "/home/hermes/worktrees/find-word-v0.2.3/tests/browser", + "testIgnore": [], + "testMatch": [ + "**/*.@(spec|test).?(c|m)[jt]s?(x)" + ], + "timeout": 120000 + } + ], + "filteredProjects": [ + { + "grep": {}, + "grepInvert": null, + "outputDir": "/home/hermes/worktrees/find-word-v0.2.3/test-results", + "repeatEach": 1, + "retries": 0, + "metadata": { + "actualWorkers": 2 + }, + "name": "desktop", + "testDir": "/home/hermes/worktrees/find-word-v0.2.3/tests/browser", + "snapshotDir": "/home/hermes/worktrees/find-word-v0.2.3/tests/browser", + "testIgnore": [], + "testMatch": "**/*.@(spec|test).?(c|m)[jt]s?(x)", + "timeout": 120000, + "use": { + "baseURL": "http://127.0.0.1:4173", + "launchOptions": { + "executablePath": "/usr/bin/google-chrome", + "chromiumSandbox": true + }, + "trace": "retain-on-failure", + "viewport": { + "width": 1280, + "height": 1000 + } + }, + "dependencies": [], + "ignoreSnapshots": false, + "__projectId": "desktop" + }, + { + "grep": {}, + "grepInvert": null, + "outputDir": "/home/hermes/worktrees/find-word-v0.2.3/test-results", + "repeatEach": 1, + "retries": 0, + "metadata": { + "actualWorkers": 2 + }, + "name": "mobile", + "testDir": "/home/hermes/worktrees/find-word-v0.2.3/tests/browser", + "snapshotDir": "/home/hermes/worktrees/find-word-v0.2.3/tests/browser", + "testIgnore": [], + "testMatch": "**/*.@(spec|test).?(c|m)[jt]s?(x)", + "timeout": 120000, + "use": { + "baseURL": "http://127.0.0.1:4173", + "launchOptions": { + "executablePath": "/usr/bin/google-chrome", + "chromiumSandbox": true + }, + "trace": "retain-on-failure", + "viewport": { + "width": 360, + "height": 800 + }, + "isMobile": true, + "hasTouch": true + }, + "dependencies": [], + "ignoreSnapshots": false, + "__projectId": "mobile" + } + ], + "quiet": false, + "reporter": [ + [ + "list" + ], + [ + "json" + ] + ], + "reportSlowTests": { + "max": 5, + "threshold": 300000 + }, + "shard": null, + "tags": [], + "updateSnapshots": "default", + "updateSourceMethod": "patch", + "version": "1.64.0", + "workers": 2, + "webServer": { + "command": "npm run preview -- --port 4173 --strictPort", + "url": "http://127.0.0.1:4173", + "reuseExistingServer": false + } + }, + "suites": [ + { + "title": "audio.spec.ts", + "file": "audio.spec.ts", + "column": 0, + "line": 0, + "specs": [ + { + "title": "음성·현장음 109개 versioned WAV를 실제 Chrome에서 해시·디코드 검증한다", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "desktop", + "projectName": "desktop", + "results": [ + { + "workerIndex": 0, + "parallelIndex": 0, + "status": "passed", + "duration": 17416, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T08:31:20.328Z", + "annotations": [], + "attachments": [ + { + "name": "109 versioned WAV integrity", + "contentType": "application/json", + "path": "/home/hermes/worktrees/find-word-v0.2.3/test-results/audio-음성·현장음-109개-versioned-WAV를-실제-Chrome에서-해시·디코드-검증한다-desktop/attachments/109-versioned-WAV-integrity-98f1bc1771365d9d73535333c01b23f76edd83cf.json" + } + ] + } + ], + "status": "expected" + } + ], + "id": "87be2dcdb54c25970a35-d93130048b0c80dc4106", + "file": "audio.spec.ts", + "line": 7, + "column": 1 + }, + { + "title": "음성·현장음 109개 versioned WAV를 실제 Chrome에서 해시·디코드 검증한다", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "mobile", + "projectName": "mobile", + "results": [ + { + "workerIndex": 2, + "parallelIndex": 0, + "status": "passed", + "duration": 18718, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T08:32:57.597Z", + "annotations": [], + "attachments": [ + { + "name": "109 versioned WAV integrity", + "contentType": "application/json", + "path": "/home/hermes/worktrees/find-word-v0.2.3/test-results/audio-음성·현장음-109개-versioned-WAV를-실제-Chrome에서-해시·디코드-검증한다-mobile/attachments/109-versioned-WAV-integrity-389b3e3886eba0cb50cc2e9b5b3e82dd10d72a86.json" + } + ] + } + ], + "status": "expected" + } + ], + "id": "87be2dcdb54c25970a35-9f9914a49e88a65e211e", + "file": "audio.spec.ts", + "line": 7, + "column": 1 + } + ] + }, + { + "title": "game.spec.ts", + "file": "game.spec.ts", + "column": 0, + "line": 0, + "specs": [ + { + "title": "실제 오디오로 혼합 모드 완주·레이아웃·접근성·외부 요청 없음", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "desktop", + "projectName": "desktop", + "results": [ + { + "workerIndex": 1, + "parallelIndex": 1, + "status": "passed", + "duration": 43353, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T08:31:20.405Z", + "annotations": [], + "attachments": [] + } + ], + "status": "expected" + } + ], + "id": "8b1bb1493a64c9fc3ab6-d223e249bc9a81f166b0", + "file": "game.spec.ts", + "line": 8, + "column": 1 + }, + { + "title": "intro WAV query URL의 404를 표시하고 같은 URL로 재시도·정답 mapping한다", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "desktop", + "projectName": "desktop", + "results": [ + { + "workerIndex": 0, + "parallelIndex": 0, + "status": "passed", + "duration": 19630, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T08:31:38.030Z", + "annotations": [], + "attachments": [] + } + ], + "status": "expected" + } + ], + "id": "8b1bb1493a64c9fc3ab6-ab45385409470bdf7ef2", + "file": "game.spec.ts", + "line": 130, + "column": 3 + }, + { + "title": "target WAV query URL의 404를 표시하고 같은 URL로 재시도·정답 mapping한다", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "desktop", + "projectName": "desktop", + "results": [ + { + "workerIndex": 0, + "parallelIndex": 0, + "status": "passed", + "duration": 17279, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T08:31:57.682Z", + "annotations": [], + "attachments": [] + } + ], + "status": "expected" + } + ], + "id": "8b1bb1493a64c9fc3ab6-52922f8228abc9f39bfe", + "file": "game.spec.ts", + "line": 130, + "column": 3 + }, + { + "title": "실제 오디오로 혼합 모드 완주·레이아웃·접근성·외부 요청 없음", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "mobile", + "projectName": "mobile", + "results": [ + { + "workerIndex": 3, + "parallelIndex": 1, + "status": "passed", + "duration": 38499, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T08:33:06.570Z", + "annotations": [], + "attachments": [] + } + ], + "status": "expected" + } + ], + "id": "8b1bb1493a64c9fc3ab6-e4766fea5c25788202a8", + "file": "game.spec.ts", + "line": 8, + "column": 1 + }, + { + "title": "intro WAV query URL의 404를 표시하고 같은 URL로 재시도·정답 mapping한다", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "mobile", + "projectName": "mobile", + "results": [ + { + "workerIndex": 2, + "parallelIndex": 0, + "status": "passed", + "duration": 16296, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T08:33:16.643Z", + "annotations": [], + "attachments": [] + } + ], + "status": "expected" + } + ], + "id": "8b1bb1493a64c9fc3ab6-84b7835dc149f0ebaeb2", + "file": "game.spec.ts", + "line": 130, + "column": 3 + }, + { + "title": "target WAV query URL의 404를 표시하고 같은 URL로 재시도·정답 mapping한다", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "mobile", + "projectName": "mobile", + "results": [ + { + "workerIndex": 2, + "parallelIndex": 0, + "status": "passed", + "duration": 13481, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T08:33:32.962Z", + "annotations": [], + "attachments": [] + } + ], + "status": "expected" + } + ], + "id": "8b1bb1493a64c9fc3ab6-05de2d3047fb33c59bd2", + "file": "game.spec.ts", + "line": 130, + "column": 3 + } + ] + }, + { + "title": "release.spec.ts", + "file": "release.spec.ts", + "column": 0, + "line": 0, + "specs": [ + { + "title": "릴리스는 사용자 크레딧과 런타임 MIT notice 전문을 제공한다", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "desktop", + "projectName": "desktop", + "results": [ + { + "workerIndex": 1, + "parallelIndex": 1, + "status": "passed", + "duration": 432, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T08:32:04.114Z", + "annotations": [], + "attachments": [] + } + ], + "status": "expected" + } + ], + "id": "7324964a6aa193ebd049-64d3eb3e631d5e3a7482", + "file": "release.spec.ts", + "line": 6, + "column": 1 + }, + { + "title": "누락 음성·환경음은 query와 HTML accept에도 404이고 출처 고지는 번들된다", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "desktop", + "projectName": "desktop", + "results": [ + { + "workerIndex": 1, + "parallelIndex": 1, + "status": "passed", + "duration": 23, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T08:32:04.567Z", + "annotations": [], + "attachments": [] + } + ], + "status": "expected" + } + ], + "id": "7324964a6aa193ebd049-a9a4a24641e1381cb656", + "file": "release.spec.ts", + "line": 24, + "column": 1 + }, + { + "title": "릴리스는 사용자 크레딧과 런타임 MIT notice 전문을 제공한다", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "mobile", + "projectName": "mobile", + "results": [ + { + "workerIndex": 3, + "parallelIndex": 1, + "status": "passed", + "duration": 306, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T08:33:45.257Z", + "annotations": [], + "attachments": [] + } + ], + "status": "expected" + } + ], + "id": "7324964a6aa193ebd049-b2bb581aa05f7bfc0a11", + "file": "release.spec.ts", + "line": 6, + "column": 1 + }, + { + "title": "누락 음성·환경음은 query와 HTML accept에도 404이고 출처 고지는 번들된다", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "mobile", + "projectName": "mobile", + "results": [ + { + "workerIndex": 3, + "parallelIndex": 1, + "status": "passed", + "duration": 19, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T08:33:45.577Z", + "annotations": [], + "attachments": [] + } + ], + "status": "expected" + } + ], + "id": "7324964a6aa193ebd049-87e393dee6d378b60b88", + "file": "release.spec.ts", + "line": 24, + "column": 1 + } + ] + }, + { + "title": "rounds.spec.ts", + "file": "rounds.spec.ts", + "column": 0, + "line": 0, + "specs": [ + { + "title": "시작 단계·SNR·3문항 완료→다음 단계·재생 중 종료·응답 후 종료·홈 초기화", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "desktop", + "projectName": "desktop", + "results": [ + { + "workerIndex": 1, + "parallelIndex": 1, + "status": "passed", + "duration": 61363, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T08:32:04.613Z", + "annotations": [], + "attachments": [ + { + "name": "runtime-audit", + "contentType": "application/json", + "body": "ewogICJlcnJvcnMiOiBbXSwKICAiZmFpbGVkIjogW10sCiAgImV4dGVybmFsIjogW10sCiAgImF1ZGlvIjogewogICAgInN0YXJ0cyI6IFsKICAgICAgewogICAgICAgICJsb29wIjogdHJ1ZSwKICAgICAgICAiZHVyYXRpb24iOiAxMgogICAgICB9LAogICAgICB7CiAgICAgICAgImxvb3AiOiBmYWxzZSwKICAgICAgICAiZHVyYXRpb24iOiA3LjA1NTk4NjM5NDU1NzgyMwogICAgICB9LAogICAgICB7CiAgICAgICAgImxvb3AiOiBmYWxzZSwKICAgICAgICAiZHVyYXRpb24iOiA1LjA2Mzk5MDkyOTcwNTIxNTUKICAgICAgfSwKICAgICAgewogICAgICAgICJsb29wIjogdHJ1ZSwKICAgICAgICAiZHVyYXRpb24iOiAxMgogICAgICB9LAogICAgICB7CiAgICAgICAgImxvb3AiOiBmYWxzZSwKICAgICAgICAiZHVyYXRpb24iOiA4LjQ0Nzk4MTg1OTQxMDQzMQogICAgICB9LAogICAgICB7CiAgICAgICAgImxvb3AiOiB0cnVlLAogICAgICAgICJkdXJhdGlvbiI6IDEyCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAibG9vcCI6IGZhbHNlLAogICAgICAgICJkdXJhdGlvbiI6IDEwLjg5NTk4NjM5NDU1NzgyMwogICAgICB9LAogICAgICB7CiAgICAgICAgImxvb3AiOiB0cnVlLAogICAgICAgICJkdXJhdGlvbiI6IDEyCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAibG9vcCI6IGZhbHNlLAogICAgICAgICJkdXJhdGlvbiI6IDcuMDU1OTg2Mzk0NTU3ODIzCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAibG9vcCI6IGZhbHNlLAogICAgICAgICJkdXJhdGlvbiI6IDguMjU1OTg2Mzk0NTU3ODIzCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAibG9vcCI6IHRydWUsCiAgICAgICAgImR1cmF0aW9uIjogMTIKICAgICAgfSwKICAgICAgewogICAgICAgICJsb29wIjogZmFsc2UsCiAgICAgICAgImR1cmF0aW9uIjogNy4wNTU5ODYzOTQ1NTc4MjMKICAgICAgfSwKICAgICAgewogICAgICAgICJsb29wIjogZmFsc2UsCiAgICAgICAgImR1cmF0aW9uIjogNy4yMjM5OTA5Mjk3MDUyMTYKICAgICAgfSwKICAgICAgewogICAgICAgICJsb29wIjogdHJ1ZSwKICAgICAgICAiZHVyYXRpb24iOiAxMgogICAgICB9LAogICAgICB7CiAgICAgICAgImxvb3AiOiBmYWxzZSwKICAgICAgICAiZHVyYXRpb24iOiA3LjIyMzk5MDkyOTcwNTIxNgogICAgICB9CiAgICBdLAogICAgInN0b3BzIjogMTUKICB9Cn0=" + } + ] + } + ], + "status": "expected" + } + ], + "id": "5d80d20ef944a60dee29-84fa7dcc311fcc9f3abb", + "file": "rounds.spec.ts", + "line": 35, + "column": 1 + }, + { + "title": "여덟 환경의 실제 WAV를 각각 디코드하고 루프 재생한 뒤 즉시 정지한다", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "desktop", + "projectName": "desktop", + "results": [ + { + "workerIndex": 0, + "parallelIndex": 0, + "status": "passed", + "duration": 8485, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T08:32:14.999Z", + "annotations": [], + "attachments": [] + } + ], + "status": "expected" + } + ], + "id": "5d80d20ef944a60dee29-67ee259e43d6a5758a4c", + "file": "rounds.spec.ts", + "line": 135, + "column": 1 + }, + { + "title": "환경음 404는 한국어 오류와 재시도 후 정상 답변으로 복구한다", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "desktop", + "projectName": "desktop", + "results": [ + { + "workerIndex": 0, + "parallelIndex": 0, + "status": "passed", + "duration": 12715, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T08:32:23.509Z", + "annotations": [], + "attachments": [] + } + ], + "status": "expected" + } + ], + "id": "5d80d20ef944a60dee29-b3270c20fde2468292dc", + "file": "rounds.spec.ts", + "line": 178, + "column": 1 + }, + { + "title": "시작 단계·SNR·3문항 완료→다음 단계·재생 중 종료·응답 후 종료·홈 초기화", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "mobile", + "projectName": "mobile", + "results": [ + { + "workerIndex": 3, + "parallelIndex": 1, + "status": "passed", + "duration": 68890, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T08:33:45.622Z", + "annotations": [], + "attachments": [ + { + "name": "runtime-audit", + "contentType": "application/json", + "body": "ewogICJlcnJvcnMiOiBbXSwKICAiZmFpbGVkIjogW10sCiAgImV4dGVybmFsIjogW10sCiAgImF1ZGlvIjogewogICAgInN0YXJ0cyI6IFsKICAgICAgewogICAgICAgICJsb29wIjogdHJ1ZSwKICAgICAgICAiZHVyYXRpb24iOiAxMgogICAgICB9LAogICAgICB7CiAgICAgICAgImxvb3AiOiBmYWxzZSwKICAgICAgICAiZHVyYXRpb24iOiA3LjA1NTk4NjM5NDU1NzgyMwogICAgICB9LAogICAgICB7CiAgICAgICAgImxvb3AiOiBmYWxzZSwKICAgICAgICAiZHVyYXRpb24iOiA3LjIKICAgICAgfSwKICAgICAgewogICAgICAgICJsb29wIjogdHJ1ZSwKICAgICAgICAiZHVyYXRpb24iOiAxMgogICAgICB9LAogICAgICB7CiAgICAgICAgImxvb3AiOiBmYWxzZSwKICAgICAgICAiZHVyYXRpb24iOiA4LjM1MTk5NTQ2NDg1MjYwOAogICAgICB9LAogICAgICB7CiAgICAgICAgImxvb3AiOiB0cnVlLAogICAgICAgICJkdXJhdGlvbiI6IDEyCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAibG9vcCI6IGZhbHNlLAogICAgICAgICJkdXJhdGlvbiI6IDEwLjY3OTk3NzMyNDI2MzAzOQogICAgICB9LAogICAgICB7CiAgICAgICAgImxvb3AiOiB0cnVlLAogICAgICAgICJkdXJhdGlvbiI6IDEyCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAibG9vcCI6IGZhbHNlLAogICAgICAgICJkdXJhdGlvbiI6IDcuMDU1OTg2Mzk0NTU3ODIzCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAibG9vcCI6IGZhbHNlLAogICAgICAgICJkdXJhdGlvbiI6IDQuOTE5OTc3MzI0MjYzMDM5CiAgICAgIH0sCiAgICAgIHsKICAgICAgICAibG9vcCI6IHRydWUsCiAgICAgICAgImR1cmF0aW9uIjogMTIKICAgICAgfSwKICAgICAgewogICAgICAgICJsb29wIjogZmFsc2UsCiAgICAgICAgImR1cmF0aW9uIjogNy4wNTU5ODYzOTQ1NTc4MjMKICAgICAgfSwKICAgICAgewogICAgICAgICJsb29wIjogZmFsc2UsCiAgICAgICAgImR1cmF0aW9uIjogMTAuODcxOTk1NDY0ODUyNjA4CiAgICAgIH0sCiAgICAgIHsKICAgICAgICAibG9vcCI6IHRydWUsCiAgICAgICAgImR1cmF0aW9uIjogMTIKICAgICAgfSwKICAgICAgewogICAgICAgICJsb29wIjogZmFsc2UsCiAgICAgICAgImR1cmF0aW9uIjogMTAuODcxOTk1NDY0ODUyNjA4CiAgICAgIH0KICAgIF0sCiAgICAic3RvcHMiOiAxNQogIH0KfQ==" + } + ] + } + ], + "status": "expected" + } + ], + "id": "5d80d20ef944a60dee29-13a6d49b3ccf87a3e87d", + "file": "rounds.spec.ts", + "line": 35, + "column": 1 + }, + { + "title": "여덟 환경의 실제 WAV를 각각 디코드하고 루프 재생한 뒤 즉시 정지한다", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "mobile", + "projectName": "mobile", + "results": [ + { + "workerIndex": 2, + "parallelIndex": 0, + "status": "passed", + "duration": 6492, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T08:33:46.472Z", + "annotations": [], + "attachments": [] + } + ], + "status": "expected" + } + ], + "id": "5d80d20ef944a60dee29-986d947b51ae90d63e40", + "file": "rounds.spec.ts", + "line": 135, + "column": 1 + }, + { + "title": "환경음 404는 한국어 오류와 재시도 후 정상 답변으로 복구한다", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "mobile", + "projectName": "mobile", + "results": [ + { + "workerIndex": 2, + "parallelIndex": 0, + "status": "passed", + "duration": 13386, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T08:33:52.987Z", + "annotations": [], + "attachments": [] + } + ], + "status": "expected" + } + ], + "id": "5d80d20ef944a60dee29-cf677d38ab55c08f0ba0", + "file": "rounds.spec.ts", + "line": 178, + "column": 1 + } + ] + }, + { + "title": "ui.spec.ts", + "file": "ui.spec.ts", + "column": 0, + "line": 0, + "specs": [ + { + "title": "전체 음량은 설정 흐름 안에 들어가며 키보드로 조절된다", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "desktop", + "projectName": "desktop", + "results": [ + { + "workerIndex": 0, + "parallelIndex": 0, + "status": "passed", + "duration": 1471, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T08:32:36.266Z", + "annotations": [], + "attachments": [] + } + ], + "status": "expected" + } + ], + "id": "d425444c687fa36b5882-2f651fec20696a7afab2", + "file": "ui.spec.ts", + "line": 4, + "column": 1 + }, + { + "title": "난이도 설명은 모바일에서도 보인다", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "desktop", + "projectName": "desktop", + "results": [ + { + "workerIndex": 0, + "parallelIndex": 0, + "status": "passed", + "duration": 1077, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T08:32:37.759Z", + "annotations": [], + "attachments": [] + } + ], + "status": "expected" + } + ], + "id": "d425444c687fa36b5882-7db7ff839d8655c45b58", + "file": "ui.spec.ts", + "line": 52, + "column": 1 + }, + { + "title": "한국어 제목은 단어 중간에서 줄바꿈하지 않는다", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "desktop", + "projectName": "desktop", + "results": [ + { + "workerIndex": 0, + "parallelIndex": 0, + "status": "passed", + "duration": 17375, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T08:32:38.866Z", + "annotations": [], + "attachments": [] + } + ], + "status": "expected" + } + ], + "id": "d425444c687fa36b5882-7518419f9a74847f1877", + "file": "ui.spec.ts", + "line": 68, + "column": 1 + }, + { + "title": "시작 단계와 SNR 설정은 카드 안에 들어가고 터치 영역을 확보한다", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "desktop", + "projectName": "desktop", + "results": [ + { + "workerIndex": 0, + "parallelIndex": 0, + "status": "passed", + "duration": 497, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T08:32:56.267Z", + "annotations": [], + "attachments": [] + } + ], + "status": "expected" + } + ], + "id": "d425444c687fa36b5882-8c65d4cc796bafc3d050", + "file": "ui.spec.ts", + "line": 121, + "column": 1 + }, + { + "title": "전체 음량은 설정 흐름 안에 들어가며 키보드로 조절된다", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "mobile", + "projectName": "mobile", + "results": [ + { + "workerIndex": 2, + "parallelIndex": 0, + "status": "passed", + "duration": 780, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T08:34:06.427Z", + "annotations": [], + "attachments": [] + } + ], + "status": "expected" + } + ], + "id": "d425444c687fa36b5882-42b32cae06f88c5571de", + "file": "ui.spec.ts", + "line": 4, + "column": 1 + }, + { + "title": "난이도 설명은 모바일에서도 보인다", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "mobile", + "projectName": "mobile", + "results": [ + { + "workerIndex": 2, + "parallelIndex": 0, + "status": "passed", + "duration": 614, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T08:34:07.223Z", + "annotations": [], + "attachments": [] + } + ], + "status": "expected" + } + ], + "id": "d425444c687fa36b5882-9bad02fda46134f05a95", + "file": "ui.spec.ts", + "line": 52, + "column": 1 + }, + { + "title": "한국어 제목은 단어 중간에서 줄바꿈하지 않는다", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "mobile", + "projectName": "mobile", + "results": [ + { + "workerIndex": 2, + "parallelIndex": 0, + "status": "passed", + "duration": 17029, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T08:34:07.856Z", + "annotations": [], + "attachments": [] + } + ], + "status": "expected" + } + ], + "id": "d425444c687fa36b5882-6ac401056de90e7e3757", + "file": "ui.spec.ts", + "line": 68, + "column": 1 + }, + { + "title": "시작 단계와 SNR 설정은 카드 안에 들어가고 터치 영역을 확보한다", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "mobile", + "projectName": "mobile", + "results": [ + { + "workerIndex": 2, + "parallelIndex": 0, + "status": "passed", + "duration": 336, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T08:34:24.901Z", + "annotations": [], + "attachments": [] + } + ], + "status": "expected" + } + ], + "id": "d425444c687fa36b5882-c761fe2d98a1c83f2536", + "file": "ui.spec.ts", + "line": 121, + "column": 1 + } + ] + } + ], + "errors": [], + "stats": { + "startTime": "2026-10-14T08:31:19.289Z", + "duration": 215398.902, + "expected": 26, + "skipped": 0, + "unexpected": 0, + "flaky": 0 + } +} \ No newline at end of file diff --git a/.agent/evidence-v0.2.3/browser/desktop-audio-integrity.json b/.agent/evidence-v0.2.3/browser/desktop-audio-integrity.json new file mode 100644 index 0000000..2d4d5ea --- /dev/null +++ b/.agent/evidence-v0.2.3/browser/desktop-audio-integrity.json @@ -0,0 +1,1098 @@ +{ + "chrome": "146.0.7680.80", + "external": [], + "errors": [], + "failed": [], + "files": [ + { + "url": "http://127.0.0.1:4173/audio/intro.wav?v=0.2.3", + "sha256": "90d9f46e6e3f9c8a0c1a781096df54d7809ef4ad38b289508ef7b8c0411465ce", + "bytes": 338732, + "sampleRate": 24000, + "channels": 1, + "duration": 7.056, + "rms": 0.10000144992850359, + "peak": 0.4998626708984375 + }, + { + "url": "http://127.0.0.1:4173/ambience/street.wav?v=0.2.3", + "sha256": "a8bffa201b174618955bc51b860167169125304811aabe2086b0bb35b06c3ae1", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.07999880181401388, + "peak": 0.3967711329460144 + }, + { + "url": "http://127.0.0.1:4173/ambience/mall.wav?v=0.2.3", + "sha256": "6e9171f549cacadfaeedd57a41c8e2a76b0e789f5c9a97af029a8d3558c9f145", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.07999878530235176, + "peak": 0.5546875 + }, + { + "url": "http://127.0.0.1:4173/ambience/theater.wav?v=0.2.3", + "sha256": "2d6a444fb7874cdf6b2d8a741a69175299b112eb66834912c025437d8277d635", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.07999878601263052, + "peak": 0.495086669921875 + }, + { + "url": "http://127.0.0.1:4173/ambience/department.wav?v=0.2.3", + "sha256": "aa43f3d1d3e7c2b1f8ace24ecbda45d0ea3a031db941c39506dc6c1665b8efa7", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.07999879026023995, + "peak": 0.4749900698661804 + }, + { + "url": "http://127.0.0.1:4173/ambience/market.wav?v=0.2.3", + "sha256": "4287e971a12767f70da714e0c1aff30125268f9c3faf07ebfbcc0d2904f4a312", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.049222823565976834, + "peak": 0.8499755859375 + }, + { + "url": "http://127.0.0.1:4173/ambience/subway.wav?v=0.2.3", + "sha256": "9faf70b68617d267b367a0f3692ed90015458543ab4b0844f6c704e6a724728f", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.079998775670051, + "peak": 0.42530596256256104 + }, + { + "url": "http://127.0.0.1:4173/ambience/cafe.wav?v=0.2.3", + "sha256": "8db06f3f09bbd8409573ba4874c7ccdd1e7e825c8a61989a4efe66206a66c2d2", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.07999881107742599, + "peak": 0.3971068561077118 + }, + { + "url": "http://127.0.0.1:4173/ambience/rain.wav?v=0.2.3", + "sha256": "f4315084e820f742b0709de5bb0d1abd3d5af1730620e08c2948b70347356dd9", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.011384798571746246, + "peak": 0.1024169921875 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-apple.wav?v=0.2.3", + "sha256": "cb7da4e9a1288cac64d168b241f27d7d2bc2dfecace58744f9bbf2792dfad04e", + "bytes": 397484, + "sampleRate": 24000, + "channels": 1, + "duration": 8.28, + "rms": 0.10000142448574952, + "peak": 0.6414685249328613 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-market.wav?v=0.2.3", + "sha256": "b8d25b867497adcd0fe7c8b6a8a8d2e7a52965956738a83e53f58735708773f9", + "bytes": 405548, + "sampleRate": 24000, + "channels": 1, + "duration": 8.448, + "rms": 0.10000141405173993, + "peak": 0.491485595703125 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-sound.wav?v=0.2.3", + "sha256": "34e4d9758d2ed448646fda364610e34779c84794403d9051ab3d8c1d33e2c80c", + "bytes": 184364, + "sampleRate": 24000, + "channels": 1, + "duration": 3.84, + "rms": 0.10000138709171018, + "peak": 0.386322021484375 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-furniture.wav?v=0.2.3", + "sha256": "b45b1afc8d9b534ff3e0a2a2ecb99efc1f4e40d41f89f55c4ed8ba94ad6d76d4", + "bytes": 354860, + "sampleRate": 24000, + "channels": 1, + "duration": 7.392, + "rms": 0.1000015072973225, + "peak": 0.5576171875 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-market.wav?v=0.2.3", + "sha256": "cefa0e95649ea6bd1df4c8dfccd2b74b4f4c028714420ce1087b61db2f2a8d47", + "bytes": 248876, + "sampleRate": 24000, + "channels": 1, + "duration": 5.184, + "rms": 0.10000142548167161, + "peak": 0.4857020676136017 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-oil.wav?v=0.2.3", + "sha256": "f6eff0cdddcad9790351491e60c53cb2a70d222033a583652f2de0b8cd6abcc7", + "bytes": 406700, + "sampleRate": 24000, + "channels": 1, + "duration": 8.472, + "rms": 0.10000139122025363, + "peak": 0.470794677734375 + }, + { + "url": "http://127.0.0.1:4173/audio/first-hat.wav?v=0.2.3", + "sha256": "17c8cde90567e7574b0c0702663bd70713054089ee920241b5444d9b7869eef5", + "bytes": 357164, + "sampleRate": 24000, + "channels": 1, + "duration": 7.44, + "rms": 0.10000152904790521, + "peak": 0.5312662124633789 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-furniture.wav?v=0.2.3", + "sha256": "af82e03b686635c3356e706fe5b05c1231aeaaeab33f275aa5b8714988c65d43", + "bytes": 241964, + "sampleRate": 24000, + "channels": 1, + "duration": 5.04, + "rms": 0.10000137346142077, + "peak": 0.4852443039417267 + }, + { + "url": "http://127.0.0.1:4173/audio/password-sound.wav?v=0.2.3", + "sha256": "044aafff08a19e39f21e58b963644715a987cd155896998769ef8e9ce6449628", + "bytes": 236204, + "sampleRate": 24000, + "channels": 1, + "duration": 4.92, + "rms": 0.10000156641621728, + "peak": 0.4621112644672394 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-hat.wav?v=0.2.3", + "sha256": "f9f98c91cfbcfcb106eef7d5d3795a9cf3c3aab7e19a60f13d7dffe284d19f86", + "bytes": 398636, + "sampleRate": 24000, + "channels": 1, + "duration": 8.304, + "rms": 0.10000141071544869, + "peak": 0.470977783203125 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-apple.wav?v=0.2.3", + "sha256": "7c8f413f4b7e164f090e508ba090448f1376c6012649bbb6a917d45851313883", + "bytes": 188972, + "sampleRate": 24000, + "channels": 1, + "duration": 3.936, + "rms": 0.10000130469939268, + "peak": 0.401641845703125 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-sea.wav?v=0.2.3", + "sha256": "db2f235bee26ac804b5362e8e013b8f40c8da24fd3a34e0fb3b43c6d264feb36", + "bytes": 382508, + "sampleRate": 24000, + "channels": 1, + "duration": 7.968, + "rms": 0.10000145042993039, + "peak": 0.6843470335006714 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-furniture.wav?v=0.2.3", + "sha256": "442bdcb956f120c270e1f321feae0415c897de0183e468980fcc119b898b2a67", + "bytes": 403244, + "sampleRate": 24000, + "channels": 1, + "duration": 8.4, + "rms": 0.10000149119200713, + "peak": 0.5619068145751953 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-sea.wav?v=0.2.3", + "sha256": "b6dbe0af143ea775f05bd59a3d6af348bcc770ab378ac91ea75a56e06c326edf", + "bytes": 346796, + "sampleRate": 24000, + "channels": 1, + "duration": 7.224, + "rms": 0.10000144532868623, + "peak": 0.56494140625 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-sound.wav?v=0.2.3", + "sha256": "e9d636ff7f4777f38b1ff15bebdcec6fbde95b4b4b05625a7415b4cfa0025b59", + "bytes": 395180, + "sampleRate": 24000, + "channels": 1, + "duration": 8.232, + "rms": 0.10000164955559301, + "peak": 0.6114688515663147 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-apple.wav?v=0.2.3", + "sha256": "3ef42e276ff3500c3e197d149f29f79d6a0c1d5516ed1d5a2c57210333fded9c", + "bytes": 246572, + "sampleRate": 24000, + "channels": 1, + "duration": 5.136, + "rms": 0.10000144279302126, + "peak": 0.4701681435108185 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-market.wav?v=0.2.3", + "sha256": "356af25332bf2000ed349671f3ff39767929e1f4599af622c021f907d11fb7bf", + "bytes": 194732, + "sampleRate": 24000, + "channels": 1, + "duration": 4.056, + "rms": 0.10000132629820717, + "peak": 0.4022216796875 + }, + { + "url": "http://127.0.0.1:4173/audio/message-sea.wav?v=0.2.3", + "sha256": "28a461fbe03bffe2560030dea8b60715f7c0fe262dcf85b5b7f7daf483836382", + "bytes": 517292, + "sampleRate": 24000, + "channels": 1, + "duration": 10.776, + "rms": 0.10000130584401576, + "peak": 0.53521728515625 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-umbrella.wav?v=0.2.3", + "sha256": "c8988e604ba05d52597e561389541e8f9cda86e052279f1862bbf8399ead314e", + "bytes": 403244, + "sampleRate": 24000, + "channels": 1, + "duration": 8.4, + "rms": 0.10000148262660476, + "peak": 0.557830810546875 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-hat.wav?v=0.2.3", + "sha256": "308278ec2bd27d4224976a55632d1f7fa1edabb0792126d9d858a699c287aee4", + "bytes": 245420, + "sampleRate": 24000, + "channels": 1, + "duration": 5.112, + "rms": 0.10000140702099906, + "peak": 0.4498428404331207 + }, + { + "url": "http://127.0.0.1:4173/audio/password-furniture.wav?v=0.2.3", + "sha256": "fb2b631dd4e12120d08a84cce6450f9cd9cd68105d13d7001d808e7deaa1df4a", + "bytes": 233900, + "sampleRate": 24000, + "channels": 1, + "duration": 4.872, + "rms": 0.10000146718546903, + "peak": 0.4836573302745819 + }, + { + "url": "http://127.0.0.1:4173/audio/first-market.wav?v=0.2.3", + "sha256": "1e00b8f70a796cdebb0feb00c605fece7488b06915e6e036f54206f05e201e0c", + "bytes": 359468, + "sampleRate": 24000, + "channels": 1, + "duration": 7.488, + "rms": 0.10000152633991319, + "peak": 0.6390880942344666 + }, + { + "url": "http://127.0.0.1:4173/audio/first-meat.wav?v=0.2.3", + "sha256": "f51a37c1722fef581f7d642a4dcae7fcb9953b3c318dce971bf616cd1a81fecc", + "bytes": 345644, + "sampleRate": 24000, + "channels": 1, + "duration": 7.2, + "rms": 0.10000152244411063, + "peak": 0.5131382346153259 + }, + { + "url": "http://127.0.0.1:4173/audio/password-sea.wav?v=0.2.3", + "sha256": "03f45b8cb5b3dc72faf5c6e3d0e2a10cea6b60301ea400d0a4453596d2f0b337", + "bytes": 232748, + "sampleRate": 24000, + "channels": 1, + "duration": 4.848, + "rms": 0.10000144821976133, + "peak": 0.5339213013648987 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-sound.wav?v=0.2.3", + "sha256": "98387ccc7aab566f6487d4c250b2128082cc527e013a6f7b7bc4d0266ac295df", + "bytes": 394028, + "sampleRate": 24000, + "channels": 1, + "duration": 8.208, + "rms": 0.10000158053850364, + "peak": 0.5377971529960632 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-umbrella.wav?v=0.2.3", + "sha256": "5e59ef39113c3d5e106862356d715f4cef2862ef8ee02654a97e532675c1ac6d", + "bytes": 410156, + "sampleRate": 24000, + "channels": 1, + "duration": 8.544, + "rms": 0.10000147499132286, + "peak": 0.6748558282852173 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-hat.wav?v=0.2.3", + "sha256": "b01ef9762ac84e3eb757243bc9286c62f7d45444a821ae35ac36a8b095e1598a", + "bytes": 353708, + "sampleRate": 24000, + "channels": 1, + "duration": 7.368, + "rms": 0.10000153089787694, + "peak": 0.555206298828125 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-market.wav?v=0.2.3", + "sha256": "d89792da51c83ac49d27e55aa6d822a338899a5ee487b34b552748201e1522f6", + "bytes": 398636, + "sampleRate": 24000, + "channels": 1, + "duration": 8.304, + "rms": 0.10000149710778367, + "peak": 0.5728324055671692 + }, + { + "url": "http://127.0.0.1:4173/audio/password-umbrella.wav?v=0.2.3", + "sha256": "ab3ca6398c879971dc793eb25b472fcc0db72d76e386f11ef4d32c639f37c69d", + "bytes": 239660, + "sampleRate": 24000, + "channels": 1, + "duration": 4.992, + "rms": 0.100001426973271, + "peak": 0.4776757061481476 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-meat.wav?v=0.2.3", + "sha256": "48e91b3932d3798e852041a854b3ee08c72127e092c62083a47af6b99adff241", + "bytes": 403244, + "sampleRate": 24000, + "channels": 1, + "duration": 8.4, + "rms": 0.10000140336390047, + "peak": 0.481536865234375 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-hat.wav?v=0.2.3", + "sha256": "6e089a42fd7e65e82eec7186d369c926fb7fdac794365b2bd7658822fd92437c", + "bytes": 396332, + "sampleRate": 24000, + "channels": 1, + "duration": 8.256, + "rms": 0.1000015662548192, + "peak": 0.616748571395874 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-sound.wav?v=0.2.3", + "sha256": "4d00aa6114327f450a00dacbc7e7b572ebf1de4ce9dc2fe4b5505766cca71ce9", + "bytes": 353708, + "sampleRate": 24000, + "channels": 1, + "duration": 7.368, + "rms": 0.10000162019345048, + "peak": 0.5348368883132935 + }, + { + "url": "http://127.0.0.1:4173/audio/last-oil.wav?v=0.2.3", + "sha256": "b5ce34950b8b31b1baf6ce55410797f0d8aa5478a670d6eace87cf76d134d6d3", + "bytes": 337580, + "sampleRate": 24000, + "channels": 1, + "duration": 7.032, + "rms": 0.10000149980584365, + "peak": 0.55706787109375 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-sea.wav?v=0.2.3", + "sha256": "47aa31d757c9fb49c9b53a1c052d90a5ced4be57549d649850d9b48f8864045b", + "bytes": 191276, + "sampleRate": 24000, + "channels": 1, + "duration": 3.984, + "rms": 0.10000129182106483, + "peak": 0.388702392578125 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-sound.wav?v=0.2.3", + "sha256": "659eb0e2b06e6b165b46744769743e032e2282519f8486c57bc45e0f7d07a069", + "bytes": 240812, + "sampleRate": 24000, + "channels": 1, + "duration": 5.016, + "rms": 0.10000152909529536, + "peak": 0.45481735467910767 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-meat.wav?v=0.2.3", + "sha256": "6599d2fac73ea616a793151b4ce6f51af673988d630bac6219a77e78ae6cb34e", + "bytes": 380204, + "sampleRate": 24000, + "channels": 1, + "duration": 7.92, + "rms": 0.1000016061190976, + "peak": 0.5921201109886169 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-market.wav?v=0.2.3", + "sha256": "c855b449e0d4ace74681bfe68e5e7f0b063568827ae872017234dbe8ae119e4c", + "bytes": 356012, + "sampleRate": 24000, + "channels": 1, + "duration": 7.416, + "rms": 0.10000151456676445, + "peak": 0.5949888825416565 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-furniture.wav?v=0.2.3", + "sha256": "bf84dc6cff1f227924a3a62158d2fc18769fb0ca40b91418fa19e534dbf92f00", + "bytes": 397484, + "sampleRate": 24000, + "channels": 1, + "duration": 8.28, + "rms": 0.10000155255948041, + "peak": 0.6670430898666382 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-sound.wav?v=0.2.3", + "sha256": "5a603bc69979603afddcaeb6edf500a7c540b72405daeb33f5335d746b327da1", + "bytes": 397484, + "sampleRate": 24000, + "channels": 1, + "duration": 8.28, + "rms": 0.10000146491234768, + "peak": 0.469268798828125 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-meat.wav?v=0.2.3", + "sha256": "9183ef90b64f5ceaf3bb0178c689231ff3e9981d6ce889124a15f2a6e2b7a344", + "bytes": 395180, + "sampleRate": 24000, + "channels": 1, + "duration": 8.232, + "rms": 0.10000155087122137, + "peak": 0.5193029642105103 + }, + { + "url": "http://127.0.0.1:4173/audio/last-sound.wav?v=0.2.3", + "sha256": "ec9c49802aebeb6a8b898a1c0d8ad1daa127d2d64c905c197ed49a8e0c4eb64a", + "bytes": 354860, + "sampleRate": 24000, + "channels": 1, + "duration": 7.392, + "rms": 0.10000165748716579, + "peak": 0.5641041398048401 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-oil.wav?v=0.2.3", + "sha256": "5fb63e04520c312aa6b7b48b70c2f7c140b5ab480e5c6992edbc2ba85b9a06e7", + "bytes": 241964, + "sampleRate": 24000, + "channels": 1, + "duration": 5.04, + "rms": 0.10000143720418167, + "peak": 0.443586528301239 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-umbrella.wav?v=0.2.3", + "sha256": "92b54f04884ab915783945077efd8f3bd443849a1720f72168b6348cae1f8e85", + "bytes": 406700, + "sampleRate": 24000, + "channels": 1, + "duration": 8.472, + "rms": 0.10000140257790288, + "peak": 0.479034423828125 + }, + { + "url": "http://127.0.0.1:4173/audio/message-sound.wav?v=0.2.3", + "sha256": "1e682147dae8026ba78dc8f256c7f24acb3a6743bfd88a0fcc86096930eef078", + "bytes": 521900, + "sampleRate": 24000, + "channels": 1, + "duration": 10.872, + "rms": 0.10000138583471241, + "peak": 0.51953125 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-apple.wav?v=0.2.3", + "sha256": "ccd7327a3fb54d3320d049ffdced3bc17595861cee69429c0ee97182d454195b", + "bytes": 402092, + "sampleRate": 24000, + "channels": 1, + "duration": 8.376, + "rms": 0.10000140667715379, + "peak": 0.490325927734375 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-sea.wav?v=0.2.3", + "sha256": "5c91a36496e274d2be9c6fa8d9b506cd04f2a1b7ceb05ed1b7bb03fe7fca99d9", + "bytes": 399788, + "sampleRate": 24000, + "channels": 1, + "duration": 8.328, + "rms": 0.10000144241513113, + "peak": 0.5465559959411621 + }, + { + "url": "http://127.0.0.1:4173/audio/message-hat.wav?v=0.2.3", + "sha256": "5a713a8522b231bb8276805c014b385b9150b79f58ff2618446607e2b442495e", + "bytes": 518444, + "sampleRate": 24000, + "channels": 1, + "duration": 10.8, + "rms": 0.10000136927555209, + "peak": 0.587005615234375 + }, + { + "url": "http://127.0.0.1:4173/audio/password-meat.wav?v=0.2.3", + "sha256": "b009caadd56350d6a641ff17f0973e2b2724c183e1f45ae0bf3c483e237fa99e", + "bytes": 240812, + "sampleRate": 24000, + "channels": 1, + "duration": 5.016, + "rms": 0.10000148386024335, + "peak": 0.4978789687156677 + }, + { + "url": "http://127.0.0.1:4173/audio/message-market.wav?v=0.2.3", + "sha256": "9242d4cd6e0030e6b073e4d2360f84aa8a454d1749711cdb2d64c14f28a7ea20", + "bytes": 523052, + "sampleRate": 24000, + "channels": 1, + "duration": 10.896, + "rms": 0.10000133805787564, + "peak": 0.534820556640625 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-apple.wav?v=0.2.3", + "sha256": "8832f1b793ab3eedbe663875ea8dbeabb122c329bd5879437c71230b0418c3c8", + "bytes": 360620, + "sampleRate": 24000, + "channels": 1, + "duration": 7.512, + "rms": 0.10000145024648589, + "peak": 0.553558349609375 + }, + { + "url": "http://127.0.0.1:4173/audio/last-umbrella.wav?v=0.2.3", + "sha256": "c801293a34013a8d93d3289a2cc87cd3eed83f97ba4647f5060efa00b117a9ad", + "bytes": 370988, + "sampleRate": 24000, + "channels": 1, + "duration": 7.728, + "rms": 0.10000149360501835, + "peak": 0.59765625 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-sea.wav?v=0.2.3", + "sha256": "9233431d78ab4b144e3c33ad0cf0d49fc0fb91b29514343230ba32987b794bb3", + "bytes": 398636, + "sampleRate": 24000, + "channels": 1, + "duration": 8.304, + "rms": 0.10000134688905045, + "peak": 0.49616992473602295 + }, + { + "url": "http://127.0.0.1:4173/audio/password-apple.wav?v=0.2.3", + "sha256": "b6f5de3fe571fe3a7fdb722fe49250bcfeedef49475271e0ec76a7630907edd5", + "bytes": 235052, + "sampleRate": 24000, + "channels": 1, + "duration": 4.896, + "rms": 0.10000148212193387, + "peak": 0.4834437072277069 + }, + { + "url": "http://127.0.0.1:4173/audio/first-furniture.wav?v=0.2.3", + "sha256": "29f007b385b7182db1d8aeccad4fc3c260df5e66e14e52a46b0ef0fcd0ff3a0a", + "bytes": 364076, + "sampleRate": 24000, + "channels": 1, + "duration": 7.584, + "rms": 0.1000014551820741, + "peak": 0.5700552463531494 + }, + { + "url": "http://127.0.0.1:4173/audio/password-hat.wav?v=0.2.3", + "sha256": "e91bfc97df90a1675b6cd856880ac15c54de32cfc3b23603bdd1c2c5ac3ce6b8", + "bytes": 235052, + "sampleRate": 24000, + "channels": 1, + "duration": 4.896, + "rms": 0.10000146155157119, + "peak": 0.5059053301811218 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-oil.wav?v=0.2.3", + "sha256": "7a6b122b11c07da86c95fb78e2db2a70681b5219c63d6441fe56da1979ac1dc3", + "bytes": 334124, + "sampleRate": 24000, + "channels": 1, + "duration": 6.96, + "rms": 0.1000014880654183, + "peak": 0.539933443069458 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-meat.wav?v=0.2.3", + "sha256": "d416107cc05e7c5b92ca27100a10a8a9689de913346179945d5542de4a6bac0c", + "bytes": 342188, + "sampleRate": 24000, + "channels": 1, + "duration": 7.128, + "rms": 0.10000157422522808, + "peak": 0.510833740234375 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-apple.wav?v=0.2.3", + "sha256": "1bf2aef9a9f030af1a8fd7dee8f44aa420a397b3ba99b575feeb3dc7a63ec191", + "bytes": 395180, + "sampleRate": 24000, + "channels": 1, + "duration": 8.232, + "rms": 0.10000148399213096, + "peak": 0.563568115234375 + }, + { + "url": "http://127.0.0.1:4173/audio/first-oil.wav?v=0.2.3", + "sha256": "f415195e0cfc7ee711d09de7519e88eab62cc8b58d70772c83c3f5c27c267819", + "bytes": 335276, + "sampleRate": 24000, + "channels": 1, + "duration": 6.984, + "rms": 0.10000145886808136, + "peak": 0.5347453355789185 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-hat.wav?v=0.2.3", + "sha256": "31a6a4270bf368cda419094d87a303ac3cd5c22539786cb165f8044b0b8e9d6e", + "bytes": 402092, + "sampleRate": 24000, + "channels": 1, + "duration": 8.376, + "rms": 0.10000145804818952, + "peak": 0.541778564453125 + }, + { + "url": "http://127.0.0.1:4173/audio/message-furniture.wav?v=0.2.3", + "sha256": "26c331b7e12311236f4bb48f88918dfbf53cccd2f50b55741ea6ff4473e71dd8", + "bytes": 521900, + "sampleRate": 24000, + "channels": 1, + "duration": 10.872, + "rms": 0.10000134596838128, + "peak": 0.529327392578125 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-oil.wav?v=0.2.3", + "sha256": "3fa1e662a3af8f2726b17b2baa5bec2934406e6595ebc243c8380dd16e190977", + "bytes": 190124, + "sampleRate": 24000, + "channels": 1, + "duration": 3.96, + "rms": 0.10000134375667624, + "peak": 0.3817255198955536 + }, + { + "url": "http://127.0.0.1:4173/audio/last-sea.wav?v=0.2.3", + "sha256": "f755452e1da44674aa1df7d12edffa988091b89a394e7eb6d4a00eb721f07cbf", + "bytes": 345644, + "sampleRate": 24000, + "channels": 1, + "duration": 7.2, + "rms": 0.10000140162255576, + "peak": 0.591033935546875 + }, + { + "url": "http://127.0.0.1:4173/audio/password-oil.wav?v=0.2.3", + "sha256": "b472957b27ff98ea7b8894fa1ff12653f7e9f66f77870faa9e52a1c1bf116c41", + "bytes": 240812, + "sampleRate": 24000, + "channels": 1, + "duration": 5.016, + "rms": 0.10000146772662066, + "peak": 0.4945219159126282 + }, + { + "url": "http://127.0.0.1:4173/audio/first-umbrella.wav?v=0.2.3", + "sha256": "878e0bd2e6e4105f175aef51a028f6b141f3a2072be20f783193f3ba897a3ee0", + "bytes": 366380, + "sampleRate": 24000, + "channels": 1, + "duration": 7.632, + "rms": 0.10000147647908036, + "peak": 0.5700247287750244 + }, + { + "url": "http://127.0.0.1:4173/audio/last-apple.wav?v=0.2.3", + "sha256": "4cb2a8579fa3a7b91bb36363826ce8ca0d6d86e96e16a479e226a2802edd82f7", + "bytes": 356012, + "sampleRate": 24000, + "channels": 1, + "duration": 7.416, + "rms": 0.10000144523423521, + "peak": 0.622528076171875 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-market.wav?v=0.2.3", + "sha256": "68a5b899115a66ab225d610ec47b4de56cc8793657362bc38f533c06f741e4cc", + "bytes": 402092, + "sampleRate": 24000, + "channels": 1, + "duration": 8.376, + "rms": 0.10000160159844854, + "peak": 0.6822717785835266 + }, + { + "url": "http://127.0.0.1:4173/audio/message-oil.wav?v=0.2.3", + "sha256": "a2a71a7e5e07c81871a25c6cb7540c39aa0b32fc44f78cda66b5f34ace98d805", + "bytes": 509228, + "sampleRate": 24000, + "channels": 1, + "duration": 10.608, + "rms": 0.10000135184106136, + "peak": 0.51812744140625 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-meat.wav?v=0.2.3", + "sha256": "d36dfc395a5c53fbfa4abe9980db7bb59adfdac59e40318c4aca365365e3f2ab", + "bytes": 187820, + "sampleRate": 24000, + "channels": 1, + "duration": 3.912, + "rms": 0.1000013329979738, + "peak": 0.371124267578125 + }, + { + "url": "http://127.0.0.1:4173/audio/password-market.wav?v=0.2.3", + "sha256": "02e325fb753ef7a3ee585a03d2ca2aa3f1fbc58523b062222ae1136eeed7a95c", + "bytes": 230444, + "sampleRate": 24000, + "channels": 1, + "duration": 4.8, + "rms": 0.10000151520861549, + "peak": 0.48170414566993713 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-hat.wav?v=0.2.3", + "sha256": "4ff43dd042f4b5451e9fdeb3edd59f1e389a7d1dd488094587a3a9fc7dfffa44", + "bytes": 191276, + "sampleRate": 24000, + "channels": 1, + "duration": 3.984, + "rms": 0.10000132502946775, + "peak": 0.417083740234375 + }, + { + "url": "http://127.0.0.1:4173/audio/last-market.wav?v=0.2.3", + "sha256": "7857e87e9dbfe8fe849cc0b18c1d45b60916cb337328099c7a87a42c82e2821e", + "bytes": 359468, + "sampleRate": 24000, + "channels": 1, + "duration": 7.488, + "rms": 0.10000148064140717, + "peak": 0.600555419921875 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-meat.wav?v=0.2.3", + "sha256": "94f8a4f9e116a787e5ed052661d6de9ecf3ad8629db476661dd59ad03014b0c9", + "bytes": 244268, + "sampleRate": 24000, + "channels": 1, + "duration": 5.088, + "rms": 0.10000146176253134, + "peak": 0.44187748432159424 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-oil.wav?v=0.2.3", + "sha256": "55b2c7d6aa8bbce04edf8661882c9781da81c57f56217f99b80457a3bb895da0", + "bytes": 369836, + "sampleRate": 24000, + "channels": 1, + "duration": 7.704, + "rms": 0.10000146897241707, + "peak": 0.6239814162254333 + }, + { + "url": "http://127.0.0.1:4173/audio/first-sound.wav?v=0.2.3", + "sha256": "46f6adeed928a16af0700f1e8626cf8049f124632a04a5d10604426fb06f9596", + "bytes": 353708, + "sampleRate": 24000, + "channels": 1, + "duration": 7.368, + "rms": 0.10000157588418972, + "peak": 0.5189672708511353 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-umbrella.wav?v=0.2.3", + "sha256": "4b4c858a25659540f9dbc524664496fc6de61ab8c1627f3cfee8c9c744e11d5b", + "bytes": 247724, + "sampleRate": 24000, + "channels": 1, + "duration": 5.16, + "rms": 0.10000144286672341, + "peak": 0.46534621715545654 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-oil.wav?v=0.2.3", + "sha256": "3ca98682ff06d1d6b8af02c0fd5b2124f42266ac989884223eff4a9bbde1287a", + "bytes": 399788, + "sampleRate": 24000, + "channels": 1, + "duration": 8.328, + "rms": 0.10000149133669024, + "peak": 0.5243995189666748 + }, + { + "url": "http://127.0.0.1:4173/audio/first-sea.wav?v=0.2.3", + "sha256": "0f0b39314c5f7d7168d4854003c0c284e7bc3438cdc4d1d1c5adab7cb5ed30e5", + "bytes": 349100, + "sampleRate": 24000, + "channels": 1, + "duration": 7.272, + "rms": 0.10000142148394393, + "peak": 0.5717948079109192 + }, + { + "url": "http://127.0.0.1:4173/audio/last-meat.wav?v=0.2.3", + "sha256": "10f8ad4259ed8945c9da831e80b3902303c09caef96d400298599168fb1efed4", + "bytes": 346796, + "sampleRate": 24000, + "channels": 1, + "duration": 7.224, + "rms": 0.10000155834091913, + "peak": 0.537200927734375 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-umbrella.wav?v=0.2.3", + "sha256": "399ea2f681f755918f1117c8baba42739ceca64b307b999342f457a9235050b6", + "bytes": 368684, + "sampleRate": 24000, + "channels": 1, + "duration": 7.68, + "rms": 0.10000155028684544, + "peak": 0.569549560546875 + }, + { + "url": "http://127.0.0.1:4173/audio/message-meat.wav?v=0.2.3", + "sha256": "ce19735df079b54c171e775b6b365385a80160b9033442abab95b2b9c8505e1a", + "bytes": 512684, + "sampleRate": 24000, + "channels": 1, + "duration": 10.68, + "rms": 0.10000140834686953, + "peak": 0.5147705078125 + }, + { + "url": "http://127.0.0.1:4173/audio/message-umbrella.wav?v=0.2.3", + "sha256": "41d5866dae66600df4694a8312b531571d44cece6dba0e423e7c43d09d184819", + "bytes": 523052, + "sampleRate": 24000, + "channels": 1, + "duration": 10.896, + "rms": 0.10000120668553683, + "peak": 0.530364990234375 + }, + { + "url": "http://127.0.0.1:4173/audio/last-furniture.wav?v=0.2.3", + "sha256": "5ad4f776e35439d408abed0e66567d6b5cdc80fc54d579165472e474f1238776", + "bytes": 357164, + "sampleRate": 24000, + "channels": 1, + "duration": 7.44, + "rms": 0.10000152394963031, + "peak": 0.583587646484375 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-sea.wav?v=0.2.3", + "sha256": "8838d6a1ee8a790427dc5aa761e70b3d8872af62086efeed743297ff7f8b8a06", + "bytes": 243116, + "sampleRate": 24000, + "channels": 1, + "duration": 5.064, + "rms": 0.10000138788281714, + "peak": 0.45013427734375 + }, + { + "url": "http://127.0.0.1:4173/audio/message-apple.wav?v=0.2.3", + "sha256": "d85e6f47d871369f00de2274139e5ad6b4b5686b5e20e248df0ed6b9a320d942", + "bytes": 517292, + "sampleRate": 24000, + "channels": 1, + "duration": 10.776, + "rms": 0.10000133916854889, + "peak": 0.525360107421875 + }, + { + "url": "http://127.0.0.1:4173/audio/last-hat.wav?v=0.2.3", + "sha256": "bdaf8fbc54df8061e9e58aa8c14b3044a6e863dc54973ee3ee6ae2c5ae1a28f1", + "bytes": 354860, + "sampleRate": 24000, + "channels": 1, + "duration": 7.392, + "rms": 0.10000152378078818, + "peak": 0.550079345703125 + }, + { + "url": "http://127.0.0.1:4173/audio/first-apple.wav?v=0.2.3", + "sha256": "7c1dbcb3082055df2b8f087f7e906ec867c92f679de0894c34740c05e61a4bc1", + "bytes": 359468, + "sampleRate": 24000, + "channels": 1, + "duration": 7.488, + "rms": 0.10000143468253914, + "peak": 0.57977294921875 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-umbrella.wav?v=0.2.3", + "sha256": "8d3e8e8bc97e5fe3f3362184c4abb12f01a882a1f1174d2644f0f70aac677c0a", + "bytes": 192428, + "sampleRate": 24000, + "channels": 1, + "duration": 4.008, + "rms": 0.10000131475711933, + "peak": 0.385650634765625 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-furniture.wav?v=0.2.3", + "sha256": "5c004a7b2f5a4a918c9f689f1a2dcb219a620ed14313f40a9655b36dbf64948d", + "bytes": 398636, + "sampleRate": 24000, + "channels": 1, + "duration": 8.304, + "rms": 0.10000141690978645, + "peak": 0.487396240234375 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-tree.wav?v=0.2.3", + "sha256": "122f496834fb16d6da47f801e50e46e272e4e934af959467d1db4e490f79be7a", + "bytes": 183212, + "sampleRate": 24000, + "channels": 1, + "duration": 3.816, + "rms": 0.10000140751524371, + "peak": 0.36920166015625 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-tree.wav?v=0.2.3", + "sha256": "00d8e77ec0371971d632724d91f8cf8d947bfb83c582a513b6421be4c457a1da", + "bytes": 241964, + "sampleRate": 24000, + "channels": 1, + "duration": 5.04, + "rms": 0.10000146153372488, + "peak": 0.4585406184196472 + }, + { + "url": "http://127.0.0.1:4173/audio/message-tree.wav?v=0.2.3", + "sha256": "5d684aa710a63d36ed8dcc2a8bfbdd5c71b0b1c63dad2a324adecb76591e85b8", + "bytes": 540332, + "sampleRate": 24000, + "channels": 1, + "duration": 11.256, + "rms": 0.10000132424453942, + "peak": 0.5262451171875 + }, + { + "url": "http://127.0.0.1:4173/audio/last-tree.wav?v=0.2.3", + "sha256": "589e56d940a3c9e80ec02ae0b2dd93463fdc85ef019a753fcd0fded0752055f9", + "bytes": 382508, + "sampleRate": 24000, + "channels": 1, + "duration": 7.968, + "rms": 0.10000149781706567, + "peak": 0.5807672142982483 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-tree.wav?v=0.2.3", + "sha256": "341888c75275c13eb31058f53a1d4276be0daa0a1b5a3a45522036928b83b0c1", + "bytes": 382508, + "sampleRate": 24000, + "channels": 1, + "duration": 7.968, + "rms": 0.1000014873304774, + "peak": 0.600024402141571 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-tree.wav?v=0.2.3", + "sha256": "8735c3d9672561ca237fa87317beec2878492eb9063d6048d5b214423561acc1", + "bytes": 423980, + "sampleRate": 24000, + "channels": 1, + "duration": 8.832, + "rms": 0.10000150947389638, + "peak": 0.6187627911567688 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-furniture.wav?v=0.2.3", + "sha256": "52cb92cdb8ee92b6f581c9d68dbc346f180c470564809ba57185429c9eb84127", + "bytes": 186668, + "sampleRate": 24000, + "channels": 1, + "duration": 3.888, + "rms": 0.1000013480244084, + "peak": 0.387054443359375 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-tree.wav?v=0.2.3", + "sha256": "bc8e54f5407e8866bf1ca1ddfd4f6c63d85fee29bd9e430c7dd33e87974fc5b8", + "bytes": 409004, + "sampleRate": 24000, + "channels": 1, + "duration": 8.52, + "rms": 0.10000146559822108, + "peak": 0.5486617684364319 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-tree.wav?v=0.2.3", + "sha256": "b8e8bbe6b8b14727efd953fae9d4aed2caeb004055d52f611c6378322847edbe", + "bytes": 400940, + "sampleRate": 24000, + "channels": 1, + "duration": 8.352, + "rms": 0.10000144970799159, + "peak": 0.470611572265625 + }, + { + "url": "http://127.0.0.1:4173/audio/first-tree.wav?v=0.2.3", + "sha256": "3178230fd5850b6277a2153b438ec5289720e3db7ac929914cc213964f004bd5", + "bytes": 379052, + "sampleRate": 24000, + "channels": 1, + "duration": 7.896, + "rms": 0.10000144270360484, + "peak": 0.5833613276481628 + }, + { + "url": "http://127.0.0.1:4173/audio/password-tree.wav?v=0.2.3", + "sha256": "67da8147296e35134ec254bc82b58317630061b2c64d2d63c4be197ce8692d50", + "bytes": 233900, + "sampleRate": 24000, + "channels": 1, + "duration": 4.872, + "rms": 0.10000156310809623, + "peak": 0.4904019236564636 + } + ] +} diff --git a/.agent/evidence-v0.2.3/browser/desktop-early-exit.png b/.agent/evidence-v0.2.3/browser/desktop-early-exit.png new file mode 100644 index 0000000..5ea99e2 Binary files /dev/null and b/.agent/evidence-v0.2.3/browser/desktop-early-exit.png differ diff --git a/.agent/evidence-v0.2.3/browser/desktop-game.png b/.agent/evidence-v0.2.3/browser/desktop-game.png new file mode 100644 index 0000000..7905d21 Binary files /dev/null and b/.agent/evidence-v0.2.3/browser/desktop-game.png differ diff --git a/.agent/evidence-v0.2.3/browser/desktop-normal-results.png b/.agent/evidence-v0.2.3/browser/desktop-normal-results.png new file mode 100644 index 0000000..9378a52 Binary files /dev/null and b/.agent/evidence-v0.2.3/browser/desktop-normal-results.png differ diff --git a/.agent/evidence-v0.2.3/browser/desktop-runtime-audit.json b/.agent/evidence-v0.2.3/browser/desktop-runtime-audit.json new file mode 100644 index 0000000..ae5cfff --- /dev/null +++ b/.agent/evidence-v0.2.3/browser/desktop-runtime-audit.json @@ -0,0 +1,70 @@ +{ + "errors": [], + "failed": [], + "external": [], + "audio": { + "starts": [ + { + "loop": true, + "duration": 12 + }, + { + "loop": false, + "duration": 7.055986394557823 + }, + { + "loop": false, + "duration": 5.0639909297052155 + }, + { + "loop": true, + "duration": 12 + }, + { + "loop": false, + "duration": 8.447981859410431 + }, + { + "loop": true, + "duration": 12 + }, + { + "loop": false, + "duration": 10.895986394557823 + }, + { + "loop": true, + "duration": 12 + }, + { + "loop": false, + "duration": 7.055986394557823 + }, + { + "loop": false, + "duration": 8.255986394557823 + }, + { + "loop": true, + "duration": 12 + }, + { + "loop": false, + "duration": 7.055986394557823 + }, + { + "loop": false, + "duration": 7.223990929705216 + }, + { + "loop": true, + "duration": 12 + }, + { + "loop": false, + "duration": 7.223990929705216 + } + ], + "stops": 15 + } +} diff --git a/.agent/evidence-v0.2.3/browser/desktop-start.png b/.agent/evidence-v0.2.3/browser/desktop-start.png new file mode 100644 index 0000000..3e1863d Binary files /dev/null and b/.agent/evidence-v0.2.3/browser/desktop-start.png differ diff --git a/.agent/evidence-v0.2.3/browser/mobile-audio-integrity.json b/.agent/evidence-v0.2.3/browser/mobile-audio-integrity.json new file mode 100644 index 0000000..2d4d5ea --- /dev/null +++ b/.agent/evidence-v0.2.3/browser/mobile-audio-integrity.json @@ -0,0 +1,1098 @@ +{ + "chrome": "146.0.7680.80", + "external": [], + "errors": [], + "failed": [], + "files": [ + { + "url": "http://127.0.0.1:4173/audio/intro.wav?v=0.2.3", + "sha256": "90d9f46e6e3f9c8a0c1a781096df54d7809ef4ad38b289508ef7b8c0411465ce", + "bytes": 338732, + "sampleRate": 24000, + "channels": 1, + "duration": 7.056, + "rms": 0.10000144992850359, + "peak": 0.4998626708984375 + }, + { + "url": "http://127.0.0.1:4173/ambience/street.wav?v=0.2.3", + "sha256": "a8bffa201b174618955bc51b860167169125304811aabe2086b0bb35b06c3ae1", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.07999880181401388, + "peak": 0.3967711329460144 + }, + { + "url": "http://127.0.0.1:4173/ambience/mall.wav?v=0.2.3", + "sha256": "6e9171f549cacadfaeedd57a41c8e2a76b0e789f5c9a97af029a8d3558c9f145", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.07999878530235176, + "peak": 0.5546875 + }, + { + "url": "http://127.0.0.1:4173/ambience/theater.wav?v=0.2.3", + "sha256": "2d6a444fb7874cdf6b2d8a741a69175299b112eb66834912c025437d8277d635", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.07999878601263052, + "peak": 0.495086669921875 + }, + { + "url": "http://127.0.0.1:4173/ambience/department.wav?v=0.2.3", + "sha256": "aa43f3d1d3e7c2b1f8ace24ecbda45d0ea3a031db941c39506dc6c1665b8efa7", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.07999879026023995, + "peak": 0.4749900698661804 + }, + { + "url": "http://127.0.0.1:4173/ambience/market.wav?v=0.2.3", + "sha256": "4287e971a12767f70da714e0c1aff30125268f9c3faf07ebfbcc0d2904f4a312", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.049222823565976834, + "peak": 0.8499755859375 + }, + { + "url": "http://127.0.0.1:4173/ambience/subway.wav?v=0.2.3", + "sha256": "9faf70b68617d267b367a0f3692ed90015458543ab4b0844f6c704e6a724728f", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.079998775670051, + "peak": 0.42530596256256104 + }, + { + "url": "http://127.0.0.1:4173/ambience/cafe.wav?v=0.2.3", + "sha256": "8db06f3f09bbd8409573ba4874c7ccdd1e7e825c8a61989a4efe66206a66c2d2", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.07999881107742599, + "peak": 0.3971068561077118 + }, + { + "url": "http://127.0.0.1:4173/ambience/rain.wav?v=0.2.3", + "sha256": "f4315084e820f742b0709de5bb0d1abd3d5af1730620e08c2948b70347356dd9", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.011384798571746246, + "peak": 0.1024169921875 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-apple.wav?v=0.2.3", + "sha256": "cb7da4e9a1288cac64d168b241f27d7d2bc2dfecace58744f9bbf2792dfad04e", + "bytes": 397484, + "sampleRate": 24000, + "channels": 1, + "duration": 8.28, + "rms": 0.10000142448574952, + "peak": 0.6414685249328613 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-market.wav?v=0.2.3", + "sha256": "b8d25b867497adcd0fe7c8b6a8a8d2e7a52965956738a83e53f58735708773f9", + "bytes": 405548, + "sampleRate": 24000, + "channels": 1, + "duration": 8.448, + "rms": 0.10000141405173993, + "peak": 0.491485595703125 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-sound.wav?v=0.2.3", + "sha256": "34e4d9758d2ed448646fda364610e34779c84794403d9051ab3d8c1d33e2c80c", + "bytes": 184364, + "sampleRate": 24000, + "channels": 1, + "duration": 3.84, + "rms": 0.10000138709171018, + "peak": 0.386322021484375 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-furniture.wav?v=0.2.3", + "sha256": "b45b1afc8d9b534ff3e0a2a2ecb99efc1f4e40d41f89f55c4ed8ba94ad6d76d4", + "bytes": 354860, + "sampleRate": 24000, + "channels": 1, + "duration": 7.392, + "rms": 0.1000015072973225, + "peak": 0.5576171875 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-market.wav?v=0.2.3", + "sha256": "cefa0e95649ea6bd1df4c8dfccd2b74b4f4c028714420ce1087b61db2f2a8d47", + "bytes": 248876, + "sampleRate": 24000, + "channels": 1, + "duration": 5.184, + "rms": 0.10000142548167161, + "peak": 0.4857020676136017 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-oil.wav?v=0.2.3", + "sha256": "f6eff0cdddcad9790351491e60c53cb2a70d222033a583652f2de0b8cd6abcc7", + "bytes": 406700, + "sampleRate": 24000, + "channels": 1, + "duration": 8.472, + "rms": 0.10000139122025363, + "peak": 0.470794677734375 + }, + { + "url": "http://127.0.0.1:4173/audio/first-hat.wav?v=0.2.3", + "sha256": "17c8cde90567e7574b0c0702663bd70713054089ee920241b5444d9b7869eef5", + "bytes": 357164, + "sampleRate": 24000, + "channels": 1, + "duration": 7.44, + "rms": 0.10000152904790521, + "peak": 0.5312662124633789 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-furniture.wav?v=0.2.3", + "sha256": "af82e03b686635c3356e706fe5b05c1231aeaaeab33f275aa5b8714988c65d43", + "bytes": 241964, + "sampleRate": 24000, + "channels": 1, + "duration": 5.04, + "rms": 0.10000137346142077, + "peak": 0.4852443039417267 + }, + { + "url": "http://127.0.0.1:4173/audio/password-sound.wav?v=0.2.3", + "sha256": "044aafff08a19e39f21e58b963644715a987cd155896998769ef8e9ce6449628", + "bytes": 236204, + "sampleRate": 24000, + "channels": 1, + "duration": 4.92, + "rms": 0.10000156641621728, + "peak": 0.4621112644672394 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-hat.wav?v=0.2.3", + "sha256": "f9f98c91cfbcfcb106eef7d5d3795a9cf3c3aab7e19a60f13d7dffe284d19f86", + "bytes": 398636, + "sampleRate": 24000, + "channels": 1, + "duration": 8.304, + "rms": 0.10000141071544869, + "peak": 0.470977783203125 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-apple.wav?v=0.2.3", + "sha256": "7c8f413f4b7e164f090e508ba090448f1376c6012649bbb6a917d45851313883", + "bytes": 188972, + "sampleRate": 24000, + "channels": 1, + "duration": 3.936, + "rms": 0.10000130469939268, + "peak": 0.401641845703125 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-sea.wav?v=0.2.3", + "sha256": "db2f235bee26ac804b5362e8e013b8f40c8da24fd3a34e0fb3b43c6d264feb36", + "bytes": 382508, + "sampleRate": 24000, + "channels": 1, + "duration": 7.968, + "rms": 0.10000145042993039, + "peak": 0.6843470335006714 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-furniture.wav?v=0.2.3", + "sha256": "442bdcb956f120c270e1f321feae0415c897de0183e468980fcc119b898b2a67", + "bytes": 403244, + "sampleRate": 24000, + "channels": 1, + "duration": 8.4, + "rms": 0.10000149119200713, + "peak": 0.5619068145751953 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-sea.wav?v=0.2.3", + "sha256": "b6dbe0af143ea775f05bd59a3d6af348bcc770ab378ac91ea75a56e06c326edf", + "bytes": 346796, + "sampleRate": 24000, + "channels": 1, + "duration": 7.224, + "rms": 0.10000144532868623, + "peak": 0.56494140625 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-sound.wav?v=0.2.3", + "sha256": "e9d636ff7f4777f38b1ff15bebdcec6fbde95b4b4b05625a7415b4cfa0025b59", + "bytes": 395180, + "sampleRate": 24000, + "channels": 1, + "duration": 8.232, + "rms": 0.10000164955559301, + "peak": 0.6114688515663147 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-apple.wav?v=0.2.3", + "sha256": "3ef42e276ff3500c3e197d149f29f79d6a0c1d5516ed1d5a2c57210333fded9c", + "bytes": 246572, + "sampleRate": 24000, + "channels": 1, + "duration": 5.136, + "rms": 0.10000144279302126, + "peak": 0.4701681435108185 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-market.wav?v=0.2.3", + "sha256": "356af25332bf2000ed349671f3ff39767929e1f4599af622c021f907d11fb7bf", + "bytes": 194732, + "sampleRate": 24000, + "channels": 1, + "duration": 4.056, + "rms": 0.10000132629820717, + "peak": 0.4022216796875 + }, + { + "url": "http://127.0.0.1:4173/audio/message-sea.wav?v=0.2.3", + "sha256": "28a461fbe03bffe2560030dea8b60715f7c0fe262dcf85b5b7f7daf483836382", + "bytes": 517292, + "sampleRate": 24000, + "channels": 1, + "duration": 10.776, + "rms": 0.10000130584401576, + "peak": 0.53521728515625 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-umbrella.wav?v=0.2.3", + "sha256": "c8988e604ba05d52597e561389541e8f9cda86e052279f1862bbf8399ead314e", + "bytes": 403244, + "sampleRate": 24000, + "channels": 1, + "duration": 8.4, + "rms": 0.10000148262660476, + "peak": 0.557830810546875 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-hat.wav?v=0.2.3", + "sha256": "308278ec2bd27d4224976a55632d1f7fa1edabb0792126d9d858a699c287aee4", + "bytes": 245420, + "sampleRate": 24000, + "channels": 1, + "duration": 5.112, + "rms": 0.10000140702099906, + "peak": 0.4498428404331207 + }, + { + "url": "http://127.0.0.1:4173/audio/password-furniture.wav?v=0.2.3", + "sha256": "fb2b631dd4e12120d08a84cce6450f9cd9cd68105d13d7001d808e7deaa1df4a", + "bytes": 233900, + "sampleRate": 24000, + "channels": 1, + "duration": 4.872, + "rms": 0.10000146718546903, + "peak": 0.4836573302745819 + }, + { + "url": "http://127.0.0.1:4173/audio/first-market.wav?v=0.2.3", + "sha256": "1e00b8f70a796cdebb0feb00c605fece7488b06915e6e036f54206f05e201e0c", + "bytes": 359468, + "sampleRate": 24000, + "channels": 1, + "duration": 7.488, + "rms": 0.10000152633991319, + "peak": 0.6390880942344666 + }, + { + "url": "http://127.0.0.1:4173/audio/first-meat.wav?v=0.2.3", + "sha256": "f51a37c1722fef581f7d642a4dcae7fcb9953b3c318dce971bf616cd1a81fecc", + "bytes": 345644, + "sampleRate": 24000, + "channels": 1, + "duration": 7.2, + "rms": 0.10000152244411063, + "peak": 0.5131382346153259 + }, + { + "url": "http://127.0.0.1:4173/audio/password-sea.wav?v=0.2.3", + "sha256": "03f45b8cb5b3dc72faf5c6e3d0e2a10cea6b60301ea400d0a4453596d2f0b337", + "bytes": 232748, + "sampleRate": 24000, + "channels": 1, + "duration": 4.848, + "rms": 0.10000144821976133, + "peak": 0.5339213013648987 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-sound.wav?v=0.2.3", + "sha256": "98387ccc7aab566f6487d4c250b2128082cc527e013a6f7b7bc4d0266ac295df", + "bytes": 394028, + "sampleRate": 24000, + "channels": 1, + "duration": 8.208, + "rms": 0.10000158053850364, + "peak": 0.5377971529960632 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-umbrella.wav?v=0.2.3", + "sha256": "5e59ef39113c3d5e106862356d715f4cef2862ef8ee02654a97e532675c1ac6d", + "bytes": 410156, + "sampleRate": 24000, + "channels": 1, + "duration": 8.544, + "rms": 0.10000147499132286, + "peak": 0.6748558282852173 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-hat.wav?v=0.2.3", + "sha256": "b01ef9762ac84e3eb757243bc9286c62f7d45444a821ae35ac36a8b095e1598a", + "bytes": 353708, + "sampleRate": 24000, + "channels": 1, + "duration": 7.368, + "rms": 0.10000153089787694, + "peak": 0.555206298828125 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-market.wav?v=0.2.3", + "sha256": "d89792da51c83ac49d27e55aa6d822a338899a5ee487b34b552748201e1522f6", + "bytes": 398636, + "sampleRate": 24000, + "channels": 1, + "duration": 8.304, + "rms": 0.10000149710778367, + "peak": 0.5728324055671692 + }, + { + "url": "http://127.0.0.1:4173/audio/password-umbrella.wav?v=0.2.3", + "sha256": "ab3ca6398c879971dc793eb25b472fcc0db72d76e386f11ef4d32c639f37c69d", + "bytes": 239660, + "sampleRate": 24000, + "channels": 1, + "duration": 4.992, + "rms": 0.100001426973271, + "peak": 0.4776757061481476 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-meat.wav?v=0.2.3", + "sha256": "48e91b3932d3798e852041a854b3ee08c72127e092c62083a47af6b99adff241", + "bytes": 403244, + "sampleRate": 24000, + "channels": 1, + "duration": 8.4, + "rms": 0.10000140336390047, + "peak": 0.481536865234375 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-hat.wav?v=0.2.3", + "sha256": "6e089a42fd7e65e82eec7186d369c926fb7fdac794365b2bd7658822fd92437c", + "bytes": 396332, + "sampleRate": 24000, + "channels": 1, + "duration": 8.256, + "rms": 0.1000015662548192, + "peak": 0.616748571395874 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-sound.wav?v=0.2.3", + "sha256": "4d00aa6114327f450a00dacbc7e7b572ebf1de4ce9dc2fe4b5505766cca71ce9", + "bytes": 353708, + "sampleRate": 24000, + "channels": 1, + "duration": 7.368, + "rms": 0.10000162019345048, + "peak": 0.5348368883132935 + }, + { + "url": "http://127.0.0.1:4173/audio/last-oil.wav?v=0.2.3", + "sha256": "b5ce34950b8b31b1baf6ce55410797f0d8aa5478a670d6eace87cf76d134d6d3", + "bytes": 337580, + "sampleRate": 24000, + "channels": 1, + "duration": 7.032, + "rms": 0.10000149980584365, + "peak": 0.55706787109375 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-sea.wav?v=0.2.3", + "sha256": "47aa31d757c9fb49c9b53a1c052d90a5ced4be57549d649850d9b48f8864045b", + "bytes": 191276, + "sampleRate": 24000, + "channels": 1, + "duration": 3.984, + "rms": 0.10000129182106483, + "peak": 0.388702392578125 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-sound.wav?v=0.2.3", + "sha256": "659eb0e2b06e6b165b46744769743e032e2282519f8486c57bc45e0f7d07a069", + "bytes": 240812, + "sampleRate": 24000, + "channels": 1, + "duration": 5.016, + "rms": 0.10000152909529536, + "peak": 0.45481735467910767 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-meat.wav?v=0.2.3", + "sha256": "6599d2fac73ea616a793151b4ce6f51af673988d630bac6219a77e78ae6cb34e", + "bytes": 380204, + "sampleRate": 24000, + "channels": 1, + "duration": 7.92, + "rms": 0.1000016061190976, + "peak": 0.5921201109886169 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-market.wav?v=0.2.3", + "sha256": "c855b449e0d4ace74681bfe68e5e7f0b063568827ae872017234dbe8ae119e4c", + "bytes": 356012, + "sampleRate": 24000, + "channels": 1, + "duration": 7.416, + "rms": 0.10000151456676445, + "peak": 0.5949888825416565 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-furniture.wav?v=0.2.3", + "sha256": "bf84dc6cff1f227924a3a62158d2fc18769fb0ca40b91418fa19e534dbf92f00", + "bytes": 397484, + "sampleRate": 24000, + "channels": 1, + "duration": 8.28, + "rms": 0.10000155255948041, + "peak": 0.6670430898666382 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-sound.wav?v=0.2.3", + "sha256": "5a603bc69979603afddcaeb6edf500a7c540b72405daeb33f5335d746b327da1", + "bytes": 397484, + "sampleRate": 24000, + "channels": 1, + "duration": 8.28, + "rms": 0.10000146491234768, + "peak": 0.469268798828125 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-meat.wav?v=0.2.3", + "sha256": "9183ef90b64f5ceaf3bb0178c689231ff3e9981d6ce889124a15f2a6e2b7a344", + "bytes": 395180, + "sampleRate": 24000, + "channels": 1, + "duration": 8.232, + "rms": 0.10000155087122137, + "peak": 0.5193029642105103 + }, + { + "url": "http://127.0.0.1:4173/audio/last-sound.wav?v=0.2.3", + "sha256": "ec9c49802aebeb6a8b898a1c0d8ad1daa127d2d64c905c197ed49a8e0c4eb64a", + "bytes": 354860, + "sampleRate": 24000, + "channels": 1, + "duration": 7.392, + "rms": 0.10000165748716579, + "peak": 0.5641041398048401 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-oil.wav?v=0.2.3", + "sha256": "5fb63e04520c312aa6b7b48b70c2f7c140b5ab480e5c6992edbc2ba85b9a06e7", + "bytes": 241964, + "sampleRate": 24000, + "channels": 1, + "duration": 5.04, + "rms": 0.10000143720418167, + "peak": 0.443586528301239 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-umbrella.wav?v=0.2.3", + "sha256": "92b54f04884ab915783945077efd8f3bd443849a1720f72168b6348cae1f8e85", + "bytes": 406700, + "sampleRate": 24000, + "channels": 1, + "duration": 8.472, + "rms": 0.10000140257790288, + "peak": 0.479034423828125 + }, + { + "url": "http://127.0.0.1:4173/audio/message-sound.wav?v=0.2.3", + "sha256": "1e682147dae8026ba78dc8f256c7f24acb3a6743bfd88a0fcc86096930eef078", + "bytes": 521900, + "sampleRate": 24000, + "channels": 1, + "duration": 10.872, + "rms": 0.10000138583471241, + "peak": 0.51953125 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-apple.wav?v=0.2.3", + "sha256": "ccd7327a3fb54d3320d049ffdced3bc17595861cee69429c0ee97182d454195b", + "bytes": 402092, + "sampleRate": 24000, + "channels": 1, + "duration": 8.376, + "rms": 0.10000140667715379, + "peak": 0.490325927734375 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-sea.wav?v=0.2.3", + "sha256": "5c91a36496e274d2be9c6fa8d9b506cd04f2a1b7ceb05ed1b7bb03fe7fca99d9", + "bytes": 399788, + "sampleRate": 24000, + "channels": 1, + "duration": 8.328, + "rms": 0.10000144241513113, + "peak": 0.5465559959411621 + }, + { + "url": "http://127.0.0.1:4173/audio/message-hat.wav?v=0.2.3", + "sha256": "5a713a8522b231bb8276805c014b385b9150b79f58ff2618446607e2b442495e", + "bytes": 518444, + "sampleRate": 24000, + "channels": 1, + "duration": 10.8, + "rms": 0.10000136927555209, + "peak": 0.587005615234375 + }, + { + "url": "http://127.0.0.1:4173/audio/password-meat.wav?v=0.2.3", + "sha256": "b009caadd56350d6a641ff17f0973e2b2724c183e1f45ae0bf3c483e237fa99e", + "bytes": 240812, + "sampleRate": 24000, + "channels": 1, + "duration": 5.016, + "rms": 0.10000148386024335, + "peak": 0.4978789687156677 + }, + { + "url": "http://127.0.0.1:4173/audio/message-market.wav?v=0.2.3", + "sha256": "9242d4cd6e0030e6b073e4d2360f84aa8a454d1749711cdb2d64c14f28a7ea20", + "bytes": 523052, + "sampleRate": 24000, + "channels": 1, + "duration": 10.896, + "rms": 0.10000133805787564, + "peak": 0.534820556640625 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-apple.wav?v=0.2.3", + "sha256": "8832f1b793ab3eedbe663875ea8dbeabb122c329bd5879437c71230b0418c3c8", + "bytes": 360620, + "sampleRate": 24000, + "channels": 1, + "duration": 7.512, + "rms": 0.10000145024648589, + "peak": 0.553558349609375 + }, + { + "url": "http://127.0.0.1:4173/audio/last-umbrella.wav?v=0.2.3", + "sha256": "c801293a34013a8d93d3289a2cc87cd3eed83f97ba4647f5060efa00b117a9ad", + "bytes": 370988, + "sampleRate": 24000, + "channels": 1, + "duration": 7.728, + "rms": 0.10000149360501835, + "peak": 0.59765625 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-sea.wav?v=0.2.3", + "sha256": "9233431d78ab4b144e3c33ad0cf0d49fc0fb91b29514343230ba32987b794bb3", + "bytes": 398636, + "sampleRate": 24000, + "channels": 1, + "duration": 8.304, + "rms": 0.10000134688905045, + "peak": 0.49616992473602295 + }, + { + "url": "http://127.0.0.1:4173/audio/password-apple.wav?v=0.2.3", + "sha256": "b6f5de3fe571fe3a7fdb722fe49250bcfeedef49475271e0ec76a7630907edd5", + "bytes": 235052, + "sampleRate": 24000, + "channels": 1, + "duration": 4.896, + "rms": 0.10000148212193387, + "peak": 0.4834437072277069 + }, + { + "url": "http://127.0.0.1:4173/audio/first-furniture.wav?v=0.2.3", + "sha256": "29f007b385b7182db1d8aeccad4fc3c260df5e66e14e52a46b0ef0fcd0ff3a0a", + "bytes": 364076, + "sampleRate": 24000, + "channels": 1, + "duration": 7.584, + "rms": 0.1000014551820741, + "peak": 0.5700552463531494 + }, + { + "url": "http://127.0.0.1:4173/audio/password-hat.wav?v=0.2.3", + "sha256": "e91bfc97df90a1675b6cd856880ac15c54de32cfc3b23603bdd1c2c5ac3ce6b8", + "bytes": 235052, + "sampleRate": 24000, + "channels": 1, + "duration": 4.896, + "rms": 0.10000146155157119, + "peak": 0.5059053301811218 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-oil.wav?v=0.2.3", + "sha256": "7a6b122b11c07da86c95fb78e2db2a70681b5219c63d6441fe56da1979ac1dc3", + "bytes": 334124, + "sampleRate": 24000, + "channels": 1, + "duration": 6.96, + "rms": 0.1000014880654183, + "peak": 0.539933443069458 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-meat.wav?v=0.2.3", + "sha256": "d416107cc05e7c5b92ca27100a10a8a9689de913346179945d5542de4a6bac0c", + "bytes": 342188, + "sampleRate": 24000, + "channels": 1, + "duration": 7.128, + "rms": 0.10000157422522808, + "peak": 0.510833740234375 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-apple.wav?v=0.2.3", + "sha256": "1bf2aef9a9f030af1a8fd7dee8f44aa420a397b3ba99b575feeb3dc7a63ec191", + "bytes": 395180, + "sampleRate": 24000, + "channels": 1, + "duration": 8.232, + "rms": 0.10000148399213096, + "peak": 0.563568115234375 + }, + { + "url": "http://127.0.0.1:4173/audio/first-oil.wav?v=0.2.3", + "sha256": "f415195e0cfc7ee711d09de7519e88eab62cc8b58d70772c83c3f5c27c267819", + "bytes": 335276, + "sampleRate": 24000, + "channels": 1, + "duration": 6.984, + "rms": 0.10000145886808136, + "peak": 0.5347453355789185 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-hat.wav?v=0.2.3", + "sha256": "31a6a4270bf368cda419094d87a303ac3cd5c22539786cb165f8044b0b8e9d6e", + "bytes": 402092, + "sampleRate": 24000, + "channels": 1, + "duration": 8.376, + "rms": 0.10000145804818952, + "peak": 0.541778564453125 + }, + { + "url": "http://127.0.0.1:4173/audio/message-furniture.wav?v=0.2.3", + "sha256": "26c331b7e12311236f4bb48f88918dfbf53cccd2f50b55741ea6ff4473e71dd8", + "bytes": 521900, + "sampleRate": 24000, + "channels": 1, + "duration": 10.872, + "rms": 0.10000134596838128, + "peak": 0.529327392578125 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-oil.wav?v=0.2.3", + "sha256": "3fa1e662a3af8f2726b17b2baa5bec2934406e6595ebc243c8380dd16e190977", + "bytes": 190124, + "sampleRate": 24000, + "channels": 1, + "duration": 3.96, + "rms": 0.10000134375667624, + "peak": 0.3817255198955536 + }, + { + "url": "http://127.0.0.1:4173/audio/last-sea.wav?v=0.2.3", + "sha256": "f755452e1da44674aa1df7d12edffa988091b89a394e7eb6d4a00eb721f07cbf", + "bytes": 345644, + "sampleRate": 24000, + "channels": 1, + "duration": 7.2, + "rms": 0.10000140162255576, + "peak": 0.591033935546875 + }, + { + "url": "http://127.0.0.1:4173/audio/password-oil.wav?v=0.2.3", + "sha256": "b472957b27ff98ea7b8894fa1ff12653f7e9f66f77870faa9e52a1c1bf116c41", + "bytes": 240812, + "sampleRate": 24000, + "channels": 1, + "duration": 5.016, + "rms": 0.10000146772662066, + "peak": 0.4945219159126282 + }, + { + "url": "http://127.0.0.1:4173/audio/first-umbrella.wav?v=0.2.3", + "sha256": "878e0bd2e6e4105f175aef51a028f6b141f3a2072be20f783193f3ba897a3ee0", + "bytes": 366380, + "sampleRate": 24000, + "channels": 1, + "duration": 7.632, + "rms": 0.10000147647908036, + "peak": 0.5700247287750244 + }, + { + "url": "http://127.0.0.1:4173/audio/last-apple.wav?v=0.2.3", + "sha256": "4cb2a8579fa3a7b91bb36363826ce8ca0d6d86e96e16a479e226a2802edd82f7", + "bytes": 356012, + "sampleRate": 24000, + "channels": 1, + "duration": 7.416, + "rms": 0.10000144523423521, + "peak": 0.622528076171875 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-market.wav?v=0.2.3", + "sha256": "68a5b899115a66ab225d610ec47b4de56cc8793657362bc38f533c06f741e4cc", + "bytes": 402092, + "sampleRate": 24000, + "channels": 1, + "duration": 8.376, + "rms": 0.10000160159844854, + "peak": 0.6822717785835266 + }, + { + "url": "http://127.0.0.1:4173/audio/message-oil.wav?v=0.2.3", + "sha256": "a2a71a7e5e07c81871a25c6cb7540c39aa0b32fc44f78cda66b5f34ace98d805", + "bytes": 509228, + "sampleRate": 24000, + "channels": 1, + "duration": 10.608, + "rms": 0.10000135184106136, + "peak": 0.51812744140625 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-meat.wav?v=0.2.3", + "sha256": "d36dfc395a5c53fbfa4abe9980db7bb59adfdac59e40318c4aca365365e3f2ab", + "bytes": 187820, + "sampleRate": 24000, + "channels": 1, + "duration": 3.912, + "rms": 0.1000013329979738, + "peak": 0.371124267578125 + }, + { + "url": "http://127.0.0.1:4173/audio/password-market.wav?v=0.2.3", + "sha256": "02e325fb753ef7a3ee585a03d2ca2aa3f1fbc58523b062222ae1136eeed7a95c", + "bytes": 230444, + "sampleRate": 24000, + "channels": 1, + "duration": 4.8, + "rms": 0.10000151520861549, + "peak": 0.48170414566993713 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-hat.wav?v=0.2.3", + "sha256": "4ff43dd042f4b5451e9fdeb3edd59f1e389a7d1dd488094587a3a9fc7dfffa44", + "bytes": 191276, + "sampleRate": 24000, + "channels": 1, + "duration": 3.984, + "rms": 0.10000132502946775, + "peak": 0.417083740234375 + }, + { + "url": "http://127.0.0.1:4173/audio/last-market.wav?v=0.2.3", + "sha256": "7857e87e9dbfe8fe849cc0b18c1d45b60916cb337328099c7a87a42c82e2821e", + "bytes": 359468, + "sampleRate": 24000, + "channels": 1, + "duration": 7.488, + "rms": 0.10000148064140717, + "peak": 0.600555419921875 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-meat.wav?v=0.2.3", + "sha256": "94f8a4f9e116a787e5ed052661d6de9ecf3ad8629db476661dd59ad03014b0c9", + "bytes": 244268, + "sampleRate": 24000, + "channels": 1, + "duration": 5.088, + "rms": 0.10000146176253134, + "peak": 0.44187748432159424 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-oil.wav?v=0.2.3", + "sha256": "55b2c7d6aa8bbce04edf8661882c9781da81c57f56217f99b80457a3bb895da0", + "bytes": 369836, + "sampleRate": 24000, + "channels": 1, + "duration": 7.704, + "rms": 0.10000146897241707, + "peak": 0.6239814162254333 + }, + { + "url": "http://127.0.0.1:4173/audio/first-sound.wav?v=0.2.3", + "sha256": "46f6adeed928a16af0700f1e8626cf8049f124632a04a5d10604426fb06f9596", + "bytes": 353708, + "sampleRate": 24000, + "channels": 1, + "duration": 7.368, + "rms": 0.10000157588418972, + "peak": 0.5189672708511353 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-umbrella.wav?v=0.2.3", + "sha256": "4b4c858a25659540f9dbc524664496fc6de61ab8c1627f3cfee8c9c744e11d5b", + "bytes": 247724, + "sampleRate": 24000, + "channels": 1, + "duration": 5.16, + "rms": 0.10000144286672341, + "peak": 0.46534621715545654 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-oil.wav?v=0.2.3", + "sha256": "3ca98682ff06d1d6b8af02c0fd5b2124f42266ac989884223eff4a9bbde1287a", + "bytes": 399788, + "sampleRate": 24000, + "channels": 1, + "duration": 8.328, + "rms": 0.10000149133669024, + "peak": 0.5243995189666748 + }, + { + "url": "http://127.0.0.1:4173/audio/first-sea.wav?v=0.2.3", + "sha256": "0f0b39314c5f7d7168d4854003c0c284e7bc3438cdc4d1d1c5adab7cb5ed30e5", + "bytes": 349100, + "sampleRate": 24000, + "channels": 1, + "duration": 7.272, + "rms": 0.10000142148394393, + "peak": 0.5717948079109192 + }, + { + "url": "http://127.0.0.1:4173/audio/last-meat.wav?v=0.2.3", + "sha256": "10f8ad4259ed8945c9da831e80b3902303c09caef96d400298599168fb1efed4", + "bytes": 346796, + "sampleRate": 24000, + "channels": 1, + "duration": 7.224, + "rms": 0.10000155834091913, + "peak": 0.537200927734375 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-umbrella.wav?v=0.2.3", + "sha256": "399ea2f681f755918f1117c8baba42739ceca64b307b999342f457a9235050b6", + "bytes": 368684, + "sampleRate": 24000, + "channels": 1, + "duration": 7.68, + "rms": 0.10000155028684544, + "peak": 0.569549560546875 + }, + { + "url": "http://127.0.0.1:4173/audio/message-meat.wav?v=0.2.3", + "sha256": "ce19735df079b54c171e775b6b365385a80160b9033442abab95b2b9c8505e1a", + "bytes": 512684, + "sampleRate": 24000, + "channels": 1, + "duration": 10.68, + "rms": 0.10000140834686953, + "peak": 0.5147705078125 + }, + { + "url": "http://127.0.0.1:4173/audio/message-umbrella.wav?v=0.2.3", + "sha256": "41d5866dae66600df4694a8312b531571d44cece6dba0e423e7c43d09d184819", + "bytes": 523052, + "sampleRate": 24000, + "channels": 1, + "duration": 10.896, + "rms": 0.10000120668553683, + "peak": 0.530364990234375 + }, + { + "url": "http://127.0.0.1:4173/audio/last-furniture.wav?v=0.2.3", + "sha256": "5ad4f776e35439d408abed0e66567d6b5cdc80fc54d579165472e474f1238776", + "bytes": 357164, + "sampleRate": 24000, + "channels": 1, + "duration": 7.44, + "rms": 0.10000152394963031, + "peak": 0.583587646484375 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-sea.wav?v=0.2.3", + "sha256": "8838d6a1ee8a790427dc5aa761e70b3d8872af62086efeed743297ff7f8b8a06", + "bytes": 243116, + "sampleRate": 24000, + "channels": 1, + "duration": 5.064, + "rms": 0.10000138788281714, + "peak": 0.45013427734375 + }, + { + "url": "http://127.0.0.1:4173/audio/message-apple.wav?v=0.2.3", + "sha256": "d85e6f47d871369f00de2274139e5ad6b4b5686b5e20e248df0ed6b9a320d942", + "bytes": 517292, + "sampleRate": 24000, + "channels": 1, + "duration": 10.776, + "rms": 0.10000133916854889, + "peak": 0.525360107421875 + }, + { + "url": "http://127.0.0.1:4173/audio/last-hat.wav?v=0.2.3", + "sha256": "bdaf8fbc54df8061e9e58aa8c14b3044a6e863dc54973ee3ee6ae2c5ae1a28f1", + "bytes": 354860, + "sampleRate": 24000, + "channels": 1, + "duration": 7.392, + "rms": 0.10000152378078818, + "peak": 0.550079345703125 + }, + { + "url": "http://127.0.0.1:4173/audio/first-apple.wav?v=0.2.3", + "sha256": "7c1dbcb3082055df2b8f087f7e906ec867c92f679de0894c34740c05e61a4bc1", + "bytes": 359468, + "sampleRate": 24000, + "channels": 1, + "duration": 7.488, + "rms": 0.10000143468253914, + "peak": 0.57977294921875 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-umbrella.wav?v=0.2.3", + "sha256": "8d3e8e8bc97e5fe3f3362184c4abb12f01a882a1f1174d2644f0f70aac677c0a", + "bytes": 192428, + "sampleRate": 24000, + "channels": 1, + "duration": 4.008, + "rms": 0.10000131475711933, + "peak": 0.385650634765625 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-furniture.wav?v=0.2.3", + "sha256": "5c004a7b2f5a4a918c9f689f1a2dcb219a620ed14313f40a9655b36dbf64948d", + "bytes": 398636, + "sampleRate": 24000, + "channels": 1, + "duration": 8.304, + "rms": 0.10000141690978645, + "peak": 0.487396240234375 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-tree.wav?v=0.2.3", + "sha256": "122f496834fb16d6da47f801e50e46e272e4e934af959467d1db4e490f79be7a", + "bytes": 183212, + "sampleRate": 24000, + "channels": 1, + "duration": 3.816, + "rms": 0.10000140751524371, + "peak": 0.36920166015625 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-tree.wav?v=0.2.3", + "sha256": "00d8e77ec0371971d632724d91f8cf8d947bfb83c582a513b6421be4c457a1da", + "bytes": 241964, + "sampleRate": 24000, + "channels": 1, + "duration": 5.04, + "rms": 0.10000146153372488, + "peak": 0.4585406184196472 + }, + { + "url": "http://127.0.0.1:4173/audio/message-tree.wav?v=0.2.3", + "sha256": "5d684aa710a63d36ed8dcc2a8bfbdd5c71b0b1c63dad2a324adecb76591e85b8", + "bytes": 540332, + "sampleRate": 24000, + "channels": 1, + "duration": 11.256, + "rms": 0.10000132424453942, + "peak": 0.5262451171875 + }, + { + "url": "http://127.0.0.1:4173/audio/last-tree.wav?v=0.2.3", + "sha256": "589e56d940a3c9e80ec02ae0b2dd93463fdc85ef019a753fcd0fded0752055f9", + "bytes": 382508, + "sampleRate": 24000, + "channels": 1, + "duration": 7.968, + "rms": 0.10000149781706567, + "peak": 0.5807672142982483 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-tree.wav?v=0.2.3", + "sha256": "341888c75275c13eb31058f53a1d4276be0daa0a1b5a3a45522036928b83b0c1", + "bytes": 382508, + "sampleRate": 24000, + "channels": 1, + "duration": 7.968, + "rms": 0.1000014873304774, + "peak": 0.600024402141571 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-tree.wav?v=0.2.3", + "sha256": "8735c3d9672561ca237fa87317beec2878492eb9063d6048d5b214423561acc1", + "bytes": 423980, + "sampleRate": 24000, + "channels": 1, + "duration": 8.832, + "rms": 0.10000150947389638, + "peak": 0.6187627911567688 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-furniture.wav?v=0.2.3", + "sha256": "52cb92cdb8ee92b6f581c9d68dbc346f180c470564809ba57185429c9eb84127", + "bytes": 186668, + "sampleRate": 24000, + "channels": 1, + "duration": 3.888, + "rms": 0.1000013480244084, + "peak": 0.387054443359375 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-tree.wav?v=0.2.3", + "sha256": "bc8e54f5407e8866bf1ca1ddfd4f6c63d85fee29bd9e430c7dd33e87974fc5b8", + "bytes": 409004, + "sampleRate": 24000, + "channels": 1, + "duration": 8.52, + "rms": 0.10000146559822108, + "peak": 0.5486617684364319 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-tree.wav?v=0.2.3", + "sha256": "b8e8bbe6b8b14727efd953fae9d4aed2caeb004055d52f611c6378322847edbe", + "bytes": 400940, + "sampleRate": 24000, + "channels": 1, + "duration": 8.352, + "rms": 0.10000144970799159, + "peak": 0.470611572265625 + }, + { + "url": "http://127.0.0.1:4173/audio/first-tree.wav?v=0.2.3", + "sha256": "3178230fd5850b6277a2153b438ec5289720e3db7ac929914cc213964f004bd5", + "bytes": 379052, + "sampleRate": 24000, + "channels": 1, + "duration": 7.896, + "rms": 0.10000144270360484, + "peak": 0.5833613276481628 + }, + { + "url": "http://127.0.0.1:4173/audio/password-tree.wav?v=0.2.3", + "sha256": "67da8147296e35134ec254bc82b58317630061b2c64d2d63c4be197ce8692d50", + "bytes": 233900, + "sampleRate": 24000, + "channels": 1, + "duration": 4.872, + "rms": 0.10000156310809623, + "peak": 0.4904019236564636 + } + ] +} diff --git a/.agent/evidence-v0.2.3/browser/mobile-early-exit.png b/.agent/evidence-v0.2.3/browser/mobile-early-exit.png new file mode 100644 index 0000000..386ad4b Binary files /dev/null and b/.agent/evidence-v0.2.3/browser/mobile-early-exit.png differ diff --git a/.agent/evidence-v0.2.3/browser/mobile-game.png b/.agent/evidence-v0.2.3/browser/mobile-game.png new file mode 100644 index 0000000..b96b16a Binary files /dev/null and b/.agent/evidence-v0.2.3/browser/mobile-game.png differ diff --git a/.agent/evidence-v0.2.3/browser/mobile-normal-results.png b/.agent/evidence-v0.2.3/browser/mobile-normal-results.png new file mode 100644 index 0000000..dbbfb3f Binary files /dev/null and b/.agent/evidence-v0.2.3/browser/mobile-normal-results.png differ diff --git a/.agent/evidence-v0.2.3/browser/mobile-runtime-audit.json b/.agent/evidence-v0.2.3/browser/mobile-runtime-audit.json new file mode 100644 index 0000000..3abee7a --- /dev/null +++ b/.agent/evidence-v0.2.3/browser/mobile-runtime-audit.json @@ -0,0 +1,70 @@ +{ + "errors": [], + "failed": [], + "external": [], + "audio": { + "starts": [ + { + "loop": true, + "duration": 12 + }, + { + "loop": false, + "duration": 7.055986394557823 + }, + { + "loop": false, + "duration": 7.2 + }, + { + "loop": true, + "duration": 12 + }, + { + "loop": false, + "duration": 8.351995464852608 + }, + { + "loop": true, + "duration": 12 + }, + { + "loop": false, + "duration": 10.679977324263039 + }, + { + "loop": true, + "duration": 12 + }, + { + "loop": false, + "duration": 7.055986394557823 + }, + { + "loop": false, + "duration": 4.919977324263039 + }, + { + "loop": true, + "duration": 12 + }, + { + "loop": false, + "duration": 7.055986394557823 + }, + { + "loop": false, + "duration": 10.871995464852608 + }, + { + "loop": true, + "duration": 12 + }, + { + "loop": false, + "duration": 10.871995464852608 + } + ], + "stops": 15 + } +} diff --git a/.agent/evidence-v0.2.3/browser/mobile-start.png b/.agent/evidence-v0.2.3/browser/mobile-start.png new file mode 100644 index 0000000..5310018 Binary files /dev/null and b/.agent/evidence-v0.2.3/browser/mobile-start.png differ diff --git a/.agent/evidence-v0.2.3/chrome-sandbox.json b/.agent/evidence-v0.2.3/chrome-sandbox.json new file mode 100644 index 0000000..69a5812 --- /dev/null +++ b/.agent/evidence-v0.2.3/chrome-sandbox.json @@ -0,0 +1,491 @@ +{ + "chrome": "Google Chrome 146.0.7680.80", + "chromiumSandbox": true, + "noSandboxFlagCount": 0, + "processes": [ + { + "pid": 168249, + "arguments": [ + "/opt/google/chrome/chrome" + ], + "status": { + "NoNewPrivs": "0", + "Seccomp": "0", + "Seccomp_filters": "0" + } + }, + { + "pid": 168264, + "arguments": [ + "/opt/google/chrome/chrome --type=zygote --no-zygote-sandbox --crashpad-handler-pid=168256 --enable-crash-reporter=, --change-stack-guard-on-fork=enable" + ], + "status": { + "NoNewPrivs": "1", + "Seccomp": "0", + "Seccomp_filters": "0" + } + }, + { + "pid": 168265, + "arguments": [ + "/opt/google/chrome/chrome --type=zygote --crashpad-handler-pid=168256 --enable-crash-reporter=, --change-stack-guard-on-fork=enable" + ], + "status": { + "NoNewPrivs": "1", + "Seccomp": "0", + "Seccomp_filters": "0" + } + }, + { + "pid": 168268, + "arguments": [ + "/opt/google/chrome/chrome --type=zygote --crashpad-handler-pid=168256 --enable-crash-reporter=, --change-stack-guard-on-fork=enable" + ], + "status": { + "NoNewPrivs": "1", + "Seccomp": "0", + "Seccomp_filters": "0" + } + }, + { + "pid": 168292, + "arguments": [ + "/opt/google/chrome/chrome --type=gpu-process --ozone-platform=x11 --crashpad-handler-pid=168256 --enable-crash-reporter=, --change-stack-guard-on-fork=enable --gpu-preferences=UAAAAAAAAAAgAQAEAAAAAAAAAAAAAGAAAQAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAYAAAAAAAAABgAAAAAAAAAAQAAAAAAAAAIAAAAAAAAAAgAAAAAAAAA --shared-files --metrics-shmem-handle=4,i,14291354633910481643,18055200788384851693,262144 --field-trial-handle=3,i,8136406019311784934,13306688404112930324,262144 --variations-seed-version=20260922-010034.982000-production --pseudonymization-salt-handle=7,i,960379141699236878,18410453323037949261,4 --trace-process-track-uuid=3190708988185955192" + ], + "status": { + "NoNewPrivs": "1", + "Seccomp": "0", + "Seccomp_filters": "0" + } + }, + { + "pid": 168294, + "arguments": [ + "/opt/google/chrome/chrome --type=utility --utility-sub-type=network.mojom.NetworkService --lang=ko --service-sandbox-type=none --crashpad-handler-pid=168256 --enable-crash-reporter=, --change-stack-guard-on-fork=enable --shared-files=v8_context_snapshot_data:100 --metrics-shmem-handle=4,i,7836721268434108173,2534075629378321517,524288 --field-trial-handle=3,i,8136406019311784934,13306688404112930324,262144 --variations-seed-version=20260922-010034.982000-production --pseudonymization-salt-handle=7,i,960379141699236878,18410453323037949261,4 --trace-process-track-uuid=3190708989122997041" + ], + "status": { + "NoNewPrivs": "1", + "Seccomp": "0", + "Seccomp_filters": "0" + } + }, + { + "pid": 168333, + "arguments": [ + "/opt/google/chrome/chrome --type=utility --utility-sub-type=storage.mojom.StorageService --lang=ko --service-sandbox-type=utility --crashpad-handler-pid=168256 --enable-crash-reporter=, --change-stack-guard-on-fork=enable --shared-files=v8_context_snapshot_data:100 --metrics-shmem-handle=4,i,3168681090942917587,1204268745690437355,524288 --field-trial-handle=3,i,8136406019311784934,13306688404112930324,262144 --variations-seed-version=20260922-010034.982000-production --pseudonymization-salt-handle=7,i,960379141699236878,18410453323037949261,4 --trace-process-track-uuid=3190708990060038890" + ], + "status": { + "NoNewPrivs": "1", + "Seccomp": "2", + "Seccomp_filters": "1" + } + }, + { + "pid": 168380, + "arguments": [ + "/opt/google/chrome/chrome --type=renderer --crashpad-handler-pid=168256 --enable-crash-reporter=, --change-stack-guard-on-fork=enable --ozone-platform=x11 --disable-gpu-compositing --lang=ko --num-raster-threads=2 --enable-main-frame-before-activation --renderer-client-id=7 --time-ticks-at-unix-epoch=-1790509733151410 --launch-time-ticks=589519063107 --shared-files=v8_context_snapshot_data:100 --metrics-shmem-handle=4,i,6131905126289778400,11168932062671034045,2097152 --field-trial-handle=3,i,8136406019311784934,13306688404112930324,262144 --variations-seed-version=20260922-010034.982000-production --pseudonymization-salt-handle=7,i,960379141699236878,18410453323037949261,4 --trace-process-track-uuid=3190708992871164437" + ], + "status": { + "NoNewPrivs": "1", + "Seccomp": "2", + "Seccomp_filters": "1" + } + }, + { + "pid": 169089, + "arguments": [ + "/opt/google/chrome/chrome --type=renderer --crashpad-handler-pid=168256 --enable-crash-reporter=, --change-stack-guard-on-fork=enable --ozone-platform=x11 --disable-gpu-compositing --lang=ko --num-raster-threads=2 --enable-main-frame-before-activation --renderer-client-id=27 --time-ticks-at-unix-epoch=-1790509733151410 --launch-time-ticks=589684791832 --shared-files=v8_context_snapshot_data:100 --metrics-shmem-handle=4,i,4624929019749894894,12477991423886817075,2097152 --field-trial-handle=3,i,8136406019311784934,13306688404112930324,262144 --variations-seed-version=20260922-010034.982000-production --pseudonymization-salt-handle=7,i,960379141699236878,18410453323037949261,4 --trace-process-track-uuid=3190709011612001417" + ], + "status": { + "NoNewPrivs": "1", + "Seccomp": "2", + "Seccomp_filters": "1" + } + }, + { + "pid": 170410, + "arguments": [ + "/opt/google/chrome/chrome --type=renderer --crashpad-handler-pid=168256 --enable-crash-reporter=, --change-stack-guard-on-fork=enable --ozone-platform=x11 --disable-gpu-compositing --lang=ko --num-raster-threads=2 --enable-main-frame-before-activation --renderer-client-id=28 --time-ticks-at-unix-epoch=-1790509733151410 --launch-time-ticks=589790858030 --shared-files=v8_context_snapshot_data:100 --metrics-shmem-handle=4,i,13291627472248679665,13203884351156868339,2097152 --field-trial-handle=3,i,8136406019311784934,13306688404112930324,262144 --variations-seed-version=20260922-010034.982000-production --pseudonymization-salt-handle=7,i,960379141699236878,18410453323037949261,4 --trace-process-track-uuid=3190709012549043266" + ], + "status": { + "NoNewPrivs": "1", + "Seccomp": "2", + "Seccomp_filters": "1" + } + }, + { + "pid": 170958, + "arguments": [ + "/opt/google/chrome/chrome --type=renderer --crashpad-handler-pid=168256 --enable-crash-reporter=, --change-stack-guard-on-fork=enable --ozone-platform=x11 --disable-gpu-compositing --lang=ko --num-raster-threads=2 --enable-main-frame-before-activation --renderer-client-id=30 --time-ticks-at-unix-epoch=-1790509733151410 --launch-time-ticks=590048335088 --shared-files=v8_context_snapshot_data:100 --metrics-shmem-handle=4,i,7877504004805935350,18085815758085373819,2097152 --field-trial-handle=3,i,8136406019311784934,13306688404112930324,262144 --variations-seed-version=20260922-010034.982000-production --pseudonymization-salt-handle=7,i,960379141699236878,18410453323037949261,4 --trace-process-track-uuid=3190709014423126964" + ], + "status": { + "NoNewPrivs": "1", + "Seccomp": "2", + "Seccomp_filters": "1" + } + }, + { + "pid": 602780, + "arguments": [ + "/home/hermes/.local/opt/aribrowser/0.0.1/aribrowser/_internal/playwright/driver/package/.local-browsers/chromium-1243/chrome-linux64/chrome --disable-field-trial-config --disable-background-networking --disable-background-timer-throttling --disable-backgrounding-occluded-windows --disable-back-forward-cache --disable-breakpad --disable-client-side-phishing-detection --disable-component-extensions-with-background-pages --disable-component-update --no-default-browser-check --disable-default-apps --disable-dev-shm-usage --disable-edgeupdater --disable-extensions --disable-features=AvoidUnnecessaryBeforeUnloadCheckSync,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,PaintHolding,ThirdPartyStoragePartitioning,BlockOriginHeaderModificationOnRedirect,Translate,AutoDeElevate,OptimizationHints,msForceBrowserSignIn,msEdgeUpdateLaunchServicesPreferredVersion --enable-features=CDPScreenshotNewSurface --allow-pre-commit-input --disable-hang-monitor --disable-ipc-flooding-protection --disable-popup-blocking --disable-prompt-on-repost --disable-renderer-backgrounding --disable-updater-scheduler --force-color-profile=srgb --metrics-recording-only --no-first-run --password-store=basic --use-mock-keychain --no-service-autorun --export-tagged-pdf --disable-search-engine-choice-screen --unsafely-disable-devtools-self-xss-warnings --edge-skip-compat-layer-relaunch --disable-infobars --disable-search-engine-choice-screen --disable-sync --enable-unsafe-swiftshader --autoplay-policy=user-gesture-required --user-data-dir=/home/hermes/.aribrowser/neo-rdp-bundled/profiles/default --remote-debugging-pipe about:blank" + ], + "status": { + "NoNewPrivs": "0", + "Seccomp": "0", + "Seccomp_filters": "0" + } + }, + { + "pid": 602788, + "arguments": [ + "/home/hermes/.local/opt/aribrowser/0.0.1/aribrowser/_internal/playwright/driver/package/.local-browsers/chromium-1243/chrome-linux64/chrome --type=zygote --no-zygote-sandbox --crashpad-handler-pid=602782 --enable-crash-reporter=, --user-data-dir=/home/hermes/.aribrowser/neo-rdp-bundled/profiles/default --change-stack-guard-on-fork=enable" + ], + "status": { + "NoNewPrivs": "1", + "Seccomp": "0", + "Seccomp_filters": "0" + } + }, + { + "pid": 602789, + "arguments": [ + "/home/hermes/.local/opt/aribrowser/0.0.1/aribrowser/_internal/playwright/driver/package/.local-browsers/chromium-1243/chrome-linux64/chrome --type=zygote --crashpad-handler-pid=602782 --enable-crash-reporter=, --user-data-dir=/home/hermes/.aribrowser/neo-rdp-bundled/profiles/default --change-stack-guard-on-fork=enable" + ], + "status": { + "NoNewPrivs": "1", + "Seccomp": "0", + "Seccomp_filters": "0" + } + }, + { + "pid": 602792, + "arguments": [ + "/home/hermes/.local/opt/aribrowser/0.0.1/aribrowser/_internal/playwright/driver/package/.local-browsers/chromium-1243/chrome-linux64/chrome --type=zygote --crashpad-handler-pid=602782 --enable-crash-reporter=, --user-data-dir=/home/hermes/.aribrowser/neo-rdp-bundled/profiles/default --change-stack-guard-on-fork=enable" + ], + "status": { + "NoNewPrivs": "1", + "Seccomp": "0", + "Seccomp_filters": "0" + } + }, + { + "pid": 602816, + "arguments": [ + "/home/hermes/.local/opt/aribrowser/0.0.1/aribrowser/_internal/playwright/driver/package/.local-browsers/chromium-1243/chrome-linux64/chrome --type=utility --utility-sub-type=network.mojom.NetworkService --lang=ko --service-sandbox-type=none --disable-dev-shm-usage --crashpad-handler-pid=602782 --enable-crash-reporter=, --user-data-dir=/home/hermes/.aribrowser/neo-rdp-bundled/profiles/default --change-stack-guard-on-fork=enable --shared-files=v8_context_snapshot_data:100 --metrics-shmem-handle=4,i,18353086658311813782,3541984021392675505,524288 --field-trial-handle=3,i,18045517349782630742,10402729766613933435,262144 --enable-features=CDPScreenshotNewSurface --disable-features=AutoDeElevate,AvoidUnnecessaryBeforeUnloadCheckSync,BlockOriginHeaderModificationOnRedirect,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,OptimizationHints,PaintHolding,ThirdPartyStoragePartitioning,Translate,msEdgeUpdateLaunchServicesPreferredVersion,msForceBrowserSignIn --variations-seed-version --pseudonymization-salt-handle=7,i,17561646907599541801,5294123538028304638,4 --trace-process-track-uuid=3190708989122997041" + ], + "status": { + "NoNewPrivs": "1", + "Seccomp": "0", + "Seccomp_filters": "0" + } + }, + { + "pid": 602826, + "arguments": [ + "/home/hermes/.local/opt/aribrowser/0.0.1/aribrowser/_internal/playwright/driver/package/.local-browsers/chromium-1243/chrome-linux64/chrome --type=utility --utility-sub-type=storage.mojom.StorageService --lang=ko --service-sandbox-type=utility --disable-dev-shm-usage --crashpad-handler-pid=602782 --enable-crash-reporter=, --user-data-dir=/home/hermes/.aribrowser/neo-rdp-bundled/profiles/default --change-stack-guard-on-fork=enable --shared-files=v8_context_snapshot_data:100 --metrics-shmem-handle=4,i,3054957669694313200,16714299635387228149,524288 --field-trial-handle=3,i,18045517349782630742,10402729766613933435,262144 --enable-features=CDPScreenshotNewSurface --disable-features=AutoDeElevate,AvoidUnnecessaryBeforeUnloadCheckSync,BlockOriginHeaderModificationOnRedirect,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,OptimizationHints,PaintHolding,ThirdPartyStoragePartitioning,Translate,msEdgeUpdateLaunchServicesPreferredVersion,msForceBrowserSignIn --variations-seed-version --pseudonymization-salt-handle=7,i,17561646907599541801,5294123538028304638,4 --trace-process-track-uuid=3190708990060038890" + ], + "status": { + "NoNewPrivs": "1", + "Seccomp": "2", + "Seccomp_filters": "1" + } + }, + { + "pid": 602854, + "arguments": [ + "/home/hermes/.local/opt/aribrowser/0.0.1/aribrowser/_internal/playwright/driver/package/.local-browsers/chromium-1243/chrome-linux64/chrome --type=renderer --top-chrome-webui --crashpad-handler-pid=602782 --enable-crash-reporter=, --user-data-dir=/home/hermes/.aribrowser/neo-rdp-bundled/profiles/default --change-stack-guard-on-fork=enable --disable-dev-shm-usage --autoplay-policy=user-gesture-required --disable-back-forward-cache --disable-background-timer-throttling --disable-breakpad --force-color-profile=srgb --remote-debugging-pipe --allow-pre-commit-input --ozone-platform=x11 --lang=ko --num-raster-threads=2 --enable-main-frame-before-activation --renderer-client-id=5 --launch-time-ticks=1270468582259 --shared-files=v8_context_snapshot_data:100 --metrics-shmem-handle=4,i,18126389917559087960,16697235285450384184,1572864 --field-trial-handle=3,i,18045517349782630742,10402729766613933435,262144 --enable-features=CDPScreenshotNewSurface --disable-features=AutoDeElevate,AvoidUnnecessaryBeforeUnloadCheckSync,BlockOriginHeaderModificationOnRedirect,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,OptimizationHints,PaintHolding,ThirdPartyStoragePartitioning,Translate,msEdgeUpdateLaunchServicesPreferredVersion,msForceBrowserSignIn --variations-seed-version --pseudonymization-salt-handle=7,i,17561646907599541801,5294123538028304638,4 --trace-process-track-uuid=3190708990997080739" + ], + "status": { + "NoNewPrivs": "1", + "Seccomp": "2", + "Seccomp_filters": "1" + } + }, + { + "pid": 602864, + "arguments": [ + "/home/hermes/.local/opt/aribrowser/0.0.1/aribrowser/_internal/playwright/driver/package/.local-browsers/chromium-1243/chrome-linux64/chrome --type=renderer --crashpad-handler-pid=602782 --enable-crash-reporter=, --user-data-dir=/home/hermes/.aribrowser/neo-rdp-bundled/profiles/default --change-stack-guard-on-fork=enable --disable-dev-shm-usage --autoplay-policy=user-gesture-required --disable-back-forward-cache --disable-background-timer-throttling --disable-breakpad --force-color-profile=srgb --remote-debugging-pipe --allow-pre-commit-input --ozone-platform=x11 --lang=ko --num-raster-threads=2 --enable-main-frame-before-activation --renderer-client-id=6 --launch-time-ticks=1270468626491 --shared-files=v8_context_snapshot_data:100 --metrics-shmem-handle=4,i,13522746497196411964,1973721546285530015,1572864 --field-trial-handle=3,i,18045517349782630742,10402729766613933435,262144 --enable-features=CDPScreenshotNewSurface --disable-features=AutoDeElevate,AvoidUnnecessaryBeforeUnloadCheckSync,BlockOriginHeaderModificationOnRedirect,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,OptimizationHints,PaintHolding,ThirdPartyStoragePartitioning,Translate,msEdgeUpdateLaunchServicesPreferredVersion,msForceBrowserSignIn --variations-seed-version --pseudonymization-salt-handle=7,i,17561646907599541801,5294123538028304638,4 --trace-process-track-uuid=3190708991934122588" + ], + "status": { + "NoNewPrivs": "1", + "Seccomp": "2", + "Seccomp_filters": "1" + } + }, + { + "pid": 602893, + "arguments": [ + "/home/hermes/.local/opt/aribrowser/0.0.1/aribrowser/_internal/playwright/driver/package/.local-browsers/chromium-1243/chrome-linux64/chrome --type=gpu-process --disable-dev-shm-usage --disable-breakpad --ozone-platform=x11 --enable-unsafe-swiftshader --crashpad-handler-pid=602782 --enable-crash-reporter=, --user-data-dir=/home/hermes/.aribrowser/neo-rdp-bundled/profiles/default --change-stack-guard-on-fork=enable --gpu-preferences=YAAAAAAAAAAgAAAEAAAAAAAAAAAAAGAASAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAAAEAAAAAAAAACAAAAAAAAAAMAAAAAQAAAAAAAAAAAAAACAAAAAAAAAAIAAAAAAAAAA== --use-gl=angle --use-angle=swiftshader-webgl --shared-files --metrics-shmem-handle=4,i,10262696959898967737,5018343937365096411,262144 --field-trial-handle=3,i,18045517349782630742,10402729766613933435,262144 --enable-features=CDPScreenshotNewSurface --disable-features=AutoDeElevate,AvoidUnnecessaryBeforeUnloadCheckSync,BlockOriginHeaderModificationOnRedirect,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,OptimizationHints,PaintHolding,ThirdPartyStoragePartitioning,Translate,msEdgeUpdateLaunchServicesPreferredVersion,msForceBrowserSignIn --variations-seed-version --pseudonymization-salt-handle=7,i,17561646907599541801,5294123538028304638,4 --trace-process-track-uuid=3190708994745248135" + ], + "status": { + "NoNewPrivs": "1", + "Seccomp": "0", + "Seccomp_filters": "0" + } + }, + { + "pid": 603195, + "arguments": [ + "/home/hermes/.local/opt/aribrowser/0.0.1/aribrowser/_internal/playwright/driver/package/.local-browsers/chromium-1243/chrome-linux64/chrome --type=renderer --crashpad-handler-pid=602782 --enable-crash-reporter=, --user-data-dir=/home/hermes/.aribrowser/neo-rdp-bundled/profiles/default --change-stack-guard-on-fork=enable --disable-dev-shm-usage --autoplay-policy=user-gesture-required --disable-back-forward-cache --disable-background-timer-throttling --disable-breakpad --force-color-profile=srgb --remote-debugging-pipe --allow-pre-commit-input --ozone-platform=x11 --disable-gpu-compositing --lang=ko --num-raster-threads=2 --enable-main-frame-before-activation --renderer-client-id=18 --launch-time-ticks=1270655782480 --shared-files=v8_context_snapshot_data:100 --metrics-shmem-handle=4,i,11475536761231474068,17711566608298461222,1572864 --field-trial-handle=3,i,18045517349782630742,10402729766613933435,262144 --enable-features=CDPScreenshotNewSurface --disable-features=AutoDeElevate,AvoidUnnecessaryBeforeUnloadCheckSync,BlockOriginHeaderModificationOnRedirect,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,OptimizationHints,PaintHolding,ThirdPartyStoragePartitioning,Translate,msEdgeUpdateLaunchServicesPreferredVersion,msForceBrowserSignIn --variations-seed-version --pseudonymization-salt-handle=7,i,17561646907599541801,5294123538028304638,4 --trace-process-track-uuid=3190709003178624776" + ], + "status": { + "NoNewPrivs": "1", + "Seccomp": "2", + "Seccomp_filters": "1" + } + }, + { + "pid": 603207, + "arguments": [ + "/home/hermes/.local/opt/aribrowser/0.0.1/aribrowser/_internal/playwright/driver/package/.local-browsers/chromium-1243/chrome-linux64/chrome --type=renderer --crashpad-handler-pid=602782 --enable-crash-reporter=, --user-data-dir=/home/hermes/.aribrowser/neo-rdp-bundled/profiles/default --change-stack-guard-on-fork=enable --disable-dev-shm-usage --autoplay-policy=user-gesture-required --disable-back-forward-cache --disable-background-timer-throttling --disable-breakpad --force-color-profile=srgb --remote-debugging-pipe --allow-pre-commit-input --ozone-platform=x11 --disable-gpu-compositing --lang=ko --num-raster-threads=2 --enable-main-frame-before-activation --renderer-client-id=19 --launch-time-ticks=1270655868558 --shared-files=v8_context_snapshot_data:100 --metrics-shmem-handle=4,i,16093156521805925936,14230161299301017302,1572864 --field-trial-handle=3,i,18045517349782630742,10402729766613933435,262144 --enable-features=CDPScreenshotNewSurface --disable-features=AutoDeElevate,AvoidUnnecessaryBeforeUnloadCheckSync,BlockOriginHeaderModificationOnRedirect,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,OptimizationHints,PaintHolding,ThirdPartyStoragePartitioning,Translate,msEdgeUpdateLaunchServicesPreferredVersion,msForceBrowserSignIn --variations-seed-version --pseudonymization-salt-handle=7,i,17561646907599541801,5294123538028304638,4 --trace-process-track-uuid=3190709004115666625" + ], + "status": { + "NoNewPrivs": "1", + "Seccomp": "2", + "Seccomp_filters": "1" + } + }, + { + "pid": 603235, + "arguments": [ + "/home/hermes/.local/opt/aribrowser/0.0.1/aribrowser/_internal/playwright/driver/package/.local-browsers/chromium-1243/chrome-linux64/chrome --type=renderer --crashpad-handler-pid=602782 --enable-crash-reporter=, --user-data-dir=/home/hermes/.aribrowser/neo-rdp-bundled/profiles/default --change-stack-guard-on-fork=enable --disable-dev-shm-usage --autoplay-policy=user-gesture-required --disable-back-forward-cache --disable-background-timer-throttling --disable-breakpad --force-color-profile=srgb --remote-debugging-pipe --allow-pre-commit-input --ozone-platform=x11 --disable-gpu-compositing --lang=ko --num-raster-threads=2 --enable-main-frame-before-activation --renderer-client-id=22 --launch-time-ticks=1270660571620 --shared-files=v8_context_snapshot_data:100 --metrics-shmem-handle=4,i,12055397171720161404,5896616987405580444,1572864 --field-trial-handle=3,i,18045517349782630742,10402729766613933435,262144 --enable-features=CDPScreenshotNewSurface --disable-features=AutoDeElevate,AvoidUnnecessaryBeforeUnloadCheckSync,BlockOriginHeaderModificationOnRedirect,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,OptimizationHints,PaintHolding,ThirdPartyStoragePartitioning,Translate,msEdgeUpdateLaunchServicesPreferredVersion,msForceBrowserSignIn --variations-seed-version --pseudonymization-salt-handle=7,i,17561646907599541801,5294123538028304638,4 --trace-process-track-uuid=3190709006926792172" + ], + "status": { + "NoNewPrivs": "1", + "Seccomp": "2", + "Seccomp_filters": "1" + } + }, + { + "pid": 603241, + "arguments": [ + "/home/hermes/.local/opt/aribrowser/0.0.1/aribrowser/_internal/playwright/driver/package/.local-browsers/chromium-1243/chrome-linux64/chrome --type=renderer --crashpad-handler-pid=602782 --enable-crash-reporter=, --user-data-dir=/home/hermes/.aribrowser/neo-rdp-bundled/profiles/default --change-stack-guard-on-fork=enable --disable-dev-shm-usage --autoplay-policy=user-gesture-required --disable-back-forward-cache --disable-background-timer-throttling --disable-breakpad --force-color-profile=srgb --remote-debugging-pipe --allow-pre-commit-input --ozone-platform=x11 --disable-gpu-compositing --lang=ko --num-raster-threads=2 --enable-main-frame-before-activation --renderer-client-id=23 --launch-time-ticks=1270660583035 --shared-files=v8_context_snapshot_data:100 --metrics-shmem-handle=4,i,4936369833441987940,11161939525235037587,1572864 --field-trial-handle=3,i,18045517349782630742,10402729766613933435,262144 --enable-features=CDPScreenshotNewSurface --disable-features=AutoDeElevate,AvoidUnnecessaryBeforeUnloadCheckSync,BlockOriginHeaderModificationOnRedirect,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,OptimizationHints,PaintHolding,ThirdPartyStoragePartitioning,Translate,msEdgeUpdateLaunchServicesPreferredVersion,msForceBrowserSignIn --variations-seed-version --pseudonymization-salt-handle=7,i,17561646907599541801,5294123538028304638,4 --trace-process-track-uuid=3190709007863834021" + ], + "status": { + "NoNewPrivs": "1", + "Seccomp": "2", + "Seccomp_filters": "1" + } + }, + { + "pid": 812223, + "arguments": [ + "/opt/google/chrome/chrome --disable-field-trial-config --disable-background-networking --disable-background-timer-throttling --disable-backgrounding-occluded-windows --disable-back-forward-cache --disable-breakpad --disable-client-side-phishing-detection --disable-component-extensions-with-background-pages --disable-component-update --no-default-browser-check --disable-default-apps --disable-dev-shm-usage --disable-edgeupdater --disable-extensions --disable-features=AvoidUnnecessaryBeforeUnloadCheckSync,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,PaintHolding,ThirdPartyStoragePartitioning,BlockOriginHeaderModificationOnRedirect,Translate,AutoDeElevate,OptimizationHints,NetworkTimeServiceQuerying,AimEnabled,msForceBrowserSignIn,msEdgeUpdateLaunchServicesPreferredVersion --enable-features=CDPScreenshotNewSurface --allow-pre-commit-input --disable-hang-monitor --disable-ipc-flooding-protection --disable-popup-blocking --disable-prompt-on-repost --disable-renderer-backgrounding --disable-updater-scheduler --force-color-profile=srgb --metrics-recording-only --no-first-run --password-store=basic --use-mock-keychain --no-service-autorun --export-tagged-pdf --disable-search-engine-choice-screen --unsafely-disable-devtools-self-xss-warnings --edge-skip-compat-layer-relaunch --disable-infobars --disable-search-engine-choice-screen --disable-sync --enable-unsafe-swiftshader --headless --hide-scrollbars --mute-audio --blink-settings=primaryHoverType=2,availableHoverTypes=2,primaryPointerType=4,availablePointerTypes=4 --user-data-dir=/tmp/playwright_chromiumdev_profile-gtleAO --remote-debugging-pipe --no-startup-window --noerrdialogs --ozone-platform=headless --ozone-override-screen-size=800,600 --use-angle=swiftshader-webgl" + ], + "status": { + "NoNewPrivs": "0", + "Seccomp": "0", + "Seccomp_filters": "0" + } + }, + { + "pid": 812238, + "arguments": [ + "/opt/google/chrome/chrome --type=zygote --no-zygote-sandbox --headless --crashpad-handler-pid=812230 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/playwright_chromiumdev_profile-gtleAO --change-stack-guard-on-fork=enable --no-first-run --ozone-platform=headless --ozone-override-screen-size=800,600 --use-angle=swiftshader-webgl" + ], + "status": { + "NoNewPrivs": "1", + "Seccomp": "0", + "Seccomp_filters": "0" + } + }, + { + "pid": 812239, + "arguments": [ + "/opt/google/chrome/chrome --type=zygote --headless --crashpad-handler-pid=812230 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/playwright_chromiumdev_profile-gtleAO --change-stack-guard-on-fork=enable --no-first-run --ozone-platform=headless --ozone-override-screen-size=800,600 --use-angle=swiftshader-webgl" + ], + "status": { + "NoNewPrivs": "1", + "Seccomp": "0", + "Seccomp_filters": "0" + } + }, + { + "pid": 812241, + "arguments": [ + "/opt/google/chrome/chrome --type=zygote --headless --crashpad-handler-pid=812230 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/playwright_chromiumdev_profile-gtleAO --change-stack-guard-on-fork=enable --no-first-run --ozone-platform=headless --ozone-override-screen-size=800,600 --use-angle=swiftshader-webgl" + ], + "status": { + "NoNewPrivs": "1", + "Seccomp": "0", + "Seccomp_filters": "0" + } + }, + { + "pid": 812263, + "arguments": [ + "/opt/google/chrome/chrome --type=gpu-process --disable-dev-shm-usage --disable-breakpad --headless --ozone-platform=headless --use-angle=swiftshader-webgl --enable-unsafe-swiftshader --crashpad-handler-pid=812230 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/playwright_chromiumdev_profile-gtleAO --change-stack-guard-on-fork=enable --gpu-preferences=UAAAAAAAAAAgAAAEAAAAAAAAAAAAAGAAAQAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAYAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAgAAAAAAAAA --shared-files --field-trial-handle=3,i,13494638045680039847,3486954602125472697,262144 --enable-features=CDPScreenshotNewSurface --disable-features=AimEnabled,AutoDeElevate,AvoidUnnecessaryBeforeUnloadCheckSync,BlockOriginHeaderModificationOnRedirect,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,NetworkTimeServiceQuerying,OptimizationHints,PaintHolding,ThirdPartyStoragePartitioning,Translate,msEdgeUpdateLaunchServicesPreferredVersion,msForceBrowserSignIn --variations-seed-version --pseudonymization-salt-handle=7,i,16997224032661951580,10055018774166276530,4 --trace-process-track-uuid=3190708988185955192" + ], + "status": { + "NoNewPrivs": "1", + "Seccomp": "0", + "Seccomp_filters": "0" + } + }, + { + "pid": 812265, + "arguments": [ + "/opt/google/chrome/chrome --type=utility --utility-sub-type=network.mojom.NetworkService --lang=en-US --service-sandbox-type=none --disable-dev-shm-usage --use-angle=swiftshader-webgl --mute-audio --crashpad-handler-pid=812230 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/playwright_chromiumdev_profile-gtleAO --change-stack-guard-on-fork=enable --shared-files=v8_context_snapshot_data:100 --field-trial-handle=3,i,13494638045680039847,3486954602125472697,262144 --enable-features=CDPScreenshotNewSurface --disable-features=AimEnabled,AutoDeElevate,AvoidUnnecessaryBeforeUnloadCheckSync,BlockOriginHeaderModificationOnRedirect,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,NetworkTimeServiceQuerying,OptimizationHints,PaintHolding,ThirdPartyStoragePartitioning,Translate,msEdgeUpdateLaunchServicesPreferredVersion,msForceBrowserSignIn --variations-seed-version --pseudonymization-salt-handle=7,i,16997224032661951580,10055018774166276530,4 --trace-process-track-uuid=3190708989122997041" + ], + "status": { + "NoNewPrivs": "1", + "Seccomp": "0", + "Seccomp_filters": "0" + } + }, + { + "pid": 812266, + "arguments": [ + "/opt/google/chrome/chrome --type=utility --utility-sub-type=storage.mojom.StorageService --lang=en-US --service-sandbox-type=utility --disable-dev-shm-usage --use-angle=swiftshader-webgl --mute-audio --crashpad-handler-pid=812230 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/playwright_chromiumdev_profile-gtleAO --change-stack-guard-on-fork=enable --shared-files=v8_context_snapshot_data:100 --field-trial-handle=3,i,13494638045680039847,3486954602125472697,262144 --enable-features=CDPScreenshotNewSurface --disable-features=AimEnabled,AutoDeElevate,AvoidUnnecessaryBeforeUnloadCheckSync,BlockOriginHeaderModificationOnRedirect,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,NetworkTimeServiceQuerying,OptimizationHints,PaintHolding,ThirdPartyStoragePartitioning,Translate,msEdgeUpdateLaunchServicesPreferredVersion,msForceBrowserSignIn --variations-seed-version --pseudonymization-salt-handle=7,i,16997224032661951580,10055018774166276530,4 --trace-process-track-uuid=3190708990060038890" + ], + "status": { + "NoNewPrivs": "1", + "Seccomp": "2", + "Seccomp_filters": "1" + } + }, + { + "pid": 812326, + "arguments": [ + "/opt/google/chrome/chrome --type=utility --utility-sub-type=audio.mojom.AudioService --lang=en-US --service-sandbox-type=none --disable-dev-shm-usage --use-angle=swiftshader-webgl --mute-audio --crashpad-handler-pid=812230 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/playwright_chromiumdev_profile-gtleAO --change-stack-guard-on-fork=enable --shared-files=v8_context_snapshot_data:100 --field-trial-handle=3,i,13494638045680039847,3486954602125472697,262144 --enable-features=CDPScreenshotNewSurface --disable-features=AimEnabled,AutoDeElevate,AvoidUnnecessaryBeforeUnloadCheckSync,BlockOriginHeaderModificationOnRedirect,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,NetworkTimeServiceQuerying,OptimizationHints,PaintHolding,ThirdPartyStoragePartitioning,Translate,msEdgeUpdateLaunchServicesPreferredVersion,msForceBrowserSignIn --variations-seed-version --pseudonymization-salt-handle=7,i,16997224032661951580,10055018774166276530,4 --trace-process-track-uuid=3190708992871164437" + ], + "status": { + "NoNewPrivs": "1", + "Seccomp": "0", + "Seccomp_filters": "0" + } + }, + { + "pid": 812430, + "arguments": [ + "/opt/google/chrome/chrome --disable-field-trial-config --disable-background-networking --disable-background-timer-throttling --disable-backgrounding-occluded-windows --disable-back-forward-cache --disable-breakpad --disable-client-side-phishing-detection --disable-component-extensions-with-background-pages --disable-component-update --no-default-browser-check --disable-default-apps --disable-dev-shm-usage --disable-edgeupdater --disable-extensions --disable-features=AvoidUnnecessaryBeforeUnloadCheckSync,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,PaintHolding,ThirdPartyStoragePartitioning,BlockOriginHeaderModificationOnRedirect,Translate,AutoDeElevate,OptimizationHints,NetworkTimeServiceQuerying,AimEnabled,msForceBrowserSignIn,msEdgeUpdateLaunchServicesPreferredVersion --enable-features=CDPScreenshotNewSurface --allow-pre-commit-input --disable-hang-monitor --disable-ipc-flooding-protection --disable-popup-blocking --disable-prompt-on-repost --disable-renderer-backgrounding --disable-updater-scheduler --force-color-profile=srgb --metrics-recording-only --no-first-run --password-store=basic --use-mock-keychain --no-service-autorun --export-tagged-pdf --disable-search-engine-choice-screen --unsafely-disable-devtools-self-xss-warnings --edge-skip-compat-layer-relaunch --disable-infobars --disable-search-engine-choice-screen --disable-sync --enable-unsafe-swiftshader --headless --hide-scrollbars --mute-audio --blink-settings=primaryHoverType=2,availableHoverTypes=2,primaryPointerType=4,availablePointerTypes=4 --user-data-dir=/tmp/playwright_chromiumdev_profile-PduMnR --remote-debugging-pipe --no-startup-window --noerrdialogs --ozone-platform=headless --ozone-override-screen-size=800,600 --use-angle=swiftshader-webgl" + ], + "status": { + "NoNewPrivs": "0", + "Seccomp": "0", + "Seccomp_filters": "0" + } + }, + { + "pid": 812445, + "arguments": [ + "/opt/google/chrome/chrome --type=zygote --no-zygote-sandbox --headless --crashpad-handler-pid=812437 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/playwright_chromiumdev_profile-PduMnR --change-stack-guard-on-fork=enable --no-first-run --ozone-platform=headless --ozone-override-screen-size=800,600 --use-angle=swiftshader-webgl" + ], + "status": { + "NoNewPrivs": "1", + "Seccomp": "0", + "Seccomp_filters": "0" + } + }, + { + "pid": 812446, + "arguments": [ + "/opt/google/chrome/chrome --type=zygote --headless --crashpad-handler-pid=812437 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/playwright_chromiumdev_profile-PduMnR --change-stack-guard-on-fork=enable --no-first-run --ozone-platform=headless --ozone-override-screen-size=800,600 --use-angle=swiftshader-webgl" + ], + "status": { + "NoNewPrivs": "1", + "Seccomp": "0", + "Seccomp_filters": "0" + } + }, + { + "pid": 812448, + "arguments": [ + "/opt/google/chrome/chrome --type=zygote --headless --crashpad-handler-pid=812437 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/playwright_chromiumdev_profile-PduMnR --change-stack-guard-on-fork=enable --no-first-run --ozone-platform=headless --ozone-override-screen-size=800,600 --use-angle=swiftshader-webgl" + ], + "status": { + "NoNewPrivs": "1", + "Seccomp": "0", + "Seccomp_filters": "0" + } + }, + { + "pid": 812469, + "arguments": [ + "/opt/google/chrome/chrome --type=gpu-process --disable-dev-shm-usage --disable-breakpad --headless --ozone-platform=headless --use-angle=swiftshader-webgl --enable-unsafe-swiftshader --crashpad-handler-pid=812437 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/playwright_chromiumdev_profile-PduMnR --change-stack-guard-on-fork=enable --gpu-preferences=UAAAAAAAAAAgAAAEAAAAAAAAAAAAAGAAAQAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAYAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAgAAAAAAAAA --shared-files --field-trial-handle=3,i,3282514567985981525,17694286954722835909,262144 --enable-features=CDPScreenshotNewSurface --disable-features=AimEnabled,AutoDeElevate,AvoidUnnecessaryBeforeUnloadCheckSync,BlockOriginHeaderModificationOnRedirect,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,NetworkTimeServiceQuerying,OptimizationHints,PaintHolding,ThirdPartyStoragePartitioning,Translate,msEdgeUpdateLaunchServicesPreferredVersion,msForceBrowserSignIn --variations-seed-version --pseudonymization-salt-handle=7,i,13529691599339577712,4344651098216256134,4 --trace-process-track-uuid=3190708988185955192" + ], + "status": { + "NoNewPrivs": "1", + "Seccomp": "0", + "Seccomp_filters": "0" + } + }, + { + "pid": 812471, + "arguments": [ + "/opt/google/chrome/chrome --type=utility --utility-sub-type=network.mojom.NetworkService --lang=en-US --service-sandbox-type=none --disable-dev-shm-usage --use-angle=swiftshader-webgl --mute-audio --crashpad-handler-pid=812437 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/playwright_chromiumdev_profile-PduMnR --change-stack-guard-on-fork=enable --shared-files=v8_context_snapshot_data:100 --field-trial-handle=3,i,3282514567985981525,17694286954722835909,262144 --enable-features=CDPScreenshotNewSurface --disable-features=AimEnabled,AutoDeElevate,AvoidUnnecessaryBeforeUnloadCheckSync,BlockOriginHeaderModificationOnRedirect,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,NetworkTimeServiceQuerying,OptimizationHints,PaintHolding,ThirdPartyStoragePartitioning,Translate,msEdgeUpdateLaunchServicesPreferredVersion,msForceBrowserSignIn --variations-seed-version --pseudonymization-salt-handle=7,i,13529691599339577712,4344651098216256134,4 --trace-process-track-uuid=3190708989122997041" + ], + "status": { + "NoNewPrivs": "1", + "Seccomp": "0", + "Seccomp_filters": "0" + } + }, + { + "pid": 812472, + "arguments": [ + "/opt/google/chrome/chrome --type=utility --utility-sub-type=storage.mojom.StorageService --lang=en-US --service-sandbox-type=utility --disable-dev-shm-usage --use-angle=swiftshader-webgl --mute-audio --crashpad-handler-pid=812437 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/playwright_chromiumdev_profile-PduMnR --change-stack-guard-on-fork=enable --shared-files=v8_context_snapshot_data:100 --field-trial-handle=3,i,3282514567985981525,17694286954722835909,262144 --enable-features=CDPScreenshotNewSurface --disable-features=AimEnabled,AutoDeElevate,AvoidUnnecessaryBeforeUnloadCheckSync,BlockOriginHeaderModificationOnRedirect,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,NetworkTimeServiceQuerying,OptimizationHints,PaintHolding,ThirdPartyStoragePartitioning,Translate,msEdgeUpdateLaunchServicesPreferredVersion,msForceBrowserSignIn --variations-seed-version --pseudonymization-salt-handle=7,i,13529691599339577712,4344651098216256134,4 --trace-process-track-uuid=3190708990060038890" + ], + "status": { + "NoNewPrivs": "1", + "Seccomp": "2", + "Seccomp_filters": "1" + } + }, + { + "pid": 812544, + "arguments": [ + "/opt/google/chrome/chrome --type=utility --utility-sub-type=audio.mojom.AudioService --lang=en-US --service-sandbox-type=none --disable-dev-shm-usage --use-angle=swiftshader-webgl --mute-audio --crashpad-handler-pid=812437 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/playwright_chromiumdev_profile-PduMnR --change-stack-guard-on-fork=enable --shared-files=v8_context_snapshot_data:100 --field-trial-handle=3,i,3282514567985981525,17694286954722835909,262144 --enable-features=CDPScreenshotNewSurface --disable-features=AimEnabled,AutoDeElevate,AvoidUnnecessaryBeforeUnloadCheckSync,BlockOriginHeaderModificationOnRedirect,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,NetworkTimeServiceQuerying,OptimizationHints,PaintHolding,ThirdPartyStoragePartitioning,Translate,msEdgeUpdateLaunchServicesPreferredVersion,msForceBrowserSignIn --variations-seed-version --pseudonymization-salt-handle=7,i,13529691599339577712,4344651098216256134,4 --trace-process-track-uuid=3190708993808206286" + ], + "status": { + "NoNewPrivs": "1", + "Seccomp": "0", + "Seccomp_filters": "0" + } + }, + { + "pid": 812677, + "arguments": [ + "/opt/google/chrome/chrome --type=renderer --crashpad-handler-pid=812230 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/playwright_chromiumdev_profile-gtleAO --change-stack-guard-on-fork=enable --disable-dev-shm-usage --disable-back-forward-cache --disable-background-timer-throttling --disable-breakpad --force-color-profile=srgb --remote-debugging-pipe --allow-pre-commit-input --blink-settings=primaryHoverType=2,availableHoverTypes=2,primaryPointerType=4,availablePointerTypes=4 --ozone-platform=headless --disable-gpu-compositing --lang=en-US --num-raster-threads=2 --enable-main-frame-before-activation --renderer-client-id=15 --time-ticks-at-unix-epoch=-1790509733151410 --launch-time-ticks=1455970234135 --shared-files=v8_context_snapshot_data:100 --field-trial-handle=3,i,13494638045680039847,3486954602125472697,262144 --enable-features=CDPScreenshotNewSurface --disable-features=AimEnabled,AutoDeElevate,AvoidUnnecessaryBeforeUnloadCheckSync,BlockOriginHeaderModificationOnRedirect,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,NetworkTimeServiceQuerying,OptimizationHints,PaintHolding,ThirdPartyStoragePartitioning,Translate,msEdgeUpdateLaunchServicesPreferredVersion,msForceBrowserSignIn --variations-seed-version --pseudonymization-salt-handle=7,i,16997224032661951580,10055018774166276530,4 --trace-process-track-uuid=3190709000367499229" + ], + "status": { + "NoNewPrivs": "1", + "Seccomp": "2", + "Seccomp_filters": "1" + } + }, + { + "pid": 812678, + "arguments": [ + "/opt/google/chrome/chrome --type=renderer --crashpad-handler-pid=812230 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/playwright_chromiumdev_profile-gtleAO --change-stack-guard-on-fork=enable --disable-dev-shm-usage --disable-back-forward-cache --disable-background-timer-throttling --disable-breakpad --force-color-profile=srgb --remote-debugging-pipe --allow-pre-commit-input --blink-settings=primaryHoverType=2,availableHoverTypes=2,primaryPointerType=4,availablePointerTypes=4 --ozone-platform=headless --disable-gpu-compositing --lang=en-US --num-raster-threads=2 --enable-main-frame-before-activation --renderer-client-id=14 --time-ticks-at-unix-epoch=-1790509733151410 --launch-time-ticks=1455970235495 --shared-files=v8_context_snapshot_data:100 --field-trial-handle=3,i,13494638045680039847,3486954602125472697,262144 --enable-features=CDPScreenshotNewSurface --disable-features=AimEnabled,AutoDeElevate,AvoidUnnecessaryBeforeUnloadCheckSync,BlockOriginHeaderModificationOnRedirect,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,NetworkTimeServiceQuerying,OptimizationHints,PaintHolding,ThirdPartyStoragePartitioning,Translate,msEdgeUpdateLaunchServicesPreferredVersion,msForceBrowserSignIn --variations-seed-version --pseudonymization-salt-handle=7,i,16997224032661951580,10055018774166276530,4 --trace-process-track-uuid=3190708999430457380" + ], + "status": { + "NoNewPrivs": "1", + "Seccomp": "2", + "Seccomp_filters": "1" + } + }, + { + "pid": 812734, + "arguments": [ + "/opt/google/chrome/chrome --type=renderer --crashpad-handler-pid=812437 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/playwright_chromiumdev_profile-PduMnR --change-stack-guard-on-fork=enable --disable-dev-shm-usage --disable-back-forward-cache --disable-background-timer-throttling --disable-breakpad --force-color-profile=srgb --remote-debugging-pipe --allow-pre-commit-input --blink-settings=primaryHoverType=2,availableHoverTypes=2,primaryPointerType=4,availablePointerTypes=4 --ozone-platform=headless --disable-gpu-compositing --lang=en-US --num-raster-threads=2 --enable-main-frame-before-activation --renderer-client-id=14 --time-ticks-at-unix-epoch=-1790509733151410 --launch-time-ticks=1455979221844 --shared-files=v8_context_snapshot_data:100 --field-trial-handle=3,i,3282514567985981525,17694286954722835909,262144 --enable-features=CDPScreenshotNewSurface --disable-features=AimEnabled,AutoDeElevate,AvoidUnnecessaryBeforeUnloadCheckSync,BlockOriginHeaderModificationOnRedirect,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,NetworkTimeServiceQuerying,OptimizationHints,PaintHolding,ThirdPartyStoragePartitioning,Translate,msEdgeUpdateLaunchServicesPreferredVersion,msForceBrowserSignIn --variations-seed-version --pseudonymization-salt-handle=7,i,13529691599339577712,4344651098216256134,4 --trace-process-track-uuid=3190708999430457380" + ], + "status": { + "NoNewPrivs": "1", + "Seccomp": "2", + "Seccomp_filters": "1" + } + }, + { + "pid": 812735, + "arguments": [ + "/opt/google/chrome/chrome --type=renderer --crashpad-handler-pid=812437 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/playwright_chromiumdev_profile-PduMnR --change-stack-guard-on-fork=enable --disable-dev-shm-usage --disable-back-forward-cache --disable-background-timer-throttling --disable-breakpad --force-color-profile=srgb --remote-debugging-pipe --allow-pre-commit-input --blink-settings=primaryHoverType=2,availableHoverTypes=2,primaryPointerType=4,availablePointerTypes=4 --ozone-platform=headless --disable-gpu-compositing --lang=en-US --num-raster-threads=2 --enable-main-frame-before-activation --renderer-client-id=13 --time-ticks-at-unix-epoch=-1790509733151410 --launch-time-ticks=1455979223511 --shared-files=v8_context_snapshot_data:100 --field-trial-handle=3,i,3282514567985981525,17694286954722835909,262144 --enable-features=CDPScreenshotNewSurface --disable-features=AimEnabled,AutoDeElevate,AvoidUnnecessaryBeforeUnloadCheckSync,BlockOriginHeaderModificationOnRedirect,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,NetworkTimeServiceQuerying,OptimizationHints,PaintHolding,ThirdPartyStoragePartitioning,Translate,msEdgeUpdateLaunchServicesPreferredVersion,msForceBrowserSignIn --variations-seed-version --pseudonymization-salt-handle=7,i,13529691599339577712,4344651098216256134,4 --trace-process-track-uuid=3190708998493415531" + ], + "status": { + "NoNewPrivs": "1", + "Seccomp": "2", + "Seccomp_filters": "1" + } + } + ] +} diff --git a/.agent/evidence-v0.2.3/commons-license-audit.json b/.agent/evidence-v0.2.3/commons-license-audit.json new file mode 100644 index 0000000..7b47a97 --- /dev/null +++ b/.agent/evidence-v0.2.3/commons-license-audit.json @@ -0,0 +1,62 @@ +{ + "File:1 minute at the alexa mall in berlin.ogg": { + "url": "https://upload.wikimedia.org/wikipedia/commons/f/fd/1_minute_at_the_alexa_mall_in_berlin.ogg?utm_source=commons.wikimedia.org&utm_campaign=imageinfo&utm_content=original", + "size": 1666896, + "mime": "application/ogg", + "artist": "thore", + "license": "Public domain", + "license_url": "", + "credit": "http://www.pdsounds.org/audio/download/407/1+Minute+Alexa+in+Berlin-2-rolltreppe.mp3\n\nPDSounds description: http://www.pdsounds.org/sounds/1_minute_at_the_alexa_mall_in_berlin\nTransferred by Fæ", + "description": "\nTitle 1 minute at the alexa mall in Berlin\nArtist thore\nOriginal mp3 data Length:1:00 minutes (1.61 MB) Format:MP3 Stereo 44kHz 224Kbps (CBR)\nUser tags big, Crowd, escalator, Mall, murmuring, shopping, talking, walking\nType Natural, Characteristic\nPDSounds record number 407\nComment Recorded in the Alexa shopping mall, Berlin, 2nd (Food) Floor at 13:30 on a monday. Typical german mall ambience. I placed the Zoom H2 on the ground with the built-in back mics (120 degrees radius) activated and focu" + }, + "File:Cafe ambiance.ogg": { + "url": "https://upload.wikimedia.org/wikipedia/commons/5/54/Cafe_ambiance.ogg?utm_source=commons.wikimedia.org&utm_campaign=imageinfo&utm_content=original", + "size": 19947952, + "mime": "application/ogg", + "artist": "Marble Toast", + "license": "CC0", + "license_url": "http://creativecommons.org/publicdomain/zero/1.0/deed.en", + "credit": "Own work", + "description": "The gentle back ground sound of a cafe with people chatting" + }, + "File:Italia Palermo mercato-Ballaro 20161225 122421.ogg": { + "url": "https://upload.wikimedia.org/wikipedia/commons/e/e8/Italia_Palermo_mercato-Ballaro_20161225_122421.ogg?utm_source=commons.wikimedia.org&utm_campaign=imageinfo&utm_content=original", + "size": 622200, + "mime": "application/ogg", + "artist": "Marie Flutre", + "license": "CC BY-SA 4.0", + "license_url": "https://creativecommons.org/licenses/by-sa/4.0", + "credit": "Own work", + "description": "Morning market ambience sound in Ballarò (Palermo)." + }, + "File:Sunday in the city street noise2.ogg": { + "url": "https://upload.wikimedia.org/wikipedia/commons/2/24/Sunday_in_the_city_street_noise2.ogg?utm_source=commons.wikimedia.org&utm_campaign=imageinfo&utm_content=original", + "size": 3414104, + "mime": "application/ogg", + "artist": "cori", + "license": "Public domain", + "license_url": "", + "credit": "http://www.pdsounds.org/audio/download/531/sunday-afternoon2.mp3\n\nPDSounds description: http://www.pdsounds.org/sounds/sunday_in_the_city_street_noise2\nTransferred by Fæ", + "description": "\nTitle Sunday, 4th May 2008 5.05pm - sounds outside my window\nArtist cori\nOriginal mp3 data Length:4:24 minutes (4.03 MB) Format:MP3 Mono 44kHz 128Kbps (CBR)\nUser tags Bird flying, cars, City noise, Coast, England, flapping, gulls, Pigeons, seagulls, Seaside, Street noise\nType Collage, Natural\nPDSounds record number 531\nComment Sunday, 4th May 2008 5.05pm. English city-by-the-sea noises: cars, vans & mopeds driving in the street outside, seagulls calling, wood pigeons cooing and flying past" + }, + "File:TTC Subway Line 1 Ambience - Museum to Union (Freesound).ogg": { + "url": "https://upload.wikimedia.org/wikipedia/commons/d/d3/TTC_Subway_Line_1_Ambience_-_Museum_to_Union_%28Freesound%29.ogg?utm_source=commons.wikimedia.org&utm_campaign=imageinfo&utm_content=original", + "size": 3343901, + "mime": "application/ogg", + "artist": "PascalHD", + "license": "CC BY 4.0", + "license_url": "https://creativecommons.org/licenses/by/4.0", + "credit": "https://freesound.org/people/PascalHD/sounds/828232/", + "description": "TTC Subway train ride from Museum to Union. Ambience, including next station announcements. Recorded with iPhone 14 Pro Max, on September 13 2025. Please credit PascalHD if used elsewhere." + }, + "File:Urban Street on a Rainy Afternoon.flac": { + "url": "https://upload.wikimedia.org/wikipedia/commons/8/8c/Urban_Street_on_a_Rainy_Afternoon.flac?utm_source=commons.wikimedia.org&utm_campaign=imageinfo&utm_content=original", + "size": 91187572, + "mime": "audio/x-flac", + "artist": "Extemporalist", + "license": "CC0", + "license_url": "http://creativecommons.org/publicdomain/zero/1.0/deed.en", + "credit": "Own work", + "description": "Moderate traffic on a 2 lane urban street in Kelowna on a rainy afternoon. Percussive sounds of raindrops on hard surfaces in foreground. Crows in the background." + } +} diff --git a/.agent/evidence-v0.2.3/environment.json b/.agent/evidence-v0.2.3/environment.json new file mode 100644 index 0000000..8a0d6fa --- /dev/null +++ b/.agent/evidence-v0.2.3/environment.json @@ -0,0 +1,11 @@ +{ + "node": "v26.7.0", + "npm": "11.19.0", + "python": "3.11.16", + "chrome": "Google Chrome 146.0.7680.80", + "ffmpeg": "ffmpeg version 6.1.1-3ubuntu5 Copyright (c) 2000-2023 the FFmpeg developers", + "head": "c92660b514f7af8eb556d3fa5c0fc80e4bdd4cf5", + "branch": "feat/v0.2.3", + "worktree": "/home/hermes/worktrees/find-word-v0.2.3", + "os": "Linux-6.8.0-142-generic-x86_64-with-glibc2.39" +} diff --git a/.agent/evidence-v0.2.3/final-review.log b/.agent/evidence-v0.2.3/final-review.log new file mode 100644 index 0000000..04f4b3d --- /dev/null +++ b/.agent/evidence-v0.2.3/final-review.log @@ -0,0 +1,55 @@ +git diff --check: exit 0 +HEAD: c92660b514f7af8eb556d3fa5c0fc80e4bdd4cf5 +branch: feat/v0.2.3 +Tracked historical files changed: 0 +Large original recordings in public/dist: 0 +Changed/untracked worktree paths: + M LICENSE + M README.md + M docs/ARCHITECTURE.md + M docs/AUDIO_PROVENANCE.md + M docs/DEPLOYMENT.md + M docs/WORDS.md + M index.html + M package-lock.json + M package.json + M public/audio/manifest.json + M scripts/check-build.mjs + M src/App.tsx + M src/audio/assets.ts + M src/audio/dsp.ts + M src/audio/engine.ts + M src/content.ts + M src/game.ts + M src/styles.css + M tests/App.test.tsx + M tests/assets.test.ts + M tests/audio-requests.test.ts + M tests/audio.test.ts + M tests/browser/audio.spec.ts + M tests/browser/game.spec.ts + M tests/browser/release.spec.ts + M tests/browser/ui.spec.ts + M tests/build.test.ts + M tests/content.test.ts + M tests/dsp.test.ts + M tests/game.test.ts + M tests/generator.test.ts + M tests/neural-release.test.ts + M tests/release.test.ts + M vite.config.ts +?? .agent/ACCEPTANCE-v0.2.3.md +?? .agent/AMBIENCE-SOURCES-v0.2.3.json +?? .agent/RESULT-v0.2.3.md +?? .agent/TASK-v0.2.3.md +?? .agent/evidence-v0.2.3/ +?? CHANGELOG.md +?? public/AMBIENCE_NOTICES.md +?? public/ambience/ +?? scripts/ambience_audio.py +?? tests/ambience.test.ts +?? tests/browser/rounds.spec.ts +?? tests/python/test_ambience_audio.py +Final build: 22-build.log; lint: 22-lint.log; unit: 22-full-test.log; browser: 22-browser.log +Report links valid; 8 final screenshots; 109/109 WAVs decoded on each viewport; runtime/page errors, failed requests, external requests = 0. +Final git diff --check: exit 0; HEAD unchanged; historical tracked .agent paths unchanged; secret scan 0 findings. diff --git a/.agent/evidence-v0.2.3/preservation.json b/.agent/evidence-v0.2.3/preservation.json new file mode 100644 index 0000000..f9b8ce2 --- /dev/null +++ b/.agent/evidence-v0.2.3/preservation.json @@ -0,0 +1,1232 @@ +{ + "head": "c92660b514f7af8eb556d3fa5c0fc80e4bdd4cf5", + "historicalFiles": [ + { + "path": ".agent/ACCEPTANCE-v0.1.1.md", + "unchanged": true + }, + { + "path": ".agent/ACCEPTANCE.md", + "unchanged": true + }, + { + "path": ".agent/CONTEXT.md", + "unchanged": true + }, + { + "path": ".agent/RESULT-v0.1.1.md", + "unchanged": true + }, + { + "path": ".agent/RESULT.md", + "unchanged": true + }, + { + "path": ".agent/TASK-v0.1.1.md", + "unchanged": true + }, + { + "path": ".agent/TASK.md", + "unchanged": true + }, + { + "path": ".agent/evidence-v0.1.1/00-audio-venv.log", + "unchanged": true + }, + { + "path": ".agent/evidence-v0.1.1/00-npm-ci.log", + "unchanged": true + }, + { + "path": ".agent/evidence-v0.1.1/01-version-docs-red.log", + "unchanged": true + }, + { + "path": ".agent/evidence-v0.1.1/02-assets-red.log", + "unchanged": true + }, + { + "path": ".agent/evidence-v0.1.1/03-generator-red.log", + "unchanged": true + }, + { + "path": ".agent/evidence-v0.1.1/04-generator-additional-red.log", + "unchanged": true + }, + { + "path": ".agent/evidence-v0.1.1/05-generator-green.log", + "unchanged": true + }, + { + "path": ".agent/evidence-v0.1.1/06-audio-generate.log", + "unchanged": true + }, + { + "path": ".agent/evidence-v0.1.1/07-format.log", + "unchanged": true + }, + { + "path": ".agent/evidence-v0.1.1/08-version-docs-green.log", + "unchanged": true + }, + { + "path": ".agent/evidence-v0.1.1/09-lint.log", + "unchanged": true + }, + { + "path": ".agent/evidence-v0.1.1/10-audit.log", + "unchanged": true + }, + { + "path": ".agent/evidence-v0.1.1/11-full-test.log", + "unchanged": true + }, + { + "path": ".agent/evidence-v0.1.1/12-independent-audio.log", + "unchanged": true + }, + { + "path": ".agent/evidence-v0.1.1/13-build.log", + "unchanged": true + }, + { + "path": ".agent/evidence-v0.1.1/14-browser.log", + "unchanged": true + }, + { + "path": ".agent/evidence-v0.1.1/15-browser-audio.log", + "unchanged": true + }, + { + "path": ".agent/evidence-v0.1.1/16-final-lint.log", + "unchanged": true + }, + { + "path": ".agent/evidence-v0.1.1/17-security-history.json", + "unchanged": true + }, + { + "path": ".agent/evidence-v0.1.1/18-environment.log", + "unchanged": true + }, + { + "path": ".agent/evidence-v0.1.1/19-final-integrity.json", + "unchanged": true + }, + { + "path": ".agent/evidence-v0.1.1/audio-integrity.json", + "unchanged": true + }, + { + "path": ".agent/evidence-v0.1.1/baseline.json", + "unchanged": true + }, + { + "path": ".agent/evidence-v0.1.1/browser-audio-integrity.json", + "unchanged": true + }, + { + "path": ".agent/evidence-v0.1.1/cache-regression/00-baseline.json", + "unchanged": true + }, + { + "path": ".agent/evidence-v0.1.1/cache-regression/01-unit-red.log", + "unchanged": true + }, + { + "path": ".agent/evidence-v0.1.1/cache-regression/02-build-before-fix.log", + "unchanged": true + }, + { + "path": ".agent/evidence-v0.1.1/cache-regression/03-browser-red.log", + "unchanged": true + }, + { + "path": ".agent/evidence-v0.1.1/cache-regression/04-red-state.json", + "unchanged": true + }, + { + "path": ".agent/evidence-v0.1.1/cache-regression/05-unit-green.log", + "unchanged": true + }, + { + "path": ".agent/evidence-v0.1.1/cache-regression/06-lint.log", + "unchanged": true + }, + { + "path": ".agent/evidence-v0.1.1/cache-regression/07-full-test.log", + "unchanged": true + }, + { + "path": ".agent/evidence-v0.1.1/cache-regression/08-build.log", + "unchanged": true + }, + { + "path": ".agent/evidence-v0.1.1/cache-regression/09-browser-green.log", + "unchanged": true + }, + { + "path": ".agent/evidence-v0.1.1/cache-regression/10-sandbox.log", + "unchanged": true + }, + { + "path": ".agent/evidence-v0.1.1/cache-regression/11-sandbox-green.log", + "unchanged": true + }, + { + "path": ".agent/evidence-v0.1.1/cache-regression/12-cache-regression-result.log", + "unchanged": true + }, + { + "path": ".agent/evidence-v0.1.1/cache-regression/13-final-integrity.json", + "unchanged": true + }, + { + "path": ".agent/evidence-v0.1.1/cache-regression/artifacts/desktop-browser-audio-integrity.json", + "unchanged": true + }, + { + "path": ".agent/evidence-v0.1.1/cache-regression/artifacts/desktop-game.png", + "unchanged": true + }, + { + "path": ".agent/evidence-v0.1.1/cache-regression/artifacts/desktop-heading.png", + "unchanged": true + }, + { + "path": ".agent/evidence-v0.1.1/cache-regression/artifacts/desktop-home.png", + "unchanged": true + }, + { + "path": ".agent/evidence-v0.1.1/cache-regression/artifacts/desktop-results.png", + "unchanged": true + }, + { + "path": ".agent/evidence-v0.1.1/cache-regression/artifacts/mobile-browser-audio-integrity.json", + "unchanged": true + }, + { + "path": ".agent/evidence-v0.1.1/cache-regression/artifacts/mobile-game.png", + "unchanged": true + }, + { + "path": ".agent/evidence-v0.1.1/cache-regression/artifacts/mobile-heading.png", + "unchanged": true + }, + { + "path": ".agent/evidence-v0.1.1/cache-regression/artifacts/mobile-home.png", + "unchanged": true + }, + { + "path": ".agent/evidence-v0.1.1/cache-regression/artifacts/mobile-results.png", + "unchanged": true + }, + { + "path": ".agent/evidence-v0.1.1/changed-files.txt", + "unchanged": true + }, + { + "path": ".agent/evidence-v0.1.1/desktop-game.png", + "unchanged": true + }, + { + "path": ".agent/evidence-v0.1.1/desktop-heading.png", + "unchanged": true + }, + { + "path": ".agent/evidence-v0.1.1/desktop-home.png", + "unchanged": true + }, + { + "path": ".agent/evidence-v0.1.1/desktop-results.png", + "unchanged": true + }, + { + "path": ".agent/evidence-v0.1.1/mobile-game.png", + "unchanged": true + }, + { + "path": ".agent/evidence-v0.1.1/mobile-heading.png", + "unchanged": true + }, + { + "path": ".agent/evidence-v0.1.1/mobile-home.png", + "unchanged": true + }, + { + "path": ".agent/evidence-v0.1.1/mobile-results.png", + "unchanged": true + }, + { + "path": ".agent/evidence-v0.1.1/verify_audio.py", + "unchanged": true + }, + { + "path": ".agent/evidence-v0.1.1/verify_browser.mjs", + "unchanged": true + }, + { + "path": ".agent/evidence/01-content-green.log", + "unchanged": true + }, + { + "path": ".agent/evidence/01-content-red.log", + "unchanged": true + }, + { + "path": ".agent/evidence/02-game-green.log", + "unchanged": true + }, + { + "path": ".agent/evidence/02-game-red.log", + "unchanged": true + }, + { + "path": ".agent/evidence/03-dsp-green.log", + "unchanged": true + }, + { + "path": ".agent/evidence/03-dsp-intermediate.log", + "unchanged": true + }, + { + "path": ".agent/evidence/03-dsp-red.log", + "unchanged": true + }, + { + "path": ".agent/evidence/04-audio-green.log", + "unchanged": true + }, + { + "path": ".agent/evidence/04-audio-red.log", + "unchanged": true + }, + { + "path": ".agent/evidence/05-assets-red.log", + "unchanged": true + }, + { + "path": ".agent/evidence/06-ui-05-assets-green.log", + "unchanged": true + }, + { + "path": ".agent/evidence/06-ui-intermediate.log", + "unchanged": true + }, + { + "path": ".agent/evidence/06-ui-red.log", + "unchanged": true + }, + { + "path": ".agent/evidence/07-build-green.log", + "unchanged": true + }, + { + "path": ".agent/evidence/07-build-red.log", + "unchanged": true + }, + { + "path": ".agent/evidence/08-rule-green.log", + "unchanged": true + }, + { + "path": ".agent/evidence/08-rule-red.log", + "unchanged": true + }, + { + "path": ".agent/evidence/09-ime-green.log", + "unchanged": true + }, + { + "path": ".agent/evidence/09-ime-red.log", + "unchanged": true + }, + { + "path": ".agent/evidence/10-ime-reset-green.log", + "unchanged": true + }, + { + "path": ".agent/evidence/10-ime-reset-red.log", + "unchanged": true + }, + { + "path": ".agent/evidence/11-provenance-green.log", + "unchanged": true + }, + { + "path": ".agent/evidence/11-provenance-red.log", + "unchanged": true + }, + { + "path": ".agent/evidence/12-ime-replay-green.log", + "unchanged": true + }, + { + "path": ".agent/evidence/12-ime-replay-red.log", + "unchanged": true + }, + { + "path": ".agent/evidence/13-heading-build-after.log", + "unchanged": true + }, + { + "path": ".agent/evidence/13-heading-build-before.log", + "unchanged": true + }, + { + "path": ".agent/evidence/13-heading-green.log", + "unchanged": true + }, + { + "path": ".agent/evidence/13-heading-red.log", + "unchanged": true + }, + { + "path": ".agent/evidence/14-snr-browser-green.log", + "unchanged": true + }, + { + "path": ".agent/evidence/14-snr-browser-red.log", + "unchanged": true + }, + { + "path": ".agent/evidence/14-snr-build.log", + "unchanged": true + }, + { + "path": ".agent/evidence/14-snr-green.log", + "unchanged": true + }, + { + "path": ".agent/evidence/14-snr-red.log", + "unchanged": true + }, + { + "path": ".agent/evidence/15-volume-browser-green.log", + "unchanged": true + }, + { + "path": ".agent/evidence/15-volume-browser-red.log", + "unchanged": true + }, + { + "path": ".agent/evidence/15-volume-build.log", + "unchanged": true + }, + { + "path": ".agent/evidence/15-volume-green.log", + "unchanged": true + }, + { + "path": ".agent/evidence/15-volume-red.log", + "unchanged": true + }, + { + "path": ".agent/evidence/16-copy-green.log", + "unchanged": true + }, + { + "path": ".agent/evidence/16-copy-red.log", + "unchanged": true + }, + { + "path": ".agent/evidence/17-spacing-green.log", + "unchanged": true + }, + { + "path": ".agent/evidence/17-spacing-red.log", + "unchanged": true + }, + { + "path": ".agent/evidence/18-literal-green.log", + "unchanged": true + }, + { + "path": ".agent/evidence/18-literal-red.log", + "unchanged": true + }, + { + "path": ".agent/evidence/19-notices-green.log", + "unchanged": true + }, + { + "path": ".agent/evidence/19-notices-red.log", + "unchanged": true + }, + { + "path": ".agent/evidence/20-audio-generate.log", + "unchanged": true + }, + { + "path": ".agent/evidence/20-audio-green.log", + "unchanged": true + }, + { + "path": ".agent/evidence/20-audio-red.log", + "unchanged": true + }, + { + "path": ".agent/evidence/20-mechanics-green.log", + "unchanged": true + }, + { + "path": ".agent/evidence/20-mechanics-red.log", + "unchanged": true + }, + { + "path": ".agent/evidence/21-node-green.log", + "unchanged": true + }, + { + "path": ".agent/evidence/21-node-red.log", + "unchanged": true + }, + { + "path": ".agent/evidence/22-sandbox-green.log", + "unchanged": true + }, + { + "path": ".agent/evidence/22-sandbox-red.log", + "unchanged": true + }, + { + "path": ".agent/evidence/23-delivery-browser-red.log", + "unchanged": true + }, + { + "path": ".agent/evidence/24-retry-audio-budget.log", + "unchanged": true + }, + { + "path": ".agent/evidence/24-retry-final-browser.log", + "unchanged": true + }, + { + "path": ".agent/evidence/24-retry-final-build.log", + "unchanged": true + }, + { + "path": ".agent/evidence/24-retry-final-lint.log", + "unchanged": true + }, + { + "path": ".agent/evidence/24-retry-final-test.log", + "unchanged": true + }, + { + "path": ".agent/evidence/24-retry-integrity.log", + "unchanged": true + }, + { + "path": ".agent/evidence/24-retry-targeted-green.log", + "unchanged": true + }, + { + "path": ".agent/evidence/audio-reproduce.log", + "unchanged": true + }, + { + "path": ".agent/evidence/browser-final.log", + "unchanged": true + }, + { + "path": ".agent/evidence/browser-first.log", + "unchanged": true + }, + { + "path": ".agent/evidence/browser-second.log", + "unchanged": true + }, + { + "path": ".agent/evidence/browser-third.log", + "unchanged": true + }, + { + "path": ".agent/evidence/changed-files.txt", + "unchanged": true + }, + { + "path": ".agent/evidence/desktop-game.png", + "unchanged": true + }, + { + "path": ".agent/evidence/desktop-home.png", + "unchanged": true + }, + { + "path": ".agent/evidence/desktop-results.png", + "unchanged": true + }, + { + "path": ".agent/evidence/final-audit.log", + "unchanged": true + }, + { + "path": ".agent/evidence/final-browser.log", + "unchanged": true + }, + { + "path": ".agent/evidence/final-build.log", + "unchanged": true + }, + { + "path": ".agent/evidence/final-lint.log", + "unchanged": true + }, + { + "path": ".agent/evidence/final-security.log", + "unchanged": true + }, + { + "path": ".agent/evidence/final-test.log", + "unchanged": true + }, + { + "path": ".agent/evidence/mobile-game.png", + "unchanged": true + }, + { + "path": ".agent/evidence/mobile-home.png", + "unchanged": true + }, + { + "path": ".agent/evidence/mobile-results.png", + "unchanged": true + }, + { + "path": ".agent/evidence/neo-before-spacing-browser.log", + "unchanged": true + }, + { + "path": ".agent/evidence/neo-desktop-game.png", + "unchanged": true + }, + { + "path": ".agent/evidence/neo-desktop-heading.png", + "unchanged": true + }, + { + "path": ".agent/evidence/neo-desktop-home.png", + "unchanged": true + }, + { + "path": ".agent/evidence/neo-desktop-results.png", + "unchanged": true + }, + { + "path": ".agent/evidence/neo-final-browser.log", + "unchanged": true + }, + { + "path": ".agent/evidence/neo-final-build.log", + "unchanged": true + }, + { + "path": ".agent/evidence/neo-final-lint.log", + "unchanged": true + }, + { + "path": ".agent/evidence/neo-final-test.log", + "unchanged": true + }, + { + "path": ".agent/evidence/neo-intermediate-build.log", + "unchanged": true + }, + { + "path": ".agent/evidence/neo-intermediate-lint.log", + "unchanged": true + }, + { + "path": ".agent/evidence/neo-mobile-game.png", + "unchanged": true + }, + { + "path": ".agent/evidence/neo-mobile-heading.png", + "unchanged": true + }, + { + "path": ".agent/evidence/neo-mobile-home.png", + "unchanged": true + }, + { + "path": ".agent/evidence/neo-mobile-results.png", + "unchanged": true + }, + { + "path": ".agent/evidence/release-desktop-game.png", + "unchanged": true + }, + { + "path": ".agent/evidence/release-desktop-heading.png", + "unchanged": true + }, + { + "path": ".agent/evidence/release-desktop-home.png", + "unchanged": true + }, + { + "path": ".agent/evidence/release-desktop-results.png", + "unchanged": true + }, + { + "path": ".agent/evidence/release-docs-final.log", + "unchanged": true + }, + { + "path": ".agent/evidence/release-final-audit.log", + "unchanged": true + }, + { + "path": ".agent/evidence/release-final-browser.log", + "unchanged": true + }, + { + "path": ".agent/evidence/release-final-build.log", + "unchanged": true + }, + { + "path": ".agent/evidence/release-final-lint.log", + "unchanged": true + }, + { + "path": ".agent/evidence/release-final-test.log", + "unchanged": true + }, + { + "path": ".agent/evidence/release-format.log", + "unchanged": true + }, + { + "path": ".agent/evidence/release-integrity.log", + "unchanged": true + }, + { + "path": ".agent/evidence/release-intermediate-lint.log", + "unchanged": true + }, + { + "path": ".agent/evidence/release-mobile-game.png", + "unchanged": true + }, + { + "path": ".agent/evidence/release-mobile-heading.png", + "unchanged": true + }, + { + "path": ".agent/evidence/release-mobile-home.png", + "unchanged": true + }, + { + "path": ".agent/evidence/release-mobile-results.png", + "unchanged": true + } + ], + "voices": [ + { + "file": "intro.wav", + "sha256": "90d9f46e6e3f9c8a0c1a781096df54d7809ef4ad38b289508ef7b8c0411465ce", + "unchanged": true + }, + { + "file": "luck-apple.wav", + "sha256": "7c8f413f4b7e164f090e508ba090448f1376c6012649bbb6a917d45851313883", + "unchanged": true + }, + { + "file": "luck-sea.wav", + "sha256": "47aa31d757c9fb49c9b53a1c052d90a5ced4be57549d649850d9b48f8864045b", + "unchanged": true + }, + { + "file": "luck-tree.wav", + "sha256": "122f496834fb16d6da47f801e50e46e272e4e934af959467d1db4e490f79be7a", + "unchanged": true + }, + { + "file": "luck-hat.wav", + "sha256": "4ff43dd042f4b5451e9fdeb3edd59f1e389a7d1dd488094587a3a9fc7dfffa44", + "unchanged": true + }, + { + "file": "luck-umbrella.wav", + "sha256": "8d3e8e8bc97e5fe3f3362184c4abb12f01a882a1f1174d2644f0f70aac677c0a", + "unchanged": true + }, + { + "file": "luck-market.wav", + "sha256": "356af25332bf2000ed349671f3ff39767929e1f4599af622c021f907d11fb7bf", + "unchanged": true + }, + { + "file": "luck-oil.wav", + "sha256": "3fa1e662a3af8f2726b17b2baa5bec2934406e6595ebc243c8380dd16e190977", + "unchanged": true + }, + { + "file": "luck-sound.wav", + "sha256": "34e4d9758d2ed448646fda364610e34779c84794403d9051ab3d8c1d33e2c80c", + "unchanged": true + }, + { + "file": "luck-meat.wav", + "sha256": "d36dfc395a5c53fbfa4abe9980db7bb59adfdac59e40318c4aca365365e3f2ab", + "unchanged": true + }, + { + "file": "luck-furniture.wav", + "sha256": "52cb92cdb8ee92b6f581c9d68dbc346f180c470564809ba57185429c9eb84127", + "unchanged": true + }, + { + "file": "password-apple.wav", + "sha256": "b6f5de3fe571fe3a7fdb722fe49250bcfeedef49475271e0ec76a7630907edd5", + "unchanged": true + }, + { + "file": "password-sea.wav", + "sha256": "03f45b8cb5b3dc72faf5c6e3d0e2a10cea6b60301ea400d0a4453596d2f0b337", + "unchanged": true + }, + { + "file": "password-tree.wav", + "sha256": "67da8147296e35134ec254bc82b58317630061b2c64d2d63c4be197ce8692d50", + "unchanged": true + }, + { + "file": "password-hat.wav", + "sha256": "e91bfc97df90a1675b6cd856880ac15c54de32cfc3b23603bdd1c2c5ac3ce6b8", + "unchanged": true + }, + { + "file": "password-umbrella.wav", + "sha256": "ab3ca6398c879971dc793eb25b472fcc0db72d76e386f11ef4d32c639f37c69d", + "unchanged": true + }, + { + "file": "password-market.wav", + "sha256": "02e325fb753ef7a3ee585a03d2ca2aa3f1fbc58523b062222ae1136eeed7a95c", + "unchanged": true + }, + { + "file": "password-oil.wav", + "sha256": "b472957b27ff98ea7b8894fa1ff12653f7e9f66f77870faa9e52a1c1bf116c41", + "unchanged": true + }, + { + "file": "password-sound.wav", + "sha256": "044aafff08a19e39f21e58b963644715a987cd155896998769ef8e9ce6449628", + "unchanged": true + }, + { + "file": "password-meat.wav", + "sha256": "b009caadd56350d6a641ff17f0973e2b2724c183e1f45ae0bf3c483e237fa99e", + "unchanged": true + }, + { + "file": "password-furniture.wav", + "sha256": "fb2b631dd4e12120d08a84cce6450f9cd9cd68105d13d7001d808e7deaa1df4a", + "unchanged": true + }, + { + "file": "remember-apple.wav", + "sha256": "1bf2aef9a9f030af1a8fd7dee8f44aa420a397b3ba99b575feeb3dc7a63ec191", + "unchanged": true + }, + { + "file": "remember-sea.wav", + "sha256": "5c91a36496e274d2be9c6fa8d9b506cd04f2a1b7ceb05ed1b7bb03fe7fca99d9", + "unchanged": true + }, + { + "file": "remember-tree.wav", + "sha256": "bc8e54f5407e8866bf1ca1ddfd4f6c63d85fee29bd9e430c7dd33e87974fc5b8", + "unchanged": true + }, + { + "file": "remember-hat.wav", + "sha256": "31a6a4270bf368cda419094d87a303ac3cd5c22539786cb165f8044b0b8e9d6e", + "unchanged": true + }, + { + "file": "remember-umbrella.wav", + "sha256": "c8988e604ba05d52597e561389541e8f9cda86e052279f1862bbf8399ead314e", + "unchanged": true + }, + { + "file": "remember-market.wav", + "sha256": "d89792da51c83ac49d27e55aa6d822a338899a5ee487b34b552748201e1522f6", + "unchanged": true + }, + { + "file": "remember-oil.wav", + "sha256": "3ca98682ff06d1d6b8af02c0fd5b2124f42266ac989884223eff4a9bbde1287a", + "unchanged": true + }, + { + "file": "remember-sound.wav", + "sha256": "98387ccc7aab566f6487d4c250b2128082cc527e013a6f7b7bc4d0266ac295df", + "unchanged": true + }, + { + "file": "remember-meat.wav", + "sha256": "9183ef90b64f5ceaf3bb0178c689231ff3e9981d6ce889124a15f2a6e2b7a344", + "unchanged": true + }, + { + "file": "remember-furniture.wav", + "sha256": "442bdcb956f120c270e1f321feae0415c897de0183e468980fcc119b898b2a67", + "unchanged": true + }, + { + "file": "last-apple.wav", + "sha256": "4cb2a8579fa3a7b91bb36363826ce8ca0d6d86e96e16a479e226a2802edd82f7", + "unchanged": true + }, + { + "file": "last-sea.wav", + "sha256": "f755452e1da44674aa1df7d12edffa988091b89a394e7eb6d4a00eb721f07cbf", + "unchanged": true + }, + { + "file": "last-tree.wav", + "sha256": "589e56d940a3c9e80ec02ae0b2dd93463fdc85ef019a753fcd0fded0752055f9", + "unchanged": true + }, + { + "file": "last-hat.wav", + "sha256": "bdaf8fbc54df8061e9e58aa8c14b3044a6e863dc54973ee3ee6ae2c5ae1a28f1", + "unchanged": true + }, + { + "file": "last-umbrella.wav", + "sha256": "c801293a34013a8d93d3289a2cc87cd3eed83f97ba4647f5060efa00b117a9ad", + "unchanged": true + }, + { + "file": "last-market.wav", + "sha256": "7857e87e9dbfe8fe849cc0b18c1d45b60916cb337328099c7a87a42c82e2821e", + "unchanged": true + }, + { + "file": "last-oil.wav", + "sha256": "b5ce34950b8b31b1baf6ce55410797f0d8aa5478a670d6eace87cf76d134d6d3", + "unchanged": true + }, + { + "file": "last-sound.wav", + "sha256": "ec9c49802aebeb6a8b898a1c0d8ad1daa127d2d64c905c197ed49a8e0c4eb64a", + "unchanged": true + }, + { + "file": "last-meat.wav", + "sha256": "10f8ad4259ed8945c9da831e80b3902303c09caef96d400298599168fb1efed4", + "unchanged": true + }, + { + "file": "last-furniture.wav", + "sha256": "5ad4f776e35439d408abed0e66567d6b5cdc80fc54d579165472e474f1238776", + "unchanged": true + }, + { + "file": "first-apple.wav", + "sha256": "7c1dbcb3082055df2b8f087f7e906ec867c92f679de0894c34740c05e61a4bc1", + "unchanged": true + }, + { + "file": "first-sea.wav", + "sha256": "0f0b39314c5f7d7168d4854003c0c284e7bc3438cdc4d1d1c5adab7cb5ed30e5", + "unchanged": true + }, + { + "file": "first-tree.wav", + "sha256": "3178230fd5850b6277a2153b438ec5289720e3db7ac929914cc213964f004bd5", + "unchanged": true + }, + { + "file": "first-hat.wav", + "sha256": "17c8cde90567e7574b0c0702663bd70713054089ee920241b5444d9b7869eef5", + "unchanged": true + }, + { + "file": "first-umbrella.wav", + "sha256": "878e0bd2e6e4105f175aef51a028f6b141f3a2072be20f783193f3ba897a3ee0", + "unchanged": true + }, + { + "file": "first-market.wav", + "sha256": "1e00b8f70a796cdebb0feb00c605fece7488b06915e6e036f54206f05e201e0c", + "unchanged": true + }, + { + "file": "first-oil.wav", + "sha256": "f415195e0cfc7ee711d09de7519e88eab62cc8b58d70772c83c3f5c27c267819", + "unchanged": true + }, + { + "file": "first-sound.wav", + "sha256": "46f6adeed928a16af0700f1e8626cf8049f124632a04a5d10604426fb06f9596", + "unchanged": true + }, + { + "file": "first-meat.wav", + "sha256": "f51a37c1722fef581f7d642a4dcae7fcb9953b3c318dce971bf616cd1a81fecc", + "unchanged": true + }, + { + "file": "first-furniture.wav", + "sha256": "29f007b385b7182db1d8aeccad4fc3c260df5e66e14e52a46b0ef0fcd0ff3a0a", + "unchanged": true + }, + { + "file": "repeat-apple.wav", + "sha256": "cb7da4e9a1288cac64d168b241f27d7d2bc2dfecace58744f9bbf2792dfad04e", + "unchanged": true + }, + { + "file": "repeat-sea.wav", + "sha256": "db2f235bee26ac804b5362e8e013b8f40c8da24fd3a34e0fb3b43c6d264feb36", + "unchanged": true + }, + { + "file": "repeat-tree.wav", + "sha256": "8735c3d9672561ca237fa87317beec2878492eb9063d6048d5b214423561acc1", + "unchanged": true + }, + { + "file": "repeat-hat.wav", + "sha256": "6e089a42fd7e65e82eec7186d369c926fb7fdac794365b2bd7658822fd92437c", + "unchanged": true + }, + { + "file": "repeat-umbrella.wav", + "sha256": "5e59ef39113c3d5e106862356d715f4cef2862ef8ee02654a97e532675c1ac6d", + "unchanged": true + }, + { + "file": "repeat-market.wav", + "sha256": "68a5b899115a66ab225d610ec47b4de56cc8793657362bc38f533c06f741e4cc", + "unchanged": true + }, + { + "file": "repeat-oil.wav", + "sha256": "55b2c7d6aa8bbce04edf8661882c9781da81c57f56217f99b80457a3bb895da0", + "unchanged": true + }, + { + "file": "repeat-sound.wav", + "sha256": "e9d636ff7f4777f38b1ff15bebdcec6fbde95b4b4b05625a7415b4cfa0025b59", + "unchanged": true + }, + { + "file": "repeat-meat.wav", + "sha256": "6599d2fac73ea616a793151b4ce6f51af673988d630bac6219a77e78ae6cb34e", + "unchanged": true + }, + { + "file": "repeat-furniture.wav", + "sha256": "bf84dc6cff1f227924a3a62158d2fc18769fb0ca40b91418fa19e534dbf92f00", + "unchanged": true + }, + { + "file": "correction-apple.wav", + "sha256": "ccd7327a3fb54d3320d049ffdced3bc17595861cee69429c0ee97182d454195b", + "unchanged": true + }, + { + "file": "correction-sea.wav", + "sha256": "9233431d78ab4b144e3c33ad0cf0d49fc0fb91b29514343230ba32987b794bb3", + "unchanged": true + }, + { + "file": "correction-tree.wav", + "sha256": "b8e8bbe6b8b14727efd953fae9d4aed2caeb004055d52f611c6378322847edbe", + "unchanged": true + }, + { + "file": "correction-hat.wav", + "sha256": "f9f98c91cfbcfcb106eef7d5d3795a9cf3c3aab7e19a60f13d7dffe284d19f86", + "unchanged": true + }, + { + "file": "correction-umbrella.wav", + "sha256": "92b54f04884ab915783945077efd8f3bd443849a1720f72168b6348cae1f8e85", + "unchanged": true + }, + { + "file": "correction-market.wav", + "sha256": "b8d25b867497adcd0fe7c8b6a8a8d2e7a52965956738a83e53f58735708773f9", + "unchanged": true + }, + { + "file": "correction-oil.wav", + "sha256": "f6eff0cdddcad9790351491e60c53cb2a70d222033a583652f2de0b8cd6abcc7", + "unchanged": true + }, + { + "file": "correction-sound.wav", + "sha256": "5a603bc69979603afddcaeb6edf500a7c540b72405daeb33f5335d746b327da1", + "unchanged": true + }, + { + "file": "correction-meat.wav", + "sha256": "48e91b3932d3798e852041a854b3ee08c72127e092c62083a47af6b99adff241", + "unchanged": true + }, + { + "file": "correction-furniture.wav", + "sha256": "5c004a7b2f5a4a918c9f689f1a2dcb219a620ed14313f40a9655b36dbf64948d", + "unchanged": true + }, + { + "file": "middle-apple.wav", + "sha256": "8832f1b793ab3eedbe663875ea8dbeabb122c329bd5879437c71230b0418c3c8", + "unchanged": true + }, + { + "file": "middle-sea.wav", + "sha256": "b6dbe0af143ea775f05bd59a3d6af348bcc770ab378ac91ea75a56e06c326edf", + "unchanged": true + }, + { + "file": "middle-tree.wav", + "sha256": "341888c75275c13eb31058f53a1d4276be0daa0a1b5a3a45522036928b83b0c1", + "unchanged": true + }, + { + "file": "middle-hat.wav", + "sha256": "b01ef9762ac84e3eb757243bc9286c62f7d45444a821ae35ac36a8b095e1598a", + "unchanged": true + }, + { + "file": "middle-umbrella.wav", + "sha256": "399ea2f681f755918f1117c8baba42739ceca64b307b999342f457a9235050b6", + "unchanged": true + }, + { + "file": "middle-market.wav", + "sha256": "c855b449e0d4ace74681bfe68e5e7f0b063568827ae872017234dbe8ae119e4c", + "unchanged": true + }, + { + "file": "middle-oil.wav", + "sha256": "7a6b122b11c07da86c95fb78e2db2a70681b5219c63d6441fe56da1979ac1dc3", + "unchanged": true + }, + { + "file": "middle-sound.wav", + "sha256": "4d00aa6114327f450a00dacbc7e7b572ebf1de4ce9dc2fe4b5505766cca71ce9", + "unchanged": true + }, + { + "file": "middle-meat.wav", + "sha256": "d416107cc05e7c5b92ca27100a10a8a9689de913346179945d5542de4a6bac0c", + "unchanged": true + }, + { + "file": "middle-furniture.wav", + "sha256": "b45b1afc8d9b534ff3e0a2a2ecb99efc1f4e40d41f89f55c4ed8ba94ad6d76d4", + "unchanged": true + }, + { + "file": "message-apple.wav", + "sha256": "d85e6f47d871369f00de2274139e5ad6b4b5686b5e20e248df0ed6b9a320d942", + "unchanged": true + }, + { + "file": "message-sea.wav", + "sha256": "28a461fbe03bffe2560030dea8b60715f7c0fe262dcf85b5b7f7daf483836382", + "unchanged": true + }, + { + "file": "message-tree.wav", + "sha256": "5d684aa710a63d36ed8dcc2a8bfbdd5c71b0b1c63dad2a324adecb76591e85b8", + "unchanged": true + }, + { + "file": "message-hat.wav", + "sha256": "5a713a8522b231bb8276805c014b385b9150b79f58ff2618446607e2b442495e", + "unchanged": true + }, + { + "file": "message-umbrella.wav", + "sha256": "41d5866dae66600df4694a8312b531571d44cece6dba0e423e7c43d09d184819", + "unchanged": true + }, + { + "file": "message-market.wav", + "sha256": "9242d4cd6e0030e6b073e4d2360f84aa8a454d1749711cdb2d64c14f28a7ea20", + "unchanged": true + }, + { + "file": "message-oil.wav", + "sha256": "a2a71a7e5e07c81871a25c6cb7540c39aa0b32fc44f78cda66b5f34ace98d805", + "unchanged": true + }, + { + "file": "message-sound.wav", + "sha256": "1e682147dae8026ba78dc8f256c7f24acb3a6743bfd88a0fcc86096930eef078", + "unchanged": true + }, + { + "file": "message-meat.wav", + "sha256": "ce19735df079b54c171e775b6b365385a80160b9033442abab95b2b9c8505e1a", + "unchanged": true + }, + { + "file": "message-furniture.wav", + "sha256": "26c331b7e12311236f4bb48f88918dfbf53cccd2f50b55741ea6ff4473e71dd8", + "unchanged": true + }, + { + "file": "mission-apple.wav", + "sha256": "3ef42e276ff3500c3e197d149f29f79d6a0c1d5516ed1d5a2c57210333fded9c", + "unchanged": true + }, + { + "file": "mission-sea.wav", + "sha256": "8838d6a1ee8a790427dc5aa761e70b3d8872af62086efeed743297ff7f8b8a06", + "unchanged": true + }, + { + "file": "mission-tree.wav", + "sha256": "00d8e77ec0371971d632724d91f8cf8d947bfb83c582a513b6421be4c457a1da", + "unchanged": true + }, + { + "file": "mission-hat.wav", + "sha256": "308278ec2bd27d4224976a55632d1f7fa1edabb0792126d9d858a699c287aee4", + "unchanged": true + }, + { + "file": "mission-umbrella.wav", + "sha256": "4b4c858a25659540f9dbc524664496fc6de61ab8c1627f3cfee8c9c744e11d5b", + "unchanged": true + }, + { + "file": "mission-market.wav", + "sha256": "cefa0e95649ea6bd1df4c8dfccd2b74b4f4c028714420ce1087b61db2f2a8d47", + "unchanged": true + }, + { + "file": "mission-oil.wav", + "sha256": "5fb63e04520c312aa6b7b48b70c2f7c140b5ab480e5c6992edbc2ba85b9a06e7", + "unchanged": true + }, + { + "file": "mission-sound.wav", + "sha256": "659eb0e2b06e6b165b46744769743e032e2282519f8486c57bc45e0f7d07a069", + "unchanged": true + }, + { + "file": "mission-meat.wav", + "sha256": "94f8a4f9e116a787e5ed052661d6de9ecf3ad8629db476661dd59ad03014b0c9", + "unchanged": true + }, + { + "file": "mission-furniture.wav", + "sha256": "af82e03b686635c3356e706fe5b05c1231aeaaeab33f275aa5b8714988c65d43", + "unchanged": true + } + ] +} diff --git a/.agent/evidence-v0.2.3/primary-page-verification.json b/.agent/evidence-v0.2.3/primary-page-verification.json new file mode 100644 index 0000000..546a921 --- /dev/null +++ b/.agent/evidence-v0.2.3/primary-page-verification.json @@ -0,0 +1,90 @@ +{ + "verifiedAtUtc": "2026-10-14", + "sources": [ + { + "environmentId": "street", + "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", + "verification": "Primary Commons API metadata verified during source preparation (preserved commons-license-audit.json); primary cafe/rain pages re-read 2026-10-14.", + "alternateUsed": false + }, + { + "environmentId": "mall", + "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", + "verification": "Primary Commons API metadata verified during source preparation (preserved commons-license-audit.json); primary cafe/rain pages re-read 2026-10-14.", + "alternateUsed": false + }, + { + "environmentId": "theater", + "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/", + "verification": "Freesound primary page re-read 2026-10-14: creator, authentic field recording description and Creative Commons 0 link confirmed. Download is the specified preview MP3.", + "alternateUsed": false + }, + { + "environmentId": "department", + "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/", + "verification": "Freesound primary page re-read 2026-10-14: creator, authentic field recording description and Creative Commons 0 link confirmed. Download is the specified preview MP3.", + "alternateUsed": false + }, + { + "environmentId": "market", + "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/", + "verification": "Primary Commons API metadata verified during source preparation (preserved commons-license-audit.json); primary cafe/rain pages re-read 2026-10-14.", + "alternateUsed": false + }, + { + "environmentId": "subway", + "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/", + "verification": "Primary Commons API metadata verified during source preparation (preserved commons-license-audit.json); primary cafe/rain pages re-read 2026-10-14.", + "alternateUsed": false + }, + { + "environmentId": "cafe", + "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/", + "verification": "Primary Commons API metadata verified during source preparation (preserved commons-license-audit.json); primary cafe/rain pages re-read 2026-10-14.", + "alternateUsed": false + }, + { + "environmentId": "rain", + "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/", + "verification": "Primary Commons API metadata verified during source preparation (preserved commons-license-audit.json); primary cafe/rain pages re-read 2026-10-14.", + "alternateUsed": false + } + ], + "rightsPagesReviewed": [ + "https://creativecommons.org/licenses/by/4.0/", + "https://creativecommons.org/licenses/by-sa/4.0/" + ], + "notes": "CC BY permits sharing/adaptation with attribution and change indication. CC BY-SA derivative retains same license. All eight original URLs retained. No alternate source." +} diff --git a/.agent/evidence-v0.2.3/privacy-screening/01-provenance-RED.log b/.agent/evidence-v0.2.3/privacy-screening/01-provenance-RED.log new file mode 100644 index 0000000..0074213 --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/01-provenance-RED.log @@ -0,0 +1,72 @@ +$ npx vitest run tests/ambience.test.ts tests/build.test.ts +Started UTC: 2026-10-14T09:08:40.941366+00:00 + + RUN v5.0.4 /home/hermes/worktrees/find-word-v0.2.3 + + ❯ tests/ambience.test.ts (3 tests | 1 failed) 484ms + × 선택 구간은 승인 계획의 불변 provenance이며 manifest와 고지에 동일하게 남는다 12ms + ❯ tests/build.test.ts (30 tests | 3 failed) 18875ms + × 현장음 manifest 사본을 함께 바꿔도 승인 selectedSegmentStartSeconds 계약 위반을 거부한다 449ms + × 현장음 manifest 사본을 함께 바꿔도 승인 startSeconds 계약 위반을 거부한다 436ms + × 현장음 manifest 사본을 함께 바꿔도 승인 durationSeconds 계약 위반을 거부한다 443ms + +⎯⎯⎯⎯⎯⎯⎯ Failed Tests 4 ⎯⎯⎯⎯⎯⎯⎯ + + FAIL tests/ambience.test.ts > 선택 구간은 승인 계획의 불변 provenance이며 manifest와 고지에 동일하게 남는다 +AssertionError: expected { street: undefined, …(7) } to deeply equal { street: 35, mall: 36, …(6) } + +- Expected ++ Received + + { +- "cafe": 180, +- "department": 90, +- "mall": 36, +- "market": 60, +- "rain": 180, +- "street": 35, +- "subway": 65, +- "theater": 45, ++ "cafe": undefined, ++ "department": undefined, ++ "mall": undefined, ++ "market": undefined, ++ "rain": undefined, ++ "street": undefined, ++ "subway": undefined, ++ "theater": undefined, + } + + ❯ tests/ambience.test.ts:141:65 + 139| market: 60, subway: 65, cafe: 180, rain: 180 }; + 140| expect(Object.fromEntries(plan.assets.map((asset: { environmentId: s… + 141| [asset.environmentId, asset.selectedSegmentStartSeconds]))).toEqua… + | ^ + 142| for (const asset of plan.assets) { + 143| const start = asset.selectedSegmentStartSeconds; + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[1/4]⎯ + + FAIL tests/build.test.ts > 현장음 manifest 사본을 함께 바꿔도 승인 selectedSegmentStartSeconds 계약 위반을 거부한다 + FAIL tests/build.test.ts > 현장음 manifest 사본을 함께 바꿔도 승인 startSeconds 계약 위반을 거부한다 + FAIL tests/build.test.ts > 현장음 manifest 사본을 함께 바꿔도 승인 durationSeconds 계약 위반을 거부한다 +AssertionError: expected [Function verify] to throw an error + ❯ tests/build.test.ts:316:22 + 314| JSON.stringify(manifest), + 315| ); + 316| expect(verify).toThrow(); + | ^ + 317| } finally { + 318| rmSync(temporary, { recursive: true, force: true }); + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[2/4]⎯ + + + Test Files 2 failed (2) + Tests 4 failed | 29 passed (33) + Start at 09:08:41 + Duration 19.25s (tests 98%, setup 2%) + + +Exit code: 1 +Finished UTC: 2026-10-14T09:09:00.972768+00:00 diff --git a/.agent/evidence-v0.2.3/privacy-screening/02-generator-GREEN.log b/.agent/evidence-v0.2.3/privacy-screening/02-generator-GREEN.log new file mode 100644 index 0000000..c70a9a0 --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/02-generator-GREEN.log @@ -0,0 +1,29 @@ +$ python3 -m unittest discover -s tests/python -p test_ambience_audio.py -v +Started UTC: 2026-10-14T09:10:26.182138+00:00 +test_convert_format_fade_normalization_and_reproducibility (test_ambience_audio.AmbienceConversion.test_convert_format_fade_normalization_and_reproducibility) +스테레오 48kHz 입력을 실제로 내려 섞고 길이·양끝·안전 피크를 확인한다. ... ok +test_silence_fails_before_publishing (test_ambience_audio.AmbienceConversion.test_silence_fails_before_publishing) +무음을 정상 현장 녹음으로 포장하지 않는다. ... 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_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 + +---------------------------------------------------------------------- +Ran 17 tests in 6.237s + +OK + +Exit code: 0 +Finished UTC: 2026-10-14T09:10:32.496266+00:00 diff --git a/.agent/evidence-v0.2.3/privacy-screening/02-generator-RED.log b/.agent/evidence-v0.2.3/privacy-screening/02-generator-RED.log new file mode 100644 index 0000000..43c360b --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/02-generator-RED.log @@ -0,0 +1,317 @@ +$ python3 -m unittest discover -s tests/python -p test_ambience_audio.py -v +Started UTC: 2026-10-14T09:08:40.965664+00:00 +test_convert_format_fade_normalization_and_reproducibility (test_ambience_audio.AmbienceConversion.test_convert_format_fade_normalization_and_reproducibility) +스테레오 48kHz 입력을 실제로 내려 섞고 길이·양끝·안전 피크를 확인한다. ... ok +test_silence_fails_before_publishing (test_ambience_audio.AmbienceConversion.test_silence_fails_before_publishing) +무음을 정상 현장 녹음으로 포장하지 않는다. ... 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) ... FAIL +test_readers_observe_whole_directory_during_real_exchange (test_ambience_audio.AtomicPublication.test_readers_observe_whole_directory_during_real_exchange) ... 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) ... + test_invalid_segment_plan_fails_before_any_conversion_without_mutation (test_ambience_audio.SourceGuard.test_invalid_segment_plan_fails_before_any_conversion_without_mutation) (key='selectedSegmentStartSeconds', value=None) ... FAIL + test_invalid_segment_plan_fails_before_any_conversion_without_mutation (test_ambience_audio.SourceGuard.test_invalid_segment_plan_fails_before_any_conversion_without_mutation) (key='selectedSegmentStartSeconds', value=-1) ... FAIL + test_invalid_segment_plan_fails_before_any_conversion_without_mutation (test_ambience_audio.SourceGuard.test_invalid_segment_plan_fails_before_any_conversion_without_mutation) (key='selectedSegmentStartSeconds', value=True) ... FAIL + test_invalid_segment_plan_fails_before_any_conversion_without_mutation (test_ambience_audio.SourceGuard.test_invalid_segment_plan_fails_before_any_conversion_without_mutation) (key='selectedSegmentStartSeconds', value='36') ... FAIL + test_invalid_segment_plan_fails_before_any_conversion_without_mutation (test_ambience_audio.SourceGuard.test_invalid_segment_plan_fails_before_any_conversion_without_mutation) (key='selectedSegmentStartSeconds', value=nan) ... FAIL + test_invalid_segment_plan_fails_before_any_conversion_without_mutation (test_ambience_audio.SourceGuard.test_invalid_segment_plan_fails_before_any_conversion_without_mutation) (key='selectedSegmentStartSeconds', value=inf) ... FAIL + test_invalid_segment_plan_fails_before_any_conversion_without_mutation (test_ambience_audio.SourceGuard.test_invalid_segment_plan_fails_before_any_conversion_without_mutation) (key='selectedSegmentStartSeconds', value=1788.001) ... FAIL + test_invalid_segment_plan_fails_before_any_conversion_without_mutation (test_ambience_audio.SourceGuard.test_invalid_segment_plan_fails_before_any_conversion_without_mutation) (key='directMediaDurationSeconds', value=None) ... FAIL + test_invalid_segment_plan_fails_before_any_conversion_without_mutation (test_ambience_audio.SourceGuard.test_invalid_segment_plan_fails_before_any_conversion_without_mutation) (key='directMediaDurationSeconds', value=0) ... FAIL + test_invalid_segment_plan_fails_before_any_conversion_without_mutation (test_ambience_audio.SourceGuard.test_invalid_segment_plan_fails_before_any_conversion_without_mutation) (key='directMediaDurationSeconds', value=True) ... FAIL + test_invalid_segment_plan_fails_before_any_conversion_without_mutation (test_ambience_audio.SourceGuard.test_invalid_segment_plan_fails_before_any_conversion_without_mutation) (key='directMediaDurationSeconds', value='1800') ... FAIL + test_invalid_segment_plan_fails_before_any_conversion_without_mutation (test_ambience_audio.SourceGuard.test_invalid_segment_plan_fails_before_any_conversion_without_mutation) (key='directMediaDurationSeconds', value=nan) ... FAIL + test_invalid_segment_plan_fails_before_any_conversion_without_mutation (test_ambience_audio.SourceGuard.test_invalid_segment_plan_fails_before_any_conversion_without_mutation) (key='directMediaDurationSeconds', value=inf) ... FAIL + test_invalid_segment_plan_fails_before_any_conversion_without_mutation (test_ambience_audio.SourceGuard.test_invalid_segment_plan_fails_before_any_conversion_without_mutation) (key='directMediaDurationSeconds', value=191.999) ... FAIL + +====================================================================== +FAIL: 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) +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/home/hermes/worktrees/find-word-v0.2.3/tests/python/test_ambience_audio.py", line 184, in test_plan_alone_controls_selection_and_is_preserved_in_manifest_and_notice + self.assertEqual(call.args[2], start) +AssertionError: 35 != 1.25 + +====================================================================== +FAIL: test_invalid_segment_plan_fails_before_any_conversion_without_mutation (test_ambience_audio.SourceGuard.test_invalid_segment_plan_fails_before_any_conversion_without_mutation) (key='selectedSegmentStartSeconds', value=None) +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/home/hermes/worktrees/find-word-v0.2.3/tests/python/test_ambience_audio.py", line 106, in test_invalid_segment_plan_fails_before_any_conversion_without_mutation + audio.generate(plan, self.sources, self.output, converter=self.converter) + File "/home/hermes/worktrees/find-word-v0.2.3/scripts/ambience_audio.py", line 205, in generate + info = converter(source_path(source_directory, environment), ready / name, SEGMENTS[environment]) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/hermes/.local/share/uv/python/cpython-3.11.16-linux-x86_64-gnu/lib/python3.11/unittest/mock.py", line 1124, in __call__ + return self._mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/hermes/.local/share/uv/python/cpython-3.11.16-linux-x86_64-gnu/lib/python3.11/unittest/mock.py", line 1128, in _mock_call + return self._execute_mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/hermes/.local/share/uv/python/cpython-3.11.16-linux-x86_64-gnu/lib/python3.11/unittest/mock.py", line 1183, in _execute_mock_call + raise effect +AssertionError: conversion must not begin + +====================================================================== +FAIL: test_invalid_segment_plan_fails_before_any_conversion_without_mutation (test_ambience_audio.SourceGuard.test_invalid_segment_plan_fails_before_any_conversion_without_mutation) (key='selectedSegmentStartSeconds', value=-1) +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/home/hermes/worktrees/find-word-v0.2.3/tests/python/test_ambience_audio.py", line 106, in test_invalid_segment_plan_fails_before_any_conversion_without_mutation + audio.generate(plan, self.sources, self.output, converter=self.converter) + File "/home/hermes/worktrees/find-word-v0.2.3/scripts/ambience_audio.py", line 205, in generate + info = converter(source_path(source_directory, environment), ready / name, SEGMENTS[environment]) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/hermes/.local/share/uv/python/cpython-3.11.16-linux-x86_64-gnu/lib/python3.11/unittest/mock.py", line 1124, in __call__ + return self._mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/hermes/.local/share/uv/python/cpython-3.11.16-linux-x86_64-gnu/lib/python3.11/unittest/mock.py", line 1128, in _mock_call + return self._execute_mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/hermes/.local/share/uv/python/cpython-3.11.16-linux-x86_64-gnu/lib/python3.11/unittest/mock.py", line 1183, in _execute_mock_call + raise effect +AssertionError: conversion must not begin + +====================================================================== +FAIL: test_invalid_segment_plan_fails_before_any_conversion_without_mutation (test_ambience_audio.SourceGuard.test_invalid_segment_plan_fails_before_any_conversion_without_mutation) (key='selectedSegmentStartSeconds', value=True) +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/home/hermes/worktrees/find-word-v0.2.3/tests/python/test_ambience_audio.py", line 106, in test_invalid_segment_plan_fails_before_any_conversion_without_mutation + audio.generate(plan, self.sources, self.output, converter=self.converter) + File "/home/hermes/worktrees/find-word-v0.2.3/scripts/ambience_audio.py", line 205, in generate + info = converter(source_path(source_directory, environment), ready / name, SEGMENTS[environment]) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/hermes/.local/share/uv/python/cpython-3.11.16-linux-x86_64-gnu/lib/python3.11/unittest/mock.py", line 1124, in __call__ + return self._mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/hermes/.local/share/uv/python/cpython-3.11.16-linux-x86_64-gnu/lib/python3.11/unittest/mock.py", line 1128, in _mock_call + return self._execute_mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/hermes/.local/share/uv/python/cpython-3.11.16-linux-x86_64-gnu/lib/python3.11/unittest/mock.py", line 1183, in _execute_mock_call + raise effect +AssertionError: conversion must not begin + +====================================================================== +FAIL: test_invalid_segment_plan_fails_before_any_conversion_without_mutation (test_ambience_audio.SourceGuard.test_invalid_segment_plan_fails_before_any_conversion_without_mutation) (key='selectedSegmentStartSeconds', value='36') +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/home/hermes/worktrees/find-word-v0.2.3/tests/python/test_ambience_audio.py", line 106, in test_invalid_segment_plan_fails_before_any_conversion_without_mutation + audio.generate(plan, self.sources, self.output, converter=self.converter) + File "/home/hermes/worktrees/find-word-v0.2.3/scripts/ambience_audio.py", line 205, in generate + info = converter(source_path(source_directory, environment), ready / name, SEGMENTS[environment]) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/hermes/.local/share/uv/python/cpython-3.11.16-linux-x86_64-gnu/lib/python3.11/unittest/mock.py", line 1124, in __call__ + return self._mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/hermes/.local/share/uv/python/cpython-3.11.16-linux-x86_64-gnu/lib/python3.11/unittest/mock.py", line 1128, in _mock_call + return self._execute_mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/hermes/.local/share/uv/python/cpython-3.11.16-linux-x86_64-gnu/lib/python3.11/unittest/mock.py", line 1183, in _execute_mock_call + raise effect +AssertionError: conversion must not begin + +====================================================================== +FAIL: test_invalid_segment_plan_fails_before_any_conversion_without_mutation (test_ambience_audio.SourceGuard.test_invalid_segment_plan_fails_before_any_conversion_without_mutation) (key='selectedSegmentStartSeconds', value=nan) +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/home/hermes/worktrees/find-word-v0.2.3/tests/python/test_ambience_audio.py", line 106, in test_invalid_segment_plan_fails_before_any_conversion_without_mutation + audio.generate(plan, self.sources, self.output, converter=self.converter) + File "/home/hermes/worktrees/find-word-v0.2.3/scripts/ambience_audio.py", line 205, in generate + info = converter(source_path(source_directory, environment), ready / name, SEGMENTS[environment]) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/hermes/.local/share/uv/python/cpython-3.11.16-linux-x86_64-gnu/lib/python3.11/unittest/mock.py", line 1124, in __call__ + return self._mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/hermes/.local/share/uv/python/cpython-3.11.16-linux-x86_64-gnu/lib/python3.11/unittest/mock.py", line 1128, in _mock_call + return self._execute_mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/hermes/.local/share/uv/python/cpython-3.11.16-linux-x86_64-gnu/lib/python3.11/unittest/mock.py", line 1183, in _execute_mock_call + raise effect +AssertionError: conversion must not begin + +====================================================================== +FAIL: test_invalid_segment_plan_fails_before_any_conversion_without_mutation (test_ambience_audio.SourceGuard.test_invalid_segment_plan_fails_before_any_conversion_without_mutation) (key='selectedSegmentStartSeconds', value=inf) +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/home/hermes/worktrees/find-word-v0.2.3/tests/python/test_ambience_audio.py", line 106, in test_invalid_segment_plan_fails_before_any_conversion_without_mutation + audio.generate(plan, self.sources, self.output, converter=self.converter) + File "/home/hermes/worktrees/find-word-v0.2.3/scripts/ambience_audio.py", line 205, in generate + info = converter(source_path(source_directory, environment), ready / name, SEGMENTS[environment]) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/hermes/.local/share/uv/python/cpython-3.11.16-linux-x86_64-gnu/lib/python3.11/unittest/mock.py", line 1124, in __call__ + return self._mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/hermes/.local/share/uv/python/cpython-3.11.16-linux-x86_64-gnu/lib/python3.11/unittest/mock.py", line 1128, in _mock_call + return self._execute_mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/hermes/.local/share/uv/python/cpython-3.11.16-linux-x86_64-gnu/lib/python3.11/unittest/mock.py", line 1183, in _execute_mock_call + raise effect +AssertionError: conversion must not begin + +====================================================================== +FAIL: test_invalid_segment_plan_fails_before_any_conversion_without_mutation (test_ambience_audio.SourceGuard.test_invalid_segment_plan_fails_before_any_conversion_without_mutation) (key='selectedSegmentStartSeconds', value=1788.001) +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/home/hermes/worktrees/find-word-v0.2.3/tests/python/test_ambience_audio.py", line 106, in test_invalid_segment_plan_fails_before_any_conversion_without_mutation + audio.generate(plan, self.sources, self.output, converter=self.converter) + File "/home/hermes/worktrees/find-word-v0.2.3/scripts/ambience_audio.py", line 205, in generate + info = converter(source_path(source_directory, environment), ready / name, SEGMENTS[environment]) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/hermes/.local/share/uv/python/cpython-3.11.16-linux-x86_64-gnu/lib/python3.11/unittest/mock.py", line 1124, in __call__ + return self._mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/hermes/.local/share/uv/python/cpython-3.11.16-linux-x86_64-gnu/lib/python3.11/unittest/mock.py", line 1128, in _mock_call + return self._execute_mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/hermes/.local/share/uv/python/cpython-3.11.16-linux-x86_64-gnu/lib/python3.11/unittest/mock.py", line 1183, in _execute_mock_call + raise effect +AssertionError: conversion must not begin + +====================================================================== +FAIL: test_invalid_segment_plan_fails_before_any_conversion_without_mutation (test_ambience_audio.SourceGuard.test_invalid_segment_plan_fails_before_any_conversion_without_mutation) (key='directMediaDurationSeconds', value=None) +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/home/hermes/worktrees/find-word-v0.2.3/tests/python/test_ambience_audio.py", line 106, in test_invalid_segment_plan_fails_before_any_conversion_without_mutation + audio.generate(plan, self.sources, self.output, converter=self.converter) + File "/home/hermes/worktrees/find-word-v0.2.3/scripts/ambience_audio.py", line 205, in generate + info = converter(source_path(source_directory, environment), ready / name, SEGMENTS[environment]) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/hermes/.local/share/uv/python/cpython-3.11.16-linux-x86_64-gnu/lib/python3.11/unittest/mock.py", line 1124, in __call__ + return self._mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/hermes/.local/share/uv/python/cpython-3.11.16-linux-x86_64-gnu/lib/python3.11/unittest/mock.py", line 1128, in _mock_call + return self._execute_mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/hermes/.local/share/uv/python/cpython-3.11.16-linux-x86_64-gnu/lib/python3.11/unittest/mock.py", line 1183, in _execute_mock_call + raise effect +AssertionError: conversion must not begin + +====================================================================== +FAIL: test_invalid_segment_plan_fails_before_any_conversion_without_mutation (test_ambience_audio.SourceGuard.test_invalid_segment_plan_fails_before_any_conversion_without_mutation) (key='directMediaDurationSeconds', value=0) +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/home/hermes/worktrees/find-word-v0.2.3/tests/python/test_ambience_audio.py", line 106, in test_invalid_segment_plan_fails_before_any_conversion_without_mutation + audio.generate(plan, self.sources, self.output, converter=self.converter) + File "/home/hermes/worktrees/find-word-v0.2.3/scripts/ambience_audio.py", line 205, in generate + info = converter(source_path(source_directory, environment), ready / name, SEGMENTS[environment]) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/hermes/.local/share/uv/python/cpython-3.11.16-linux-x86_64-gnu/lib/python3.11/unittest/mock.py", line 1124, in __call__ + return self._mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/hermes/.local/share/uv/python/cpython-3.11.16-linux-x86_64-gnu/lib/python3.11/unittest/mock.py", line 1128, in _mock_call + return self._execute_mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/hermes/.local/share/uv/python/cpython-3.11.16-linux-x86_64-gnu/lib/python3.11/unittest/mock.py", line 1183, in _execute_mock_call + raise effect +AssertionError: conversion must not begin + +====================================================================== +FAIL: test_invalid_segment_plan_fails_before_any_conversion_without_mutation (test_ambience_audio.SourceGuard.test_invalid_segment_plan_fails_before_any_conversion_without_mutation) (key='directMediaDurationSeconds', value=True) +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/home/hermes/worktrees/find-word-v0.2.3/tests/python/test_ambience_audio.py", line 106, in test_invalid_segment_plan_fails_before_any_conversion_without_mutation + audio.generate(plan, self.sources, self.output, converter=self.converter) + File "/home/hermes/worktrees/find-word-v0.2.3/scripts/ambience_audio.py", line 205, in generate + info = converter(source_path(source_directory, environment), ready / name, SEGMENTS[environment]) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/hermes/.local/share/uv/python/cpython-3.11.16-linux-x86_64-gnu/lib/python3.11/unittest/mock.py", line 1124, in __call__ + return self._mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/hermes/.local/share/uv/python/cpython-3.11.16-linux-x86_64-gnu/lib/python3.11/unittest/mock.py", line 1128, in _mock_call + return self._execute_mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/hermes/.local/share/uv/python/cpython-3.11.16-linux-x86_64-gnu/lib/python3.11/unittest/mock.py", line 1183, in _execute_mock_call + raise effect +AssertionError: conversion must not begin + +====================================================================== +FAIL: test_invalid_segment_plan_fails_before_any_conversion_without_mutation (test_ambience_audio.SourceGuard.test_invalid_segment_plan_fails_before_any_conversion_without_mutation) (key='directMediaDurationSeconds', value='1800') +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/home/hermes/worktrees/find-word-v0.2.3/tests/python/test_ambience_audio.py", line 106, in test_invalid_segment_plan_fails_before_any_conversion_without_mutation + audio.generate(plan, self.sources, self.output, converter=self.converter) + File "/home/hermes/worktrees/find-word-v0.2.3/scripts/ambience_audio.py", line 205, in generate + info = converter(source_path(source_directory, environment), ready / name, SEGMENTS[environment]) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/hermes/.local/share/uv/python/cpython-3.11.16-linux-x86_64-gnu/lib/python3.11/unittest/mock.py", line 1124, in __call__ + return self._mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/hermes/.local/share/uv/python/cpython-3.11.16-linux-x86_64-gnu/lib/python3.11/unittest/mock.py", line 1128, in _mock_call + return self._execute_mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/hermes/.local/share/uv/python/cpython-3.11.16-linux-x86_64-gnu/lib/python3.11/unittest/mock.py", line 1183, in _execute_mock_call + raise effect +AssertionError: conversion must not begin + +====================================================================== +FAIL: test_invalid_segment_plan_fails_before_any_conversion_without_mutation (test_ambience_audio.SourceGuard.test_invalid_segment_plan_fails_before_any_conversion_without_mutation) (key='directMediaDurationSeconds', value=nan) +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/home/hermes/worktrees/find-word-v0.2.3/tests/python/test_ambience_audio.py", line 106, in test_invalid_segment_plan_fails_before_any_conversion_without_mutation + audio.generate(plan, self.sources, self.output, converter=self.converter) + File "/home/hermes/worktrees/find-word-v0.2.3/scripts/ambience_audio.py", line 205, in generate + info = converter(source_path(source_directory, environment), ready / name, SEGMENTS[environment]) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/hermes/.local/share/uv/python/cpython-3.11.16-linux-x86_64-gnu/lib/python3.11/unittest/mock.py", line 1124, in __call__ + return self._mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/hermes/.local/share/uv/python/cpython-3.11.16-linux-x86_64-gnu/lib/python3.11/unittest/mock.py", line 1128, in _mock_call + return self._execute_mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/hermes/.local/share/uv/python/cpython-3.11.16-linux-x86_64-gnu/lib/python3.11/unittest/mock.py", line 1183, in _execute_mock_call + raise effect +AssertionError: conversion must not begin + +====================================================================== +FAIL: test_invalid_segment_plan_fails_before_any_conversion_without_mutation (test_ambience_audio.SourceGuard.test_invalid_segment_plan_fails_before_any_conversion_without_mutation) (key='directMediaDurationSeconds', value=inf) +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/home/hermes/worktrees/find-word-v0.2.3/tests/python/test_ambience_audio.py", line 106, in test_invalid_segment_plan_fails_before_any_conversion_without_mutation + audio.generate(plan, self.sources, self.output, converter=self.converter) + File "/home/hermes/worktrees/find-word-v0.2.3/scripts/ambience_audio.py", line 205, in generate + info = converter(source_path(source_directory, environment), ready / name, SEGMENTS[environment]) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/hermes/.local/share/uv/python/cpython-3.11.16-linux-x86_64-gnu/lib/python3.11/unittest/mock.py", line 1124, in __call__ + return self._mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/hermes/.local/share/uv/python/cpython-3.11.16-linux-x86_64-gnu/lib/python3.11/unittest/mock.py", line 1128, in _mock_call + return self._execute_mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/hermes/.local/share/uv/python/cpython-3.11.16-linux-x86_64-gnu/lib/python3.11/unittest/mock.py", line 1183, in _execute_mock_call + raise effect +AssertionError: conversion must not begin + +====================================================================== +FAIL: test_invalid_segment_plan_fails_before_any_conversion_without_mutation (test_ambience_audio.SourceGuard.test_invalid_segment_plan_fails_before_any_conversion_without_mutation) (key='directMediaDurationSeconds', value=191.999) +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/home/hermes/worktrees/find-word-v0.2.3/tests/python/test_ambience_audio.py", line 106, in test_invalid_segment_plan_fails_before_any_conversion_without_mutation + audio.generate(plan, self.sources, self.output, converter=self.converter) + File "/home/hermes/worktrees/find-word-v0.2.3/scripts/ambience_audio.py", line 205, in generate + info = converter(source_path(source_directory, environment), ready / name, SEGMENTS[environment]) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/hermes/.local/share/uv/python/cpython-3.11.16-linux-x86_64-gnu/lib/python3.11/unittest/mock.py", line 1124, in __call__ + return self._mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/hermes/.local/share/uv/python/cpython-3.11.16-linux-x86_64-gnu/lib/python3.11/unittest/mock.py", line 1128, in _mock_call + return self._execute_mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/hermes/.local/share/uv/python/cpython-3.11.16-linux-x86_64-gnu/lib/python3.11/unittest/mock.py", line 1183, in _execute_mock_call + raise effect +AssertionError: conversion must not begin + +---------------------------------------------------------------------- +Ran 17 tests in 7.982s + +FAILED (failures=15) + +Exit code: 1 +Finished UTC: 2026-10-14T09:08:49.067756+00:00 diff --git a/.agent/evidence-v0.2.3/privacy-screening/03-browser-RED.log b/.agent/evidence-v0.2.3/privacy-screening/03-browser-RED.log new file mode 100644 index 0000000..f21a493 --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/03-browser-RED.log @@ -0,0 +1,78 @@ +$ env CHROME_PATH=/usr/bin/google-chrome PLAYWRIGHT_NO_SANDBOX=0 npx playwright test tests/browser/audio.spec.ts --reporter=line --output=.agent/evidence-v0.2.3/privacy-screening/browser-red +Started UTC: 2026-10-14T09:09:12.510065+00:00 +[WebServer] (node:1044973) 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 2 tests using 2 workers + +(node:1044995) 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:1044996) 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/2] [desktop] › tests/browser/audio.spec.ts:7:1 › 음성·현장음 109개 versioned WAV를 실제 Chrome에서 해시·디코드 검증한다 +[2/2] [mobile] › tests/browser/audio.spec.ts:7:1 › 음성·현장음 109개 versioned WAV를 실제 Chrome에서 해시·디코드 검증한다 + 1) [desktop] › tests/browser/audio.spec.ts:7:1 › 음성·현장음 109개 versioned WAV를 실제 Chrome에서 해시·디코드 검증한다 + + Error: expect(received).toBe(expected) // Object.is equality + + Expected: true + Received: false + + 35 | for (const asset of plan.assets) { + 36 | const start = asset.selectedSegmentStartSeconds; + > 37 | expect(Number.isFinite(start)).toBe(true); + | ^ + 38 | expect(start).toBeGreaterThanOrEqual(0); + 39 | expect(start + 12).toBeLessThanOrEqual(asset.directMediaDurationSeconds); + 40 | const entry = published.manifest.files.find((e: { environmentId: string }) => e.environmentId === asset.environmentId); + at /home/hermes/worktrees/find-word-v0.2.3/tests/browser/audio.spec.ts:37:36 + + Error Context: .agent/evidence-v0.2.3/privacy-screening/browser-red/audio-음성·현장음-109개-versioned-WAV를-실제-Chrome에서-해시·디코드-검증한다-desktop/error-context.md + + attachment #2: trace (application/zip) ───────────────────────────────────────────────────────── + .agent/evidence-v0.2.3/privacy-screening/browser-red/audio-음성·현장음-109개-versioned-WAV를-실제-Chrome에서-해시·디코드-검증한다-desktop/trace.zip + Usage: + + npx playwright show-trace .agent/evidence-v0.2.3/privacy-screening/browser-red/audio-음성·현장음-109개-versioned-WAV를-실제-Chrome에서-해시·디코드-검증한다-desktop/trace.zip + + ──────────────────────────────────────────────────────────────────────────────────────────────── + + + 2) [mobile] › tests/browser/audio.spec.ts:7:1 › 음성·현장음 109개 versioned WAV를 실제 Chrome에서 해시·디코드 검증한다 + + Error: expect(received).toBe(expected) // Object.is equality + + Expected: true + Received: false + + 35 | for (const asset of plan.assets) { + 36 | const start = asset.selectedSegmentStartSeconds; + > 37 | expect(Number.isFinite(start)).toBe(true); + | ^ + 38 | expect(start).toBeGreaterThanOrEqual(0); + 39 | expect(start + 12).toBeLessThanOrEqual(asset.directMediaDurationSeconds); + 40 | const entry = published.manifest.files.find((e: { environmentId: string }) => e.environmentId === asset.environmentId); + at /home/hermes/worktrees/find-word-v0.2.3/tests/browser/audio.spec.ts:37:36 + + Error Context: .agent/evidence-v0.2.3/privacy-screening/browser-red/audio-음성·현장음-109개-versioned-WAV를-실제-Chrome에서-해시·디코드-검증한다-mobile/error-context.md + + attachment #2: trace (application/zip) ───────────────────────────────────────────────────────── + .agent/evidence-v0.2.3/privacy-screening/browser-red/audio-음성·현장음-109개-versioned-WAV를-실제-Chrome에서-해시·디코드-검증한다-mobile/trace.zip + Usage: + + npx playwright show-trace .agent/evidence-v0.2.3/privacy-screening/browser-red/audio-음성·현장음-109개-versioned-WAV를-실제-Chrome에서-해시·디코드-검증한다-mobile/trace.zip + + ──────────────────────────────────────────────────────────────────────────────────────────────── + + + 2 failed + [desktop] › tests/browser/audio.spec.ts:7:1 › 음성·현장음 109개 versioned WAV를 실제 Chrome에서 해시·디코드 검증한다 + [mobile] › tests/browser/audio.spec.ts:7:1 › 음성·현장음 109개 versioned WAV를 실제 Chrome에서 해시·디코드 검증한다 + +Exit code: 1 +Finished UTC: 2026-10-14T09:09:15.754298+00:00 diff --git a/.agent/evidence-v0.2.3/privacy-screening/04-screening-RED.log b/.agent/evidence-v0.2.3/privacy-screening/04-screening-RED.log new file mode 100644 index 0000000..6bf7afd --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/04-screening-RED.log @@ -0,0 +1,44 @@ +$ npx vitest run tests/ambience.test.ts -t '최종 ASR|101개 음성' +Started UTC: 2026-10-14T09:09:47.813802+00:00 + + RUN v5.0.4 /home/hermes/worktrees/find-word-v0.2.3 + + ❯ tests/ambience.test.ts (5 tests | 2 failed | 3 skipped) 103ms + × 최종 ASR 증거는 정확한 WAV와 연결되며 청취·법적 인수로 주장하지 않는다 6ms + × 101개 음성·다섯 현장음 및 이전 evidence 바이트를 보존한다 96ms + +⎯⎯⎯⎯⎯⎯⎯ Failed Tests 2 ⎯⎯⎯⎯⎯⎯⎯ + + FAIL tests/ambience.test.ts > 최종 ASR 증거는 정확한 WAV와 연결되며 청취·법적 인수로 주장하지 않는다 +Error: ENOENT: no such file or directory, open '.agent/evidence-v0.2.3/privacy-screening/final-asr.json' + ❯ tests/ambience.test.ts:158:32 + 156| it("최종 ASR 증거는 정확한 WAV와 연결되며 청취·법적 인수로 주장하지 않는다", () => { + 157| const directory = ".agent/evidence-v0.2.3/privacy-screening"; + 158| const screening = JSON.parse(readFileSync(`${directory}/final-asr.js… + | ^ + 159| const manifest = JSON.parse(readFileSync("public/ambience/manifest.j… + 160| expect(screening.tool).toMatchObject({ name: "faster-whisper", versi… + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[1/2]⎯ + + FAIL tests/ambience.test.ts > 101개 음성·다섯 현장음 및 이전 evidence 바이트를 보존한다 +AssertionError: expected '8db06f3f09bbd8409573ba4874c7ccdd1e7e8…' not to be '8db06f3f09bbd8409573ba4874c7ccdd1e7e8…' // Object.is equality + ❯ tests/ambience.test.ts:192:26 + 190| const actual = createHash("sha256").update(readFileSync(path)).dig… + 191| if (/public\/ambience\/(mall|market|cafe)\.wav$/.test(path)) { + 192| expect(actual).not.toBe(before); + | ^ + 193| changedAmbience++; + 194| } else { + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[2/2]⎯ + + + Test Files 1 failed (1) + Tests 2 failed | 3 skipped (5) + Start at 09:09:48 + Duration 400ms (tests 39%, setup 39%, transform 17%, import 4%, worker 2%) + + +Exit code: 1 +Finished UTC: 2026-10-14T09:09:48.821996+00:00 diff --git a/.agent/evidence-v0.2.3/privacy-screening/05-regeneration.log b/.agent/evidence-v0.2.3/privacy-screening/05-regeneration.log new file mode 100644 index 0000000..0b0da12 --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/05-regeneration.log @@ -0,0 +1,16 @@ +$ python3 .agent/evidence-v0.2.3/privacy-screening/regenerate.py +Started UTC: 2026-10-14T09:10:56.998337+00:00 +All eight source SHA-256, byte counts and direct-media durations match before conversion. +Traceback (most recent call last): + File "/home/hermes/worktrees/find-word-v0.2.3/.agent/evidence-v0.2.3/privacy-screening/regenerate.py", line 28, in + manifest = audio.generate(plan, source_directory, ROOT / 'public/ambience') + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/hermes/worktrees/find-word-v0.2.3/scripts/ambience_audio.py", line 218, in generate + info = converter(source_path(source_directory, environment), ready / name, asset["selectedSegmentStartSeconds"]) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/hermes/worktrees/find-word-v0.2.3/scripts/ambience_audio.py", line 51, in convert + raise ValueError("원본 구간이 잘렸거나 PCM이 올바르지 않습니다.") +ValueError: 원본 구간이 잘렸거나 PCM이 올바르지 않습니다. + +Exit code: 1 +Finished UTC: 2026-10-14T09:10:59.192835+00:00 diff --git a/.agent/evidence-v0.2.3/privacy-screening/06-seek-GREEN.log b/.agent/evidence-v0.2.3/privacy-screening/06-seek-GREEN.log new file mode 100644 index 0000000..5be64c0 --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/06-seek-GREEN.log @@ -0,0 +1,11 @@ +$ python3 -m unittest discover -s tests/python -p test_ambience_audio.py -k short_input_seek -v +Started UTC: 2026-10-14T09:12:50.105600+00:00 +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 + +---------------------------------------------------------------------- +Ran 1 test in 0.870s + +OK + +Exit code: 0 +Finished UTC: 2026-10-14T09:12:51.044884+00:00 diff --git a/.agent/evidence-v0.2.3/privacy-screening/06-seek-RED.log b/.agent/evidence-v0.2.3/privacy-screening/06-seek-RED.log new file mode 100644 index 0000000..b1c1cac --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/06-seek-RED.log @@ -0,0 +1,22 @@ +$ python3 -m unittest discover -s tests/python -p test_ambience_audio.py -k short_input_seek -v +Started UTC: 2026-10-14T09:12:09.721189+00:00 +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 + +====================================================================== +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.3/tests/python/test_ambience_audio.py", line 69, in test_short_input_seek_retries_full_decode_without_padding_or_truncating + actual = audio.convert(source, target, 1) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/hermes/worktrees/find-word-v0.2.3/scripts/ambience_audio.py", line 51, in convert + raise ValueError("원본 구간이 잘렸거나 PCM이 올바르지 않습니다.") +ValueError: 원본 구간이 잘렸거나 PCM이 올바르지 않습니다. + +---------------------------------------------------------------------- +Ran 1 test in 0.428s + +FAILED (errors=1) + +Exit code: 1 +Finished UTC: 2026-10-14T09:12:10.217535+00:00 diff --git a/.agent/evidence-v0.2.3/privacy-screening/06-seek-provenance-RED.log b/.agent/evidence-v0.2.3/privacy-screening/06-seek-provenance-RED.log new file mode 100644 index 0000000..40ab05b --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/06-seek-provenance-RED.log @@ -0,0 +1,22 @@ +$ python3 -m unittest discover -s tests/python -p test_ambience_audio.py -k short_input_seek -v +Started UTC: 2026-10-14T09:12:26.719654+00:00 +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 + +====================================================================== +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.3/tests/python/test_ambience_audio.py", line 69, in test_short_input_seek_retries_full_decode_without_padding_or_truncating + actual = audio.convert(source, target, 1) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/hermes/worktrees/find-word-v0.2.3/scripts/ambience_audio.py", line 51, in convert + raise ValueError("원본 구간이 잘렸거나 PCM이 올바르지 않습니다.") +ValueError: 원본 구간이 잘렸거나 PCM이 올바르지 않습니다. + +---------------------------------------------------------------------- +Ran 1 test in 0.452s + +FAILED (errors=1) + +Exit code: 1 +Finished UTC: 2026-10-14T09:12:27.241604+00:00 diff --git a/.agent/evidence-v0.2.3/privacy-screening/07-regeneration.log b/.agent/evidence-v0.2.3/privacy-screening/07-regeneration.log new file mode 100644 index 0000000..7132344 --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/07-regeneration.log @@ -0,0 +1,16 @@ +$ python3 .agent/evidence-v0.2.3/privacy-screening/regenerate.py +Started UTC: 2026-10-14T09:13:03.668086+00:00 +All eight source SHA-256, byte counts and direct-media durations match before conversion. +Traceback (most recent call last): + File "/home/hermes/worktrees/find-word-v0.2.3/.agent/evidence-v0.2.3/privacy-screening/regenerate.py", line 28, in + manifest = audio.generate(plan, source_directory, ROOT / 'public/ambience') + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/hermes/worktrees/find-word-v0.2.3/scripts/ambience_audio.py", line 227, in generate + info = converter(source_path(source_directory, environment), ready / name, asset["selectedSegmentStartSeconds"]) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/hermes/worktrees/find-word-v0.2.3/scripts/ambience_audio.py", line 59, in convert + raise ValueError("원본 구간이 잘렸거나 PCM이 올바르지 않습니다.") +ValueError: 원본 구간이 잘렸거나 PCM이 올바르지 않습니다. + +Exit code: 1 +Finished UTC: 2026-10-14T09:13:06.976084+00:00 diff --git a/.agent/evidence-v0.2.3/privacy-screening/08-sample-trim-GREEN.log b/.agent/evidence-v0.2.3/privacy-screening/08-sample-trim-GREEN.log new file mode 100644 index 0000000..1e66b37 --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/08-sample-trim-GREEN.log @@ -0,0 +1,11 @@ +$ python3 -m unittest discover -s tests/python -p test_ambience_audio.py -k short_input_seek -v +Started UTC: 2026-10-14T09:16:00.065794+00:00 +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 + +---------------------------------------------------------------------- +Ran 1 test in 0.813s + +OK + +Exit code: 0 +Finished UTC: 2026-10-14T09:16:00.949585+00:00 diff --git a/.agent/evidence-v0.2.3/privacy-screening/08-sample-trim-RED.log b/.agent/evidence-v0.2.3/privacy-screening/08-sample-trim-RED.log new file mode 100644 index 0000000..1d6ac06 --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/08-sample-trim-RED.log @@ -0,0 +1,22 @@ +$ python3 -m unittest discover -s tests/python -p test_ambience_audio.py -k short_input_seek -v +Started UTC: 2026-10-14T09:15:41.642570+00:00 +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) ... FAIL + +====================================================================== +FAIL: 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.3/tests/python/test_ambience_audio.py", line 71, in test_short_input_seek_retries_full_decode_without_padding_or_truncating + self.assertEqual(actual["conversion"]["seekMethod"], "full decode then sample trim") +AssertionError: 'full decode then output seek' != 'full decode then sample trim' +- full decode then output seek ++ full decode then sample trim + + +---------------------------------------------------------------------- +Ran 1 test in 0.697s + +FAILED (failures=1) + +Exit code: 1 +Finished UTC: 2026-10-14T09:15:42.409368+00:00 diff --git a/.agent/evidence-v0.2.3/privacy-screening/09-regeneration.log b/.agent/evidence-v0.2.3/privacy-screening/09-regeneration.log new file mode 100644 index 0000000..f544c42 --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/09-regeneration.log @@ -0,0 +1,260 @@ +$ python3 .agent/evidence-v0.2.3/privacy-screening/regenerate.py +Started UTC: 2026-10-14T09:16:15.875217+00:00 +All eight source SHA-256, byte counts and direct-media durations match before conversion. +{ + "completedAtUtc": "2026-10-14T09:16:20.220194+00:00", + "method": "ambience_audio.generate: source preflight, full staged bundle validation, atomic directory exchange", + "allSourcesMatchedBeforeConversion": true, + "planUnmodified": true, + "sources": [ + { + "environmentId": "street", + "sha256": "0ddb0be7eb3427f781c8268bcbc74b8ad7e1fbf75b9f6966e65274dbe85f3d9d", + "bytes": 3414104, + "directMediaDurationSeconds": 264.254694, + "selectedSegmentStartSeconds": 35 + }, + { + "environmentId": "mall", + "sha256": "bb066e130e5d665db57cb5f88e820d053c724d8f777b275213998d2074c6529a", + "bytes": 1666896, + "directMediaDurationSeconds": 60.05551, + "selectedSegmentStartSeconds": 36 + }, + { + "environmentId": "theater", + "sha256": "05c3ece7c088f34700b7610f791c0ad848a24c77be2c32fd1503a78356739a43", + "bytes": 1485015, + "directMediaDurationSeconds": 176.901224, + "selectedSegmentStartSeconds": 45 + }, + { + "environmentId": "department", + "sha256": "261fda28722fba623483a90b32e7a2ec388c59887f56a5247156b53f1ffb6ccd", + "bytes": 2445024, + "directMediaDurationSeconds": 292.872, + "selectedSegmentStartSeconds": 90 + }, + { + "environmentId": "market", + "sha256": "fc0075dce8ad05b56460c9f18754c27b2021f21f1c780a595ccda648d33c941d", + "bytes": 622200, + "directMediaDurationSeconds": 76.696961, + "selectedSegmentStartSeconds": 60 + }, + { + "environmentId": "subway", + "sha256": "41fcf064cde53cef1528fe98721347851e60c070d8ff9f213f354025cf272d4c", + "bytes": 3343901, + "directMediaDurationSeconds": 425.024, + "selectedSegmentStartSeconds": 65 + }, + { + "environmentId": "cafe", + "sha256": "6360791fdcee1f64638f0fc9abd6d2c7a1aa75fd3d2b80033170a02d025099dc", + "bytes": 19947952, + "directMediaDurationSeconds": 1200.000998, + "selectedSegmentStartSeconds": 180 + }, + { + "environmentId": "rain", + "sha256": "ef0511593b1bb0ba47d5c5dafd83eb07ba854b5a65fd5d41b8c76a1b3ff2c22a", + "bytes": 91187572, + "directMediaDurationSeconds": 1800.0, + "selectedSegmentStartSeconds": 180 + } + ], + "manifestSha256": "4f21df1c046e545553319889218c29b3efe0da0d49d45d3e09a36fb7759a617c", + "toolVersions": { + "ffmpeg": "ffmpeg version 6.1.1-3ubuntu5 Copyright (c) 2000-2023 the FFmpeg developers" + }, + "outputs": [ + { + "environmentId": "street", + "selectedSegmentStartSeconds": 35, + "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", + "selectedSegmentStartSeconds": 36, + "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", + "selectedSegmentStartSeconds": 45, + "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", + "selectedSegmentStartSeconds": 90, + "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", + "selectedSegmentStartSeconds": 60, + "sha256": "7a7a980845a4aade2a7e8a108eae746220a4688e92792ee93d3deb76b2a762f6", + "bytes": 576044, + "duration": 12.0, + "rms": 0.07999755668792045, + "peak": 0.507232666015625, + "conversion": { + "startSeconds": 60, + "durationSeconds": 12, + "seekMethod": "full decode then sample trim", + "fadeSeconds": 0.05, + "sampleRate": 24000, + "channels": 1, + "encoding": "PCM16 little-endian", + "linearGain": 1.6103277706340973, + "targetRms": 0.08, + "peakLimit": 0.85, + "maxGain": 4, + "operations": "excerpt, downmix, resample, linear end fades, bounded linear normalization, WAV encoding" + } + }, + { + "environmentId": "subway", + "selectedSegmentStartSeconds": 65, + "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", + "selectedSegmentStartSeconds": 180, + "sha256": "802a956e91b85a2fdd0e1f161d75bfada7a53499bcb57ba7f578411480ded216", + "bytes": 576044, + "duration": 12.0, + "rms": 0.07999756802463229, + "peak": 0.44708251953125, + "conversion": { + "startSeconds": 180, + "durationSeconds": 12, + "seekMethod": "full decode then sample trim", + "fadeSeconds": 0.05, + "sampleRate": 24000, + "channels": 1, + "encoding": "PCM16 little-endian", + "linearGain": 0.6696615304282213, + "targetRms": 0.08, + "peakLimit": 0.85, + "maxGain": 4, + "operations": "excerpt, downmix, resample, linear end fades, bounded linear normalization, WAV encoding" + } + }, + { + "environmentId": "rain", + "selectedSegmentStartSeconds": 180, + "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" + } + } + ] +} + +Exit code: 0 +Finished UTC: 2026-10-14T09:16:20.228871+00:00 diff --git a/.agent/evidence-v0.2.3/privacy-screening/10-final-asr.log b/.agent/evidence-v0.2.3/privacy-screening/10-final-asr.log new file mode 100644 index 0000000..0b0ba90 --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/10-final-asr.log @@ -0,0 +1,14 @@ +$ /tmp/findword-asr-venv/bin/python .agent/evidence-v0.2.3/privacy-screening/screen-final.py +Started UTC: 2026-10-14T09:16:47.940443+00:00 +{"environmentId": "street", "sha256": "a8bffa201b174618955bc51b860167169125304811aabe2086b0bb35b06c3ae1", "language": "en", "languageProbability": 0.3898167014122009, "segments": [], "text": ""} +{"environmentId": "mall", "sha256": "680a769940c08f0d12c6c954c08366598dd8b5745e276f39c82b10d1a88261a1", "language": "en", "languageProbability": 0.21966177225112915, "segments": [{"id": 1, "seek": 0, "start": 0.0, "end": 12.0, "text": " It's so beautiful, it's so beautiful, it's so beautiful.", "tokens": [50364, 467, 311, 370, 2238, 11, 309, 311, 370, 2238, 11, 309, 311, 370, 2238, 13, 50964], "avg_logprob": -0.93099288476838, "compression_ratio": 1.8064516129032258, "no_speech_prob": 0.33958810567855835, "words": null, "temperature": 0.0}], "text": " It's so beautiful, it's so beautiful, it's so beautiful."} +{"environmentId": "theater", "sha256": "2d6a444fb7874cdf6b2d8a741a69175299b112eb66834912c025437d8277d635", "language": "en", "languageProbability": 0.25658440589904785, "segments": [{"id": 1, "seek": 0, "start": 0.0, "end": 7.0, "text": " Thank you for watching.", "tokens": [50364, 1044, 291, 337, 1976, 13, 50714], "avg_logprob": -1.1992912590503693, "compression_ratio": 0.7419354838709677, "no_speech_prob": 0.30440080165863037, "words": null, "temperature": 1.0}], "text": " Thank you for watching."} +{"environmentId": "department", "sha256": "aa43f3d1d3e7c2b1f8ace24ecbda45d0ea3a031db941c39506dc6c1665b8efa7", "language": "en", "languageProbability": 0.29920145869255066, "segments": [{"id": 1, "seek": 0, "start": 0.0, "end": 12.0, "text": " Thank you for watching!", "tokens": [50364, 1044, 291, 337, 1976, 0, 50964], "avg_logprob": -1.3012538105249405, "compression_ratio": 0.7419354838709677, "no_speech_prob": 0.3079261779785156, "words": null, "temperature": 1.0}], "text": " Thank you for watching!"} +{"environmentId": "market", "sha256": "7a7a980845a4aade2a7e8a108eae746220a4688e92792ee93d3deb76b2a762f6", "language": "ja", "languageProbability": 0.15124011039733887, "segments": [{"id": 1, "seek": 0, "start": 0.0, "end": 12.0, "text": "ご視聴ありがとうございました", "tokens": [50364, 9991, 27333, 8171, 112, 38538, 50964], "avg_logprob": -1.0916412025690079, "compression_ratio": 0.8571428571428571, "no_speech_prob": 0.4130496084690094, "words": null, "temperature": 1.0}], "text": "ご視聴ありがとうございました"} +{"environmentId": "subway", "sha256": "9faf70b68617d267b367a0f3692ed90015458543ab4b0844f6c704e6a724728f", "language": "en", "languageProbability": 0.28915584087371826, "segments": [{"id": 1, "seek": 0, "start": 0.0, "end": 7.0, "text": " Thank you for watching.", "tokens": [50364, 1044, 291, 337, 1976, 13, 50714], "avg_logprob": -1.1550373882055283, "compression_ratio": 0.7419354838709677, "no_speech_prob": 0.5948910713195801, "words": null, "temperature": 1.0}], "text": " Thank you for watching."} +{"environmentId": "cafe", "sha256": "802a956e91b85a2fdd0e1f161d75bfada7a53499bcb57ba7f578411480ded216", "language": "en", "languageProbability": 0.25277179479599, "segments": [{"id": 1, "seek": 0, "start": 0.0, "end": 12.0, "text": " Thank you for watching.", "tokens": [50364, 1044, 291, 337, 1976, 13, 50964], "avg_logprob": -1.174854263663292, "compression_ratio": 0.7419354838709677, "no_speech_prob": 0.46528390049934387, "words": null, "temperature": 1.0}], "text": " Thank you for watching."} +{"environmentId": "rain", "sha256": "f4315084e820f742b0709de5bb0d1abd3d5af1730620e08c2948b70347356dd9", "language": "nn", "languageProbability": 0.5633389949798584, "segments": [{"id": 1, "seek": 0, "start": 0.0, "end": 2.0, "text": " Let's go!", "tokens": [50364, 961, 311, 352, 0, 50464], "avg_logprob": -1.2815486363002233, "compression_ratio": 0.5294117647058824, "no_speech_prob": 0.4753601849079132, "words": null, "temperature": 1.0}], "text": " Let's go!"} +Required changed excerpts produced ASR segments; screening criterion failed. + +Exit code: 1 +Finished UTC: 2026-10-14T09:17:06.762347+00:00 diff --git a/.agent/evidence-v0.2.3/privacy-screening/11-provenance-GREEN.log b/.agent/evidence-v0.2.3/privacy-screening/11-provenance-GREEN.log new file mode 100644 index 0000000..e5b6d33 --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/11-provenance-GREEN.log @@ -0,0 +1,14 @@ +$ npx vitest run tests/ambience.test.ts tests/build.test.ts -t '선택 구간|101개 음성|현장음 manifest|현장음 .* 손상|고지는 각 항목' +Started UTC: 2026-10-14T09:17:53.364228+00:00 + + RUN v5.0.4 /home/hermes/worktrees/find-word-v0.2.3 + + + Test Files 2 passed (2) + Tests 24 passed | 11 skipped (35) + Start at 09:17:54 + Duration 22.57s (tests 96%, setup 3%, transform 1%) + + +Exit code: 0 +Finished UTC: 2026-10-14T09:18:17.137511+00:00 diff --git a/.agent/evidence-v0.2.3/privacy-screening/12-build.log b/.agent/evidence-v0.2.3/privacy-screening/12-build.log new file mode 100644 index 0000000..89f88dc --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/12-build.log @@ -0,0 +1,20 @@ +$ npm run build +Started UTC: 2026-10-14T09:17:53.387660+00:00 + +> find-word@0.2.3 build +> tsc --noEmit && vite build && node scripts/check-build.mjs + +vite v8.3.4 building client environment for production... +transforming... +✓ 21 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-BChkBncw.js 247.95 kB │ gzip: 78.07 kB + +✓ built in 435ms +빌드 음성 자산 101개 + 현장음 8개 및 런타임/현장음 notice 확인 + +Exit code: 0 +Finished UTC: 2026-10-14T09:18:02.496827+00:00 diff --git a/.agent/evidence-v0.2.3/privacy-screening/12-lint.log b/.agent/evidence-v0.2.3/privacy-screening/12-lint.log new file mode 100644 index 0000000..8eab424 --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/12-lint.log @@ -0,0 +1,9 @@ +$ npm run lint +Started UTC: 2026-10-14T09:17:53.361817+00:00 + +> find-word@0.2.3 lint +> eslint . && tsc --noEmit + + +Exit code: 0 +Finished UTC: 2026-10-14T09:18:05.370273+00:00 diff --git a/.agent/evidence-v0.2.3/privacy-screening/12-python.log b/.agent/evidence-v0.2.3/privacy-screening/12-python.log new file mode 100644 index 0000000..978d922 --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/12-python.log @@ -0,0 +1,457 @@ +$ python3 -m unittest discover -s tests/python -v +Started UTC: 2026-10-14T09:17:53.337776+00:00 +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_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_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_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 36 tests in 15.946s + +OK + +Exit code: 0 +Finished UTC: 2026-10-14T09:18:09.473315+00:00 diff --git a/.agent/evidence-v0.2.3/privacy-screening/13-screening-criterion-RED.log b/.agent/evidence-v0.2.3/privacy-screening/13-screening-criterion-RED.log new file mode 100644 index 0000000..5f8b122 --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/13-screening-criterion-RED.log @@ -0,0 +1,70 @@ +$ npx vitest run tests/ambience.test.ts -t '최종 ASR' +Started UTC: 2026-10-14T09:19:17.358762+00:00 + + RUN v5.0.4 /home/hermes/worktrees/find-word-v0.2.3 + + ❯ tests/ambience.test.ts (5 tests | 1 failed | 4 skipped) 15ms + × 최종 ASR 증거는 정확한 WAV와 연결되며 청취·법적 인수로 주장하지 않는다 14ms + +⎯⎯⎯⎯⎯⎯⎯ Failed Tests 1 ⎯⎯⎯⎯⎯⎯⎯ + + FAIL tests/ambience.test.ts > 최종 ASR 증거는 정확한 WAV와 연결되며 청취·법적 인수로 주장하지 않는다 +AssertionError: expected [ Array(1) ] to deeply equal [] + +- Expected ++ Received + +- [] ++ [ ++ { ++ "avg_logprob": -0.93099288476838, ++ "compression_ratio": 1.8064516129032258, ++ "end": 12, ++ "id": 1, ++ "no_speech_prob": 0.33958810567855835, ++ "seek": 0, ++ "start": 0, ++ "temperature": 0, ++ "text": " It's so beautiful, it's so beautiful, it's so beautiful.", ++ "tokens": [ ++ 50364, ++ 467, ++ 311, ++ 370, ++ 2238, ++ 11, ++ 309, ++ 311, ++ 370, ++ 2238, ++ 11, ++ 309, ++ 311, ++ 370, ++ 2238, ++ 13, ++ 50964, ++ ], ++ "words": null, ++ }, ++ ] + + ❯ tests/ambience.test.ts:224:31 + 222| expect(Array.isArray(result.segments)).toBe(true); + 223| if (["mall", "market", "cafe"].includes(entry.environmentId)) { + 224| expect(result.segments).toEqual([]); + | ^ + 225| expect(result.text).toBe(""); + 226| } + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[1/1]⎯ + + + Test Files 1 failed (1) + Tests 1 failed | 4 skipped (5) + Start at 09:19:17 + Duration 298ms (setup 60%, transform 24%, tests 9%, import 5%, worker 2%) + + +Exit code: 1 +Finished UTC: 2026-10-14T09:19:18.258550+00:00 diff --git a/.agent/evidence-v0.2.3/privacy-screening/14-final-asr-vad.log b/.agent/evidence-v0.2.3/privacy-screening/14-final-asr-vad.log new file mode 100644 index 0000000..6da1926 --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/14-final-asr-vad.log @@ -0,0 +1,39 @@ +$ /tmp/findword-asr-venv/bin/python .agent/evidence-v0.2.3/privacy-screening/screen-with-vad.py +Started UTC: 2026-10-14T09:19:18.333544+00:00 +{"environmentId": "street", "sha256": "a8bffa201b174618955bc51b860167169125304811aabe2086b0bb35b06c3ae1", "language": "en", "languageProbability": 0.3020564913749695, "segments": [], "text": ""} +{"environmentId": "mall", "sha256": "680a769940c08f0d12c6c954c08366598dd8b5745e276f39c82b10d1a88261a1", "language": "en", "languageProbability": 0.3020564913749695, "segments": [], "text": ""} +{"environmentId": "theater", "sha256": "2d6a444fb7874cdf6b2d8a741a69175299b112eb66834912c025437d8277d635", "language": "en", "languageProbability": 0.3020564913749695, "segments": [], "text": ""} +{"environmentId": "department", "sha256": "aa43f3d1d3e7c2b1f8ace24ecbda45d0ea3a031db941c39506dc6c1665b8efa7", "language": "en", "languageProbability": 0.3020564913749695, "segments": [], "text": ""} +{"environmentId": "market", "sha256": "7a7a980845a4aade2a7e8a108eae746220a4688e92792ee93d3deb76b2a762f6", "language": "en", "languageProbability": 0.1462402045726776, "segments": [{"id": 1, "seek": 0, "start": 0.43, "end": 2.43, "text": " I'm going to take a picture of you.", "tokens": [50364, 286, 478, 516, 281, 747, 257, 3036, 295, 291, 13, 50464], "avg_logprob": -0.7898735548998859, "compression_ratio": 2.276595744680851, "no_speech_prob": 0.4569862484931946, "words": null, "temperature": 0.2}, {"id": 2, "seek": 0, "start": 2.43, "end": 4.43, "text": " I'm going to take a picture of you.", "tokens": [50464, 286, 478, 516, 281, 747, 257, 3036, 295, 291, 13, 50564], "avg_logprob": -0.7898735548998859, "compression_ratio": 2.276595744680851, "no_speech_prob": 0.4569862484931946, "words": null, "temperature": 0.2}, {"id": 3, "seek": 0, "start": 4.43, "end": 6.43, "text": " I'm going to take a picture of you.", "tokens": [50564, 286, 478, 516, 281, 747, 257, 3036, 295, 291, 13, 50664], "avg_logprob": -0.7898735548998859, "compression_ratio": 2.276595744680851, "no_speech_prob": 0.4569862484931946, "words": null, "temperature": 0.2}], "text": " I'm going to take a picture of you. I'm going to take a picture of you. I'm going to take a picture of you."} +{"environmentId": "subway", "sha256": "9faf70b68617d267b367a0f3692ed90015458543ab4b0844f6c704e6a724728f", "language": "en", "languageProbability": 0.3020564913749695, "segments": [], "text": ""} +{"environmentId": "cafe", "sha256": "802a956e91b85a2fdd0e1f161d75bfada7a53499bcb57ba7f578411480ded216", "language": "en", "languageProbability": 0.23059327900409698, "segments": [{"id": 1, "seek": 0, "start": 3.02, "end": 4.02, "text": " Thank you.", "tokens": [50364, 1044, 291, 13, 50414], "avg_logprob": -0.8587487538655599, "compression_ratio": 0.5555555555555556, "no_speech_prob": 0.7639055252075195, "words": null, "temperature": 0.0}], "text": " Thank you."} +{"environmentId": "rain", "sha256": "f4315084e820f742b0709de5bb0d1abd3d5af1730620e08c2948b70347356dd9", "language": "en", "languageProbability": 0.3020564913749695, "segments": [], "text": ""} +Traceback (most recent call last): + File "/home/hermes/worktrees/find-word-v0.2.3/.agent/evidence-v0.2.3/privacy-screening/screen-with-vad.py", line 66, in + stream.write(json.dumps(report, ensure_ascii=False, indent=2, allow_nan=False) + '\n') + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/hermes/.local/share/uv/python/cpython-3.11.16-linux-x86_64-gnu/lib/python3.11/json/__init__.py", line 238, in dumps + **kw).encode(obj) + ^^^^^^^^^^^ + File "/home/hermes/.local/share/uv/python/cpython-3.11.16-linux-x86_64-gnu/lib/python3.11/json/encoder.py", line 202, in encode + chunks = list(chunks) + ^^^^^^^^^^^^ + File "/home/hermes/.local/share/uv/python/cpython-3.11.16-linux-x86_64-gnu/lib/python3.11/json/encoder.py", line 432, in _iterencode + yield from _iterencode_dict(o, _current_indent_level) + File "/home/hermes/.local/share/uv/python/cpython-3.11.16-linux-x86_64-gnu/lib/python3.11/json/encoder.py", line 406, in _iterencode_dict + yield from chunks + File "/home/hermes/.local/share/uv/python/cpython-3.11.16-linux-x86_64-gnu/lib/python3.11/json/encoder.py", line 326, in _iterencode_list + yield from chunks + File "/home/hermes/.local/share/uv/python/cpython-3.11.16-linux-x86_64-gnu/lib/python3.11/json/encoder.py", line 406, in _iterencode_dict + yield from chunks + File "/home/hermes/.local/share/uv/python/cpython-3.11.16-linux-x86_64-gnu/lib/python3.11/json/encoder.py", line 406, in _iterencode_dict + yield from chunks + File "/home/hermes/.local/share/uv/python/cpython-3.11.16-linux-x86_64-gnu/lib/python3.11/json/encoder.py", line 398, in _iterencode_dict + yield _floatstr(value) + ^^^^^^^^^^^^^^^^ + File "/home/hermes/.local/share/uv/python/cpython-3.11.16-linux-x86_64-gnu/lib/python3.11/json/encoder.py", line 240, in floatstr + raise ValueError( +ValueError: Out of range float values are not JSON compliant: inf + +Exit code: 1 +Finished UTC: 2026-10-14T09:19:23.297078+00:00 diff --git a/.agent/evidence-v0.2.3/privacy-screening/15-audit.log b/.agent/evidence-v0.2.3/privacy-screening/15-audit.log new file mode 100644 index 0000000..d04cd6c --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/15-audit.log @@ -0,0 +1,2 @@ +$ npm audit --json +Exit code: 0 diff --git a/.agent/evidence-v0.2.3/privacy-screening/15-browser.log b/.agent/evidence-v0.2.3/privacy-screening/15-browser.log new file mode 100644 index 0000000..60fa6b0 --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/15-browser.log @@ -0,0 +1,58 @@ +$ env CHROME_PATH=/usr/bin/google-chrome PLAYWRIGHT_NO_SANDBOX=0 PLAYWRIGHT_JSON_OUTPUT_FILE=.agent/evidence-v0.2.3/privacy-screening/browser-results.json npx playwright test --reporter=line,json --output=.agent/evidence-v0.2.3/privacy-screening/browser-final +Started UTC: 2026-10-14T09:19:38.005274+00:00 +[WebServer] (node:1143638) 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 30 tests using 2 workers + +(node:1143659) 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:1143660) 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/30] [desktop] › tests/browser/audio.spec.ts:7:1 › 음성·현장음 109개 versioned WAV를 실제 Chrome에서 해시·디코드 검증한다 +[2/30] [desktop] › tests/browser/game.spec.ts:8:1 › 실제 오디오로 혼합 모드 완주·레이아웃·접근성·외부 요청 없음 +[3/30] [desktop] › tests/browser/game.spec.ts:130:3 › intro WAV query URL의 404를 표시하고 같은 URL로 재시도·정답 mapping한다 +[4/30] [desktop] › tests/browser/game.spec.ts:130:3 › target WAV query URL의 404를 표시하고 같은 URL로 재시도·정답 mapping한다 +[5/30] [desktop] › tests/browser/release.spec.ts:6:1 › 릴리스는 사용자 크레딧과 런타임 MIT notice 전문을 제공한다 +[6/30] [desktop] › tests/browser/release.spec.ts:24:1 › 누락 음성·환경음은 query와 HTML accept에도 404이고 출처 고지는 번들된다 +[7/30] [desktop] › tests/browser/review-fixes.spec.ts:27:1 › 리뷰: 한국어 모드·결과 어절은 320px와 360px에서도 갈라지거나 넘치지 않는다 +[8/30] [desktop] › tests/browser/review-fixes.spec.ts:62:1 › 리뷰: 실제 진행 막대는 현재 문항의 1/3·2/3·3/3을 채운다 +[9/30] [desktop] › tests/browser/rounds.spec.ts:35:1 › 시작 단계·SNR·3문항 완료→다음 단계·재생 중 종료·응답 후 종료·홈 초기화 +[10/30] [desktop] › tests/browser/rounds.spec.ts:135:1 › 여덟 환경의 실제 WAV를 각각 디코드하고 루프 재생한 뒤 즉시 정지한다 +[11/30] [desktop] › tests/browser/rounds.spec.ts:178:1 › 환경음 404는 한국어 오류와 재시도 후 정상 답변으로 복구한다 +[12/30] [desktop] › tests/browser/ui.spec.ts:4:1 › 전체 음량은 설정 흐름 안에 들어가며 키보드로 조절된다 +[13/30] [desktop] › tests/browser/ui.spec.ts:52:1 › 난이도 설명은 모바일에서도 보인다 +[14/30] [desktop] › tests/browser/ui.spec.ts:68:1 › 한국어 제목은 단어 중간에서 줄바꿈하지 않는다 +[15/30] [desktop] › tests/browser/ui.spec.ts:121:1 › 시작 단계와 SNR 설정은 카드 안에 들어가고 터치 영역을 확보한다 +(node:1150374) 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) + + +[16/30] [mobile] › tests/browser/audio.spec.ts:7:1 › 음성·현장음 109개 versioned WAV를 실제 Chrome에서 해시·디코드 검증한다 +(node:1150409) 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) + + +[17/30] [mobile] › tests/browser/game.spec.ts:8:1 › 실제 오디오로 혼합 모드 완주·레이아웃·접근성·외부 요청 없음 +[18/30] [mobile] › tests/browser/game.spec.ts:130:3 › intro WAV query URL의 404를 표시하고 같은 URL로 재시도·정답 mapping한다 +[19/30] [mobile] › tests/browser/game.spec.ts:130:3 › target WAV query URL의 404를 표시하고 같은 URL로 재시도·정답 mapping한다 +[20/30] [mobile] › tests/browser/release.spec.ts:6:1 › 릴리스는 사용자 크레딧과 런타임 MIT notice 전문을 제공한다 +[21/30] [mobile] › tests/browser/release.spec.ts:24:1 › 누락 음성·환경음은 query와 HTML accept에도 404이고 출처 고지는 번들된다 +[22/30] [mobile] › tests/browser/review-fixes.spec.ts:27:1 › 리뷰: 한국어 모드·결과 어절은 320px와 360px에서도 갈라지거나 넘치지 않는다 +[23/30] [mobile] › tests/browser/review-fixes.spec.ts:62:1 › 리뷰: 실제 진행 막대는 현재 문항의 1/3·2/3·3/3을 채운다 +[24/30] [mobile] › tests/browser/rounds.spec.ts:35:1 › 시작 단계·SNR·3문항 완료→다음 단계·재생 중 종료·응답 후 종료·홈 초기화 +[25/30] [mobile] › tests/browser/rounds.spec.ts:135:1 › 여덟 환경의 실제 WAV를 각각 디코드하고 루프 재생한 뒤 즉시 정지한다 +[26/30] [mobile] › tests/browser/rounds.spec.ts:178:1 › 환경음 404는 한국어 오류와 재시도 후 정상 답변으로 복구한다 +[27/30] [mobile] › tests/browser/ui.spec.ts:4:1 › 전체 음량은 설정 흐름 안에 들어가며 키보드로 조절된다 +[28/30] [mobile] › tests/browser/ui.spec.ts:52:1 › 난이도 설명은 모바일에서도 보인다 +[29/30] [mobile] › tests/browser/ui.spec.ts:68:1 › 한국어 제목은 단어 중간에서 줄바꿈하지 않는다 +[30/30] [mobile] › tests/browser/ui.spec.ts:121:1 › 시작 단계와 SNR 설정은 카드 안에 들어가고 터치 영역을 확보한다 + 30 passed (4.0m) + +Exit code: 0 +Finished UTC: 2026-10-14T09:23:37.679994+00:00 diff --git a/.agent/evidence-v0.2.3/privacy-screening/16-final-asr-vad-json.log b/.agent/evidence-v0.2.3/privacy-screening/16-final-asr-vad-json.log new file mode 100644 index 0000000..a842147 --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/16-final-asr-vad-json.log @@ -0,0 +1,14 @@ +$ /tmp/findword-asr-venv/bin/python .agent/evidence-v0.2.3/privacy-screening/screen-with-vad-json.py +Started UTC: 2026-10-14T09:20:07.751963+00:00 +{"environmentId": "street", "sha256": "a8bffa201b174618955bc51b860167169125304811aabe2086b0bb35b06c3ae1", "language": "en", "languageProbability": 0.3020564913749695, "segments": [], "text": ""} +{"environmentId": "mall", "sha256": "680a769940c08f0d12c6c954c08366598dd8b5745e276f39c82b10d1a88261a1", "language": "en", "languageProbability": 0.3020564913749695, "segments": [], "text": ""} +{"environmentId": "theater", "sha256": "2d6a444fb7874cdf6b2d8a741a69175299b112eb66834912c025437d8277d635", "language": "en", "languageProbability": 0.3020564913749695, "segments": [], "text": ""} +{"environmentId": "department", "sha256": "aa43f3d1d3e7c2b1f8ace24ecbda45d0ea3a031db941c39506dc6c1665b8efa7", "language": "en", "languageProbability": 0.3020564913749695, "segments": [], "text": ""} +{"environmentId": "market", "sha256": "7a7a980845a4aade2a7e8a108eae746220a4688e92792ee93d3deb76b2a762f6", "language": "en", "languageProbability": 0.1462402045726776, "segments": [{"id": 1, "seek": 0, "start": 0.43, "end": 2.43, "text": " I'm going to take a picture of you.", "tokens": [50364, 286, 478, 516, 281, 747, 257, 3036, 295, 291, 13, 50464], "avg_logprob": -0.7898735548998859, "compression_ratio": 2.276595744680851, "no_speech_prob": 0.4569862484931946, "words": null, "temperature": 0.2}, {"id": 2, "seek": 0, "start": 2.43, "end": 4.43, "text": " I'm going to take a picture of you.", "tokens": [50464, 286, 478, 516, 281, 747, 257, 3036, 295, 291, 13, 50564], "avg_logprob": -0.7898735548998859, "compression_ratio": 2.276595744680851, "no_speech_prob": 0.4569862484931946, "words": null, "temperature": 0.2}, {"id": 3, "seek": 0, "start": 4.43, "end": 6.43, "text": " I'm going to take a picture of you.", "tokens": [50564, 286, 478, 516, 281, 747, 257, 3036, 295, 291, 13, 50664], "avg_logprob": -0.7898735548998859, "compression_ratio": 2.276595744680851, "no_speech_prob": 0.4569862484931946, "words": null, "temperature": 0.2}], "text": " I'm going to take a picture of you. I'm going to take a picture of you. I'm going to take a picture of you."} +{"environmentId": "subway", "sha256": "9faf70b68617d267b367a0f3692ed90015458543ab4b0844f6c704e6a724728f", "language": "en", "languageProbability": 0.3020564913749695, "segments": [], "text": ""} +{"environmentId": "cafe", "sha256": "802a956e91b85a2fdd0e1f161d75bfada7a53499bcb57ba7f578411480ded216", "language": "en", "languageProbability": 0.23059327900409698, "segments": [{"id": 1, "seek": 0, "start": 3.02, "end": 4.02, "text": " Thank you.", "tokens": [50364, 1044, 291, 13, 50414], "avg_logprob": -0.8587487538655599, "compression_ratio": 0.5555555555555556, "no_speech_prob": 0.7639055252075195, "words": null, "temperature": 0.0}], "text": " Thank you."} +{"environmentId": "rain", "sha256": "f4315084e820f742b0709de5bb0d1abd3d5af1730620e08c2948b70347356dd9", "language": "en", "languageProbability": 0.3020564913749695, "segments": [], "text": ""} +Required changed excerpts produced ASR segments; screening criterion failed. + +Exit code: 1 +Finished UTC: 2026-10-14T09:20:19.115065+00:00 diff --git a/.agent/evidence-v0.2.3/privacy-screening/17-unit.log b/.agent/evidence-v0.2.3/privacy-screening/17-unit.log new file mode 100644 index 0000000..32c7e5c --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/17-unit.log @@ -0,0 +1,124 @@ +$ npm test +Started UTC: 2026-10-14T09:21:25.178903+00:00 + +> find-word@0.2.3 test +> vitest run + + + RUN v5.0.4 /home/hermes/worktrees/find-word-v0.2.3 + + ❯ tests/ambience.test.ts (5 tests | 1 failed) 1346ms + × 최종 ASR 증거는 정확한 WAV와 연결되며 청취·법적 인수로 주장하지 않는다 50ms + +⎯⎯⎯⎯⎯⎯⎯ Failed Tests 1 ⎯⎯⎯⎯⎯⎯⎯ + + FAIL tests/ambience.test.ts > 최종 ASR 증거는 정확한 WAV와 연결되며 청취·법적 인수로 주장하지 않는다 +AssertionError: expected [ { id: 1, seek: +0, …(9) }, …(2) ] to deeply equal [] + +- Expected ++ Received + +- [] ++ [ ++ { ++ "avg_logprob": -0.7898735548998859, ++ "compression_ratio": 2.276595744680851, ++ "end": 2.43, ++ "id": 1, ++ "no_speech_prob": 0.4569862484931946, ++ "seek": 0, ++ "start": 0.43, ++ "temperature": 0.2, ++ "text": " I'm going to take a picture of you.", ++ "tokens": [ ++ 50364, ++ 286, ++ 478, ++ 516, ++ 281, ++ 747, ++ 257, ++ 3036, ++ 295, ++ 291, ++ 13, ++ 50464, ++ ], ++ "words": null, ++ }, ++ { ++ "avg_logprob": -0.7898735548998859, ++ "compression_ratio": 2.276595744680851, ++ "end": 4.43, ++ "id": 2, ++ "no_speech_prob": 0.4569862484931946, ++ "seek": 0, ++ "start": 2.43, ++ "temperature": 0.2, ++ "text": " I'm going to take a picture of you.", ++ "tokens": [ ++ 50464, ++ 286, ++ 478, ++ 516, ++ 281, ++ 747, ++ 257, ++ 3036, ++ 295, ++ 291, ++ 13, ++ 50564, ++ ], ++ "words": null, ++ }, ++ { ++ "avg_logprob": -0.7898735548998859, ++ "compression_ratio": 2.276595744680851, ++ "end": 6.43, ++ "id": 3, ++ "no_speech_prob": 0.4569862484931946, ++ "seek": 0, ++ "start": 4.43, ++ "temperature": 0.2, ++ "text": " I'm going to take a picture of you.", ++ "tokens": [ ++ 50564, ++ 286, ++ 478, ++ 516, ++ 281, ++ 747, ++ 257, ++ 3036, ++ 295, ++ 291, ++ 13, ++ 50664, ++ ], ++ "words": null, ++ }, ++ ] + + ❯ tests/ambience.test.ts:224:31 + 222| expect(Array.isArray(result.segments)).toBe(true); + 223| if (["mall", "market", "cafe"].includes(entry.environmentId)) { + 224| expect(result.segments).toEqual([]); + | ^ + 225| expect(result.text).toBe(""); + 226| } + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[1/1]⎯ + + + Test Files 1 failed | 12 passed (13) + Tests 1 failed | 123 passed (124) + Start at 09:21:26 + Duration 33.46s (tests 88%, environment 8%, setup 4%) + + Isolate 13 workers spawned · ~702ms startup each (spawn + environment, per file) + at least ~2.34s faster with isolate: false — reuses workers across files instead of one per file + + +Exit code: 1 +Finished UTC: 2026-10-14T09:21:59.522503+00:00 diff --git a/.agent/evidence-v0.2.3/privacy-screening/18-final-lint.log b/.agent/evidence-v0.2.3/privacy-screening/18-final-lint.log new file mode 100644 index 0000000..f281789 --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/18-final-lint.log @@ -0,0 +1,9 @@ +$ npm run lint +Started UTC: 2026-10-14T09:25:04.023632+00:00 + +> find-word@0.2.3 lint +> eslint . && tsc --noEmit + + +Exit code: 0 +Finished UTC: 2026-10-14T09:25:10.062124+00:00 diff --git a/.agent/evidence-v0.2.3/privacy-screening/19-diff-check.log b/.agent/evidence-v0.2.3/privacy-screening/19-diff-check.log new file mode 100644 index 0000000..c149eec --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/19-diff-check.log @@ -0,0 +1,5 @@ +$ git diff --check +Started UTC: 2026-10-14T09:26:17.523277+00:00 + +Exit code: 0 +Finished UTC: 2026-10-14T09:26:17.532504+00:00 diff --git a/.agent/evidence-v0.2.3/privacy-screening/README.md b/.agent/evidence-v0.2.3/privacy-screening/README.md new file mode 100644 index 0000000..5693c4e --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/README.md @@ -0,0 +1,27 @@ +# Privacy screening evidence — current run and immutable history + +The current report is [final-asr.json](final-asr.json): mall 36–48s, market 24–36s, +cafe 0–12s. All three return zero segments with default VAD and +`requiredEmptyPassed=true`. `humanListeningAcceptance=false` and +`legalPrivacyClearance=false` remain explicit. + +Current generation, TDD RED/GREEN, verification logs, browser artifacts and preservation +checks are under [retry-market24-cafe0/](retry-market24-cafe0/). +[validation-summary.json](validation-summary.json) summarizes the latest completed checks. + +The previous attempt at mall 36s, market 60s and cafe 180s failed the release screen. +All 89 screening files from that attempt were copied byte-for-byte into +[prior-attempt-market60-cafe180/](prior-attempt-market60-cafe180/), made read-only, +and pinned in the retry baseline. Its [final-asr.json](prior-attempt-market60-cafe180/final-asr.json) +still says `requiredEmptyPassed=false` with market 3 / cafe 1 segments. +The old logs and supporting reports also remain at their original paths; except for the +current `final-asr.json` and `validation-summary.json`, existing root-level files describe +that historical attempt, not the current result. A historical `GREEN` filename is not +proof of success; its actual exit code and recorded scope determine its meaning. + +[no-vad-asr.json](no-vad-asr.json) is unchanged historical evidence from mall 36s, +market 60s and cafe 180s. It emitted text that may be hallucinated, does not screen the +replacement market/cafe WAVs, and does not override the specified VAD gate. Neither +no-VAD text nor empty VAD results proves absence of speech/music or constitutes human +listening acceptance or legal/privacy clearance. The earlier candidate and derivative +ASR files and their provenance are also unchanged. diff --git a/.agent/evidence-v0.2.3/privacy-screening/asr-serialization-failure.json b/.agent/evidence-v0.2.3/privacy-screening/asr-serialization-failure.json new file mode 100644 index 0000000..e69de29 diff --git a/.agent/evidence-v0.2.3/privacy-screening/baseline.json b/.agent/evidence-v0.2.3/privacy-screening/baseline.json new file mode 100644 index 0000000..2745041 --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/baseline.json @@ -0,0 +1,519 @@ +{ + "capturedAtUtc": "2026-10-14T09:07:00.393096+00:00", + "priorAgentFiles": { + ".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": "e4d400b32344a0a45debc807c058e4c8bfa30d3cf947e75ef81dc40beddbbc8b", + ".agent/CONTEXT.md": "712bd056cfc8d0254d6c96e7a604d364779d3734d14899111792e7f343e6819b", + ".agent/RESULT-v0.1.1.md": "d5d7077d4977d70a89086801dd8e7d5ae04e16a8e8009e41f3216008b743ac5b", + ".agent/RESULT-v0.2.3.md": "d186104a6cda2dddd13314e4225c0e4158ab36a85d4d3f16fbc0cfc593171e66", + ".agent/RESULT.md": "eef6d73a67a8a7e90cd7b4747debc5976cc51571bc268328634413f698d0e311", + ".agent/TASK-v0.1.1.md": "4e4a81c02cf16ae8a2a6b53da8501de512b6a6387d7d4eaf932833c63ada4aa7", + ".agent/TASK-v0.2.3.md": "46ae8118506c756b97e29424e580843d0557c2f663f069e9ae71c04904fafb18", + ".agent/TASK.md": "7e52739d5de3161aa60004ca8e65b5a5041d62c1b6a0e50c6c72ad8f6b183d61", + ".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", + ".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/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/browser-favicon-RED.json": "036a734efcdff9481b3d10f1b07159ef6ca056d9245cffa469c5b1c8fe87f2bb", + ".agent/evidence-v0.2.3/browser-results.json": "060d18bd74f7179884205117c6c853dc783ec7a818bdfcc8a490ef1a679c77f6", + ".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/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-\uc74c\uc131\u00b7\ud604\uc7a5\uc74c-109\uac1c-versioned-WAV\ub97c-\uc2e4\uc81c-Chrome\uc5d0\uc11c-\ud574\uc2dc\u00b7\ub514\ucf54\ub4dc-\uac80\uc99d\ud55c\ub2e4-desktop/attachments/109-versioned-WAV-integrity-7406877c173ee35afff758c9c5f1645f0dc02fa5.json": "3d6defdb7ad3b8d4d7949ffe476f4ebf685e5dcc1ad0868b98bb4e639b6dcadb", + ".agent/evidence-v0.2.3/review-fixes/browser-final/audio-\uc74c\uc131\u00b7\ud604\uc7a5\uc74c-109\uac1c-versioned-WAV\ub97c-\uc2e4\uc81c-Chrome\uc5d0\uc11c-\ud574\uc2dc\u00b7\ub514\ucf54\ub4dc-\uac80\uc99d\ud55c\ub2e4-desktop/browser-audio-integrity.json": "3d6defdb7ad3b8d4d7949ffe476f4ebf685e5dcc1ad0868b98bb4e639b6dcadb", + ".agent/evidence-v0.2.3/review-fixes/browser-final/audio-\uc74c\uc131\u00b7\ud604\uc7a5\uc74c-109\uac1c-versioned-WAV\ub97c-\uc2e4\uc81c-Chrome\uc5d0\uc11c-\ud574\uc2dc\u00b7\ub514\ucf54\ub4dc-\uac80\uc99d\ud55c\ub2e4-mobile/attachments/109-versioned-WAV-integrity-9b9f8223b6524087ac395eb7a96ac0d386fbcb95.json": "3d6defdb7ad3b8d4d7949ffe476f4ebf685e5dcc1ad0868b98bb4e639b6dcadb", + ".agent/evidence-v0.2.3/review-fixes/browser-final/audio-\uc74c\uc131\u00b7\ud604\uc7a5\uc74c-109\uac1c-versioned-WAV\ub97c-\uc2e4\uc81c-Chrome\uc5d0\uc11c-\ud574\uc2dc\u00b7\ub514\ucf54\ub4dc-\uac80\uc99d\ud55c\ub2e4-mobile/browser-audio-integrity.json": "3d6defdb7ad3b8d4d7949ffe476f4ebf685e5dcc1ad0868b98bb4e639b6dcadb", + ".agent/evidence-v0.2.3/review-fixes/browser-final/game-\uc2e4\uc81c-\uc624\ub514\uc624\ub85c-\ud63c\ud569-\ubaa8\ub4dc-\uc644\uc8fc\u00b7\ub808\uc774\uc544\uc6c3\u00b7\uc811\uadfc\uc131\u00b7\uc678\ubd80-\uc694\uccad-\uc5c6\uc74c-desktop/game.png": "17c22581f74ddcd78770ebfbb75f0041298baab336c17cd5b37ff5e29b8b6a7d", + ".agent/evidence-v0.2.3/review-fixes/browser-final/game-\uc2e4\uc81c-\uc624\ub514\uc624\ub85c-\ud63c\ud569-\ubaa8\ub4dc-\uc644\uc8fc\u00b7\ub808\uc774\uc544\uc6c3\u00b7\uc811\uadfc\uc131\u00b7\uc678\ubd80-\uc694\uccad-\uc5c6\uc74c-desktop/home.png": "911b923e3a68e8deb0063efd88ed43eb1ed6c597c14bd5b9ee71f6b5161b6d7b", + ".agent/evidence-v0.2.3/review-fixes/browser-final/game-\uc2e4\uc81c-\uc624\ub514\uc624\ub85c-\ud63c\ud569-\ubaa8\ub4dc-\uc644\uc8fc\u00b7\ub808\uc774\uc544\uc6c3\u00b7\uc811\uadfc\uc131\u00b7\uc678\ubd80-\uc694\uccad-\uc5c6\uc74c-desktop/results.png": "51d34a4717075e8b516b2f334d6a30affecea776568052cc9ccb9d7518ecbebf", + ".agent/evidence-v0.2.3/review-fixes/browser-final/game-\uc2e4\uc81c-\uc624\ub514\uc624\ub85c-\ud63c\ud569-\ubaa8\ub4dc-\uc644\uc8fc\u00b7\ub808\uc774\uc544\uc6c3\u00b7\uc811\uadfc\uc131\u00b7\uc678\ubd80-\uc694\uccad-\uc5c6\uc74c-mobile/game.png": "13291f8ba632d1962611e25c99f73fa3d7732f7b8ef3a9222a5ddd5082576353", + ".agent/evidence-v0.2.3/review-fixes/browser-final/game-\uc2e4\uc81c-\uc624\ub514\uc624\ub85c-\ud63c\ud569-\ubaa8\ub4dc-\uc644\uc8fc\u00b7\ub808\uc774\uc544\uc6c3\u00b7\uc811\uadfc\uc131\u00b7\uc678\ubd80-\uc694\uccad-\uc5c6\uc74c-mobile/home.png": "a17b7cad00be132583d28f91a938a83f69663365575e1a91d17013e6d7369002", + ".agent/evidence-v0.2.3/review-fixes/browser-final/game-\uc2e4\uc81c-\uc624\ub514\uc624\ub85c-\ud63c\ud569-\ubaa8\ub4dc-\uc644\uc8fc\u00b7\ub808\uc774\uc544\uc6c3\u00b7\uc811\uadfc\uc131\u00b7\uc678\ubd80-\uc694\uccad-\uc5c6\uc74c-mobile/results.png": "2f973a00b336f2373cac53c79ae56eb7760cf4eeaff019bde949a86b7e92665a", + ".agent/evidence-v0.2.3/review-fixes/browser-final/review-fixes-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-desktop/normal-results.png": "85e8b066ac128239de765f001c3542e6905018f5deaec7abac4a985006fb03b5", + ".agent/evidence-v0.2.3/review-fixes/browser-final/review-fixes-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-desktop/progress-1.png": "4d130e9ea43bdfcd7b35e300224d1b54f2875aa8c24d5551c6627b7abd8ce1fc", + ".agent/evidence-v0.2.3/review-fixes/browser-final/review-fixes-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-desktop/progress-2.png": "4508a9c9e5c7533e9bf8afe6653fb4e1cd111de71141f0fb5404ab4c4b168ac9", + ".agent/evidence-v0.2.3/review-fixes/browser-final/review-fixes-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-desktop/progress-3.png": "fde834aa2f803612ef9cc7a68cea0c8d5a225289a82321ba0a59063d151e66a0", + ".agent/evidence-v0.2.3/review-fixes/browser-final/review-fixes-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-mobile/normal-results.png": "2f973a00b336f2373cac53c79ae56eb7760cf4eeaff019bde949a86b7e92665a", + ".agent/evidence-v0.2.3/review-fixes/browser-final/review-fixes-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-mobile/progress-1.png": "f46672f555b73c705f838e6d1e1c3d25fe2f9ff29ad629903b85c9b129b83b3b", + ".agent/evidence-v0.2.3/review-fixes/browser-final/review-fixes-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-mobile/progress-2.png": "c39155a3c4d4ae096cb73a892e8e86b40a2d4129c670a7b44d4b24daf8030983", + ".agent/evidence-v0.2.3/review-fixes/browser-final/review-fixes-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-mobile/progress-3.png": "9d198c8b07ea84e9f3d9ebad03831ffd61b98672a9e637e7ee9e9eead959cf28", + ".agent/evidence-v0.2.3/review-fixes/browser-final/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-desktop/copy-320-home.png": "872c362713d2013c7021770e3c222458f56ba0ee2ea2d21cf28bd28df8a6d613", + ".agent/evidence-v0.2.3/review-fixes/browser-final/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-desktop/copy-320-results.png": "fdf263c2c84c64beab026e2899b4b93a7b71b4fcf28b796e5782bb5bc17c2c78", + ".agent/evidence-v0.2.3/review-fixes/browser-final/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-desktop/copy-360-home.png": "a17b7cad00be132583d28f91a938a83f69663365575e1a91d17013e6d7369002", + ".agent/evidence-v0.2.3/review-fixes/browser-final/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-desktop/copy-360-results.png": "b838f6bbb4392ef8aa941c66dec5bef6bb27f06acada06b67272be926db9d576", + ".agent/evidence-v0.2.3/review-fixes/browser-final/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-mobile/copy-320-home.png": "872c362713d2013c7021770e3c222458f56ba0ee2ea2d21cf28bd28df8a6d613", + ".agent/evidence-v0.2.3/review-fixes/browser-final/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-mobile/copy-320-results.png": "fdf263c2c84c64beab026e2899b4b93a7b71b4fcf28b796e5782bb5bc17c2c78", + ".agent/evidence-v0.2.3/review-fixes/browser-final/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-mobile/copy-360-home.png": "a17b7cad00be132583d28f91a938a83f69663365575e1a91d17013e6d7369002", + ".agent/evidence-v0.2.3/review-fixes/browser-final/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-mobile/copy-360-results.png": "b838f6bbb4392ef8aa941c66dec5bef6bb27f06acada06b67272be926db9d576", + ".agent/evidence-v0.2.3/review-fixes/browser-final/rounds-\uc2dc\uc791-\ub2e8\uacc4\u00b7SNR\u00b73\ubb38\ud56d-\uc644\ub8cc\u2192\ub2e4\uc74c-\ub2e8\uacc4\u00b7\uc7ac\uc0dd-\uc911-\uc885\ub8cc\u00b7\uc751\ub2f5-\ud6c4-\uc885\ub8cc\u00b7\ud648-\ucd08\uae30\ud654-desktop/early-exit.png": "47cf4429695d65ddad8d353aaa14dd5edcea3ef4c09c16b537d6a72c3e256533", + ".agent/evidence-v0.2.3/review-fixes/browser-final/rounds-\uc2dc\uc791-\ub2e8\uacc4\u00b7SNR\u00b73\ubb38\ud56d-\uc644\ub8cc\u2192\ub2e4\uc74c-\ub2e8\uacc4\u00b7\uc7ac\uc0dd-\uc911-\uc885\ub8cc\u00b7\uc751\ub2f5-\ud6c4-\uc885\ub8cc\u00b7\ud648-\ucd08\uae30\ud654-mobile/early-exit.png": "b838f6bbb4392ef8aa941c66dec5bef6bb27f06acada06b67272be926db9d576", + ".agent/evidence-v0.2.3/review-fixes/browser-final/ui-\ud55c\uad6d\uc5b4-\uc81c\ubaa9\uc740-\ub2e8\uc5b4-\uc911\uac04\uc5d0\uc11c-\uc904\ubc14\uafc8\ud558\uc9c0-\uc54a\ub294\ub2e4-desktop/heading.png": "56fa16aa968018bcc3252168a0c9e7fd3b30d352cb831b29caed75329c96dac7", + ".agent/evidence-v0.2.3/review-fixes/browser-final/ui-\ud55c\uad6d\uc5b4-\uc81c\ubaa9\uc740-\ub2e8\uc5b4-\uc911\uac04\uc5d0\uc11c-\uc904\ubc14\uafc8\ud558\uc9c0-\uc54a\ub294\ub2e4-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-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-desktop/normal-results.png": "85e8b066ac128239de765f001c3542e6905018f5deaec7abac4a985006fb03b5", + ".agent/evidence-v0.2.3/review-fixes/browser-green/review-fixes-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-desktop/progress-1.png": "4d130e9ea43bdfcd7b35e300224d1b54f2875aa8c24d5551c6627b7abd8ce1fc", + ".agent/evidence-v0.2.3/review-fixes/browser-green/review-fixes-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-desktop/progress-2.png": "4508a9c9e5c7533e9bf8afe6653fb4e1cd111de71141f0fb5404ab4c4b168ac9", + ".agent/evidence-v0.2.3/review-fixes/browser-green/review-fixes-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-desktop/progress-3.png": "fde834aa2f803612ef9cc7a68cea0c8d5a225289a82321ba0a59063d151e66a0", + ".agent/evidence-v0.2.3/review-fixes/browser-green/review-fixes-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-mobile/normal-results.png": "2f973a00b336f2373cac53c79ae56eb7760cf4eeaff019bde949a86b7e92665a", + ".agent/evidence-v0.2.3/review-fixes/browser-green/review-fixes-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-mobile/progress-1.png": "f46672f555b73c705f838e6d1e1c3d25fe2f9ff29ad629903b85c9b129b83b3b", + ".agent/evidence-v0.2.3/review-fixes/browser-green/review-fixes-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-mobile/progress-2.png": "c39155a3c4d4ae096cb73a892e8e86b40a2d4129c670a7b44d4b24daf8030983", + ".agent/evidence-v0.2.3/review-fixes/browser-green/review-fixes-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-mobile/progress-3.png": "9d198c8b07ea84e9f3d9ebad03831ffd61b98672a9e637e7ee9e9eead959cf28", + ".agent/evidence-v0.2.3/review-fixes/browser-green/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-desktop/copy-320-home.png": "872c362713d2013c7021770e3c222458f56ba0ee2ea2d21cf28bd28df8a6d613", + ".agent/evidence-v0.2.3/review-fixes/browser-green/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-desktop/copy-320-results.png": "fdf263c2c84c64beab026e2899b4b93a7b71b4fcf28b796e5782bb5bc17c2c78", + ".agent/evidence-v0.2.3/review-fixes/browser-green/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-desktop/copy-360-home.png": "a17b7cad00be132583d28f91a938a83f69663365575e1a91d17013e6d7369002", + ".agent/evidence-v0.2.3/review-fixes/browser-green/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-desktop/copy-360-results.png": "b838f6bbb4392ef8aa941c66dec5bef6bb27f06acada06b67272be926db9d576", + ".agent/evidence-v0.2.3/review-fixes/browser-green/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-mobile/copy-320-home.png": "872c362713d2013c7021770e3c222458f56ba0ee2ea2d21cf28bd28df8a6d613", + ".agent/evidence-v0.2.3/review-fixes/browser-green/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-mobile/copy-320-results.png": "fdf263c2c84c64beab026e2899b4b93a7b71b4fcf28b796e5782bb5bc17c2c78", + ".agent/evidence-v0.2.3/review-fixes/browser-green/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-mobile/copy-360-home.png": "a17b7cad00be132583d28f91a938a83f69663365575e1a91d17013e6d7369002", + ".agent/evidence-v0.2.3/review-fixes/browser-green/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-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-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-desktop/error-context.md": "fa4b05c6fb8ec98c57ff96e2f0d568aeb7ed027d8763712e767e50e13b25b31c", + ".agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-desktop/normal-results.png": "d3caf1e2d8625d6020e1e9061143b38843fa5698e7316b65a73569cce6026b73", + ".agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-desktop/progress-1.png": "e4f413e3dd1379a913a1d94ec5f084f607a80fe375382eb74cee2ac515aa8590", + ".agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-desktop/progress-2.png": "4d130e9ea43bdfcd7b35e300224d1b54f2875aa8c24d5551c6627b7abd8ce1fc", + ".agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-desktop/progress-3.png": "4508a9c9e5c7533e9bf8afe6653fb4e1cd111de71141f0fb5404ab4c4b168ac9", + ".agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-desktop/trace.zip": "f415eaae383b21d1fd059b3f99b2a1ec962a34facd2959406985e08710bf7a54", + ".agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-mobile/error-context.md": "1a289b42d134b84701446f0bfe2f1e462121412930595617023c1cf93e2e0c40", + ".agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-mobile/normal-results.png": "5eccd53853c27a7c1385f1219b0a9bb7af60070fbdd1469ef3265e40377f3eaa", + ".agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-mobile/progress-1.png": "3597007bfc13a2a9dcb9477ce836b68cccb78f55957f1f460431b67fe90e0f13", + ".agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-mobile/progress-2.png": "f46672f555b73c705f838e6d1e1c3d25fe2f9ff29ad629903b85c9b129b83b3b", + ".agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-mobile/progress-3.png": "c39155a3c4d4ae096cb73a892e8e86b40a2d4129c670a7b44d4b24daf8030983", + ".agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-mobile/trace.zip": "022a0078453d25254bb6bb4af59fbd3696abd5acaaee750343adea3cd9b8aa0d", + ".agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-desktop/copy-320-home.png": "872c362713d2013c7021770e3c222458f56ba0ee2ea2d21cf28bd28df8a6d613", + ".agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-desktop/copy-320-results.png": "b1dae69c908b9911d536d3e41553447bc71908a035f28bbc1f885d1def337b92", + ".agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-desktop/copy-360-home.png": "c04abd43e93e46fde7e1591bde24a3073d584226e93ba5661bac1b5cd78a4695", + ".agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-desktop/copy-360-results.png": "5e2ef07c6c3b7672e0aa82f248a5a245d60a10f86633fab2b2dd45ecff81d7fa", + ".agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-desktop/error-context.md": "d186519b7904a6ef3096e49c18e5e410528df127a7de409e237e7571d8a89f1b", + ".agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-desktop/trace.zip": "6d2abede66a4b0784accca9a0fea36ea71cabb138855e84343a2cb7f64cdab71", + ".agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-mobile/copy-320-home.png": "872c362713d2013c7021770e3c222458f56ba0ee2ea2d21cf28bd28df8a6d613", + ".agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-mobile/copy-320-results.png": "b1dae69c908b9911d536d3e41553447bc71908a035f28bbc1f885d1def337b92", + ".agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-mobile/copy-360-home.png": "c04abd43e93e46fde7e1591bde24a3073d584226e93ba5661bac1b5cd78a4695", + ".agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-mobile/copy-360-results.png": "5e2ef07c6c3b7672e0aa82f248a5a245d60a10f86633fab2b2dd45ecff81d7fa", + ".agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-mobile/error-context.md": "d186519b7904a6ef3096e49c18e5e410528df127a7de409e237e7571d8a89f1b", + ".agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-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" + }, + "wavSha256": { + "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", + "public/ambience/cafe.wav": "8db06f3f09bbd8409573ba4874c7ccdd1e7e825c8a61989a4efe66206a66c2d2", + "public/ambience/department.wav": "aa43f3d1d3e7c2b1f8ace24ecbda45d0ea3a031db941c39506dc6c1665b8efa7", + "public/ambience/mall.wav": "6e9171f549cacadfaeedd57a41c8e2a76b0e789f5c9a97af029a8d3558c9f145", + "public/ambience/market.wav": "4287e971a12767f70da714e0c1aff30125268f9c3faf07ebfbcc0d2904f4a312", + "public/ambience/rain.wav": "f4315084e820f742b0709de5bb0d1abd3d5af1730620e08c2948b70347356dd9", + "public/ambience/street.wav": "a8bffa201b174618955bc51b860167169125304811aabe2086b0bb35b06c3ae1", + "public/ambience/subway.wav": "9faf70b68617d267b367a0f3692ed90015458543ab4b0844f6c704e6a724728f", + "public/ambience/theater.wav": "2d6a444fb7874cdf6b2d8a741a69175299b112eb66834912c025437d8277d635" + }, + "mutableAgentFiles": [ + ".agent/AMBIENCE-SOURCES-v0.2.3.json", + ".agent/RESULT-v0.2.3.md" + ] +} diff --git a/.agent/evidence-v0.2.3/privacy-screening/before-manifest.json b/.agent/evidence-v0.2.3/privacy-screening/before-manifest.json new file mode 100644 index 0000000..97b8dc9 --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/before-manifest.json @@ -0,0 +1,340 @@ +{ + "version": "0.2.3", + "generatedAtUtc": "2026-10-14T08:08:06.083521+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.", + "file": "street.wav", + "sourceSha256": "0ddb0be7eb3427f781c8268bcbc74b8ad7e1fbf75b9f6966e65274dbe85f3d9d", + "sourceBytes": 3414104, + "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, + "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" + }, + "expectedSourceSha256": "0ddb0be7eb3427f781c8268bcbc74b8ad7e1fbf75b9f6966e65274dbe85f3d9d", + "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" + } + }, + { + "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.", + "file": "mall.wav", + "sourceSha256": "bb066e130e5d665db57cb5f88e820d053c724d8f777b275213998d2074c6529a", + "sourceBytes": 1666896, + "outputLicense": "Public domain (PD-author)", + "verificationDateUtc": "2026-10-14", + "sha256": "6e9171f549cacadfaeedd57a41c8e2a76b0e789f5c9a97af029a8d3558c9f145", + "bytes": 576044, + "duration": 12.0, + "rms": 0.07999756961051585, + "peak": 0.5546875, + "conversion": { + "startSeconds": 20, + "durationSeconds": 12, + "fadeSeconds": 0.05, + "sampleRate": 24000, + "channels": 1, + "encoding": "PCM16 little-endian", + "linearGain": 0.9603596731816801, + "targetRms": 0.08, + "peakLimit": 0.85, + "maxGain": 4, + "operations": "excerpt, downmix, resample, linear end fades, bounded linear normalization, WAV encoding" + }, + "expectedSourceSha256": "bb066e130e5d665db57cb5f88e820d053c724d8f777b275213998d2074c6529a", + "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" + } + }, + { + "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.", + "file": "theater.wav", + "sourceSha256": "05c3ece7c088f34700b7610f791c0ad848a24c77be2c32fd1503a78356739a43", + "sourceBytes": 1485015, + "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, + "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" + }, + "expectedSourceSha256": "05c3ece7c088f34700b7610f791c0ad848a24c77be2c32fd1503a78356739a43", + "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" + } + }, + { + "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.", + "file": "department.wav", + "sourceSha256": "261fda28722fba623483a90b32e7a2ec388c59887f56a5247156b53f1ffb6ccd", + "sourceBytes": 2445024, + "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, + "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" + }, + "expectedSourceSha256": "261fda28722fba623483a90b32e7a2ec388c59887f56a5247156b53f1ffb6ccd", + "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" + } + }, + { + "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.", + "file": "market.wav", + "sourceSha256": "fc0075dce8ad05b56460c9f18754c27b2021f21f1c780a595ccda648d33c941d", + "sourceBytes": 622200, + "outputLicense": "CC BY-SA 4.0", + "verificationDateUtc": "2026-10-14", + "sha256": "4287e971a12767f70da714e0c1aff30125268f9c3faf07ebfbcc0d2904f4a312", + "bytes": 576044, + "duration": 12.0, + "rms": 0.04922207776603238, + "peak": 0.8499755859375, + "conversion": { + "startSeconds": 30, + "durationSeconds": 12, + "fadeSeconds": 0.05, + "sampleRate": 24000, + "channels": 1, + "encoding": "PCM16 little-endian", + "linearGain": 0.9408509216036823, + "targetRms": 0.08, + "peakLimit": 0.85, + "maxGain": 4, + "operations": "excerpt, downmix, resample, linear end fades, bounded linear normalization, WAV encoding" + }, + "expectedSourceSha256": "fc0075dce8ad05b56460c9f18754c27b2021f21f1c780a595ccda648d33c941d", + "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" + } + }, + { + "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.", + "file": "subway.wav", + "sourceSha256": "41fcf064cde53cef1528fe98721347851e60c070d8ff9f213f354025cf272d4c", + "sourceBytes": 3343901, + "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, + "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" + }, + "expectedSourceSha256": "41fcf064cde53cef1528fe98721347851e60c070d8ff9f213f354025cf272d4c", + "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" + } + }, + { + "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.", + "file": "cafe.wav", + "sourceSha256": "6360791fdcee1f64638f0fc9abd6d2c7a1aa75fd3d2b80033170a02d025099dc", + "sourceBytes": 19947952, + "outputLicense": "CC0 1.0 Universal", + "verificationDateUtc": "2026-10-14", + "sha256": "8db06f3f09bbd8409573ba4874c7ccdd1e7e825c8a61989a4efe66206a66c2d2", + "bytes": 576044, + "duration": 12.0, + "rms": 0.07999759158182362, + "peak": 0.3970947265625, + "conversion": { + "startSeconds": 120, + "durationSeconds": 12, + "fadeSeconds": 0.05, + "sampleRate": 24000, + "channels": 1, + "encoding": "PCM16 little-endian", + "linearGain": 0.6543423611954429, + "targetRms": 0.08, + "peakLimit": 0.85, + "maxGain": 4, + "operations": "excerpt, downmix, resample, linear end fades, bounded linear normalization, WAV encoding" + }, + "expectedSourceSha256": "6360791fdcee1f64638f0fc9abd6d2c7a1aa75fd3d2b80033170a02d025099dc", + "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" + } + }, + { + "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.", + "file": "rain.wav", + "sourceSha256": "ef0511593b1bb0ba47d5c5dafd83eb07ba854b5a65fd5d41b8c76a1b3ff2c22a", + "sourceBytes": 91187572, + "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, + "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" + }, + "expectedSourceSha256": "ef0511593b1bb0ba47d5c5dafd83eb07ba854b5a65fd5d41b8c76a1b3ff2c22a", + "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" + } + } + ] +} diff --git a/.agent/evidence-v0.2.3/privacy-screening/before-notices.md b/.agent/evidence-v0.2.3/privacy-screening/before-notices.md new file mode 100644 index 0000000..8bb73f8 --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/before-notices.md @@ -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 20–32. + +## 극장 — 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 30–42. + +## 지하철 — 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 120–132. + +## 비 오는 거리 — 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. diff --git a/.agent/evidence-v0.2.3/privacy-screening/before-result.md b/.agent/evidence-v0.2.3/privacy-screening/before-result.md new file mode 100644 index 0000000..60392e8 --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/before-result.md @@ -0,0 +1,275 @@ +# Find-Word v0.2.3 구현·검증 결과 + +작성일: 2026-10-14 UTC. worktree `/home/hermes/worktrees/find-word-v0.2.3`, branch `feat/v0.2.3`. +기준 HEAD `c92660b514f7af8eb556d3fa5c0fc80e4bdd4cf5`. 지정된 TASK/ACCEPTANCE/AMBIENCE-SOURCES를 먼저 읽고 기존 코드·테스트·문서를 확인했다. + +**Git commit/push/merge/tag, 외부 배포, secrets 사용은 하지 않았다.** 로컬 production preview만 사용했다. +정확한 credit **Designed by OZ at Heat-T Medical Inc.**와 private/UNLICENSED 프로젝트 권리를 보존했다. +제3자 현장음은 각각의 라이선스를 유지한다. + +**현재 최종 상태:** 독립 리뷰 수정 완료. lint/build PASS, 단위 118개·Python 32개·sandboxed Chrome 30개 PASS, npm audit 0건. +새 근거와 상세 변경은 문서 하단의 **독립 리뷰 수정**에 있으며 아래 최초 구현 기록과 구분한다. + +## 최초 구현 내용 (아래 리뷰 수정 내역으로 보완) + +- 정확히 세 개의 서로 다른 문제/단어를 한 단계에서 출제한다. 시작 단계 1~5 선택, mixed 선택/입력/선택, + 진행률/안내/분모 3문항, 정상 완료→다음 단계의 새 3문항, 5단계 재도전과 홈 복귀를 구현했다. +- SNR을 −12~+12 dB, 1 dB 눈금으로 직접 설정한다. 범위 밖 값은 clamp, NaN/Infinity는 단계 기본값으로 복구한다. + 변경은 현재 재청취·미응답 문항·이후 라운드에 적용한다. 재생 중 gain을 바꾸지 않는다. + 다음 단계도 수동 값은 유지하고 홈 복귀 시 수동 override를 지운다. 시작 단계/모드/환경/전체 음량은 홈 설정으로 유지한다. +- ready/loading/playing/answer/feedback에서 `문제 풀이 종료`가 가능하다. token 무효화→엔진 정지→결과 전환으로 + 지연 콜백을 차단한다. 응답 수·정답 수·실제 응답 분모를 표시하고 무응답을 오답으로 세지 않는다. +- 여덟 고유 실제 현장 녹음을 fetch/decode/loop한다. 절차적 잡음 합성 코드는 제거했다. + 101개 음성 및 여덟 배경은 모두 same-origin `?v=0.2.3` 정적 요청이다. 런타임 외부 API/TTS/추적은 없다. +- 음성과 배경을 각각 RMS .03으로 정규화하고 상대 gain `10^(dB/20)`을 적용한다. + 안내/목표/배경의 피크 합에 공통 gain을 적용해 최악 합계 peak ≤ .8을 유지한다. + master 음량은 그 뒤 공통 적용되므로 SNR을 보존한다. 배경은 목표 ended에서 함께 정리한다. +- HTTP/decode/준비 15초 timeout/재생 길이+5초 timeout/abort 후 한국어 안내와 재시도를 유지한다. +- CHANGELOG 생성, package/lock/HTML/UI/자산 버전/README/설계/배포/오디오/단어/권리 문서를 0.2.3에 맞췄다. + 상세 한국어 설계 주석을 수정 코드의 모듈·함수·클래스·상태/매개변수·경합/수치 계산에 추가했다. + +## RED → GREEN 원문 + +각 동작/회귀는 테스트를 먼저 작성·실행한 뒤 구현했다. 아래 RED의 종료 코드는 1, GREEN은 0이다. +`-t`로 좁힌 실행의 skipped는 필터 제외이며 최종 전체 실행은 skip 0이다. 실패 원문을 성공 로그로 대체하지 않았다. + +| 계약/회귀 | RED → GREEN | 원문 | +| --- | --- | --- | +| 세 문항/같은 시작 단계/혼합/점수 | 기존 10문항·자동 단계에서 3 실패 → 9 통과 | [01 RED](evidence-v0.2.3/01-round-RED.log), [01 GREEN](evidence-v0.2.3/01-round-GREEN.log) | +| SNR 정규화/미응답 전파/전 단계 종료/지연 이벤트 | 누락 reducer action 등 7 실패 → 15 통과 | [02 RED](evidence-v0.2.3/02-snr-exit-RED.log), [02 GREEN](evidence-v0.2.3/02-snr-exit-GREEN.log) | +| 시작 단계/수동 SNR/다음 라운드/5단계 경계/중도 결과/UI 초기화 | 10 실패 → 18 통과 | [03 RED](evidence-v0.2.3/03-screen-RED.log), [03 GREEN](evidence-v0.2.3/03-screen-GREEN.log) | +| 고유 녹음 URL/절차적 매개변수 제거/peak/SNR 수학 | 2 실패 → 콘텐츠 포함 19 통과 | [04 RED](evidence-v0.2.3/04-recorded-mix-RED.log), [04 GREEN](evidence-v0.2.3/04-recorded-mix-GREEN.log) | +| 실제 배경 fetch/decode/loop/abort/timeout/재시도 | 전환 중 남은 합성 호출 및 누락 녹음 경로로 9 실패 → 11 통과 | [05 RED](evidence-v0.2.3/05-playback-RED.log), [05 GREEN](evidence-v0.2.3/05-playback-GREEN.log) | +| Node 직접 import 회귀 | ERR_MODULE_NOT_FOUND → 101문장 import 통과 | [06 RED](evidence-v0.2.3/06-node-import-RED.log), [06 GREEN](evidence-v0.2.3/06-node-import-GREEN.log) | +| 8개 배포 PCM/해시/출처/고지/루프 경계 | manifest ENOENT → 전수 통과 | [07 RED](evidence-v0.2.3/07-assets-RED.log), [07 GREEN](evidence-v0.2.3/07-assets-GREEN.log) | +| 실제 FFmpeg 변환/재현/무음 거부/길이 제한 | 변환 모듈 없음 → Python 2 통과 | [변환 RED](evidence-v0.2.3/07-converter-RED.log), [변환 GREEN](evidence-v0.2.3/07-converter-GREEN.log) | +| 재생 중 SNR 변경의 실제 청취 이력 | −10을 들었다고 잘못 기록 → 34 통과 | [08 RED](evidence-v0.2.3/08-heard-snr-RED.log), [08 GREEN](evidence-v0.2.3/08-heard-snr-GREEN.log) | +| 버전/문서/변경 이력/기존 voice metadata | 이전 버전·누락 CHANGELOG → 50 통과 | [09 RED](evidence-v0.2.3/09-version-docs-RED.log), [09 GREEN](evidence-v0.2.3/09-version-docs-GREEN.log) | +| 3문항의 환경 순환 회귀 | 3개 환경만 도달 → 8개 도달, 35 통과 | [10 RED](evidence-v0.2.3/10-environment-rotation-RED.log), [10 GREEN](evidence-v0.2.3/10-environment-rotation-GREEN.log) | +| dist 현장음/manifest/notice 변조·누락·원본 혼입/고지 링크 | 5 실패 → 26 통과 | [11 RED](evidence-v0.2.3/11-bundle-notice-RED.log), [11 GREEN](evidence-v0.2.3/11-bundle-notice-GREEN.log) | +| 누락 WAV의 SPA fallback | desktop/mobile 200 HTML → 양쪽 404, 4 통과 | [13 RED](evidence-v0.2.3/13-static-404-RED.log), [13 GREEN](evidence-v0.2.3/13-static-404-GREEN.log) | +| 결과 화면의 잘못된 도움말 anchor | 없는 #howto 링크 노출 → 제거 | [15 RED](evidence-v0.2.3/15-results-anchor-RED.log), [15 GREEN](evidence-v0.2.3/15-results-anchor-GREEN.log) | +| 새 설정의 터치 크기/카드 경계 | 양쪽 23px 높이 → 44px 이상, 2 통과 | [16 RED](evidence-v0.2.3/16-controls-layout-RED.log), [16 GREEN](evidence-v0.2.3/16-controls-layout-GREEN.log) | +| 3문항의 보너스 안내 | 당시 40점 → 20점 안내; 리뷰에서 문항별 20점/합계 30점으로 재정정 | [17 RED](evidence-v0.2.3/17-bonus-copy-RED.log), [17 GREEN](evidence-v0.2.3/17-bonus-copy-GREEN.log) | +| 모바일 select 선택값 잘림 | 360px에서 글자 폭 초과 → 중복 SNR을 아래 제어에 모음 | [21 RED](evidence-v0.2.3/21-select-label-RED.log), [21 GREEN](evidence-v0.2.3/21-select-label-GREEN.log) | +| Chrome favicon 기본 404 | 내장 icon 없음/실제 콘솔 오류 → 내장 SVG | [19 RED](evidence-v0.2.3/19-favicon-RED.log), [19 GREEN](evidence-v0.2.3/19-favicon-GREEN.log) | + +추가 진단 기록도 보존했다. `01-round-sampling-regression.log`의 96/100은 세 문항으로 줄인 뒤 +기존 200 seed 표본이 작아진 테스트 회귀여서 1000 seed로 전체 100조합 도달성을 검사했다. +`03-screen-duplicate-description-RED.log`는 같은 SNR 설명을 중복 배치한 회귀를 잡았다. +`05-playback-fixture-regression.log` 뒤 mock AudioBuffer의 copyToChannel을 실제 복사처럼 보완했고 +부동소수점 0.12000000000000001 비교를 근사 비교로 바꿨다. 실제 재생은 별도의 Chrome으로 검증한다. +`12-lint-initial.log`의 축소된 union 비교/fixture 타입 오류도 수정했다. + +## 현장음 원본과 변환 + +지정된 원본 8개를 모두 사용했다. **대체 원본은 0개**다. 여섯 기존 원본을 재사용했고 café는 +HTTP 429의 **Retry-After 600초** backoff 뒤 지정 직접 URL로 다운로드했다. rain도 지정 URL에서 받았다. +[다운로드 기록](evidence-v0.2.3/source-downloads.log), [rain 기록](evidence-v0.2.3/rain-download.log). + +[원본 전수 검사](evidence-v0.2.3/source-integrity.json)는 전체 원본 SHA-256/bytes/ffprobe 정보와 +FFmpeg **전체 디코드 8/8 성공, stderr 0**을 기록한다. café 19,947,952 bytes, rain 91,187,572 bytes는 +Commons primary 메타데이터의 크기와 일치한다. [Commons API 근거](evidence-v0.2.3/commons-license-audit.json), +[primary 페이지/권리 재확인](evidence-v0.2.3/primary-page-verification.json). + +`python3 scripts/ambience_audio.py`로 원본의 명시적 중간 구간을 선택해 전부 **12초 / 24,000Hz / mono / PCM16**으로 만들었다. +양끝 **50ms 선형 fade**, RMS 목표 **.08**, 최대 증폭 **4배**, peak ceiling **.85** 중 안전한 선형 gain을 적용했다. +저레벨 rain과 순간 peak가 큰 market은 제한 때문에 RMS 목표보다 낮다. 엔진은 재생 시 각각 다시 RMS 정규화한다. +양끝 PCM은 0, non-silent 8/8, 고유 출력 해시 8/8, 각 576,044 bytes, 합계 **4,608,352 bytes**다. +대형 OGG/MP3/FLAC 원본은 `/tmp/findword-ambience-sources`에만 있으며 Git/public/dist에 번들하지 않았다. + +| 배포 자산 (`public/ambience/`) | 원본 구간 | RMS | peak | 출력 SHA-256 | +| --- | --- | --- | --- | --- | +| street.wav | 35–47s | 0.07999756 | 0.39675903 | `a8bffa201b174618955bc51b860167169125304811aabe2086b0bb35b06c3ae1` | +| mall.wav | 20–32s | 0.07999757 | 0.55468750 | `6e9171f549cacadfaeedd57a41c8e2a76b0e789f5c9a97af029a8d3558c9f145` | +| theater.wav | 45–57s | 0.07999757 | 0.49508667 | `2d6a444fb7874cdf6b2d8a741a69175299b112eb66834912c025437d8277d635` | +| department.wav | 90–102s | 0.07999758 | 0.47497559 | `aa43f3d1d3e7c2b1f8ace24ecbda45d0ea3a031db941c39506dc6c1665b8efa7` | +| market.wav | 30–42s | 0.04922208 | 0.84997559 | `4287e971a12767f70da714e0c1aff30125268f9c3faf07ebfbcc0d2904f4a312` | +| subway.wav | 65–77s | 0.07999755 | 0.42529297 | `9faf70b68617d267b367a0f3692ed90015458543ab4b0844f6c704e6a724728f` | +| cafe.wav | 120–132s | 0.07999759 | 0.39709473 | `8db06f3f09bbd8409573ba4874c7ccdd1e7e825c8a61989a4efe66206a66c2d2` | +| rain.wav | 180–192s | 0.01138463 | 0.10241699 | `f4315084e820f742b0709de5bb0d1abd3d5af1730620e08c2948b70347356dd9` | + +[배포 manifest](../public/ambience/manifest.json)에 environment id/표시 이름, source page/direct URL, creator, +license/license URL, attribution, 원본/출력 SHA-256, bytes/duration/RMS/peak, 실제 FFmpeg 버전과 변환 설정을 기록했다. +[AMBIENCE_NOTICES](../public/ambience/AMBIENCE_NOTICES.md)를 dist에 포함하고 UI에서 접근할 수 있다. +시장 파생 WAV는 **CC BY-SA 4.0**, 지하철은 **CC BY 4.0**, 나머지는 CC0/PD이며 출처·변경 고지를 보존했다. +프로젝트의 UNLICENSED를 이 녹음에 적용하지 않는다. 런타임 React/ReactDOM/scheduler의 기존 MIT 전문도 그대로 배포한다. + +## 보존과 구체적 회귀 수정 + +- **101개 neural WAV 바이트/원문/해시 변경 0**. voice manifest는 배포 version만 0.2.3으로 올리고 + `generatedForVersion: 0.1.1`을 추가했으며 생성 시각·provider·voice·prosody·도구/실측값은 보존했다. +- 기존 10 mechanic/100문장, 정답·오답 규칙·점수 공식·재청취·객관식/주관식/mixed·IME 보호를 유지했다. +- **과거 .agent 추적 파일 180개 모두 Git blob hash 동일**. v0.1/v0.1.1 RESULT와 evidence 수정 0. + [보존 검사](evidence-v0.2.3/preservation.json). +- 짧아진 라운드 때문에 순환 환경이 street/mall/theater에만 갇히는 회귀를 seed 기반 환경 셔플로 수정했다. +- 환경 URL 모듈 추가로 Python 생성기의 Node 직접 import가 깨지는 회귀를 명시적 `.ts` 경로로 수정했다. +- `heardDb`를 PLAY 시점에 기록해 재생 중 조절값이 과거 청취 이력/결과를 덮어쓰지 않게 했다. +- 중복 SNR 설명, 결과 화면의 없는 도움말 anchor, 실제 라운드 보너스 상한 안내를 바로잡았다. +- Vite dev/preview의 누락 WAV HTML fallback을 차단하고 Nginx 인계에도 `/ambience/` 404 규칙을 추가했다. +- 모바일 최종 이미지에서 시작 단계 select의 긴 선택값 잘림을 찾아 글자 폭 검사로 재현하고, 중복 SNR 표기를 전용 제어로 모았다. +- 실제 Chrome의 기본 `/favicon.ico` 404 콘솔 오류를 내장 SVG로 제거했다. + +## 리뷰 전 검증 기록 (리뷰 수정 후 결과는 문서 하단) + +환경: Node **26.7.0**, npm **11.19.0**, Python **3.11.16**, FFmpeg **6.1.1-3ubuntu5**, system Chrome **146.0.7680.80**. +[환경](evidence-v0.2.3/environment.json). Chrome sandbox 활성화, `--no-sandbox` 0개를 실행 중 process argv로 확인했다. +[실행 sandbox 기록](evidence-v0.2.3/chrome-sandbox.json); 설정 계약 테스트도 통과했다. + +| 검증 | 결과 | 원문 | +| --- | --- | --- | +| `npm run lint` | PASS, ESLint + TypeScript strict, exit 0 | [22-lint](evidence-v0.2.3/22-lint.log) | +| `npm test` | **13 files / 94 passed**, skip 0, exit 0; Python runner 포함 | [22-full-test](evidence-v0.2.3/22-full-test.log) | +| `python3 -m unittest discover -s tests/python -v` | **20 passed**, exit 0 (기존 neural 18 + 새 변환 2) | [18-python](evidence-v0.2.3/18-python.log) | +| `npm run build` | PASS, 101 voice + 8 ambience + 두 notice 검증, exit 0 | [22-build](evidence-v0.2.3/22-build.log) | +| `npm audit --json` | **취약점 0** (info/low/moderate/high/critical 모두 0), exit 0 | [audit JSON](evidence-v0.2.3/14-npm-audit.json) | +| 최종 sandboxed system Chrome desktop/mobile | **26 passed / 0 failed / 0 skipped**, exit 0; 실제 재생·접근성·무외부 요청 검증 | [22-browser](evidence-v0.2.3/22-browser.log), [machine-readable 결과](evidence-v0.2.3/browser-results.json) | +| 원본/배포 녹음 및 101개 voice 보존 | PASS | [원본](evidence-v0.2.3/source-integrity.json), [보존](evidence-v0.2.3/preservation.json) | +| 비밀정보 형식 검사 | **0 findings**, 값 노출 없이 경로/개수만 기록 | [scan](evidence-v0.2.3/secret-scan.json) | +| `git diff --check` | PASS | [최종 worktree 점검](evidence-v0.2.3/final-review.log) | + +브라우저는 1280×1000 desktop / 360×800 mobile에서 같은 production build를 사용한다. +실제 디코드한 109 WAV의 response hash/bytes/24kHz/mono/duration/RMS/peak를 전수 대조하고, +앱에서 여덟 환경을 실제 loop로 재생 후 정지했다. 혼합 모드 세 문항 완주/재청취/키보드, +4단계 시작→5단계 새 라운드, 수동 SNR 유지/재청취/홈 초기화, 재생 중 종료/응답 뒤 종료, +intro/target/ambience 404 재시도, 누락 WAV의 HTML Accept 404, notice 원문 제공을 검사한다. +정상 흐름의 console/page errors·failed requests·외부 요청·axe violations가 모두 0이어야 통과한다. +브라우저 native audio 메서드를 관찰할 때 원래 메서드를 실행하며 가짜 decode/ended를 주입하지 않는다. + +최종 캡처 8개와 실제 검사 JSON을 새 evidence에 보존했다. 모바일 게임/시작과 desktop 시작/결과의 +레이아웃을 이미지로 확인했고, 결과 분모/현재 SNR/종료 버튼/고지 링크가 잘리지 않는다. + +| 화면 | Desktop | Mobile | +| --- | --- | --- | +| 시작 | [PNG](evidence-v0.2.3/browser/desktop-start.png) | [PNG](evidence-v0.2.3/browser/mobile-start.png) | +| 게임 | [PNG](evidence-v0.2.3/browser/desktop-game.png) | [PNG](evidence-v0.2.3/browser/mobile-game.png) | +| 정상 결과 | [PNG](evidence-v0.2.3/browser/desktop-normal-results.png) | [PNG](evidence-v0.2.3/browser/mobile-normal-results.png) | +| 중도 종료 | [PNG](evidence-v0.2.3/browser/desktop-early-exit.png) | [PNG](evidence-v0.2.3/browser/mobile-early-exit.png) | + +실제 109 WAV 해시/디코드/레벨 및 오류 0 집계: +[desktop JSON](evidence-v0.2.3/browser/desktop-audio-integrity.json), +[mobile JSON](evidence-v0.2.3/browser/mobile-audio-integrity.json). +세 문항→다음 단계→중도 종료→홈·재청취의 실제 소스 시작/정지 및 네트워크 집계: +[desktop runtime](evidence-v0.2.3/browser/desktop-runtime-audit.json), +[mobile runtime](evidence-v0.2.3/browser/mobile-runtime-audit.json). + +초기 browser suite 24/24 통과 후 console/requestfailed 검사를 강화해 missing favicon을 찾았다. +그 실패는 `18-browser.log`에 남기고, 최종 검증은 별도 로그로 구분했다. 오류를 숨기거나 예외 목록으로 제외하지 않았다. +404/잘못된 WAV 주입 테스트의 의도적 실패 응답은 정상 흐름의 오류 0 집계와 구분한다. + +## 실제 검증의 한계와 인계 + +- Chrome은 실제 WAV를 디코드하고 실제 AudioContext/BufferSource를 실행했다. 헤드리스 자동 검증은 + 스피커/헤드폰의 물리 음압, 한국어 청감, 개인의 난이도나 임상 효과를 보증하지 않는다. +- 녹음 장면은 primary 출처 설명으로 확인했고 짧은 연속 구간의 포맷/신호/해시/루프를 검증했다. + **사람이 여덟 구간을 직접 청취하여 음악·불필요하게 명료한 우연 대화가 없는지 판단하는 인수는 수행하지 않았다.** + 자동 검사를 인간 청취 인증으로 주장하지 않는다. [샘플과 provenance](../docs/AUDIO_PROVENANCE.md)를 Neo가 검토할 수 있다. +- mobile은 system Chrome 360×800 viewport/touch emulation이다. 실제 Android/iOS 기기 및 Safari 검증은 별도다. +- SNR은 전체 버퍼 RMS에 대한 디지털 상대값이다. 현장음의 시간 변화 때문에 순간/주파수별 SNR은 다르다. +- 로컬 `dist`만 검증했다. production HTTPS/MIME/cache/서버 설정은 배포 후 Neo의 독립 검증 대상이다. +- 사용자 지시대로 commit/push/merge/tag/deploy는 미실행이다. acceptance의 Neo 릴리스 항목은 완료로 표시하지 않았다. + [DEPLOYMENT](../docs/DEPLOYMENT.md)에 feature push→main FF→annotated tag→fresh clone→commit-addressed 원자 배포/rollback 절차를 인계했다. + + +## 독립 리뷰 수정 — 2026-10-14 + +사용자가 요약한 두 독립 리뷰와 본 결과 문서를 읽고 release-hardening을 수행했다. +기존 uncommitted v0.2.3 작업을 이어서 수정했으며 commit/push/merge/tag/deploy는 하지 않았다. +새 실패 테스트를 먼저 실행하고 생산 코드/검증기를 수정했다. 이전 evidence 로그는 수정하지 않았다. +신규 기록은 모두 [review-fixes/](evidence-v0.2.3/review-fixes/) 아래에 있다. + +### 수정 내용과 동작 + +1. 진행 막대는 답변 수가 아닌 **현재 문항 1/3 → 2/3 → 3/3**이다. 첫 재생·답변 전·피드백과 + 다음 라운드에서도 일관된다. 접근성 이름/값, native progress 위치, 실제 PNG 채움 픽셀까지 검사한다. +2. 결과/README/설계/CHANGELOG의 점수 설명은 **정답마다 단계×100점 + 연속 정답 보너스**, + **문항별 최대 20점, 라운드 합계 0+10+20=30점**이다. 1단계 세 정답의 **330점**을 실제 UI 흐름으로 검증했다. +3. 응답이 없으면 정답률은 **— / 응답 없음**이며 0%나 0/0을 보여 주지 않는다. 응답 없는 단계는 **미진행**이다. + 중도 종료 제목은 **문제 풀이를 중간에 종료했어요.**, 정상 결과는 **N단계 문제 풀이를 마쳤어요.**로 구분한다. +4. 실제 Chrome RED에서 `입력`, 결과의 `만나요`/`최대` 등 어절 분리를 검출했다. + 모드 설명과 결과 영역에 keep-all을 적용하고 줄바꿈을 허용했다. 320px/360px에서 어절 내부 Range 줄 분리와 + 요소/문서 overflow를 검사하며 시작·정상 결과·중도 결과 캡처를 남겼다. +5. README 현재 증거 경로를 `.agent/evidence-v0.2.3/review-fixes/`로 바로잡고 일본어 reducer 테스트 제목을 한국어로 바꿨다. +6. build verifier는 앱 콘텐츠의 10 patterns×10 words+intro로 **정확한 101개 이름**을 독립 구성한다. + manifest 정확히 101개, 중복 없는 예상 inventory, dist/audio의 추가/누락 파일을 모두 검사한다. + 양쪽 manifest와 디렉터리를 함께 비우기/축약/중복/이름 변경해도 실패하며 정상 사본은 통과한다. +7. 승인 계획과 배포 manifest의 `verifiedLocalSource` 및 모호한 `sourceDurationSeconds`를 제거했다. + `expectedSourceSha256`, `sourceBytes`, `sourceVerification`과 **directUrl 바이트의 ffprobe format.duration**인 + `directMediaDurationSeconds`를 보존한다. Freesound preview MP3의 길이와 primary 페이지 표시 길이를 혼동하지 않는다. + 파생 WAV의 `duration`/`conversion.durationSeconds`는 별도로 12초다. 기존 source-integrity 증거와 대조했다. +8. 생성기는 **첫 변환 전에 여덟 원본 전부**의 승인 해시/bytes를 확인한다. 불일치/누락/중복/잘못된 목록은 실패하고, + 현재 파일 값으로 승인 계획을 덮어쓰지 않는다. 실제 원본 8개도 새 승인 필드로 재검증했다. +9. 현장음 notice를 **public/ambience/AMBIENCE_NOTICES.md**로 옮겼다. 같은 파일시스템의 staging에서 + 8 WAV·manifest·notice와 실측 PCM을 전수 검사한 다음 Linux **renameat2(RENAME_EXCHANGE)** 한 번으로 교체한다. + 최초 생성은 rename 한 번이다. overlay를 없애 stale 파일을 제거하고 정상/dangling symlink 출력을 거부한다. + 모든 변환 위치의 실패/KeyboardInterrupt, manifest/notice 쓰기 실패, staged 변조, 교환 실패/미지원, + commit 전 SIGTERM에서 이전 디렉터리를 보존한다. 실제 교환 도중 디렉터리 fd로 읽은 세 파일이 + 같은 세대인 것도 확인했다. UI 링크·build verifier·권리·배포·재현 문서를 함께 수정했다. +10. 모든 배포 notice 항목에 **creator, primary page URL, direct download URL, license URL, + outputLicense, 명시적 Changes**가 있어야 한다. 다른 항목에 공통 URL이 남아도 누락을 감추지 못한다. + 8개 항목×6개 필드 제거와 public/dist 동시 metadata 변조를 build verifier에서 거부한다. +11. CHANGELOG와 본 문서에 실제 수정/검증을 반영했다. **109 WAV 재생성 0 / 바이트 변경 0**이다. + +### 새 RED → GREEN 원문 + +| 계약 | RED | GREEN | +| --- | --- | --- | +| 진행률·330점·보너스·무응답·종료/완료 문구·README | [01 RED](evidence-v0.2.3/review-fixes/01-ui-RED.log) | [01 GREEN-02: 27 통과](evidence-v0.2.3/review-fixes/01-ui-GREEN-02.log) | +| 실제 desktop/mobile 진행률·320/360px 어절·overflow | [02 RED: 4 실패](evidence-v0.2.3/review-fixes/02-browser-RED.log) | [02 GREEN: 4 통과](evidence-v0.2.3/review-fixes/02-browser-GREEN.log) | +| manifest/폴더 동시 축약·추가/누락 | [03 RED](evidence-v0.2.3/review-fixes/03-voice-inventory-RED.log) | [03 GREEN](evidence-v0.2.3/review-fixes/03-voice-inventory-GREEN.log) | +| durable 승인 원본 메타데이터 | [04 RED](evidence-v0.2.3/review-fixes/04-source-plan-RED.log) | [04 GREEN](evidence-v0.2.3/review-fixes/04-source-plan-GREEN.log) | +| 첫 변환 전 전수 원본 검사 | [05 RED](evidence-v0.2.3/review-fixes/05-source-guard-RED.log) | [05 GREEN](evidence-v0.2.3/review-fixes/05-source-guard-GREEN.log) | +| staging·notice·symlink·검증·원자 교환·실패/중단 보존 | [06 RED](evidence-v0.2.3/review-fixes/06-atomic-RED.log) | [06 GREEN](evidence-v0.2.3/review-fixes/06-atomic-GREEN.log) | +| notice 동시 발행 경로/UI 링크/항목 내용 | [07 RED](evidence-v0.2.3/review-fixes/07-notice-path-RED.log) | [07 GREEN](evidence-v0.2.3/review-fixes/07-notice-path-GREEN.log) | +| 항목별 필수 notice 강제 | [08 RED](evidence-v0.2.3/review-fixes/08-notice-verifier-RED.log) | [08–09 GREEN: 27 통과](evidence-v0.2.3/review-fixes/08-09-build-GREEN.log) | +| manifest 사본 동시 출처/라이선스/변경 변조 | [09 RED](evidence-v0.2.3/review-fixes/09-build-plan-RED.log) | [08–09 GREEN](evidence-v0.2.3/review-fixes/08-09-build-GREEN.log) | + +RED 로그는 exit 1, 표에 연결한 GREEN은 exit 0이다. 필터 실행의 skipped는 최종 전체 실행과 구분한다. +`01-ui-GREEN.log`는 이름과 달리 **exit 1**인 중간 실행이다. 새 계약은 통과했지만 기존 통합 테스트의 +이전 제목 regex가 남아 실패했고, 그것을 고친 `01-ui-GREEN-02.log`가 실제 GREEN이다. 실패 로그도 보존했다. + +초기 RED/GREEN browser PNG를 사후 픽셀 분석한 [RED](evidence-v0.2.3/review-fixes/02-progress-pixels-RED.log) / +[GREEN](evidence-v0.2.3/review-fixes/02-progress-pixels-GREEN.log)도 보존했다. desktop 1096px 막대는 +365→731→1096px, mobile 320px 막대는 107→213→320px 채워졌다. 같은 픽셀 검사를 최종 브라우저 테스트에도 넣었다. +추가 동시 읽기/미지원 교환 검증은 [10-atomic-additional](evidence-v0.2.3/review-fixes/10-atomic-additional.log)에 있다. + +### 리뷰 수정 후 전체 검증 + +| 실행 | 실제 결과 | 원문 | +| --- | --- | --- | +| npm run lint | PASS, exit 0 | [lint](evidence-v0.2.3/review-fixes/11-lint.log) | +| npm test | 13 files / **118 passed**, skip 0, exit 0 | [unit](evidence-v0.2.3/review-fixes/11-unit.log) | +| python3 -m unittest discover -s tests/python -v | **32 passed** (neural 18 + ambience 14), exit 0 | [Python](evidence-v0.2.3/review-fixes/11-python.log) | +| npm run build | PASS, 101 voice + 8 ambience + runtime/ambience notices, exit 0 | [build](evidence-v0.2.3/review-fixes/11-build.log) | +| npm audit --json | **취약점 0**, exit 0 | [audit](evidence-v0.2.3/review-fixes/npm-audit.json) | +| sandboxed system Chrome desktop/mobile | **30 passed / 0 failed / 0 skipped / 0 flaky**, 4.0분, exit 0 | [browser log](evidence-v0.2.3/review-fixes/12-browser.log), [JSON](evidence-v0.2.3/review-fixes/browser-results.json) | + +[보존 검사](evidence-v0.2.3/review-fixes/preservation.json): 리뷰 시작 시점의 WAV 109개와 이전 `.agent` 파일 +268개 모두 해시 동일하다. Git 추적된 v0.1/v0.1.1 `.agent` 파일 180개도 HEAD와 동일하다. +[원본 재확인](evidence-v0.2.3/review-fixes/source-reverification.json): 승인 원본 8개와 배포 bundle을 검증했고 변환은 호출하지 않았다. + +Chrome **146.0.7680.80**, desktop 1280×1000/mobile 360×800에 추가 320px/360px copy 검사를 수행했다. +실행 중인 이 테스트의 Chrome 프로세스 20개에 `--no-sandbox`가 없음을 [실제 process 기록](evidence-v0.2.3/review-fixes/chrome-sandbox.json)으로 확인했다. +원래 AudioContext/BufferSource를 실행한 109 WAV 해시·decode 검사와 8개 실제 ambience loop, 오류 재시도, +키보드/axe/외부 요청/콘솔 검사에 새 진행률 픽셀·한국어 어절 검사를 더했다. +[desktop 오디오](evidence-v0.2.3/review-fixes/desktop-audio-integrity.json), +[mobile 오디오](evidence-v0.2.3/review-fixes/mobile-audio-integrity.json), +[desktop runtime](evidence-v0.2.3/review-fixes/desktop-runtime-audit.json), +[mobile runtime](evidence-v0.2.3/review-fixes/mobile-runtime-audit.json). + +| 최종 화면 | Desktop | Mobile | +| --- | --- | --- | +| 시작 | [PNG](evidence-v0.2.3/review-fixes/screenshots/desktop-start.png) | [PNG](evidence-v0.2.3/review-fixes/screenshots/mobile-start.png) | +| 게임 | [PNG](evidence-v0.2.3/review-fixes/screenshots/desktop-game.png) | [PNG](evidence-v0.2.3/review-fixes/screenshots/mobile-game.png) | +| 330점 정상 결과 | [PNG](evidence-v0.2.3/review-fixes/screenshots/desktop-normal-results.png) | [PNG](evidence-v0.2.3/review-fixes/screenshots/mobile-normal-results.png) | +| 무응답 중도 종료 | [PNG](evidence-v0.2.3/review-fixes/screenshots/desktop-early-exit.png) | [PNG](evidence-v0.2.3/review-fixes/screenshots/mobile-early-exit.png) | + +### 리뷰 후에도 남는 한계 + +**사람이 여덟 현장음 구간을 청취하여 음악/우연 대화와 적절성을 판단하는 인수는 수행하지 않았다.** +자동 PCM/Chrome 재생 검증을 인간 청취 승인으로 주장하지 않는다. mobile은 Chrome viewport/touch emulation이며 +실제 Android/iOS/Safari, 물리적 음압 또는 임상 효과 검증은 아니다. + +원자 commit 전 실패/중단은 이전 디렉터리를 보존하며 commit 뒤에는 완성된 새 트리가 공개된다. +강제 kill은 숨은 stage를 남길 수 있다. 전원 손실 내구성이나 여러 HTTP 요청에 걸친 snapshot 격리는 검증하지 않았다. +로컬 build/preview만 확인했으며 사용자 지시대로 Git commit/push/merge/tag 및 배포는 하지 않았다. diff --git a/.agent/evidence-v0.2.3/privacy-screening/before-source-plan.json b/.agent/evidence-v0.2.3/privacy-screening/before-source-plan.json new file mode 100644 index 0000000..f288098 --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/before-source-plan.json @@ -0,0 +1,170 @@ +{ + "version": "0.2.3", + "policy": { + "runtime": "All ambience files are bundled same-origin static assets; no runtime requests to source sites.", + "conversion": "Select a representative segment, remove unsuitable intelligible/incidental content where practical, trim, fade for loop safety, downmix, resample and normalize to 24000 Hz mono PCM16 WAV.", + "rights": "CC0/public-domain assets retain suggested credits; CC BY and CC BY-SA derivatives retain exact attribution, modification notice and license. The proprietary project does not claim exclusive rights over third-party recordings.", + "verified": "All eight approved direct-media files were verified on 2026-10-14 by SHA-256, byte count, ffprobe and full FFmpeg decode. The expected hashes/bytes are immutable release inputs, never learned or updated by the converter.", + "durationFields": "directMediaDurationSeconds is ffprobe format.duration of the exact directUrl bytes (including Freesound preview MP3s), not a rounded primary-page recording duration. Output duration and conversion.durationSeconds describe the 12-second WAV excerpt." + }, + "assets": [ + { + "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" + } + }, + { + "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" + } + }, + { + "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" + } + }, + { + "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" + } + }, + { + "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" + } + }, + { + "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" + } + }, + { + "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" + } + }, + { + "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" + } + } + ], + "releaseRisks": [ + "Audition chosen excerpts to avoid music and unnecessarily intelligible bystander speech.", + "The market derivative must stay CC BY-SA 4.0 with source, creator, change notice and license link.", + "The subway derivative needs CC BY 4.0 attribution and change notice.", + "Freesound direct URLs are preview MP3 files; preserve local source hashes and page/license evidence." + ] +} diff --git a/.agent/evidence-v0.2.3/privacy-screening/browser-final/.last-run.json b/.agent/evidence-v0.2.3/privacy-screening/browser-final/.last-run.json new file mode 100644 index 0000000..cbcc1fb --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/browser-final/.last-run.json @@ -0,0 +1,4 @@ +{ + "status": "passed", + "failedTests": [] +} \ No newline at end of file diff --git a/.agent/evidence-v0.2.3/privacy-screening/browser-final/audio-음성·현장음-109개-versioned-WAV를-실제-Chrome에서-해시·디코드-검증한다-desktop/attachments/109-versioned-WAV-integrity-bcde2a64dc46084caae2c89272a63e0ce1b6dc06.json b/.agent/evidence-v0.2.3/privacy-screening/browser-final/audio-음성·현장음-109개-versioned-WAV를-실제-Chrome에서-해시·디코드-검증한다-desktop/attachments/109-versioned-WAV-integrity-bcde2a64dc46084caae2c89272a63e0ce1b6dc06.json new file mode 100644 index 0000000..d6db5ea --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/browser-final/audio-음성·현장음-109개-versioned-WAV를-실제-Chrome에서-해시·디코드-검증한다-desktop/attachments/109-versioned-WAV-integrity-bcde2a64dc46084caae2c89272a63e0ce1b6dc06.json @@ -0,0 +1,1098 @@ +{ + "chrome": "146.0.7680.80", + "external": [], + "errors": [], + "failed": [], + "files": [ + { + "url": "http://127.0.0.1:4173/audio/intro.wav?v=0.2.3", + "sha256": "90d9f46e6e3f9c8a0c1a781096df54d7809ef4ad38b289508ef7b8c0411465ce", + "bytes": 338732, + "sampleRate": 24000, + "channels": 1, + "duration": 7.056, + "rms": 0.10000144992850359, + "peak": 0.4998626708984375 + }, + { + "url": "http://127.0.0.1:4173/ambience/street.wav?v=0.2.3", + "sha256": "a8bffa201b174618955bc51b860167169125304811aabe2086b0bb35b06c3ae1", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.07999880181401388, + "peak": 0.3967711329460144 + }, + { + "url": "http://127.0.0.1:4173/ambience/mall.wav?v=0.2.3", + "sha256": "680a769940c08f0d12c6c954c08366598dd8b5745e276f39c82b10d1a88261a1", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.07999875178666456, + "peak": 0.7191991806030273 + }, + { + "url": "http://127.0.0.1:4173/ambience/theater.wav?v=0.2.3", + "sha256": "2d6a444fb7874cdf6b2d8a741a69175299b112eb66834912c025437d8277d635", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.07999878601263052, + "peak": 0.495086669921875 + }, + { + "url": "http://127.0.0.1:4173/ambience/department.wav?v=0.2.3", + "sha256": "aa43f3d1d3e7c2b1f8ace24ecbda45d0ea3a031db941c39506dc6c1665b8efa7", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.07999879026023995, + "peak": 0.4749900698661804 + }, + { + "url": "http://127.0.0.1:4173/ambience/market.wav?v=0.2.3", + "sha256": "7a7a980845a4aade2a7e8a108eae746220a4688e92792ee93d3deb76b2a762f6", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.07999876626924392, + "peak": 0.507232666015625 + }, + { + "url": "http://127.0.0.1:4173/ambience/subway.wav?v=0.2.3", + "sha256": "9faf70b68617d267b367a0f3692ed90015458543ab4b0844f6c704e6a724728f", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.079998775670051, + "peak": 0.42530596256256104 + }, + { + "url": "http://127.0.0.1:4173/ambience/cafe.wav?v=0.2.3", + "sha256": "802a956e91b85a2fdd0e1f161d75bfada7a53499bcb57ba7f578411480ded216", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.0799987945764348, + "peak": 0.44708251953125 + }, + { + "url": "http://127.0.0.1:4173/ambience/rain.wav?v=0.2.3", + "sha256": "f4315084e820f742b0709de5bb0d1abd3d5af1730620e08c2948b70347356dd9", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.011384798571746246, + "peak": 0.1024169921875 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-apple.wav?v=0.2.3", + "sha256": "cb7da4e9a1288cac64d168b241f27d7d2bc2dfecace58744f9bbf2792dfad04e", + "bytes": 397484, + "sampleRate": 24000, + "channels": 1, + "duration": 8.28, + "rms": 0.10000142448574952, + "peak": 0.6414685249328613 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-market.wav?v=0.2.3", + "sha256": "b8d25b867497adcd0fe7c8b6a8a8d2e7a52965956738a83e53f58735708773f9", + "bytes": 405548, + "sampleRate": 24000, + "channels": 1, + "duration": 8.448, + "rms": 0.10000141405173993, + "peak": 0.491485595703125 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-sound.wav?v=0.2.3", + "sha256": "34e4d9758d2ed448646fda364610e34779c84794403d9051ab3d8c1d33e2c80c", + "bytes": 184364, + "sampleRate": 24000, + "channels": 1, + "duration": 3.84, + "rms": 0.10000138709171018, + "peak": 0.386322021484375 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-furniture.wav?v=0.2.3", + "sha256": "b45b1afc8d9b534ff3e0a2a2ecb99efc1f4e40d41f89f55c4ed8ba94ad6d76d4", + "bytes": 354860, + "sampleRate": 24000, + "channels": 1, + "duration": 7.392, + "rms": 0.1000015072973225, + "peak": 0.5576171875 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-market.wav?v=0.2.3", + "sha256": "cefa0e95649ea6bd1df4c8dfccd2b74b4f4c028714420ce1087b61db2f2a8d47", + "bytes": 248876, + "sampleRate": 24000, + "channels": 1, + "duration": 5.184, + "rms": 0.10000142548167161, + "peak": 0.4857020676136017 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-oil.wav?v=0.2.3", + "sha256": "f6eff0cdddcad9790351491e60c53cb2a70d222033a583652f2de0b8cd6abcc7", + "bytes": 406700, + "sampleRate": 24000, + "channels": 1, + "duration": 8.472, + "rms": 0.10000139122025363, + "peak": 0.470794677734375 + }, + { + "url": "http://127.0.0.1:4173/audio/first-hat.wav?v=0.2.3", + "sha256": "17c8cde90567e7574b0c0702663bd70713054089ee920241b5444d9b7869eef5", + "bytes": 357164, + "sampleRate": 24000, + "channels": 1, + "duration": 7.44, + "rms": 0.10000152904790521, + "peak": 0.5312662124633789 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-furniture.wav?v=0.2.3", + "sha256": "af82e03b686635c3356e706fe5b05c1231aeaaeab33f275aa5b8714988c65d43", + "bytes": 241964, + "sampleRate": 24000, + "channels": 1, + "duration": 5.04, + "rms": 0.10000137346142077, + "peak": 0.4852443039417267 + }, + { + "url": "http://127.0.0.1:4173/audio/password-sound.wav?v=0.2.3", + "sha256": "044aafff08a19e39f21e58b963644715a987cd155896998769ef8e9ce6449628", + "bytes": 236204, + "sampleRate": 24000, + "channels": 1, + "duration": 4.92, + "rms": 0.10000156641621728, + "peak": 0.4621112644672394 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-hat.wav?v=0.2.3", + "sha256": "f9f98c91cfbcfcb106eef7d5d3795a9cf3c3aab7e19a60f13d7dffe284d19f86", + "bytes": 398636, + "sampleRate": 24000, + "channels": 1, + "duration": 8.304, + "rms": 0.10000141071544869, + "peak": 0.470977783203125 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-apple.wav?v=0.2.3", + "sha256": "7c8f413f4b7e164f090e508ba090448f1376c6012649bbb6a917d45851313883", + "bytes": 188972, + "sampleRate": 24000, + "channels": 1, + "duration": 3.936, + "rms": 0.10000130469939268, + "peak": 0.401641845703125 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-sea.wav?v=0.2.3", + "sha256": "db2f235bee26ac804b5362e8e013b8f40c8da24fd3a34e0fb3b43c6d264feb36", + "bytes": 382508, + "sampleRate": 24000, + "channels": 1, + "duration": 7.968, + "rms": 0.10000145042993039, + "peak": 0.6843470335006714 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-furniture.wav?v=0.2.3", + "sha256": "442bdcb956f120c270e1f321feae0415c897de0183e468980fcc119b898b2a67", + "bytes": 403244, + "sampleRate": 24000, + "channels": 1, + "duration": 8.4, + "rms": 0.10000149119200713, + "peak": 0.5619068145751953 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-sea.wav?v=0.2.3", + "sha256": "b6dbe0af143ea775f05bd59a3d6af348bcc770ab378ac91ea75a56e06c326edf", + "bytes": 346796, + "sampleRate": 24000, + "channels": 1, + "duration": 7.224, + "rms": 0.10000144532868623, + "peak": 0.56494140625 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-sound.wav?v=0.2.3", + "sha256": "e9d636ff7f4777f38b1ff15bebdcec6fbde95b4b4b05625a7415b4cfa0025b59", + "bytes": 395180, + "sampleRate": 24000, + "channels": 1, + "duration": 8.232, + "rms": 0.10000164955559301, + "peak": 0.6114688515663147 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-apple.wav?v=0.2.3", + "sha256": "3ef42e276ff3500c3e197d149f29f79d6a0c1d5516ed1d5a2c57210333fded9c", + "bytes": 246572, + "sampleRate": 24000, + "channels": 1, + "duration": 5.136, + "rms": 0.10000144279302126, + "peak": 0.4701681435108185 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-market.wav?v=0.2.3", + "sha256": "356af25332bf2000ed349671f3ff39767929e1f4599af622c021f907d11fb7bf", + "bytes": 194732, + "sampleRate": 24000, + "channels": 1, + "duration": 4.056, + "rms": 0.10000132629820717, + "peak": 0.4022216796875 + }, + { + "url": "http://127.0.0.1:4173/audio/message-sea.wav?v=0.2.3", + "sha256": "28a461fbe03bffe2560030dea8b60715f7c0fe262dcf85b5b7f7daf483836382", + "bytes": 517292, + "sampleRate": 24000, + "channels": 1, + "duration": 10.776, + "rms": 0.10000130584401576, + "peak": 0.53521728515625 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-umbrella.wav?v=0.2.3", + "sha256": "c8988e604ba05d52597e561389541e8f9cda86e052279f1862bbf8399ead314e", + "bytes": 403244, + "sampleRate": 24000, + "channels": 1, + "duration": 8.4, + "rms": 0.10000148262660476, + "peak": 0.557830810546875 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-hat.wav?v=0.2.3", + "sha256": "308278ec2bd27d4224976a55632d1f7fa1edabb0792126d9d858a699c287aee4", + "bytes": 245420, + "sampleRate": 24000, + "channels": 1, + "duration": 5.112, + "rms": 0.10000140702099906, + "peak": 0.4498428404331207 + }, + { + "url": "http://127.0.0.1:4173/audio/password-furniture.wav?v=0.2.3", + "sha256": "fb2b631dd4e12120d08a84cce6450f9cd9cd68105d13d7001d808e7deaa1df4a", + "bytes": 233900, + "sampleRate": 24000, + "channels": 1, + "duration": 4.872, + "rms": 0.10000146718546903, + "peak": 0.4836573302745819 + }, + { + "url": "http://127.0.0.1:4173/audio/first-market.wav?v=0.2.3", + "sha256": "1e00b8f70a796cdebb0feb00c605fece7488b06915e6e036f54206f05e201e0c", + "bytes": 359468, + "sampleRate": 24000, + "channels": 1, + "duration": 7.488, + "rms": 0.10000152633991319, + "peak": 0.6390880942344666 + }, + { + "url": "http://127.0.0.1:4173/audio/first-meat.wav?v=0.2.3", + "sha256": "f51a37c1722fef581f7d642a4dcae7fcb9953b3c318dce971bf616cd1a81fecc", + "bytes": 345644, + "sampleRate": 24000, + "channels": 1, + "duration": 7.2, + "rms": 0.10000152244411063, + "peak": 0.5131382346153259 + }, + { + "url": "http://127.0.0.1:4173/audio/password-sea.wav?v=0.2.3", + "sha256": "03f45b8cb5b3dc72faf5c6e3d0e2a10cea6b60301ea400d0a4453596d2f0b337", + "bytes": 232748, + "sampleRate": 24000, + "channels": 1, + "duration": 4.848, + "rms": 0.10000144821976133, + "peak": 0.5339213013648987 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-sound.wav?v=0.2.3", + "sha256": "98387ccc7aab566f6487d4c250b2128082cc527e013a6f7b7bc4d0266ac295df", + "bytes": 394028, + "sampleRate": 24000, + "channels": 1, + "duration": 8.208, + "rms": 0.10000158053850364, + "peak": 0.5377971529960632 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-umbrella.wav?v=0.2.3", + "sha256": "5e59ef39113c3d5e106862356d715f4cef2862ef8ee02654a97e532675c1ac6d", + "bytes": 410156, + "sampleRate": 24000, + "channels": 1, + "duration": 8.544, + "rms": 0.10000147499132286, + "peak": 0.6748558282852173 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-hat.wav?v=0.2.3", + "sha256": "b01ef9762ac84e3eb757243bc9286c62f7d45444a821ae35ac36a8b095e1598a", + "bytes": 353708, + "sampleRate": 24000, + "channels": 1, + "duration": 7.368, + "rms": 0.10000153089787694, + "peak": 0.555206298828125 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-market.wav?v=0.2.3", + "sha256": "d89792da51c83ac49d27e55aa6d822a338899a5ee487b34b552748201e1522f6", + "bytes": 398636, + "sampleRate": 24000, + "channels": 1, + "duration": 8.304, + "rms": 0.10000149710778367, + "peak": 0.5728324055671692 + }, + { + "url": "http://127.0.0.1:4173/audio/password-umbrella.wav?v=0.2.3", + "sha256": "ab3ca6398c879971dc793eb25b472fcc0db72d76e386f11ef4d32c639f37c69d", + "bytes": 239660, + "sampleRate": 24000, + "channels": 1, + "duration": 4.992, + "rms": 0.100001426973271, + "peak": 0.4776757061481476 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-meat.wav?v=0.2.3", + "sha256": "48e91b3932d3798e852041a854b3ee08c72127e092c62083a47af6b99adff241", + "bytes": 403244, + "sampleRate": 24000, + "channels": 1, + "duration": 8.4, + "rms": 0.10000140336390047, + "peak": 0.481536865234375 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-hat.wav?v=0.2.3", + "sha256": "6e089a42fd7e65e82eec7186d369c926fb7fdac794365b2bd7658822fd92437c", + "bytes": 396332, + "sampleRate": 24000, + "channels": 1, + "duration": 8.256, + "rms": 0.1000015662548192, + "peak": 0.616748571395874 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-sound.wav?v=0.2.3", + "sha256": "4d00aa6114327f450a00dacbc7e7b572ebf1de4ce9dc2fe4b5505766cca71ce9", + "bytes": 353708, + "sampleRate": 24000, + "channels": 1, + "duration": 7.368, + "rms": 0.10000162019345048, + "peak": 0.5348368883132935 + }, + { + "url": "http://127.0.0.1:4173/audio/last-oil.wav?v=0.2.3", + "sha256": "b5ce34950b8b31b1baf6ce55410797f0d8aa5478a670d6eace87cf76d134d6d3", + "bytes": 337580, + "sampleRate": 24000, + "channels": 1, + "duration": 7.032, + "rms": 0.10000149980584365, + "peak": 0.55706787109375 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-sea.wav?v=0.2.3", + "sha256": "47aa31d757c9fb49c9b53a1c052d90a5ced4be57549d649850d9b48f8864045b", + "bytes": 191276, + "sampleRate": 24000, + "channels": 1, + "duration": 3.984, + "rms": 0.10000129182106483, + "peak": 0.388702392578125 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-sound.wav?v=0.2.3", + "sha256": "659eb0e2b06e6b165b46744769743e032e2282519f8486c57bc45e0f7d07a069", + "bytes": 240812, + "sampleRate": 24000, + "channels": 1, + "duration": 5.016, + "rms": 0.10000152909529536, + "peak": 0.45481735467910767 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-meat.wav?v=0.2.3", + "sha256": "6599d2fac73ea616a793151b4ce6f51af673988d630bac6219a77e78ae6cb34e", + "bytes": 380204, + "sampleRate": 24000, + "channels": 1, + "duration": 7.92, + "rms": 0.1000016061190976, + "peak": 0.5921201109886169 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-market.wav?v=0.2.3", + "sha256": "c855b449e0d4ace74681bfe68e5e7f0b063568827ae872017234dbe8ae119e4c", + "bytes": 356012, + "sampleRate": 24000, + "channels": 1, + "duration": 7.416, + "rms": 0.10000151456676445, + "peak": 0.5949888825416565 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-furniture.wav?v=0.2.3", + "sha256": "bf84dc6cff1f227924a3a62158d2fc18769fb0ca40b91418fa19e534dbf92f00", + "bytes": 397484, + "sampleRate": 24000, + "channels": 1, + "duration": 8.28, + "rms": 0.10000155255948041, + "peak": 0.6670430898666382 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-sound.wav?v=0.2.3", + "sha256": "5a603bc69979603afddcaeb6edf500a7c540b72405daeb33f5335d746b327da1", + "bytes": 397484, + "sampleRate": 24000, + "channels": 1, + "duration": 8.28, + "rms": 0.10000146491234768, + "peak": 0.469268798828125 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-meat.wav?v=0.2.3", + "sha256": "9183ef90b64f5ceaf3bb0178c689231ff3e9981d6ce889124a15f2a6e2b7a344", + "bytes": 395180, + "sampleRate": 24000, + "channels": 1, + "duration": 8.232, + "rms": 0.10000155087122137, + "peak": 0.5193029642105103 + }, + { + "url": "http://127.0.0.1:4173/audio/last-sound.wav?v=0.2.3", + "sha256": "ec9c49802aebeb6a8b898a1c0d8ad1daa127d2d64c905c197ed49a8e0c4eb64a", + "bytes": 354860, + "sampleRate": 24000, + "channels": 1, + "duration": 7.392, + "rms": 0.10000165748716579, + "peak": 0.5641041398048401 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-oil.wav?v=0.2.3", + "sha256": "5fb63e04520c312aa6b7b48b70c2f7c140b5ab480e5c6992edbc2ba85b9a06e7", + "bytes": 241964, + "sampleRate": 24000, + "channels": 1, + "duration": 5.04, + "rms": 0.10000143720418167, + "peak": 0.443586528301239 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-umbrella.wav?v=0.2.3", + "sha256": "92b54f04884ab915783945077efd8f3bd443849a1720f72168b6348cae1f8e85", + "bytes": 406700, + "sampleRate": 24000, + "channels": 1, + "duration": 8.472, + "rms": 0.10000140257790288, + "peak": 0.479034423828125 + }, + { + "url": "http://127.0.0.1:4173/audio/message-sound.wav?v=0.2.3", + "sha256": "1e682147dae8026ba78dc8f256c7f24acb3a6743bfd88a0fcc86096930eef078", + "bytes": 521900, + "sampleRate": 24000, + "channels": 1, + "duration": 10.872, + "rms": 0.10000138583471241, + "peak": 0.51953125 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-apple.wav?v=0.2.3", + "sha256": "ccd7327a3fb54d3320d049ffdced3bc17595861cee69429c0ee97182d454195b", + "bytes": 402092, + "sampleRate": 24000, + "channels": 1, + "duration": 8.376, + "rms": 0.10000140667715379, + "peak": 0.490325927734375 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-sea.wav?v=0.2.3", + "sha256": "5c91a36496e274d2be9c6fa8d9b506cd04f2a1b7ceb05ed1b7bb03fe7fca99d9", + "bytes": 399788, + "sampleRate": 24000, + "channels": 1, + "duration": 8.328, + "rms": 0.10000144241513113, + "peak": 0.5465559959411621 + }, + { + "url": "http://127.0.0.1:4173/audio/message-hat.wav?v=0.2.3", + "sha256": "5a713a8522b231bb8276805c014b385b9150b79f58ff2618446607e2b442495e", + "bytes": 518444, + "sampleRate": 24000, + "channels": 1, + "duration": 10.8, + "rms": 0.10000136927555209, + "peak": 0.587005615234375 + }, + { + "url": "http://127.0.0.1:4173/audio/password-meat.wav?v=0.2.3", + "sha256": "b009caadd56350d6a641ff17f0973e2b2724c183e1f45ae0bf3c483e237fa99e", + "bytes": 240812, + "sampleRate": 24000, + "channels": 1, + "duration": 5.016, + "rms": 0.10000148386024335, + "peak": 0.4978789687156677 + }, + { + "url": "http://127.0.0.1:4173/audio/message-market.wav?v=0.2.3", + "sha256": "9242d4cd6e0030e6b073e4d2360f84aa8a454d1749711cdb2d64c14f28a7ea20", + "bytes": 523052, + "sampleRate": 24000, + "channels": 1, + "duration": 10.896, + "rms": 0.10000133805787564, + "peak": 0.534820556640625 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-apple.wav?v=0.2.3", + "sha256": "8832f1b793ab3eedbe663875ea8dbeabb122c329bd5879437c71230b0418c3c8", + "bytes": 360620, + "sampleRate": 24000, + "channels": 1, + "duration": 7.512, + "rms": 0.10000145024648589, + "peak": 0.553558349609375 + }, + { + "url": "http://127.0.0.1:4173/audio/last-umbrella.wav?v=0.2.3", + "sha256": "c801293a34013a8d93d3289a2cc87cd3eed83f97ba4647f5060efa00b117a9ad", + "bytes": 370988, + "sampleRate": 24000, + "channels": 1, + "duration": 7.728, + "rms": 0.10000149360501835, + "peak": 0.59765625 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-sea.wav?v=0.2.3", + "sha256": "9233431d78ab4b144e3c33ad0cf0d49fc0fb91b29514343230ba32987b794bb3", + "bytes": 398636, + "sampleRate": 24000, + "channels": 1, + "duration": 8.304, + "rms": 0.10000134688905045, + "peak": 0.49616992473602295 + }, + { + "url": "http://127.0.0.1:4173/audio/password-apple.wav?v=0.2.3", + "sha256": "b6f5de3fe571fe3a7fdb722fe49250bcfeedef49475271e0ec76a7630907edd5", + "bytes": 235052, + "sampleRate": 24000, + "channels": 1, + "duration": 4.896, + "rms": 0.10000148212193387, + "peak": 0.4834437072277069 + }, + { + "url": "http://127.0.0.1:4173/audio/first-furniture.wav?v=0.2.3", + "sha256": "29f007b385b7182db1d8aeccad4fc3c260df5e66e14e52a46b0ef0fcd0ff3a0a", + "bytes": 364076, + "sampleRate": 24000, + "channels": 1, + "duration": 7.584, + "rms": 0.1000014551820741, + "peak": 0.5700552463531494 + }, + { + "url": "http://127.0.0.1:4173/audio/password-hat.wav?v=0.2.3", + "sha256": "e91bfc97df90a1675b6cd856880ac15c54de32cfc3b23603bdd1c2c5ac3ce6b8", + "bytes": 235052, + "sampleRate": 24000, + "channels": 1, + "duration": 4.896, + "rms": 0.10000146155157119, + "peak": 0.5059053301811218 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-oil.wav?v=0.2.3", + "sha256": "7a6b122b11c07da86c95fb78e2db2a70681b5219c63d6441fe56da1979ac1dc3", + "bytes": 334124, + "sampleRate": 24000, + "channels": 1, + "duration": 6.96, + "rms": 0.1000014880654183, + "peak": 0.539933443069458 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-meat.wav?v=0.2.3", + "sha256": "d416107cc05e7c5b92ca27100a10a8a9689de913346179945d5542de4a6bac0c", + "bytes": 342188, + "sampleRate": 24000, + "channels": 1, + "duration": 7.128, + "rms": 0.10000157422522808, + "peak": 0.510833740234375 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-apple.wav?v=0.2.3", + "sha256": "1bf2aef9a9f030af1a8fd7dee8f44aa420a397b3ba99b575feeb3dc7a63ec191", + "bytes": 395180, + "sampleRate": 24000, + "channels": 1, + "duration": 8.232, + "rms": 0.10000148399213096, + "peak": 0.563568115234375 + }, + { + "url": "http://127.0.0.1:4173/audio/first-oil.wav?v=0.2.3", + "sha256": "f415195e0cfc7ee711d09de7519e88eab62cc8b58d70772c83c3f5c27c267819", + "bytes": 335276, + "sampleRate": 24000, + "channels": 1, + "duration": 6.984, + "rms": 0.10000145886808136, + "peak": 0.5347453355789185 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-hat.wav?v=0.2.3", + "sha256": "31a6a4270bf368cda419094d87a303ac3cd5c22539786cb165f8044b0b8e9d6e", + "bytes": 402092, + "sampleRate": 24000, + "channels": 1, + "duration": 8.376, + "rms": 0.10000145804818952, + "peak": 0.541778564453125 + }, + { + "url": "http://127.0.0.1:4173/audio/message-furniture.wav?v=0.2.3", + "sha256": "26c331b7e12311236f4bb48f88918dfbf53cccd2f50b55741ea6ff4473e71dd8", + "bytes": 521900, + "sampleRate": 24000, + "channels": 1, + "duration": 10.872, + "rms": 0.10000134596838128, + "peak": 0.529327392578125 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-oil.wav?v=0.2.3", + "sha256": "3fa1e662a3af8f2726b17b2baa5bec2934406e6595ebc243c8380dd16e190977", + "bytes": 190124, + "sampleRate": 24000, + "channels": 1, + "duration": 3.96, + "rms": 0.10000134375667624, + "peak": 0.3817255198955536 + }, + { + "url": "http://127.0.0.1:4173/audio/last-sea.wav?v=0.2.3", + "sha256": "f755452e1da44674aa1df7d12edffa988091b89a394e7eb6d4a00eb721f07cbf", + "bytes": 345644, + "sampleRate": 24000, + "channels": 1, + "duration": 7.2, + "rms": 0.10000140162255576, + "peak": 0.591033935546875 + }, + { + "url": "http://127.0.0.1:4173/audio/password-oil.wav?v=0.2.3", + "sha256": "b472957b27ff98ea7b8894fa1ff12653f7e9f66f77870faa9e52a1c1bf116c41", + "bytes": 240812, + "sampleRate": 24000, + "channels": 1, + "duration": 5.016, + "rms": 0.10000146772662066, + "peak": 0.4945219159126282 + }, + { + "url": "http://127.0.0.1:4173/audio/first-umbrella.wav?v=0.2.3", + "sha256": "878e0bd2e6e4105f175aef51a028f6b141f3a2072be20f783193f3ba897a3ee0", + "bytes": 366380, + "sampleRate": 24000, + "channels": 1, + "duration": 7.632, + "rms": 0.10000147647908036, + "peak": 0.5700247287750244 + }, + { + "url": "http://127.0.0.1:4173/audio/last-apple.wav?v=0.2.3", + "sha256": "4cb2a8579fa3a7b91bb36363826ce8ca0d6d86e96e16a479e226a2802edd82f7", + "bytes": 356012, + "sampleRate": 24000, + "channels": 1, + "duration": 7.416, + "rms": 0.10000144523423521, + "peak": 0.622528076171875 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-market.wav?v=0.2.3", + "sha256": "68a5b899115a66ab225d610ec47b4de56cc8793657362bc38f533c06f741e4cc", + "bytes": 402092, + "sampleRate": 24000, + "channels": 1, + "duration": 8.376, + "rms": 0.10000160159844854, + "peak": 0.6822717785835266 + }, + { + "url": "http://127.0.0.1:4173/audio/message-oil.wav?v=0.2.3", + "sha256": "a2a71a7e5e07c81871a25c6cb7540c39aa0b32fc44f78cda66b5f34ace98d805", + "bytes": 509228, + "sampleRate": 24000, + "channels": 1, + "duration": 10.608, + "rms": 0.10000135184106136, + "peak": 0.51812744140625 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-meat.wav?v=0.2.3", + "sha256": "d36dfc395a5c53fbfa4abe9980db7bb59adfdac59e40318c4aca365365e3f2ab", + "bytes": 187820, + "sampleRate": 24000, + "channels": 1, + "duration": 3.912, + "rms": 0.1000013329979738, + "peak": 0.371124267578125 + }, + { + "url": "http://127.0.0.1:4173/audio/password-market.wav?v=0.2.3", + "sha256": "02e325fb753ef7a3ee585a03d2ca2aa3f1fbc58523b062222ae1136eeed7a95c", + "bytes": 230444, + "sampleRate": 24000, + "channels": 1, + "duration": 4.8, + "rms": 0.10000151520861549, + "peak": 0.48170414566993713 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-hat.wav?v=0.2.3", + "sha256": "4ff43dd042f4b5451e9fdeb3edd59f1e389a7d1dd488094587a3a9fc7dfffa44", + "bytes": 191276, + "sampleRate": 24000, + "channels": 1, + "duration": 3.984, + "rms": 0.10000132502946775, + "peak": 0.417083740234375 + }, + { + "url": "http://127.0.0.1:4173/audio/last-market.wav?v=0.2.3", + "sha256": "7857e87e9dbfe8fe849cc0b18c1d45b60916cb337328099c7a87a42c82e2821e", + "bytes": 359468, + "sampleRate": 24000, + "channels": 1, + "duration": 7.488, + "rms": 0.10000148064140717, + "peak": 0.600555419921875 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-meat.wav?v=0.2.3", + "sha256": "94f8a4f9e116a787e5ed052661d6de9ecf3ad8629db476661dd59ad03014b0c9", + "bytes": 244268, + "sampleRate": 24000, + "channels": 1, + "duration": 5.088, + "rms": 0.10000146176253134, + "peak": 0.44187748432159424 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-oil.wav?v=0.2.3", + "sha256": "55b2c7d6aa8bbce04edf8661882c9781da81c57f56217f99b80457a3bb895da0", + "bytes": 369836, + "sampleRate": 24000, + "channels": 1, + "duration": 7.704, + "rms": 0.10000146897241707, + "peak": 0.6239814162254333 + }, + { + "url": "http://127.0.0.1:4173/audio/first-sound.wav?v=0.2.3", + "sha256": "46f6adeed928a16af0700f1e8626cf8049f124632a04a5d10604426fb06f9596", + "bytes": 353708, + "sampleRate": 24000, + "channels": 1, + "duration": 7.368, + "rms": 0.10000157588418972, + "peak": 0.5189672708511353 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-umbrella.wav?v=0.2.3", + "sha256": "4b4c858a25659540f9dbc524664496fc6de61ab8c1627f3cfee8c9c744e11d5b", + "bytes": 247724, + "sampleRate": 24000, + "channels": 1, + "duration": 5.16, + "rms": 0.10000144286672341, + "peak": 0.46534621715545654 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-oil.wav?v=0.2.3", + "sha256": "3ca98682ff06d1d6b8af02c0fd5b2124f42266ac989884223eff4a9bbde1287a", + "bytes": 399788, + "sampleRate": 24000, + "channels": 1, + "duration": 8.328, + "rms": 0.10000149133669024, + "peak": 0.5243995189666748 + }, + { + "url": "http://127.0.0.1:4173/audio/first-sea.wav?v=0.2.3", + "sha256": "0f0b39314c5f7d7168d4854003c0c284e7bc3438cdc4d1d1c5adab7cb5ed30e5", + "bytes": 349100, + "sampleRate": 24000, + "channels": 1, + "duration": 7.272, + "rms": 0.10000142148394393, + "peak": 0.5717948079109192 + }, + { + "url": "http://127.0.0.1:4173/audio/last-meat.wav?v=0.2.3", + "sha256": "10f8ad4259ed8945c9da831e80b3902303c09caef96d400298599168fb1efed4", + "bytes": 346796, + "sampleRate": 24000, + "channels": 1, + "duration": 7.224, + "rms": 0.10000155834091913, + "peak": 0.537200927734375 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-umbrella.wav?v=0.2.3", + "sha256": "399ea2f681f755918f1117c8baba42739ceca64b307b999342f457a9235050b6", + "bytes": 368684, + "sampleRate": 24000, + "channels": 1, + "duration": 7.68, + "rms": 0.10000155028684544, + "peak": 0.569549560546875 + }, + { + "url": "http://127.0.0.1:4173/audio/message-meat.wav?v=0.2.3", + "sha256": "ce19735df079b54c171e775b6b365385a80160b9033442abab95b2b9c8505e1a", + "bytes": 512684, + "sampleRate": 24000, + "channels": 1, + "duration": 10.68, + "rms": 0.10000140834686953, + "peak": 0.5147705078125 + }, + { + "url": "http://127.0.0.1:4173/audio/message-umbrella.wav?v=0.2.3", + "sha256": "41d5866dae66600df4694a8312b531571d44cece6dba0e423e7c43d09d184819", + "bytes": 523052, + "sampleRate": 24000, + "channels": 1, + "duration": 10.896, + "rms": 0.10000120668553683, + "peak": 0.530364990234375 + }, + { + "url": "http://127.0.0.1:4173/audio/last-furniture.wav?v=0.2.3", + "sha256": "5ad4f776e35439d408abed0e66567d6b5cdc80fc54d579165472e474f1238776", + "bytes": 357164, + "sampleRate": 24000, + "channels": 1, + "duration": 7.44, + "rms": 0.10000152394963031, + "peak": 0.583587646484375 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-sea.wav?v=0.2.3", + "sha256": "8838d6a1ee8a790427dc5aa761e70b3d8872af62086efeed743297ff7f8b8a06", + "bytes": 243116, + "sampleRate": 24000, + "channels": 1, + "duration": 5.064, + "rms": 0.10000138788281714, + "peak": 0.45013427734375 + }, + { + "url": "http://127.0.0.1:4173/audio/message-apple.wav?v=0.2.3", + "sha256": "d85e6f47d871369f00de2274139e5ad6b4b5686b5e20e248df0ed6b9a320d942", + "bytes": 517292, + "sampleRate": 24000, + "channels": 1, + "duration": 10.776, + "rms": 0.10000133916854889, + "peak": 0.525360107421875 + }, + { + "url": "http://127.0.0.1:4173/audio/last-hat.wav?v=0.2.3", + "sha256": "bdaf8fbc54df8061e9e58aa8c14b3044a6e863dc54973ee3ee6ae2c5ae1a28f1", + "bytes": 354860, + "sampleRate": 24000, + "channels": 1, + "duration": 7.392, + "rms": 0.10000152378078818, + "peak": 0.550079345703125 + }, + { + "url": "http://127.0.0.1:4173/audio/first-apple.wav?v=0.2.3", + "sha256": "7c1dbcb3082055df2b8f087f7e906ec867c92f679de0894c34740c05e61a4bc1", + "bytes": 359468, + "sampleRate": 24000, + "channels": 1, + "duration": 7.488, + "rms": 0.10000143468253914, + "peak": 0.57977294921875 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-umbrella.wav?v=0.2.3", + "sha256": "8d3e8e8bc97e5fe3f3362184c4abb12f01a882a1f1174d2644f0f70aac677c0a", + "bytes": 192428, + "sampleRate": 24000, + "channels": 1, + "duration": 4.008, + "rms": 0.10000131475711933, + "peak": 0.385650634765625 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-furniture.wav?v=0.2.3", + "sha256": "5c004a7b2f5a4a918c9f689f1a2dcb219a620ed14313f40a9655b36dbf64948d", + "bytes": 398636, + "sampleRate": 24000, + "channels": 1, + "duration": 8.304, + "rms": 0.10000141690978645, + "peak": 0.487396240234375 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-tree.wav?v=0.2.3", + "sha256": "122f496834fb16d6da47f801e50e46e272e4e934af959467d1db4e490f79be7a", + "bytes": 183212, + "sampleRate": 24000, + "channels": 1, + "duration": 3.816, + "rms": 0.10000140751524371, + "peak": 0.36920166015625 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-tree.wav?v=0.2.3", + "sha256": "00d8e77ec0371971d632724d91f8cf8d947bfb83c582a513b6421be4c457a1da", + "bytes": 241964, + "sampleRate": 24000, + "channels": 1, + "duration": 5.04, + "rms": 0.10000146153372488, + "peak": 0.4585406184196472 + }, + { + "url": "http://127.0.0.1:4173/audio/message-tree.wav?v=0.2.3", + "sha256": "5d684aa710a63d36ed8dcc2a8bfbdd5c71b0b1c63dad2a324adecb76591e85b8", + "bytes": 540332, + "sampleRate": 24000, + "channels": 1, + "duration": 11.256, + "rms": 0.10000132424453942, + "peak": 0.5262451171875 + }, + { + "url": "http://127.0.0.1:4173/audio/last-tree.wav?v=0.2.3", + "sha256": "589e56d940a3c9e80ec02ae0b2dd93463fdc85ef019a753fcd0fded0752055f9", + "bytes": 382508, + "sampleRate": 24000, + "channels": 1, + "duration": 7.968, + "rms": 0.10000149781706567, + "peak": 0.5807672142982483 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-tree.wav?v=0.2.3", + "sha256": "341888c75275c13eb31058f53a1d4276be0daa0a1b5a3a45522036928b83b0c1", + "bytes": 382508, + "sampleRate": 24000, + "channels": 1, + "duration": 7.968, + "rms": 0.1000014873304774, + "peak": 0.600024402141571 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-tree.wav?v=0.2.3", + "sha256": "8735c3d9672561ca237fa87317beec2878492eb9063d6048d5b214423561acc1", + "bytes": 423980, + "sampleRate": 24000, + "channels": 1, + "duration": 8.832, + "rms": 0.10000150947389638, + "peak": 0.6187627911567688 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-furniture.wav?v=0.2.3", + "sha256": "52cb92cdb8ee92b6f581c9d68dbc346f180c470564809ba57185429c9eb84127", + "bytes": 186668, + "sampleRate": 24000, + "channels": 1, + "duration": 3.888, + "rms": 0.1000013480244084, + "peak": 0.387054443359375 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-tree.wav?v=0.2.3", + "sha256": "bc8e54f5407e8866bf1ca1ddfd4f6c63d85fee29bd9e430c7dd33e87974fc5b8", + "bytes": 409004, + "sampleRate": 24000, + "channels": 1, + "duration": 8.52, + "rms": 0.10000146559822108, + "peak": 0.5486617684364319 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-tree.wav?v=0.2.3", + "sha256": "b8e8bbe6b8b14727efd953fae9d4aed2caeb004055d52f611c6378322847edbe", + "bytes": 400940, + "sampleRate": 24000, + "channels": 1, + "duration": 8.352, + "rms": 0.10000144970799159, + "peak": 0.470611572265625 + }, + { + "url": "http://127.0.0.1:4173/audio/first-tree.wav?v=0.2.3", + "sha256": "3178230fd5850b6277a2153b438ec5289720e3db7ac929914cc213964f004bd5", + "bytes": 379052, + "sampleRate": 24000, + "channels": 1, + "duration": 7.896, + "rms": 0.10000144270360484, + "peak": 0.5833613276481628 + }, + { + "url": "http://127.0.0.1:4173/audio/password-tree.wav?v=0.2.3", + "sha256": "67da8147296e35134ec254bc82b58317630061b2c64d2d63c4be197ce8692d50", + "bytes": 233900, + "sampleRate": 24000, + "channels": 1, + "duration": 4.872, + "rms": 0.10000156310809623, + "peak": 0.4904019236564636 + } + ] +} diff --git a/.agent/evidence-v0.2.3/privacy-screening/browser-final/audio-음성·현장음-109개-versioned-WAV를-실제-Chrome에서-해시·디코드-검증한다-desktop/browser-audio-integrity.json b/.agent/evidence-v0.2.3/privacy-screening/browser-final/audio-음성·현장음-109개-versioned-WAV를-실제-Chrome에서-해시·디코드-검증한다-desktop/browser-audio-integrity.json new file mode 100644 index 0000000..d6db5ea --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/browser-final/audio-음성·현장음-109개-versioned-WAV를-실제-Chrome에서-해시·디코드-검증한다-desktop/browser-audio-integrity.json @@ -0,0 +1,1098 @@ +{ + "chrome": "146.0.7680.80", + "external": [], + "errors": [], + "failed": [], + "files": [ + { + "url": "http://127.0.0.1:4173/audio/intro.wav?v=0.2.3", + "sha256": "90d9f46e6e3f9c8a0c1a781096df54d7809ef4ad38b289508ef7b8c0411465ce", + "bytes": 338732, + "sampleRate": 24000, + "channels": 1, + "duration": 7.056, + "rms": 0.10000144992850359, + "peak": 0.4998626708984375 + }, + { + "url": "http://127.0.0.1:4173/ambience/street.wav?v=0.2.3", + "sha256": "a8bffa201b174618955bc51b860167169125304811aabe2086b0bb35b06c3ae1", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.07999880181401388, + "peak": 0.3967711329460144 + }, + { + "url": "http://127.0.0.1:4173/ambience/mall.wav?v=0.2.3", + "sha256": "680a769940c08f0d12c6c954c08366598dd8b5745e276f39c82b10d1a88261a1", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.07999875178666456, + "peak": 0.7191991806030273 + }, + { + "url": "http://127.0.0.1:4173/ambience/theater.wav?v=0.2.3", + "sha256": "2d6a444fb7874cdf6b2d8a741a69175299b112eb66834912c025437d8277d635", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.07999878601263052, + "peak": 0.495086669921875 + }, + { + "url": "http://127.0.0.1:4173/ambience/department.wav?v=0.2.3", + "sha256": "aa43f3d1d3e7c2b1f8ace24ecbda45d0ea3a031db941c39506dc6c1665b8efa7", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.07999879026023995, + "peak": 0.4749900698661804 + }, + { + "url": "http://127.0.0.1:4173/ambience/market.wav?v=0.2.3", + "sha256": "7a7a980845a4aade2a7e8a108eae746220a4688e92792ee93d3deb76b2a762f6", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.07999876626924392, + "peak": 0.507232666015625 + }, + { + "url": "http://127.0.0.1:4173/ambience/subway.wav?v=0.2.3", + "sha256": "9faf70b68617d267b367a0f3692ed90015458543ab4b0844f6c704e6a724728f", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.079998775670051, + "peak": 0.42530596256256104 + }, + { + "url": "http://127.0.0.1:4173/ambience/cafe.wav?v=0.2.3", + "sha256": "802a956e91b85a2fdd0e1f161d75bfada7a53499bcb57ba7f578411480ded216", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.0799987945764348, + "peak": 0.44708251953125 + }, + { + "url": "http://127.0.0.1:4173/ambience/rain.wav?v=0.2.3", + "sha256": "f4315084e820f742b0709de5bb0d1abd3d5af1730620e08c2948b70347356dd9", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.011384798571746246, + "peak": 0.1024169921875 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-apple.wav?v=0.2.3", + "sha256": "cb7da4e9a1288cac64d168b241f27d7d2bc2dfecace58744f9bbf2792dfad04e", + "bytes": 397484, + "sampleRate": 24000, + "channels": 1, + "duration": 8.28, + "rms": 0.10000142448574952, + "peak": 0.6414685249328613 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-market.wav?v=0.2.3", + "sha256": "b8d25b867497adcd0fe7c8b6a8a8d2e7a52965956738a83e53f58735708773f9", + "bytes": 405548, + "sampleRate": 24000, + "channels": 1, + "duration": 8.448, + "rms": 0.10000141405173993, + "peak": 0.491485595703125 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-sound.wav?v=0.2.3", + "sha256": "34e4d9758d2ed448646fda364610e34779c84794403d9051ab3d8c1d33e2c80c", + "bytes": 184364, + "sampleRate": 24000, + "channels": 1, + "duration": 3.84, + "rms": 0.10000138709171018, + "peak": 0.386322021484375 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-furniture.wav?v=0.2.3", + "sha256": "b45b1afc8d9b534ff3e0a2a2ecb99efc1f4e40d41f89f55c4ed8ba94ad6d76d4", + "bytes": 354860, + "sampleRate": 24000, + "channels": 1, + "duration": 7.392, + "rms": 0.1000015072973225, + "peak": 0.5576171875 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-market.wav?v=0.2.3", + "sha256": "cefa0e95649ea6bd1df4c8dfccd2b74b4f4c028714420ce1087b61db2f2a8d47", + "bytes": 248876, + "sampleRate": 24000, + "channels": 1, + "duration": 5.184, + "rms": 0.10000142548167161, + "peak": 0.4857020676136017 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-oil.wav?v=0.2.3", + "sha256": "f6eff0cdddcad9790351491e60c53cb2a70d222033a583652f2de0b8cd6abcc7", + "bytes": 406700, + "sampleRate": 24000, + "channels": 1, + "duration": 8.472, + "rms": 0.10000139122025363, + "peak": 0.470794677734375 + }, + { + "url": "http://127.0.0.1:4173/audio/first-hat.wav?v=0.2.3", + "sha256": "17c8cde90567e7574b0c0702663bd70713054089ee920241b5444d9b7869eef5", + "bytes": 357164, + "sampleRate": 24000, + "channels": 1, + "duration": 7.44, + "rms": 0.10000152904790521, + "peak": 0.5312662124633789 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-furniture.wav?v=0.2.3", + "sha256": "af82e03b686635c3356e706fe5b05c1231aeaaeab33f275aa5b8714988c65d43", + "bytes": 241964, + "sampleRate": 24000, + "channels": 1, + "duration": 5.04, + "rms": 0.10000137346142077, + "peak": 0.4852443039417267 + }, + { + "url": "http://127.0.0.1:4173/audio/password-sound.wav?v=0.2.3", + "sha256": "044aafff08a19e39f21e58b963644715a987cd155896998769ef8e9ce6449628", + "bytes": 236204, + "sampleRate": 24000, + "channels": 1, + "duration": 4.92, + "rms": 0.10000156641621728, + "peak": 0.4621112644672394 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-hat.wav?v=0.2.3", + "sha256": "f9f98c91cfbcfcb106eef7d5d3795a9cf3c3aab7e19a60f13d7dffe284d19f86", + "bytes": 398636, + "sampleRate": 24000, + "channels": 1, + "duration": 8.304, + "rms": 0.10000141071544869, + "peak": 0.470977783203125 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-apple.wav?v=0.2.3", + "sha256": "7c8f413f4b7e164f090e508ba090448f1376c6012649bbb6a917d45851313883", + "bytes": 188972, + "sampleRate": 24000, + "channels": 1, + "duration": 3.936, + "rms": 0.10000130469939268, + "peak": 0.401641845703125 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-sea.wav?v=0.2.3", + "sha256": "db2f235bee26ac804b5362e8e013b8f40c8da24fd3a34e0fb3b43c6d264feb36", + "bytes": 382508, + "sampleRate": 24000, + "channels": 1, + "duration": 7.968, + "rms": 0.10000145042993039, + "peak": 0.6843470335006714 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-furniture.wav?v=0.2.3", + "sha256": "442bdcb956f120c270e1f321feae0415c897de0183e468980fcc119b898b2a67", + "bytes": 403244, + "sampleRate": 24000, + "channels": 1, + "duration": 8.4, + "rms": 0.10000149119200713, + "peak": 0.5619068145751953 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-sea.wav?v=0.2.3", + "sha256": "b6dbe0af143ea775f05bd59a3d6af348bcc770ab378ac91ea75a56e06c326edf", + "bytes": 346796, + "sampleRate": 24000, + "channels": 1, + "duration": 7.224, + "rms": 0.10000144532868623, + "peak": 0.56494140625 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-sound.wav?v=0.2.3", + "sha256": "e9d636ff7f4777f38b1ff15bebdcec6fbde95b4b4b05625a7415b4cfa0025b59", + "bytes": 395180, + "sampleRate": 24000, + "channels": 1, + "duration": 8.232, + "rms": 0.10000164955559301, + "peak": 0.6114688515663147 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-apple.wav?v=0.2.3", + "sha256": "3ef42e276ff3500c3e197d149f29f79d6a0c1d5516ed1d5a2c57210333fded9c", + "bytes": 246572, + "sampleRate": 24000, + "channels": 1, + "duration": 5.136, + "rms": 0.10000144279302126, + "peak": 0.4701681435108185 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-market.wav?v=0.2.3", + "sha256": "356af25332bf2000ed349671f3ff39767929e1f4599af622c021f907d11fb7bf", + "bytes": 194732, + "sampleRate": 24000, + "channels": 1, + "duration": 4.056, + "rms": 0.10000132629820717, + "peak": 0.4022216796875 + }, + { + "url": "http://127.0.0.1:4173/audio/message-sea.wav?v=0.2.3", + "sha256": "28a461fbe03bffe2560030dea8b60715f7c0fe262dcf85b5b7f7daf483836382", + "bytes": 517292, + "sampleRate": 24000, + "channels": 1, + "duration": 10.776, + "rms": 0.10000130584401576, + "peak": 0.53521728515625 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-umbrella.wav?v=0.2.3", + "sha256": "c8988e604ba05d52597e561389541e8f9cda86e052279f1862bbf8399ead314e", + "bytes": 403244, + "sampleRate": 24000, + "channels": 1, + "duration": 8.4, + "rms": 0.10000148262660476, + "peak": 0.557830810546875 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-hat.wav?v=0.2.3", + "sha256": "308278ec2bd27d4224976a55632d1f7fa1edabb0792126d9d858a699c287aee4", + "bytes": 245420, + "sampleRate": 24000, + "channels": 1, + "duration": 5.112, + "rms": 0.10000140702099906, + "peak": 0.4498428404331207 + }, + { + "url": "http://127.0.0.1:4173/audio/password-furniture.wav?v=0.2.3", + "sha256": "fb2b631dd4e12120d08a84cce6450f9cd9cd68105d13d7001d808e7deaa1df4a", + "bytes": 233900, + "sampleRate": 24000, + "channels": 1, + "duration": 4.872, + "rms": 0.10000146718546903, + "peak": 0.4836573302745819 + }, + { + "url": "http://127.0.0.1:4173/audio/first-market.wav?v=0.2.3", + "sha256": "1e00b8f70a796cdebb0feb00c605fece7488b06915e6e036f54206f05e201e0c", + "bytes": 359468, + "sampleRate": 24000, + "channels": 1, + "duration": 7.488, + "rms": 0.10000152633991319, + "peak": 0.6390880942344666 + }, + { + "url": "http://127.0.0.1:4173/audio/first-meat.wav?v=0.2.3", + "sha256": "f51a37c1722fef581f7d642a4dcae7fcb9953b3c318dce971bf616cd1a81fecc", + "bytes": 345644, + "sampleRate": 24000, + "channels": 1, + "duration": 7.2, + "rms": 0.10000152244411063, + "peak": 0.5131382346153259 + }, + { + "url": "http://127.0.0.1:4173/audio/password-sea.wav?v=0.2.3", + "sha256": "03f45b8cb5b3dc72faf5c6e3d0e2a10cea6b60301ea400d0a4453596d2f0b337", + "bytes": 232748, + "sampleRate": 24000, + "channels": 1, + "duration": 4.848, + "rms": 0.10000144821976133, + "peak": 0.5339213013648987 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-sound.wav?v=0.2.3", + "sha256": "98387ccc7aab566f6487d4c250b2128082cc527e013a6f7b7bc4d0266ac295df", + "bytes": 394028, + "sampleRate": 24000, + "channels": 1, + "duration": 8.208, + "rms": 0.10000158053850364, + "peak": 0.5377971529960632 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-umbrella.wav?v=0.2.3", + "sha256": "5e59ef39113c3d5e106862356d715f4cef2862ef8ee02654a97e532675c1ac6d", + "bytes": 410156, + "sampleRate": 24000, + "channels": 1, + "duration": 8.544, + "rms": 0.10000147499132286, + "peak": 0.6748558282852173 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-hat.wav?v=0.2.3", + "sha256": "b01ef9762ac84e3eb757243bc9286c62f7d45444a821ae35ac36a8b095e1598a", + "bytes": 353708, + "sampleRate": 24000, + "channels": 1, + "duration": 7.368, + "rms": 0.10000153089787694, + "peak": 0.555206298828125 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-market.wav?v=0.2.3", + "sha256": "d89792da51c83ac49d27e55aa6d822a338899a5ee487b34b552748201e1522f6", + "bytes": 398636, + "sampleRate": 24000, + "channels": 1, + "duration": 8.304, + "rms": 0.10000149710778367, + "peak": 0.5728324055671692 + }, + { + "url": "http://127.0.0.1:4173/audio/password-umbrella.wav?v=0.2.3", + "sha256": "ab3ca6398c879971dc793eb25b472fcc0db72d76e386f11ef4d32c639f37c69d", + "bytes": 239660, + "sampleRate": 24000, + "channels": 1, + "duration": 4.992, + "rms": 0.100001426973271, + "peak": 0.4776757061481476 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-meat.wav?v=0.2.3", + "sha256": "48e91b3932d3798e852041a854b3ee08c72127e092c62083a47af6b99adff241", + "bytes": 403244, + "sampleRate": 24000, + "channels": 1, + "duration": 8.4, + "rms": 0.10000140336390047, + "peak": 0.481536865234375 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-hat.wav?v=0.2.3", + "sha256": "6e089a42fd7e65e82eec7186d369c926fb7fdac794365b2bd7658822fd92437c", + "bytes": 396332, + "sampleRate": 24000, + "channels": 1, + "duration": 8.256, + "rms": 0.1000015662548192, + "peak": 0.616748571395874 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-sound.wav?v=0.2.3", + "sha256": "4d00aa6114327f450a00dacbc7e7b572ebf1de4ce9dc2fe4b5505766cca71ce9", + "bytes": 353708, + "sampleRate": 24000, + "channels": 1, + "duration": 7.368, + "rms": 0.10000162019345048, + "peak": 0.5348368883132935 + }, + { + "url": "http://127.0.0.1:4173/audio/last-oil.wav?v=0.2.3", + "sha256": "b5ce34950b8b31b1baf6ce55410797f0d8aa5478a670d6eace87cf76d134d6d3", + "bytes": 337580, + "sampleRate": 24000, + "channels": 1, + "duration": 7.032, + "rms": 0.10000149980584365, + "peak": 0.55706787109375 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-sea.wav?v=0.2.3", + "sha256": "47aa31d757c9fb49c9b53a1c052d90a5ced4be57549d649850d9b48f8864045b", + "bytes": 191276, + "sampleRate": 24000, + "channels": 1, + "duration": 3.984, + "rms": 0.10000129182106483, + "peak": 0.388702392578125 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-sound.wav?v=0.2.3", + "sha256": "659eb0e2b06e6b165b46744769743e032e2282519f8486c57bc45e0f7d07a069", + "bytes": 240812, + "sampleRate": 24000, + "channels": 1, + "duration": 5.016, + "rms": 0.10000152909529536, + "peak": 0.45481735467910767 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-meat.wav?v=0.2.3", + "sha256": "6599d2fac73ea616a793151b4ce6f51af673988d630bac6219a77e78ae6cb34e", + "bytes": 380204, + "sampleRate": 24000, + "channels": 1, + "duration": 7.92, + "rms": 0.1000016061190976, + "peak": 0.5921201109886169 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-market.wav?v=0.2.3", + "sha256": "c855b449e0d4ace74681bfe68e5e7f0b063568827ae872017234dbe8ae119e4c", + "bytes": 356012, + "sampleRate": 24000, + "channels": 1, + "duration": 7.416, + "rms": 0.10000151456676445, + "peak": 0.5949888825416565 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-furniture.wav?v=0.2.3", + "sha256": "bf84dc6cff1f227924a3a62158d2fc18769fb0ca40b91418fa19e534dbf92f00", + "bytes": 397484, + "sampleRate": 24000, + "channels": 1, + "duration": 8.28, + "rms": 0.10000155255948041, + "peak": 0.6670430898666382 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-sound.wav?v=0.2.3", + "sha256": "5a603bc69979603afddcaeb6edf500a7c540b72405daeb33f5335d746b327da1", + "bytes": 397484, + "sampleRate": 24000, + "channels": 1, + "duration": 8.28, + "rms": 0.10000146491234768, + "peak": 0.469268798828125 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-meat.wav?v=0.2.3", + "sha256": "9183ef90b64f5ceaf3bb0178c689231ff3e9981d6ce889124a15f2a6e2b7a344", + "bytes": 395180, + "sampleRate": 24000, + "channels": 1, + "duration": 8.232, + "rms": 0.10000155087122137, + "peak": 0.5193029642105103 + }, + { + "url": "http://127.0.0.1:4173/audio/last-sound.wav?v=0.2.3", + "sha256": "ec9c49802aebeb6a8b898a1c0d8ad1daa127d2d64c905c197ed49a8e0c4eb64a", + "bytes": 354860, + "sampleRate": 24000, + "channels": 1, + "duration": 7.392, + "rms": 0.10000165748716579, + "peak": 0.5641041398048401 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-oil.wav?v=0.2.3", + "sha256": "5fb63e04520c312aa6b7b48b70c2f7c140b5ab480e5c6992edbc2ba85b9a06e7", + "bytes": 241964, + "sampleRate": 24000, + "channels": 1, + "duration": 5.04, + "rms": 0.10000143720418167, + "peak": 0.443586528301239 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-umbrella.wav?v=0.2.3", + "sha256": "92b54f04884ab915783945077efd8f3bd443849a1720f72168b6348cae1f8e85", + "bytes": 406700, + "sampleRate": 24000, + "channels": 1, + "duration": 8.472, + "rms": 0.10000140257790288, + "peak": 0.479034423828125 + }, + { + "url": "http://127.0.0.1:4173/audio/message-sound.wav?v=0.2.3", + "sha256": "1e682147dae8026ba78dc8f256c7f24acb3a6743bfd88a0fcc86096930eef078", + "bytes": 521900, + "sampleRate": 24000, + "channels": 1, + "duration": 10.872, + "rms": 0.10000138583471241, + "peak": 0.51953125 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-apple.wav?v=0.2.3", + "sha256": "ccd7327a3fb54d3320d049ffdced3bc17595861cee69429c0ee97182d454195b", + "bytes": 402092, + "sampleRate": 24000, + "channels": 1, + "duration": 8.376, + "rms": 0.10000140667715379, + "peak": 0.490325927734375 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-sea.wav?v=0.2.3", + "sha256": "5c91a36496e274d2be9c6fa8d9b506cd04f2a1b7ceb05ed1b7bb03fe7fca99d9", + "bytes": 399788, + "sampleRate": 24000, + "channels": 1, + "duration": 8.328, + "rms": 0.10000144241513113, + "peak": 0.5465559959411621 + }, + { + "url": "http://127.0.0.1:4173/audio/message-hat.wav?v=0.2.3", + "sha256": "5a713a8522b231bb8276805c014b385b9150b79f58ff2618446607e2b442495e", + "bytes": 518444, + "sampleRate": 24000, + "channels": 1, + "duration": 10.8, + "rms": 0.10000136927555209, + "peak": 0.587005615234375 + }, + { + "url": "http://127.0.0.1:4173/audio/password-meat.wav?v=0.2.3", + "sha256": "b009caadd56350d6a641ff17f0973e2b2724c183e1f45ae0bf3c483e237fa99e", + "bytes": 240812, + "sampleRate": 24000, + "channels": 1, + "duration": 5.016, + "rms": 0.10000148386024335, + "peak": 0.4978789687156677 + }, + { + "url": "http://127.0.0.1:4173/audio/message-market.wav?v=0.2.3", + "sha256": "9242d4cd6e0030e6b073e4d2360f84aa8a454d1749711cdb2d64c14f28a7ea20", + "bytes": 523052, + "sampleRate": 24000, + "channels": 1, + "duration": 10.896, + "rms": 0.10000133805787564, + "peak": 0.534820556640625 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-apple.wav?v=0.2.3", + "sha256": "8832f1b793ab3eedbe663875ea8dbeabb122c329bd5879437c71230b0418c3c8", + "bytes": 360620, + "sampleRate": 24000, + "channels": 1, + "duration": 7.512, + "rms": 0.10000145024648589, + "peak": 0.553558349609375 + }, + { + "url": "http://127.0.0.1:4173/audio/last-umbrella.wav?v=0.2.3", + "sha256": "c801293a34013a8d93d3289a2cc87cd3eed83f97ba4647f5060efa00b117a9ad", + "bytes": 370988, + "sampleRate": 24000, + "channels": 1, + "duration": 7.728, + "rms": 0.10000149360501835, + "peak": 0.59765625 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-sea.wav?v=0.2.3", + "sha256": "9233431d78ab4b144e3c33ad0cf0d49fc0fb91b29514343230ba32987b794bb3", + "bytes": 398636, + "sampleRate": 24000, + "channels": 1, + "duration": 8.304, + "rms": 0.10000134688905045, + "peak": 0.49616992473602295 + }, + { + "url": "http://127.0.0.1:4173/audio/password-apple.wav?v=0.2.3", + "sha256": "b6f5de3fe571fe3a7fdb722fe49250bcfeedef49475271e0ec76a7630907edd5", + "bytes": 235052, + "sampleRate": 24000, + "channels": 1, + "duration": 4.896, + "rms": 0.10000148212193387, + "peak": 0.4834437072277069 + }, + { + "url": "http://127.0.0.1:4173/audio/first-furniture.wav?v=0.2.3", + "sha256": "29f007b385b7182db1d8aeccad4fc3c260df5e66e14e52a46b0ef0fcd0ff3a0a", + "bytes": 364076, + "sampleRate": 24000, + "channels": 1, + "duration": 7.584, + "rms": 0.1000014551820741, + "peak": 0.5700552463531494 + }, + { + "url": "http://127.0.0.1:4173/audio/password-hat.wav?v=0.2.3", + "sha256": "e91bfc97df90a1675b6cd856880ac15c54de32cfc3b23603bdd1c2c5ac3ce6b8", + "bytes": 235052, + "sampleRate": 24000, + "channels": 1, + "duration": 4.896, + "rms": 0.10000146155157119, + "peak": 0.5059053301811218 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-oil.wav?v=0.2.3", + "sha256": "7a6b122b11c07da86c95fb78e2db2a70681b5219c63d6441fe56da1979ac1dc3", + "bytes": 334124, + "sampleRate": 24000, + "channels": 1, + "duration": 6.96, + "rms": 0.1000014880654183, + "peak": 0.539933443069458 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-meat.wav?v=0.2.3", + "sha256": "d416107cc05e7c5b92ca27100a10a8a9689de913346179945d5542de4a6bac0c", + "bytes": 342188, + "sampleRate": 24000, + "channels": 1, + "duration": 7.128, + "rms": 0.10000157422522808, + "peak": 0.510833740234375 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-apple.wav?v=0.2.3", + "sha256": "1bf2aef9a9f030af1a8fd7dee8f44aa420a397b3ba99b575feeb3dc7a63ec191", + "bytes": 395180, + "sampleRate": 24000, + "channels": 1, + "duration": 8.232, + "rms": 0.10000148399213096, + "peak": 0.563568115234375 + }, + { + "url": "http://127.0.0.1:4173/audio/first-oil.wav?v=0.2.3", + "sha256": "f415195e0cfc7ee711d09de7519e88eab62cc8b58d70772c83c3f5c27c267819", + "bytes": 335276, + "sampleRate": 24000, + "channels": 1, + "duration": 6.984, + "rms": 0.10000145886808136, + "peak": 0.5347453355789185 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-hat.wav?v=0.2.3", + "sha256": "31a6a4270bf368cda419094d87a303ac3cd5c22539786cb165f8044b0b8e9d6e", + "bytes": 402092, + "sampleRate": 24000, + "channels": 1, + "duration": 8.376, + "rms": 0.10000145804818952, + "peak": 0.541778564453125 + }, + { + "url": "http://127.0.0.1:4173/audio/message-furniture.wav?v=0.2.3", + "sha256": "26c331b7e12311236f4bb48f88918dfbf53cccd2f50b55741ea6ff4473e71dd8", + "bytes": 521900, + "sampleRate": 24000, + "channels": 1, + "duration": 10.872, + "rms": 0.10000134596838128, + "peak": 0.529327392578125 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-oil.wav?v=0.2.3", + "sha256": "3fa1e662a3af8f2726b17b2baa5bec2934406e6595ebc243c8380dd16e190977", + "bytes": 190124, + "sampleRate": 24000, + "channels": 1, + "duration": 3.96, + "rms": 0.10000134375667624, + "peak": 0.3817255198955536 + }, + { + "url": "http://127.0.0.1:4173/audio/last-sea.wav?v=0.2.3", + "sha256": "f755452e1da44674aa1df7d12edffa988091b89a394e7eb6d4a00eb721f07cbf", + "bytes": 345644, + "sampleRate": 24000, + "channels": 1, + "duration": 7.2, + "rms": 0.10000140162255576, + "peak": 0.591033935546875 + }, + { + "url": "http://127.0.0.1:4173/audio/password-oil.wav?v=0.2.3", + "sha256": "b472957b27ff98ea7b8894fa1ff12653f7e9f66f77870faa9e52a1c1bf116c41", + "bytes": 240812, + "sampleRate": 24000, + "channels": 1, + "duration": 5.016, + "rms": 0.10000146772662066, + "peak": 0.4945219159126282 + }, + { + "url": "http://127.0.0.1:4173/audio/first-umbrella.wav?v=0.2.3", + "sha256": "878e0bd2e6e4105f175aef51a028f6b141f3a2072be20f783193f3ba897a3ee0", + "bytes": 366380, + "sampleRate": 24000, + "channels": 1, + "duration": 7.632, + "rms": 0.10000147647908036, + "peak": 0.5700247287750244 + }, + { + "url": "http://127.0.0.1:4173/audio/last-apple.wav?v=0.2.3", + "sha256": "4cb2a8579fa3a7b91bb36363826ce8ca0d6d86e96e16a479e226a2802edd82f7", + "bytes": 356012, + "sampleRate": 24000, + "channels": 1, + "duration": 7.416, + "rms": 0.10000144523423521, + "peak": 0.622528076171875 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-market.wav?v=0.2.3", + "sha256": "68a5b899115a66ab225d610ec47b4de56cc8793657362bc38f533c06f741e4cc", + "bytes": 402092, + "sampleRate": 24000, + "channels": 1, + "duration": 8.376, + "rms": 0.10000160159844854, + "peak": 0.6822717785835266 + }, + { + "url": "http://127.0.0.1:4173/audio/message-oil.wav?v=0.2.3", + "sha256": "a2a71a7e5e07c81871a25c6cb7540c39aa0b32fc44f78cda66b5f34ace98d805", + "bytes": 509228, + "sampleRate": 24000, + "channels": 1, + "duration": 10.608, + "rms": 0.10000135184106136, + "peak": 0.51812744140625 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-meat.wav?v=0.2.3", + "sha256": "d36dfc395a5c53fbfa4abe9980db7bb59adfdac59e40318c4aca365365e3f2ab", + "bytes": 187820, + "sampleRate": 24000, + "channels": 1, + "duration": 3.912, + "rms": 0.1000013329979738, + "peak": 0.371124267578125 + }, + { + "url": "http://127.0.0.1:4173/audio/password-market.wav?v=0.2.3", + "sha256": "02e325fb753ef7a3ee585a03d2ca2aa3f1fbc58523b062222ae1136eeed7a95c", + "bytes": 230444, + "sampleRate": 24000, + "channels": 1, + "duration": 4.8, + "rms": 0.10000151520861549, + "peak": 0.48170414566993713 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-hat.wav?v=0.2.3", + "sha256": "4ff43dd042f4b5451e9fdeb3edd59f1e389a7d1dd488094587a3a9fc7dfffa44", + "bytes": 191276, + "sampleRate": 24000, + "channels": 1, + "duration": 3.984, + "rms": 0.10000132502946775, + "peak": 0.417083740234375 + }, + { + "url": "http://127.0.0.1:4173/audio/last-market.wav?v=0.2.3", + "sha256": "7857e87e9dbfe8fe849cc0b18c1d45b60916cb337328099c7a87a42c82e2821e", + "bytes": 359468, + "sampleRate": 24000, + "channels": 1, + "duration": 7.488, + "rms": 0.10000148064140717, + "peak": 0.600555419921875 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-meat.wav?v=0.2.3", + "sha256": "94f8a4f9e116a787e5ed052661d6de9ecf3ad8629db476661dd59ad03014b0c9", + "bytes": 244268, + "sampleRate": 24000, + "channels": 1, + "duration": 5.088, + "rms": 0.10000146176253134, + "peak": 0.44187748432159424 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-oil.wav?v=0.2.3", + "sha256": "55b2c7d6aa8bbce04edf8661882c9781da81c57f56217f99b80457a3bb895da0", + "bytes": 369836, + "sampleRate": 24000, + "channels": 1, + "duration": 7.704, + "rms": 0.10000146897241707, + "peak": 0.6239814162254333 + }, + { + "url": "http://127.0.0.1:4173/audio/first-sound.wav?v=0.2.3", + "sha256": "46f6adeed928a16af0700f1e8626cf8049f124632a04a5d10604426fb06f9596", + "bytes": 353708, + "sampleRate": 24000, + "channels": 1, + "duration": 7.368, + "rms": 0.10000157588418972, + "peak": 0.5189672708511353 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-umbrella.wav?v=0.2.3", + "sha256": "4b4c858a25659540f9dbc524664496fc6de61ab8c1627f3cfee8c9c744e11d5b", + "bytes": 247724, + "sampleRate": 24000, + "channels": 1, + "duration": 5.16, + "rms": 0.10000144286672341, + "peak": 0.46534621715545654 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-oil.wav?v=0.2.3", + "sha256": "3ca98682ff06d1d6b8af02c0fd5b2124f42266ac989884223eff4a9bbde1287a", + "bytes": 399788, + "sampleRate": 24000, + "channels": 1, + "duration": 8.328, + "rms": 0.10000149133669024, + "peak": 0.5243995189666748 + }, + { + "url": "http://127.0.0.1:4173/audio/first-sea.wav?v=0.2.3", + "sha256": "0f0b39314c5f7d7168d4854003c0c284e7bc3438cdc4d1d1c5adab7cb5ed30e5", + "bytes": 349100, + "sampleRate": 24000, + "channels": 1, + "duration": 7.272, + "rms": 0.10000142148394393, + "peak": 0.5717948079109192 + }, + { + "url": "http://127.0.0.1:4173/audio/last-meat.wav?v=0.2.3", + "sha256": "10f8ad4259ed8945c9da831e80b3902303c09caef96d400298599168fb1efed4", + "bytes": 346796, + "sampleRate": 24000, + "channels": 1, + "duration": 7.224, + "rms": 0.10000155834091913, + "peak": 0.537200927734375 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-umbrella.wav?v=0.2.3", + "sha256": "399ea2f681f755918f1117c8baba42739ceca64b307b999342f457a9235050b6", + "bytes": 368684, + "sampleRate": 24000, + "channels": 1, + "duration": 7.68, + "rms": 0.10000155028684544, + "peak": 0.569549560546875 + }, + { + "url": "http://127.0.0.1:4173/audio/message-meat.wav?v=0.2.3", + "sha256": "ce19735df079b54c171e775b6b365385a80160b9033442abab95b2b9c8505e1a", + "bytes": 512684, + "sampleRate": 24000, + "channels": 1, + "duration": 10.68, + "rms": 0.10000140834686953, + "peak": 0.5147705078125 + }, + { + "url": "http://127.0.0.1:4173/audio/message-umbrella.wav?v=0.2.3", + "sha256": "41d5866dae66600df4694a8312b531571d44cece6dba0e423e7c43d09d184819", + "bytes": 523052, + "sampleRate": 24000, + "channels": 1, + "duration": 10.896, + "rms": 0.10000120668553683, + "peak": 0.530364990234375 + }, + { + "url": "http://127.0.0.1:4173/audio/last-furniture.wav?v=0.2.3", + "sha256": "5ad4f776e35439d408abed0e66567d6b5cdc80fc54d579165472e474f1238776", + "bytes": 357164, + "sampleRate": 24000, + "channels": 1, + "duration": 7.44, + "rms": 0.10000152394963031, + "peak": 0.583587646484375 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-sea.wav?v=0.2.3", + "sha256": "8838d6a1ee8a790427dc5aa761e70b3d8872af62086efeed743297ff7f8b8a06", + "bytes": 243116, + "sampleRate": 24000, + "channels": 1, + "duration": 5.064, + "rms": 0.10000138788281714, + "peak": 0.45013427734375 + }, + { + "url": "http://127.0.0.1:4173/audio/message-apple.wav?v=0.2.3", + "sha256": "d85e6f47d871369f00de2274139e5ad6b4b5686b5e20e248df0ed6b9a320d942", + "bytes": 517292, + "sampleRate": 24000, + "channels": 1, + "duration": 10.776, + "rms": 0.10000133916854889, + "peak": 0.525360107421875 + }, + { + "url": "http://127.0.0.1:4173/audio/last-hat.wav?v=0.2.3", + "sha256": "bdaf8fbc54df8061e9e58aa8c14b3044a6e863dc54973ee3ee6ae2c5ae1a28f1", + "bytes": 354860, + "sampleRate": 24000, + "channels": 1, + "duration": 7.392, + "rms": 0.10000152378078818, + "peak": 0.550079345703125 + }, + { + "url": "http://127.0.0.1:4173/audio/first-apple.wav?v=0.2.3", + "sha256": "7c1dbcb3082055df2b8f087f7e906ec867c92f679de0894c34740c05e61a4bc1", + "bytes": 359468, + "sampleRate": 24000, + "channels": 1, + "duration": 7.488, + "rms": 0.10000143468253914, + "peak": 0.57977294921875 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-umbrella.wav?v=0.2.3", + "sha256": "8d3e8e8bc97e5fe3f3362184c4abb12f01a882a1f1174d2644f0f70aac677c0a", + "bytes": 192428, + "sampleRate": 24000, + "channels": 1, + "duration": 4.008, + "rms": 0.10000131475711933, + "peak": 0.385650634765625 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-furniture.wav?v=0.2.3", + "sha256": "5c004a7b2f5a4a918c9f689f1a2dcb219a620ed14313f40a9655b36dbf64948d", + "bytes": 398636, + "sampleRate": 24000, + "channels": 1, + "duration": 8.304, + "rms": 0.10000141690978645, + "peak": 0.487396240234375 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-tree.wav?v=0.2.3", + "sha256": "122f496834fb16d6da47f801e50e46e272e4e934af959467d1db4e490f79be7a", + "bytes": 183212, + "sampleRate": 24000, + "channels": 1, + "duration": 3.816, + "rms": 0.10000140751524371, + "peak": 0.36920166015625 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-tree.wav?v=0.2.3", + "sha256": "00d8e77ec0371971d632724d91f8cf8d947bfb83c582a513b6421be4c457a1da", + "bytes": 241964, + "sampleRate": 24000, + "channels": 1, + "duration": 5.04, + "rms": 0.10000146153372488, + "peak": 0.4585406184196472 + }, + { + "url": "http://127.0.0.1:4173/audio/message-tree.wav?v=0.2.3", + "sha256": "5d684aa710a63d36ed8dcc2a8bfbdd5c71b0b1c63dad2a324adecb76591e85b8", + "bytes": 540332, + "sampleRate": 24000, + "channels": 1, + "duration": 11.256, + "rms": 0.10000132424453942, + "peak": 0.5262451171875 + }, + { + "url": "http://127.0.0.1:4173/audio/last-tree.wav?v=0.2.3", + "sha256": "589e56d940a3c9e80ec02ae0b2dd93463fdc85ef019a753fcd0fded0752055f9", + "bytes": 382508, + "sampleRate": 24000, + "channels": 1, + "duration": 7.968, + "rms": 0.10000149781706567, + "peak": 0.5807672142982483 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-tree.wav?v=0.2.3", + "sha256": "341888c75275c13eb31058f53a1d4276be0daa0a1b5a3a45522036928b83b0c1", + "bytes": 382508, + "sampleRate": 24000, + "channels": 1, + "duration": 7.968, + "rms": 0.1000014873304774, + "peak": 0.600024402141571 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-tree.wav?v=0.2.3", + "sha256": "8735c3d9672561ca237fa87317beec2878492eb9063d6048d5b214423561acc1", + "bytes": 423980, + "sampleRate": 24000, + "channels": 1, + "duration": 8.832, + "rms": 0.10000150947389638, + "peak": 0.6187627911567688 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-furniture.wav?v=0.2.3", + "sha256": "52cb92cdb8ee92b6f581c9d68dbc346f180c470564809ba57185429c9eb84127", + "bytes": 186668, + "sampleRate": 24000, + "channels": 1, + "duration": 3.888, + "rms": 0.1000013480244084, + "peak": 0.387054443359375 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-tree.wav?v=0.2.3", + "sha256": "bc8e54f5407e8866bf1ca1ddfd4f6c63d85fee29bd9e430c7dd33e87974fc5b8", + "bytes": 409004, + "sampleRate": 24000, + "channels": 1, + "duration": 8.52, + "rms": 0.10000146559822108, + "peak": 0.5486617684364319 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-tree.wav?v=0.2.3", + "sha256": "b8e8bbe6b8b14727efd953fae9d4aed2caeb004055d52f611c6378322847edbe", + "bytes": 400940, + "sampleRate": 24000, + "channels": 1, + "duration": 8.352, + "rms": 0.10000144970799159, + "peak": 0.470611572265625 + }, + { + "url": "http://127.0.0.1:4173/audio/first-tree.wav?v=0.2.3", + "sha256": "3178230fd5850b6277a2153b438ec5289720e3db7ac929914cc213964f004bd5", + "bytes": 379052, + "sampleRate": 24000, + "channels": 1, + "duration": 7.896, + "rms": 0.10000144270360484, + "peak": 0.5833613276481628 + }, + { + "url": "http://127.0.0.1:4173/audio/password-tree.wav?v=0.2.3", + "sha256": "67da8147296e35134ec254bc82b58317630061b2c64d2d63c4be197ce8692d50", + "bytes": 233900, + "sampleRate": 24000, + "channels": 1, + "duration": 4.872, + "rms": 0.10000156310809623, + "peak": 0.4904019236564636 + } + ] +} diff --git a/.agent/evidence-v0.2.3/privacy-screening/browser-final/audio-음성·현장음-109개-versioned-WAV를-실제-Chrome에서-해시·디코드-검증한다-mobile/attachments/109-versioned-WAV-integrity-c90c562b8cfd985ad0d76e1c0d918e5063cd2fba.json b/.agent/evidence-v0.2.3/privacy-screening/browser-final/audio-음성·현장음-109개-versioned-WAV를-실제-Chrome에서-해시·디코드-검증한다-mobile/attachments/109-versioned-WAV-integrity-c90c562b8cfd985ad0d76e1c0d918e5063cd2fba.json new file mode 100644 index 0000000..d6db5ea --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/browser-final/audio-음성·현장음-109개-versioned-WAV를-실제-Chrome에서-해시·디코드-검증한다-mobile/attachments/109-versioned-WAV-integrity-c90c562b8cfd985ad0d76e1c0d918e5063cd2fba.json @@ -0,0 +1,1098 @@ +{ + "chrome": "146.0.7680.80", + "external": [], + "errors": [], + "failed": [], + "files": [ + { + "url": "http://127.0.0.1:4173/audio/intro.wav?v=0.2.3", + "sha256": "90d9f46e6e3f9c8a0c1a781096df54d7809ef4ad38b289508ef7b8c0411465ce", + "bytes": 338732, + "sampleRate": 24000, + "channels": 1, + "duration": 7.056, + "rms": 0.10000144992850359, + "peak": 0.4998626708984375 + }, + { + "url": "http://127.0.0.1:4173/ambience/street.wav?v=0.2.3", + "sha256": "a8bffa201b174618955bc51b860167169125304811aabe2086b0bb35b06c3ae1", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.07999880181401388, + "peak": 0.3967711329460144 + }, + { + "url": "http://127.0.0.1:4173/ambience/mall.wav?v=0.2.3", + "sha256": "680a769940c08f0d12c6c954c08366598dd8b5745e276f39c82b10d1a88261a1", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.07999875178666456, + "peak": 0.7191991806030273 + }, + { + "url": "http://127.0.0.1:4173/ambience/theater.wav?v=0.2.3", + "sha256": "2d6a444fb7874cdf6b2d8a741a69175299b112eb66834912c025437d8277d635", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.07999878601263052, + "peak": 0.495086669921875 + }, + { + "url": "http://127.0.0.1:4173/ambience/department.wav?v=0.2.3", + "sha256": "aa43f3d1d3e7c2b1f8ace24ecbda45d0ea3a031db941c39506dc6c1665b8efa7", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.07999879026023995, + "peak": 0.4749900698661804 + }, + { + "url": "http://127.0.0.1:4173/ambience/market.wav?v=0.2.3", + "sha256": "7a7a980845a4aade2a7e8a108eae746220a4688e92792ee93d3deb76b2a762f6", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.07999876626924392, + "peak": 0.507232666015625 + }, + { + "url": "http://127.0.0.1:4173/ambience/subway.wav?v=0.2.3", + "sha256": "9faf70b68617d267b367a0f3692ed90015458543ab4b0844f6c704e6a724728f", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.079998775670051, + "peak": 0.42530596256256104 + }, + { + "url": "http://127.0.0.1:4173/ambience/cafe.wav?v=0.2.3", + "sha256": "802a956e91b85a2fdd0e1f161d75bfada7a53499bcb57ba7f578411480ded216", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.0799987945764348, + "peak": 0.44708251953125 + }, + { + "url": "http://127.0.0.1:4173/ambience/rain.wav?v=0.2.3", + "sha256": "f4315084e820f742b0709de5bb0d1abd3d5af1730620e08c2948b70347356dd9", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.011384798571746246, + "peak": 0.1024169921875 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-apple.wav?v=0.2.3", + "sha256": "cb7da4e9a1288cac64d168b241f27d7d2bc2dfecace58744f9bbf2792dfad04e", + "bytes": 397484, + "sampleRate": 24000, + "channels": 1, + "duration": 8.28, + "rms": 0.10000142448574952, + "peak": 0.6414685249328613 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-market.wav?v=0.2.3", + "sha256": "b8d25b867497adcd0fe7c8b6a8a8d2e7a52965956738a83e53f58735708773f9", + "bytes": 405548, + "sampleRate": 24000, + "channels": 1, + "duration": 8.448, + "rms": 0.10000141405173993, + "peak": 0.491485595703125 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-sound.wav?v=0.2.3", + "sha256": "34e4d9758d2ed448646fda364610e34779c84794403d9051ab3d8c1d33e2c80c", + "bytes": 184364, + "sampleRate": 24000, + "channels": 1, + "duration": 3.84, + "rms": 0.10000138709171018, + "peak": 0.386322021484375 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-furniture.wav?v=0.2.3", + "sha256": "b45b1afc8d9b534ff3e0a2a2ecb99efc1f4e40d41f89f55c4ed8ba94ad6d76d4", + "bytes": 354860, + "sampleRate": 24000, + "channels": 1, + "duration": 7.392, + "rms": 0.1000015072973225, + "peak": 0.5576171875 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-market.wav?v=0.2.3", + "sha256": "cefa0e95649ea6bd1df4c8dfccd2b74b4f4c028714420ce1087b61db2f2a8d47", + "bytes": 248876, + "sampleRate": 24000, + "channels": 1, + "duration": 5.184, + "rms": 0.10000142548167161, + "peak": 0.4857020676136017 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-oil.wav?v=0.2.3", + "sha256": "f6eff0cdddcad9790351491e60c53cb2a70d222033a583652f2de0b8cd6abcc7", + "bytes": 406700, + "sampleRate": 24000, + "channels": 1, + "duration": 8.472, + "rms": 0.10000139122025363, + "peak": 0.470794677734375 + }, + { + "url": "http://127.0.0.1:4173/audio/first-hat.wav?v=0.2.3", + "sha256": "17c8cde90567e7574b0c0702663bd70713054089ee920241b5444d9b7869eef5", + "bytes": 357164, + "sampleRate": 24000, + "channels": 1, + "duration": 7.44, + "rms": 0.10000152904790521, + "peak": 0.5312662124633789 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-furniture.wav?v=0.2.3", + "sha256": "af82e03b686635c3356e706fe5b05c1231aeaaeab33f275aa5b8714988c65d43", + "bytes": 241964, + "sampleRate": 24000, + "channels": 1, + "duration": 5.04, + "rms": 0.10000137346142077, + "peak": 0.4852443039417267 + }, + { + "url": "http://127.0.0.1:4173/audio/password-sound.wav?v=0.2.3", + "sha256": "044aafff08a19e39f21e58b963644715a987cd155896998769ef8e9ce6449628", + "bytes": 236204, + "sampleRate": 24000, + "channels": 1, + "duration": 4.92, + "rms": 0.10000156641621728, + "peak": 0.4621112644672394 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-hat.wav?v=0.2.3", + "sha256": "f9f98c91cfbcfcb106eef7d5d3795a9cf3c3aab7e19a60f13d7dffe284d19f86", + "bytes": 398636, + "sampleRate": 24000, + "channels": 1, + "duration": 8.304, + "rms": 0.10000141071544869, + "peak": 0.470977783203125 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-apple.wav?v=0.2.3", + "sha256": "7c8f413f4b7e164f090e508ba090448f1376c6012649bbb6a917d45851313883", + "bytes": 188972, + "sampleRate": 24000, + "channels": 1, + "duration": 3.936, + "rms": 0.10000130469939268, + "peak": 0.401641845703125 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-sea.wav?v=0.2.3", + "sha256": "db2f235bee26ac804b5362e8e013b8f40c8da24fd3a34e0fb3b43c6d264feb36", + "bytes": 382508, + "sampleRate": 24000, + "channels": 1, + "duration": 7.968, + "rms": 0.10000145042993039, + "peak": 0.6843470335006714 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-furniture.wav?v=0.2.3", + "sha256": "442bdcb956f120c270e1f321feae0415c897de0183e468980fcc119b898b2a67", + "bytes": 403244, + "sampleRate": 24000, + "channels": 1, + "duration": 8.4, + "rms": 0.10000149119200713, + "peak": 0.5619068145751953 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-sea.wav?v=0.2.3", + "sha256": "b6dbe0af143ea775f05bd59a3d6af348bcc770ab378ac91ea75a56e06c326edf", + "bytes": 346796, + "sampleRate": 24000, + "channels": 1, + "duration": 7.224, + "rms": 0.10000144532868623, + "peak": 0.56494140625 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-sound.wav?v=0.2.3", + "sha256": "e9d636ff7f4777f38b1ff15bebdcec6fbde95b4b4b05625a7415b4cfa0025b59", + "bytes": 395180, + "sampleRate": 24000, + "channels": 1, + "duration": 8.232, + "rms": 0.10000164955559301, + "peak": 0.6114688515663147 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-apple.wav?v=0.2.3", + "sha256": "3ef42e276ff3500c3e197d149f29f79d6a0c1d5516ed1d5a2c57210333fded9c", + "bytes": 246572, + "sampleRate": 24000, + "channels": 1, + "duration": 5.136, + "rms": 0.10000144279302126, + "peak": 0.4701681435108185 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-market.wav?v=0.2.3", + "sha256": "356af25332bf2000ed349671f3ff39767929e1f4599af622c021f907d11fb7bf", + "bytes": 194732, + "sampleRate": 24000, + "channels": 1, + "duration": 4.056, + "rms": 0.10000132629820717, + "peak": 0.4022216796875 + }, + { + "url": "http://127.0.0.1:4173/audio/message-sea.wav?v=0.2.3", + "sha256": "28a461fbe03bffe2560030dea8b60715f7c0fe262dcf85b5b7f7daf483836382", + "bytes": 517292, + "sampleRate": 24000, + "channels": 1, + "duration": 10.776, + "rms": 0.10000130584401576, + "peak": 0.53521728515625 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-umbrella.wav?v=0.2.3", + "sha256": "c8988e604ba05d52597e561389541e8f9cda86e052279f1862bbf8399ead314e", + "bytes": 403244, + "sampleRate": 24000, + "channels": 1, + "duration": 8.4, + "rms": 0.10000148262660476, + "peak": 0.557830810546875 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-hat.wav?v=0.2.3", + "sha256": "308278ec2bd27d4224976a55632d1f7fa1edabb0792126d9d858a699c287aee4", + "bytes": 245420, + "sampleRate": 24000, + "channels": 1, + "duration": 5.112, + "rms": 0.10000140702099906, + "peak": 0.4498428404331207 + }, + { + "url": "http://127.0.0.1:4173/audio/password-furniture.wav?v=0.2.3", + "sha256": "fb2b631dd4e12120d08a84cce6450f9cd9cd68105d13d7001d808e7deaa1df4a", + "bytes": 233900, + "sampleRate": 24000, + "channels": 1, + "duration": 4.872, + "rms": 0.10000146718546903, + "peak": 0.4836573302745819 + }, + { + "url": "http://127.0.0.1:4173/audio/first-market.wav?v=0.2.3", + "sha256": "1e00b8f70a796cdebb0feb00c605fece7488b06915e6e036f54206f05e201e0c", + "bytes": 359468, + "sampleRate": 24000, + "channels": 1, + "duration": 7.488, + "rms": 0.10000152633991319, + "peak": 0.6390880942344666 + }, + { + "url": "http://127.0.0.1:4173/audio/first-meat.wav?v=0.2.3", + "sha256": "f51a37c1722fef581f7d642a4dcae7fcb9953b3c318dce971bf616cd1a81fecc", + "bytes": 345644, + "sampleRate": 24000, + "channels": 1, + "duration": 7.2, + "rms": 0.10000152244411063, + "peak": 0.5131382346153259 + }, + { + "url": "http://127.0.0.1:4173/audio/password-sea.wav?v=0.2.3", + "sha256": "03f45b8cb5b3dc72faf5c6e3d0e2a10cea6b60301ea400d0a4453596d2f0b337", + "bytes": 232748, + "sampleRate": 24000, + "channels": 1, + "duration": 4.848, + "rms": 0.10000144821976133, + "peak": 0.5339213013648987 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-sound.wav?v=0.2.3", + "sha256": "98387ccc7aab566f6487d4c250b2128082cc527e013a6f7b7bc4d0266ac295df", + "bytes": 394028, + "sampleRate": 24000, + "channels": 1, + "duration": 8.208, + "rms": 0.10000158053850364, + "peak": 0.5377971529960632 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-umbrella.wav?v=0.2.3", + "sha256": "5e59ef39113c3d5e106862356d715f4cef2862ef8ee02654a97e532675c1ac6d", + "bytes": 410156, + "sampleRate": 24000, + "channels": 1, + "duration": 8.544, + "rms": 0.10000147499132286, + "peak": 0.6748558282852173 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-hat.wav?v=0.2.3", + "sha256": "b01ef9762ac84e3eb757243bc9286c62f7d45444a821ae35ac36a8b095e1598a", + "bytes": 353708, + "sampleRate": 24000, + "channels": 1, + "duration": 7.368, + "rms": 0.10000153089787694, + "peak": 0.555206298828125 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-market.wav?v=0.2.3", + "sha256": "d89792da51c83ac49d27e55aa6d822a338899a5ee487b34b552748201e1522f6", + "bytes": 398636, + "sampleRate": 24000, + "channels": 1, + "duration": 8.304, + "rms": 0.10000149710778367, + "peak": 0.5728324055671692 + }, + { + "url": "http://127.0.0.1:4173/audio/password-umbrella.wav?v=0.2.3", + "sha256": "ab3ca6398c879971dc793eb25b472fcc0db72d76e386f11ef4d32c639f37c69d", + "bytes": 239660, + "sampleRate": 24000, + "channels": 1, + "duration": 4.992, + "rms": 0.100001426973271, + "peak": 0.4776757061481476 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-meat.wav?v=0.2.3", + "sha256": "48e91b3932d3798e852041a854b3ee08c72127e092c62083a47af6b99adff241", + "bytes": 403244, + "sampleRate": 24000, + "channels": 1, + "duration": 8.4, + "rms": 0.10000140336390047, + "peak": 0.481536865234375 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-hat.wav?v=0.2.3", + "sha256": "6e089a42fd7e65e82eec7186d369c926fb7fdac794365b2bd7658822fd92437c", + "bytes": 396332, + "sampleRate": 24000, + "channels": 1, + "duration": 8.256, + "rms": 0.1000015662548192, + "peak": 0.616748571395874 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-sound.wav?v=0.2.3", + "sha256": "4d00aa6114327f450a00dacbc7e7b572ebf1de4ce9dc2fe4b5505766cca71ce9", + "bytes": 353708, + "sampleRate": 24000, + "channels": 1, + "duration": 7.368, + "rms": 0.10000162019345048, + "peak": 0.5348368883132935 + }, + { + "url": "http://127.0.0.1:4173/audio/last-oil.wav?v=0.2.3", + "sha256": "b5ce34950b8b31b1baf6ce55410797f0d8aa5478a670d6eace87cf76d134d6d3", + "bytes": 337580, + "sampleRate": 24000, + "channels": 1, + "duration": 7.032, + "rms": 0.10000149980584365, + "peak": 0.55706787109375 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-sea.wav?v=0.2.3", + "sha256": "47aa31d757c9fb49c9b53a1c052d90a5ced4be57549d649850d9b48f8864045b", + "bytes": 191276, + "sampleRate": 24000, + "channels": 1, + "duration": 3.984, + "rms": 0.10000129182106483, + "peak": 0.388702392578125 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-sound.wav?v=0.2.3", + "sha256": "659eb0e2b06e6b165b46744769743e032e2282519f8486c57bc45e0f7d07a069", + "bytes": 240812, + "sampleRate": 24000, + "channels": 1, + "duration": 5.016, + "rms": 0.10000152909529536, + "peak": 0.45481735467910767 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-meat.wav?v=0.2.3", + "sha256": "6599d2fac73ea616a793151b4ce6f51af673988d630bac6219a77e78ae6cb34e", + "bytes": 380204, + "sampleRate": 24000, + "channels": 1, + "duration": 7.92, + "rms": 0.1000016061190976, + "peak": 0.5921201109886169 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-market.wav?v=0.2.3", + "sha256": "c855b449e0d4ace74681bfe68e5e7f0b063568827ae872017234dbe8ae119e4c", + "bytes": 356012, + "sampleRate": 24000, + "channels": 1, + "duration": 7.416, + "rms": 0.10000151456676445, + "peak": 0.5949888825416565 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-furniture.wav?v=0.2.3", + "sha256": "bf84dc6cff1f227924a3a62158d2fc18769fb0ca40b91418fa19e534dbf92f00", + "bytes": 397484, + "sampleRate": 24000, + "channels": 1, + "duration": 8.28, + "rms": 0.10000155255948041, + "peak": 0.6670430898666382 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-sound.wav?v=0.2.3", + "sha256": "5a603bc69979603afddcaeb6edf500a7c540b72405daeb33f5335d746b327da1", + "bytes": 397484, + "sampleRate": 24000, + "channels": 1, + "duration": 8.28, + "rms": 0.10000146491234768, + "peak": 0.469268798828125 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-meat.wav?v=0.2.3", + "sha256": "9183ef90b64f5ceaf3bb0178c689231ff3e9981d6ce889124a15f2a6e2b7a344", + "bytes": 395180, + "sampleRate": 24000, + "channels": 1, + "duration": 8.232, + "rms": 0.10000155087122137, + "peak": 0.5193029642105103 + }, + { + "url": "http://127.0.0.1:4173/audio/last-sound.wav?v=0.2.3", + "sha256": "ec9c49802aebeb6a8b898a1c0d8ad1daa127d2d64c905c197ed49a8e0c4eb64a", + "bytes": 354860, + "sampleRate": 24000, + "channels": 1, + "duration": 7.392, + "rms": 0.10000165748716579, + "peak": 0.5641041398048401 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-oil.wav?v=0.2.3", + "sha256": "5fb63e04520c312aa6b7b48b70c2f7c140b5ab480e5c6992edbc2ba85b9a06e7", + "bytes": 241964, + "sampleRate": 24000, + "channels": 1, + "duration": 5.04, + "rms": 0.10000143720418167, + "peak": 0.443586528301239 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-umbrella.wav?v=0.2.3", + "sha256": "92b54f04884ab915783945077efd8f3bd443849a1720f72168b6348cae1f8e85", + "bytes": 406700, + "sampleRate": 24000, + "channels": 1, + "duration": 8.472, + "rms": 0.10000140257790288, + "peak": 0.479034423828125 + }, + { + "url": "http://127.0.0.1:4173/audio/message-sound.wav?v=0.2.3", + "sha256": "1e682147dae8026ba78dc8f256c7f24acb3a6743bfd88a0fcc86096930eef078", + "bytes": 521900, + "sampleRate": 24000, + "channels": 1, + "duration": 10.872, + "rms": 0.10000138583471241, + "peak": 0.51953125 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-apple.wav?v=0.2.3", + "sha256": "ccd7327a3fb54d3320d049ffdced3bc17595861cee69429c0ee97182d454195b", + "bytes": 402092, + "sampleRate": 24000, + "channels": 1, + "duration": 8.376, + "rms": 0.10000140667715379, + "peak": 0.490325927734375 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-sea.wav?v=0.2.3", + "sha256": "5c91a36496e274d2be9c6fa8d9b506cd04f2a1b7ceb05ed1b7bb03fe7fca99d9", + "bytes": 399788, + "sampleRate": 24000, + "channels": 1, + "duration": 8.328, + "rms": 0.10000144241513113, + "peak": 0.5465559959411621 + }, + { + "url": "http://127.0.0.1:4173/audio/message-hat.wav?v=0.2.3", + "sha256": "5a713a8522b231bb8276805c014b385b9150b79f58ff2618446607e2b442495e", + "bytes": 518444, + "sampleRate": 24000, + "channels": 1, + "duration": 10.8, + "rms": 0.10000136927555209, + "peak": 0.587005615234375 + }, + { + "url": "http://127.0.0.1:4173/audio/password-meat.wav?v=0.2.3", + "sha256": "b009caadd56350d6a641ff17f0973e2b2724c183e1f45ae0bf3c483e237fa99e", + "bytes": 240812, + "sampleRate": 24000, + "channels": 1, + "duration": 5.016, + "rms": 0.10000148386024335, + "peak": 0.4978789687156677 + }, + { + "url": "http://127.0.0.1:4173/audio/message-market.wav?v=0.2.3", + "sha256": "9242d4cd6e0030e6b073e4d2360f84aa8a454d1749711cdb2d64c14f28a7ea20", + "bytes": 523052, + "sampleRate": 24000, + "channels": 1, + "duration": 10.896, + "rms": 0.10000133805787564, + "peak": 0.534820556640625 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-apple.wav?v=0.2.3", + "sha256": "8832f1b793ab3eedbe663875ea8dbeabb122c329bd5879437c71230b0418c3c8", + "bytes": 360620, + "sampleRate": 24000, + "channels": 1, + "duration": 7.512, + "rms": 0.10000145024648589, + "peak": 0.553558349609375 + }, + { + "url": "http://127.0.0.1:4173/audio/last-umbrella.wav?v=0.2.3", + "sha256": "c801293a34013a8d93d3289a2cc87cd3eed83f97ba4647f5060efa00b117a9ad", + "bytes": 370988, + "sampleRate": 24000, + "channels": 1, + "duration": 7.728, + "rms": 0.10000149360501835, + "peak": 0.59765625 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-sea.wav?v=0.2.3", + "sha256": "9233431d78ab4b144e3c33ad0cf0d49fc0fb91b29514343230ba32987b794bb3", + "bytes": 398636, + "sampleRate": 24000, + "channels": 1, + "duration": 8.304, + "rms": 0.10000134688905045, + "peak": 0.49616992473602295 + }, + { + "url": "http://127.0.0.1:4173/audio/password-apple.wav?v=0.2.3", + "sha256": "b6f5de3fe571fe3a7fdb722fe49250bcfeedef49475271e0ec76a7630907edd5", + "bytes": 235052, + "sampleRate": 24000, + "channels": 1, + "duration": 4.896, + "rms": 0.10000148212193387, + "peak": 0.4834437072277069 + }, + { + "url": "http://127.0.0.1:4173/audio/first-furniture.wav?v=0.2.3", + "sha256": "29f007b385b7182db1d8aeccad4fc3c260df5e66e14e52a46b0ef0fcd0ff3a0a", + "bytes": 364076, + "sampleRate": 24000, + "channels": 1, + "duration": 7.584, + "rms": 0.1000014551820741, + "peak": 0.5700552463531494 + }, + { + "url": "http://127.0.0.1:4173/audio/password-hat.wav?v=0.2.3", + "sha256": "e91bfc97df90a1675b6cd856880ac15c54de32cfc3b23603bdd1c2c5ac3ce6b8", + "bytes": 235052, + "sampleRate": 24000, + "channels": 1, + "duration": 4.896, + "rms": 0.10000146155157119, + "peak": 0.5059053301811218 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-oil.wav?v=0.2.3", + "sha256": "7a6b122b11c07da86c95fb78e2db2a70681b5219c63d6441fe56da1979ac1dc3", + "bytes": 334124, + "sampleRate": 24000, + "channels": 1, + "duration": 6.96, + "rms": 0.1000014880654183, + "peak": 0.539933443069458 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-meat.wav?v=0.2.3", + "sha256": "d416107cc05e7c5b92ca27100a10a8a9689de913346179945d5542de4a6bac0c", + "bytes": 342188, + "sampleRate": 24000, + "channels": 1, + "duration": 7.128, + "rms": 0.10000157422522808, + "peak": 0.510833740234375 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-apple.wav?v=0.2.3", + "sha256": "1bf2aef9a9f030af1a8fd7dee8f44aa420a397b3ba99b575feeb3dc7a63ec191", + "bytes": 395180, + "sampleRate": 24000, + "channels": 1, + "duration": 8.232, + "rms": 0.10000148399213096, + "peak": 0.563568115234375 + }, + { + "url": "http://127.0.0.1:4173/audio/first-oil.wav?v=0.2.3", + "sha256": "f415195e0cfc7ee711d09de7519e88eab62cc8b58d70772c83c3f5c27c267819", + "bytes": 335276, + "sampleRate": 24000, + "channels": 1, + "duration": 6.984, + "rms": 0.10000145886808136, + "peak": 0.5347453355789185 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-hat.wav?v=0.2.3", + "sha256": "31a6a4270bf368cda419094d87a303ac3cd5c22539786cb165f8044b0b8e9d6e", + "bytes": 402092, + "sampleRate": 24000, + "channels": 1, + "duration": 8.376, + "rms": 0.10000145804818952, + "peak": 0.541778564453125 + }, + { + "url": "http://127.0.0.1:4173/audio/message-furniture.wav?v=0.2.3", + "sha256": "26c331b7e12311236f4bb48f88918dfbf53cccd2f50b55741ea6ff4473e71dd8", + "bytes": 521900, + "sampleRate": 24000, + "channels": 1, + "duration": 10.872, + "rms": 0.10000134596838128, + "peak": 0.529327392578125 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-oil.wav?v=0.2.3", + "sha256": "3fa1e662a3af8f2726b17b2baa5bec2934406e6595ebc243c8380dd16e190977", + "bytes": 190124, + "sampleRate": 24000, + "channels": 1, + "duration": 3.96, + "rms": 0.10000134375667624, + "peak": 0.3817255198955536 + }, + { + "url": "http://127.0.0.1:4173/audio/last-sea.wav?v=0.2.3", + "sha256": "f755452e1da44674aa1df7d12edffa988091b89a394e7eb6d4a00eb721f07cbf", + "bytes": 345644, + "sampleRate": 24000, + "channels": 1, + "duration": 7.2, + "rms": 0.10000140162255576, + "peak": 0.591033935546875 + }, + { + "url": "http://127.0.0.1:4173/audio/password-oil.wav?v=0.2.3", + "sha256": "b472957b27ff98ea7b8894fa1ff12653f7e9f66f77870faa9e52a1c1bf116c41", + "bytes": 240812, + "sampleRate": 24000, + "channels": 1, + "duration": 5.016, + "rms": 0.10000146772662066, + "peak": 0.4945219159126282 + }, + { + "url": "http://127.0.0.1:4173/audio/first-umbrella.wav?v=0.2.3", + "sha256": "878e0bd2e6e4105f175aef51a028f6b141f3a2072be20f783193f3ba897a3ee0", + "bytes": 366380, + "sampleRate": 24000, + "channels": 1, + "duration": 7.632, + "rms": 0.10000147647908036, + "peak": 0.5700247287750244 + }, + { + "url": "http://127.0.0.1:4173/audio/last-apple.wav?v=0.2.3", + "sha256": "4cb2a8579fa3a7b91bb36363826ce8ca0d6d86e96e16a479e226a2802edd82f7", + "bytes": 356012, + "sampleRate": 24000, + "channels": 1, + "duration": 7.416, + "rms": 0.10000144523423521, + "peak": 0.622528076171875 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-market.wav?v=0.2.3", + "sha256": "68a5b899115a66ab225d610ec47b4de56cc8793657362bc38f533c06f741e4cc", + "bytes": 402092, + "sampleRate": 24000, + "channels": 1, + "duration": 8.376, + "rms": 0.10000160159844854, + "peak": 0.6822717785835266 + }, + { + "url": "http://127.0.0.1:4173/audio/message-oil.wav?v=0.2.3", + "sha256": "a2a71a7e5e07c81871a25c6cb7540c39aa0b32fc44f78cda66b5f34ace98d805", + "bytes": 509228, + "sampleRate": 24000, + "channels": 1, + "duration": 10.608, + "rms": 0.10000135184106136, + "peak": 0.51812744140625 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-meat.wav?v=0.2.3", + "sha256": "d36dfc395a5c53fbfa4abe9980db7bb59adfdac59e40318c4aca365365e3f2ab", + "bytes": 187820, + "sampleRate": 24000, + "channels": 1, + "duration": 3.912, + "rms": 0.1000013329979738, + "peak": 0.371124267578125 + }, + { + "url": "http://127.0.0.1:4173/audio/password-market.wav?v=0.2.3", + "sha256": "02e325fb753ef7a3ee585a03d2ca2aa3f1fbc58523b062222ae1136eeed7a95c", + "bytes": 230444, + "sampleRate": 24000, + "channels": 1, + "duration": 4.8, + "rms": 0.10000151520861549, + "peak": 0.48170414566993713 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-hat.wav?v=0.2.3", + "sha256": "4ff43dd042f4b5451e9fdeb3edd59f1e389a7d1dd488094587a3a9fc7dfffa44", + "bytes": 191276, + "sampleRate": 24000, + "channels": 1, + "duration": 3.984, + "rms": 0.10000132502946775, + "peak": 0.417083740234375 + }, + { + "url": "http://127.0.0.1:4173/audio/last-market.wav?v=0.2.3", + "sha256": "7857e87e9dbfe8fe849cc0b18c1d45b60916cb337328099c7a87a42c82e2821e", + "bytes": 359468, + "sampleRate": 24000, + "channels": 1, + "duration": 7.488, + "rms": 0.10000148064140717, + "peak": 0.600555419921875 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-meat.wav?v=0.2.3", + "sha256": "94f8a4f9e116a787e5ed052661d6de9ecf3ad8629db476661dd59ad03014b0c9", + "bytes": 244268, + "sampleRate": 24000, + "channels": 1, + "duration": 5.088, + "rms": 0.10000146176253134, + "peak": 0.44187748432159424 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-oil.wav?v=0.2.3", + "sha256": "55b2c7d6aa8bbce04edf8661882c9781da81c57f56217f99b80457a3bb895da0", + "bytes": 369836, + "sampleRate": 24000, + "channels": 1, + "duration": 7.704, + "rms": 0.10000146897241707, + "peak": 0.6239814162254333 + }, + { + "url": "http://127.0.0.1:4173/audio/first-sound.wav?v=0.2.3", + "sha256": "46f6adeed928a16af0700f1e8626cf8049f124632a04a5d10604426fb06f9596", + "bytes": 353708, + "sampleRate": 24000, + "channels": 1, + "duration": 7.368, + "rms": 0.10000157588418972, + "peak": 0.5189672708511353 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-umbrella.wav?v=0.2.3", + "sha256": "4b4c858a25659540f9dbc524664496fc6de61ab8c1627f3cfee8c9c744e11d5b", + "bytes": 247724, + "sampleRate": 24000, + "channels": 1, + "duration": 5.16, + "rms": 0.10000144286672341, + "peak": 0.46534621715545654 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-oil.wav?v=0.2.3", + "sha256": "3ca98682ff06d1d6b8af02c0fd5b2124f42266ac989884223eff4a9bbde1287a", + "bytes": 399788, + "sampleRate": 24000, + "channels": 1, + "duration": 8.328, + "rms": 0.10000149133669024, + "peak": 0.5243995189666748 + }, + { + "url": "http://127.0.0.1:4173/audio/first-sea.wav?v=0.2.3", + "sha256": "0f0b39314c5f7d7168d4854003c0c284e7bc3438cdc4d1d1c5adab7cb5ed30e5", + "bytes": 349100, + "sampleRate": 24000, + "channels": 1, + "duration": 7.272, + "rms": 0.10000142148394393, + "peak": 0.5717948079109192 + }, + { + "url": "http://127.0.0.1:4173/audio/last-meat.wav?v=0.2.3", + "sha256": "10f8ad4259ed8945c9da831e80b3902303c09caef96d400298599168fb1efed4", + "bytes": 346796, + "sampleRate": 24000, + "channels": 1, + "duration": 7.224, + "rms": 0.10000155834091913, + "peak": 0.537200927734375 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-umbrella.wav?v=0.2.3", + "sha256": "399ea2f681f755918f1117c8baba42739ceca64b307b999342f457a9235050b6", + "bytes": 368684, + "sampleRate": 24000, + "channels": 1, + "duration": 7.68, + "rms": 0.10000155028684544, + "peak": 0.569549560546875 + }, + { + "url": "http://127.0.0.1:4173/audio/message-meat.wav?v=0.2.3", + "sha256": "ce19735df079b54c171e775b6b365385a80160b9033442abab95b2b9c8505e1a", + "bytes": 512684, + "sampleRate": 24000, + "channels": 1, + "duration": 10.68, + "rms": 0.10000140834686953, + "peak": 0.5147705078125 + }, + { + "url": "http://127.0.0.1:4173/audio/message-umbrella.wav?v=0.2.3", + "sha256": "41d5866dae66600df4694a8312b531571d44cece6dba0e423e7c43d09d184819", + "bytes": 523052, + "sampleRate": 24000, + "channels": 1, + "duration": 10.896, + "rms": 0.10000120668553683, + "peak": 0.530364990234375 + }, + { + "url": "http://127.0.0.1:4173/audio/last-furniture.wav?v=0.2.3", + "sha256": "5ad4f776e35439d408abed0e66567d6b5cdc80fc54d579165472e474f1238776", + "bytes": 357164, + "sampleRate": 24000, + "channels": 1, + "duration": 7.44, + "rms": 0.10000152394963031, + "peak": 0.583587646484375 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-sea.wav?v=0.2.3", + "sha256": "8838d6a1ee8a790427dc5aa761e70b3d8872af62086efeed743297ff7f8b8a06", + "bytes": 243116, + "sampleRate": 24000, + "channels": 1, + "duration": 5.064, + "rms": 0.10000138788281714, + "peak": 0.45013427734375 + }, + { + "url": "http://127.0.0.1:4173/audio/message-apple.wav?v=0.2.3", + "sha256": "d85e6f47d871369f00de2274139e5ad6b4b5686b5e20e248df0ed6b9a320d942", + "bytes": 517292, + "sampleRate": 24000, + "channels": 1, + "duration": 10.776, + "rms": 0.10000133916854889, + "peak": 0.525360107421875 + }, + { + "url": "http://127.0.0.1:4173/audio/last-hat.wav?v=0.2.3", + "sha256": "bdaf8fbc54df8061e9e58aa8c14b3044a6e863dc54973ee3ee6ae2c5ae1a28f1", + "bytes": 354860, + "sampleRate": 24000, + "channels": 1, + "duration": 7.392, + "rms": 0.10000152378078818, + "peak": 0.550079345703125 + }, + { + "url": "http://127.0.0.1:4173/audio/first-apple.wav?v=0.2.3", + "sha256": "7c1dbcb3082055df2b8f087f7e906ec867c92f679de0894c34740c05e61a4bc1", + "bytes": 359468, + "sampleRate": 24000, + "channels": 1, + "duration": 7.488, + "rms": 0.10000143468253914, + "peak": 0.57977294921875 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-umbrella.wav?v=0.2.3", + "sha256": "8d3e8e8bc97e5fe3f3362184c4abb12f01a882a1f1174d2644f0f70aac677c0a", + "bytes": 192428, + "sampleRate": 24000, + "channels": 1, + "duration": 4.008, + "rms": 0.10000131475711933, + "peak": 0.385650634765625 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-furniture.wav?v=0.2.3", + "sha256": "5c004a7b2f5a4a918c9f689f1a2dcb219a620ed14313f40a9655b36dbf64948d", + "bytes": 398636, + "sampleRate": 24000, + "channels": 1, + "duration": 8.304, + "rms": 0.10000141690978645, + "peak": 0.487396240234375 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-tree.wav?v=0.2.3", + "sha256": "122f496834fb16d6da47f801e50e46e272e4e934af959467d1db4e490f79be7a", + "bytes": 183212, + "sampleRate": 24000, + "channels": 1, + "duration": 3.816, + "rms": 0.10000140751524371, + "peak": 0.36920166015625 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-tree.wav?v=0.2.3", + "sha256": "00d8e77ec0371971d632724d91f8cf8d947bfb83c582a513b6421be4c457a1da", + "bytes": 241964, + "sampleRate": 24000, + "channels": 1, + "duration": 5.04, + "rms": 0.10000146153372488, + "peak": 0.4585406184196472 + }, + { + "url": "http://127.0.0.1:4173/audio/message-tree.wav?v=0.2.3", + "sha256": "5d684aa710a63d36ed8dcc2a8bfbdd5c71b0b1c63dad2a324adecb76591e85b8", + "bytes": 540332, + "sampleRate": 24000, + "channels": 1, + "duration": 11.256, + "rms": 0.10000132424453942, + "peak": 0.5262451171875 + }, + { + "url": "http://127.0.0.1:4173/audio/last-tree.wav?v=0.2.3", + "sha256": "589e56d940a3c9e80ec02ae0b2dd93463fdc85ef019a753fcd0fded0752055f9", + "bytes": 382508, + "sampleRate": 24000, + "channels": 1, + "duration": 7.968, + "rms": 0.10000149781706567, + "peak": 0.5807672142982483 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-tree.wav?v=0.2.3", + "sha256": "341888c75275c13eb31058f53a1d4276be0daa0a1b5a3a45522036928b83b0c1", + "bytes": 382508, + "sampleRate": 24000, + "channels": 1, + "duration": 7.968, + "rms": 0.1000014873304774, + "peak": 0.600024402141571 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-tree.wav?v=0.2.3", + "sha256": "8735c3d9672561ca237fa87317beec2878492eb9063d6048d5b214423561acc1", + "bytes": 423980, + "sampleRate": 24000, + "channels": 1, + "duration": 8.832, + "rms": 0.10000150947389638, + "peak": 0.6187627911567688 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-furniture.wav?v=0.2.3", + "sha256": "52cb92cdb8ee92b6f581c9d68dbc346f180c470564809ba57185429c9eb84127", + "bytes": 186668, + "sampleRate": 24000, + "channels": 1, + "duration": 3.888, + "rms": 0.1000013480244084, + "peak": 0.387054443359375 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-tree.wav?v=0.2.3", + "sha256": "bc8e54f5407e8866bf1ca1ddfd4f6c63d85fee29bd9e430c7dd33e87974fc5b8", + "bytes": 409004, + "sampleRate": 24000, + "channels": 1, + "duration": 8.52, + "rms": 0.10000146559822108, + "peak": 0.5486617684364319 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-tree.wav?v=0.2.3", + "sha256": "b8e8bbe6b8b14727efd953fae9d4aed2caeb004055d52f611c6378322847edbe", + "bytes": 400940, + "sampleRate": 24000, + "channels": 1, + "duration": 8.352, + "rms": 0.10000144970799159, + "peak": 0.470611572265625 + }, + { + "url": "http://127.0.0.1:4173/audio/first-tree.wav?v=0.2.3", + "sha256": "3178230fd5850b6277a2153b438ec5289720e3db7ac929914cc213964f004bd5", + "bytes": 379052, + "sampleRate": 24000, + "channels": 1, + "duration": 7.896, + "rms": 0.10000144270360484, + "peak": 0.5833613276481628 + }, + { + "url": "http://127.0.0.1:4173/audio/password-tree.wav?v=0.2.3", + "sha256": "67da8147296e35134ec254bc82b58317630061b2c64d2d63c4be197ce8692d50", + "bytes": 233900, + "sampleRate": 24000, + "channels": 1, + "duration": 4.872, + "rms": 0.10000156310809623, + "peak": 0.4904019236564636 + } + ] +} diff --git a/.agent/evidence-v0.2.3/privacy-screening/browser-final/audio-음성·현장음-109개-versioned-WAV를-실제-Chrome에서-해시·디코드-검증한다-mobile/browser-audio-integrity.json b/.agent/evidence-v0.2.3/privacy-screening/browser-final/audio-음성·현장음-109개-versioned-WAV를-실제-Chrome에서-해시·디코드-검증한다-mobile/browser-audio-integrity.json new file mode 100644 index 0000000..d6db5ea --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/browser-final/audio-음성·현장음-109개-versioned-WAV를-실제-Chrome에서-해시·디코드-검증한다-mobile/browser-audio-integrity.json @@ -0,0 +1,1098 @@ +{ + "chrome": "146.0.7680.80", + "external": [], + "errors": [], + "failed": [], + "files": [ + { + "url": "http://127.0.0.1:4173/audio/intro.wav?v=0.2.3", + "sha256": "90d9f46e6e3f9c8a0c1a781096df54d7809ef4ad38b289508ef7b8c0411465ce", + "bytes": 338732, + "sampleRate": 24000, + "channels": 1, + "duration": 7.056, + "rms": 0.10000144992850359, + "peak": 0.4998626708984375 + }, + { + "url": "http://127.0.0.1:4173/ambience/street.wav?v=0.2.3", + "sha256": "a8bffa201b174618955bc51b860167169125304811aabe2086b0bb35b06c3ae1", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.07999880181401388, + "peak": 0.3967711329460144 + }, + { + "url": "http://127.0.0.1:4173/ambience/mall.wav?v=0.2.3", + "sha256": "680a769940c08f0d12c6c954c08366598dd8b5745e276f39c82b10d1a88261a1", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.07999875178666456, + "peak": 0.7191991806030273 + }, + { + "url": "http://127.0.0.1:4173/ambience/theater.wav?v=0.2.3", + "sha256": "2d6a444fb7874cdf6b2d8a741a69175299b112eb66834912c025437d8277d635", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.07999878601263052, + "peak": 0.495086669921875 + }, + { + "url": "http://127.0.0.1:4173/ambience/department.wav?v=0.2.3", + "sha256": "aa43f3d1d3e7c2b1f8ace24ecbda45d0ea3a031db941c39506dc6c1665b8efa7", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.07999879026023995, + "peak": 0.4749900698661804 + }, + { + "url": "http://127.0.0.1:4173/ambience/market.wav?v=0.2.3", + "sha256": "7a7a980845a4aade2a7e8a108eae746220a4688e92792ee93d3deb76b2a762f6", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.07999876626924392, + "peak": 0.507232666015625 + }, + { + "url": "http://127.0.0.1:4173/ambience/subway.wav?v=0.2.3", + "sha256": "9faf70b68617d267b367a0f3692ed90015458543ab4b0844f6c704e6a724728f", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.079998775670051, + "peak": 0.42530596256256104 + }, + { + "url": "http://127.0.0.1:4173/ambience/cafe.wav?v=0.2.3", + "sha256": "802a956e91b85a2fdd0e1f161d75bfada7a53499bcb57ba7f578411480ded216", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.0799987945764348, + "peak": 0.44708251953125 + }, + { + "url": "http://127.0.0.1:4173/ambience/rain.wav?v=0.2.3", + "sha256": "f4315084e820f742b0709de5bb0d1abd3d5af1730620e08c2948b70347356dd9", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.011384798571746246, + "peak": 0.1024169921875 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-apple.wav?v=0.2.3", + "sha256": "cb7da4e9a1288cac64d168b241f27d7d2bc2dfecace58744f9bbf2792dfad04e", + "bytes": 397484, + "sampleRate": 24000, + "channels": 1, + "duration": 8.28, + "rms": 0.10000142448574952, + "peak": 0.6414685249328613 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-market.wav?v=0.2.3", + "sha256": "b8d25b867497adcd0fe7c8b6a8a8d2e7a52965956738a83e53f58735708773f9", + "bytes": 405548, + "sampleRate": 24000, + "channels": 1, + "duration": 8.448, + "rms": 0.10000141405173993, + "peak": 0.491485595703125 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-sound.wav?v=0.2.3", + "sha256": "34e4d9758d2ed448646fda364610e34779c84794403d9051ab3d8c1d33e2c80c", + "bytes": 184364, + "sampleRate": 24000, + "channels": 1, + "duration": 3.84, + "rms": 0.10000138709171018, + "peak": 0.386322021484375 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-furniture.wav?v=0.2.3", + "sha256": "b45b1afc8d9b534ff3e0a2a2ecb99efc1f4e40d41f89f55c4ed8ba94ad6d76d4", + "bytes": 354860, + "sampleRate": 24000, + "channels": 1, + "duration": 7.392, + "rms": 0.1000015072973225, + "peak": 0.5576171875 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-market.wav?v=0.2.3", + "sha256": "cefa0e95649ea6bd1df4c8dfccd2b74b4f4c028714420ce1087b61db2f2a8d47", + "bytes": 248876, + "sampleRate": 24000, + "channels": 1, + "duration": 5.184, + "rms": 0.10000142548167161, + "peak": 0.4857020676136017 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-oil.wav?v=0.2.3", + "sha256": "f6eff0cdddcad9790351491e60c53cb2a70d222033a583652f2de0b8cd6abcc7", + "bytes": 406700, + "sampleRate": 24000, + "channels": 1, + "duration": 8.472, + "rms": 0.10000139122025363, + "peak": 0.470794677734375 + }, + { + "url": "http://127.0.0.1:4173/audio/first-hat.wav?v=0.2.3", + "sha256": "17c8cde90567e7574b0c0702663bd70713054089ee920241b5444d9b7869eef5", + "bytes": 357164, + "sampleRate": 24000, + "channels": 1, + "duration": 7.44, + "rms": 0.10000152904790521, + "peak": 0.5312662124633789 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-furniture.wav?v=0.2.3", + "sha256": "af82e03b686635c3356e706fe5b05c1231aeaaeab33f275aa5b8714988c65d43", + "bytes": 241964, + "sampleRate": 24000, + "channels": 1, + "duration": 5.04, + "rms": 0.10000137346142077, + "peak": 0.4852443039417267 + }, + { + "url": "http://127.0.0.1:4173/audio/password-sound.wav?v=0.2.3", + "sha256": "044aafff08a19e39f21e58b963644715a987cd155896998769ef8e9ce6449628", + "bytes": 236204, + "sampleRate": 24000, + "channels": 1, + "duration": 4.92, + "rms": 0.10000156641621728, + "peak": 0.4621112644672394 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-hat.wav?v=0.2.3", + "sha256": "f9f98c91cfbcfcb106eef7d5d3795a9cf3c3aab7e19a60f13d7dffe284d19f86", + "bytes": 398636, + "sampleRate": 24000, + "channels": 1, + "duration": 8.304, + "rms": 0.10000141071544869, + "peak": 0.470977783203125 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-apple.wav?v=0.2.3", + "sha256": "7c8f413f4b7e164f090e508ba090448f1376c6012649bbb6a917d45851313883", + "bytes": 188972, + "sampleRate": 24000, + "channels": 1, + "duration": 3.936, + "rms": 0.10000130469939268, + "peak": 0.401641845703125 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-sea.wav?v=0.2.3", + "sha256": "db2f235bee26ac804b5362e8e013b8f40c8da24fd3a34e0fb3b43c6d264feb36", + "bytes": 382508, + "sampleRate": 24000, + "channels": 1, + "duration": 7.968, + "rms": 0.10000145042993039, + "peak": 0.6843470335006714 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-furniture.wav?v=0.2.3", + "sha256": "442bdcb956f120c270e1f321feae0415c897de0183e468980fcc119b898b2a67", + "bytes": 403244, + "sampleRate": 24000, + "channels": 1, + "duration": 8.4, + "rms": 0.10000149119200713, + "peak": 0.5619068145751953 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-sea.wav?v=0.2.3", + "sha256": "b6dbe0af143ea775f05bd59a3d6af348bcc770ab378ac91ea75a56e06c326edf", + "bytes": 346796, + "sampleRate": 24000, + "channels": 1, + "duration": 7.224, + "rms": 0.10000144532868623, + "peak": 0.56494140625 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-sound.wav?v=0.2.3", + "sha256": "e9d636ff7f4777f38b1ff15bebdcec6fbde95b4b4b05625a7415b4cfa0025b59", + "bytes": 395180, + "sampleRate": 24000, + "channels": 1, + "duration": 8.232, + "rms": 0.10000164955559301, + "peak": 0.6114688515663147 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-apple.wav?v=0.2.3", + "sha256": "3ef42e276ff3500c3e197d149f29f79d6a0c1d5516ed1d5a2c57210333fded9c", + "bytes": 246572, + "sampleRate": 24000, + "channels": 1, + "duration": 5.136, + "rms": 0.10000144279302126, + "peak": 0.4701681435108185 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-market.wav?v=0.2.3", + "sha256": "356af25332bf2000ed349671f3ff39767929e1f4599af622c021f907d11fb7bf", + "bytes": 194732, + "sampleRate": 24000, + "channels": 1, + "duration": 4.056, + "rms": 0.10000132629820717, + "peak": 0.4022216796875 + }, + { + "url": "http://127.0.0.1:4173/audio/message-sea.wav?v=0.2.3", + "sha256": "28a461fbe03bffe2560030dea8b60715f7c0fe262dcf85b5b7f7daf483836382", + "bytes": 517292, + "sampleRate": 24000, + "channels": 1, + "duration": 10.776, + "rms": 0.10000130584401576, + "peak": 0.53521728515625 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-umbrella.wav?v=0.2.3", + "sha256": "c8988e604ba05d52597e561389541e8f9cda86e052279f1862bbf8399ead314e", + "bytes": 403244, + "sampleRate": 24000, + "channels": 1, + "duration": 8.4, + "rms": 0.10000148262660476, + "peak": 0.557830810546875 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-hat.wav?v=0.2.3", + "sha256": "308278ec2bd27d4224976a55632d1f7fa1edabb0792126d9d858a699c287aee4", + "bytes": 245420, + "sampleRate": 24000, + "channels": 1, + "duration": 5.112, + "rms": 0.10000140702099906, + "peak": 0.4498428404331207 + }, + { + "url": "http://127.0.0.1:4173/audio/password-furniture.wav?v=0.2.3", + "sha256": "fb2b631dd4e12120d08a84cce6450f9cd9cd68105d13d7001d808e7deaa1df4a", + "bytes": 233900, + "sampleRate": 24000, + "channels": 1, + "duration": 4.872, + "rms": 0.10000146718546903, + "peak": 0.4836573302745819 + }, + { + "url": "http://127.0.0.1:4173/audio/first-market.wav?v=0.2.3", + "sha256": "1e00b8f70a796cdebb0feb00c605fece7488b06915e6e036f54206f05e201e0c", + "bytes": 359468, + "sampleRate": 24000, + "channels": 1, + "duration": 7.488, + "rms": 0.10000152633991319, + "peak": 0.6390880942344666 + }, + { + "url": "http://127.0.0.1:4173/audio/first-meat.wav?v=0.2.3", + "sha256": "f51a37c1722fef581f7d642a4dcae7fcb9953b3c318dce971bf616cd1a81fecc", + "bytes": 345644, + "sampleRate": 24000, + "channels": 1, + "duration": 7.2, + "rms": 0.10000152244411063, + "peak": 0.5131382346153259 + }, + { + "url": "http://127.0.0.1:4173/audio/password-sea.wav?v=0.2.3", + "sha256": "03f45b8cb5b3dc72faf5c6e3d0e2a10cea6b60301ea400d0a4453596d2f0b337", + "bytes": 232748, + "sampleRate": 24000, + "channels": 1, + "duration": 4.848, + "rms": 0.10000144821976133, + "peak": 0.5339213013648987 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-sound.wav?v=0.2.3", + "sha256": "98387ccc7aab566f6487d4c250b2128082cc527e013a6f7b7bc4d0266ac295df", + "bytes": 394028, + "sampleRate": 24000, + "channels": 1, + "duration": 8.208, + "rms": 0.10000158053850364, + "peak": 0.5377971529960632 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-umbrella.wav?v=0.2.3", + "sha256": "5e59ef39113c3d5e106862356d715f4cef2862ef8ee02654a97e532675c1ac6d", + "bytes": 410156, + "sampleRate": 24000, + "channels": 1, + "duration": 8.544, + "rms": 0.10000147499132286, + "peak": 0.6748558282852173 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-hat.wav?v=0.2.3", + "sha256": "b01ef9762ac84e3eb757243bc9286c62f7d45444a821ae35ac36a8b095e1598a", + "bytes": 353708, + "sampleRate": 24000, + "channels": 1, + "duration": 7.368, + "rms": 0.10000153089787694, + "peak": 0.555206298828125 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-market.wav?v=0.2.3", + "sha256": "d89792da51c83ac49d27e55aa6d822a338899a5ee487b34b552748201e1522f6", + "bytes": 398636, + "sampleRate": 24000, + "channels": 1, + "duration": 8.304, + "rms": 0.10000149710778367, + "peak": 0.5728324055671692 + }, + { + "url": "http://127.0.0.1:4173/audio/password-umbrella.wav?v=0.2.3", + "sha256": "ab3ca6398c879971dc793eb25b472fcc0db72d76e386f11ef4d32c639f37c69d", + "bytes": 239660, + "sampleRate": 24000, + "channels": 1, + "duration": 4.992, + "rms": 0.100001426973271, + "peak": 0.4776757061481476 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-meat.wav?v=0.2.3", + "sha256": "48e91b3932d3798e852041a854b3ee08c72127e092c62083a47af6b99adff241", + "bytes": 403244, + "sampleRate": 24000, + "channels": 1, + "duration": 8.4, + "rms": 0.10000140336390047, + "peak": 0.481536865234375 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-hat.wav?v=0.2.3", + "sha256": "6e089a42fd7e65e82eec7186d369c926fb7fdac794365b2bd7658822fd92437c", + "bytes": 396332, + "sampleRate": 24000, + "channels": 1, + "duration": 8.256, + "rms": 0.1000015662548192, + "peak": 0.616748571395874 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-sound.wav?v=0.2.3", + "sha256": "4d00aa6114327f450a00dacbc7e7b572ebf1de4ce9dc2fe4b5505766cca71ce9", + "bytes": 353708, + "sampleRate": 24000, + "channels": 1, + "duration": 7.368, + "rms": 0.10000162019345048, + "peak": 0.5348368883132935 + }, + { + "url": "http://127.0.0.1:4173/audio/last-oil.wav?v=0.2.3", + "sha256": "b5ce34950b8b31b1baf6ce55410797f0d8aa5478a670d6eace87cf76d134d6d3", + "bytes": 337580, + "sampleRate": 24000, + "channels": 1, + "duration": 7.032, + "rms": 0.10000149980584365, + "peak": 0.55706787109375 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-sea.wav?v=0.2.3", + "sha256": "47aa31d757c9fb49c9b53a1c052d90a5ced4be57549d649850d9b48f8864045b", + "bytes": 191276, + "sampleRate": 24000, + "channels": 1, + "duration": 3.984, + "rms": 0.10000129182106483, + "peak": 0.388702392578125 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-sound.wav?v=0.2.3", + "sha256": "659eb0e2b06e6b165b46744769743e032e2282519f8486c57bc45e0f7d07a069", + "bytes": 240812, + "sampleRate": 24000, + "channels": 1, + "duration": 5.016, + "rms": 0.10000152909529536, + "peak": 0.45481735467910767 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-meat.wav?v=0.2.3", + "sha256": "6599d2fac73ea616a793151b4ce6f51af673988d630bac6219a77e78ae6cb34e", + "bytes": 380204, + "sampleRate": 24000, + "channels": 1, + "duration": 7.92, + "rms": 0.1000016061190976, + "peak": 0.5921201109886169 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-market.wav?v=0.2.3", + "sha256": "c855b449e0d4ace74681bfe68e5e7f0b063568827ae872017234dbe8ae119e4c", + "bytes": 356012, + "sampleRate": 24000, + "channels": 1, + "duration": 7.416, + "rms": 0.10000151456676445, + "peak": 0.5949888825416565 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-furniture.wav?v=0.2.3", + "sha256": "bf84dc6cff1f227924a3a62158d2fc18769fb0ca40b91418fa19e534dbf92f00", + "bytes": 397484, + "sampleRate": 24000, + "channels": 1, + "duration": 8.28, + "rms": 0.10000155255948041, + "peak": 0.6670430898666382 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-sound.wav?v=0.2.3", + "sha256": "5a603bc69979603afddcaeb6edf500a7c540b72405daeb33f5335d746b327da1", + "bytes": 397484, + "sampleRate": 24000, + "channels": 1, + "duration": 8.28, + "rms": 0.10000146491234768, + "peak": 0.469268798828125 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-meat.wav?v=0.2.3", + "sha256": "9183ef90b64f5ceaf3bb0178c689231ff3e9981d6ce889124a15f2a6e2b7a344", + "bytes": 395180, + "sampleRate": 24000, + "channels": 1, + "duration": 8.232, + "rms": 0.10000155087122137, + "peak": 0.5193029642105103 + }, + { + "url": "http://127.0.0.1:4173/audio/last-sound.wav?v=0.2.3", + "sha256": "ec9c49802aebeb6a8b898a1c0d8ad1daa127d2d64c905c197ed49a8e0c4eb64a", + "bytes": 354860, + "sampleRate": 24000, + "channels": 1, + "duration": 7.392, + "rms": 0.10000165748716579, + "peak": 0.5641041398048401 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-oil.wav?v=0.2.3", + "sha256": "5fb63e04520c312aa6b7b48b70c2f7c140b5ab480e5c6992edbc2ba85b9a06e7", + "bytes": 241964, + "sampleRate": 24000, + "channels": 1, + "duration": 5.04, + "rms": 0.10000143720418167, + "peak": 0.443586528301239 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-umbrella.wav?v=0.2.3", + "sha256": "92b54f04884ab915783945077efd8f3bd443849a1720f72168b6348cae1f8e85", + "bytes": 406700, + "sampleRate": 24000, + "channels": 1, + "duration": 8.472, + "rms": 0.10000140257790288, + "peak": 0.479034423828125 + }, + { + "url": "http://127.0.0.1:4173/audio/message-sound.wav?v=0.2.3", + "sha256": "1e682147dae8026ba78dc8f256c7f24acb3a6743bfd88a0fcc86096930eef078", + "bytes": 521900, + "sampleRate": 24000, + "channels": 1, + "duration": 10.872, + "rms": 0.10000138583471241, + "peak": 0.51953125 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-apple.wav?v=0.2.3", + "sha256": "ccd7327a3fb54d3320d049ffdced3bc17595861cee69429c0ee97182d454195b", + "bytes": 402092, + "sampleRate": 24000, + "channels": 1, + "duration": 8.376, + "rms": 0.10000140667715379, + "peak": 0.490325927734375 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-sea.wav?v=0.2.3", + "sha256": "5c91a36496e274d2be9c6fa8d9b506cd04f2a1b7ceb05ed1b7bb03fe7fca99d9", + "bytes": 399788, + "sampleRate": 24000, + "channels": 1, + "duration": 8.328, + "rms": 0.10000144241513113, + "peak": 0.5465559959411621 + }, + { + "url": "http://127.0.0.1:4173/audio/message-hat.wav?v=0.2.3", + "sha256": "5a713a8522b231bb8276805c014b385b9150b79f58ff2618446607e2b442495e", + "bytes": 518444, + "sampleRate": 24000, + "channels": 1, + "duration": 10.8, + "rms": 0.10000136927555209, + "peak": 0.587005615234375 + }, + { + "url": "http://127.0.0.1:4173/audio/password-meat.wav?v=0.2.3", + "sha256": "b009caadd56350d6a641ff17f0973e2b2724c183e1f45ae0bf3c483e237fa99e", + "bytes": 240812, + "sampleRate": 24000, + "channels": 1, + "duration": 5.016, + "rms": 0.10000148386024335, + "peak": 0.4978789687156677 + }, + { + "url": "http://127.0.0.1:4173/audio/message-market.wav?v=0.2.3", + "sha256": "9242d4cd6e0030e6b073e4d2360f84aa8a454d1749711cdb2d64c14f28a7ea20", + "bytes": 523052, + "sampleRate": 24000, + "channels": 1, + "duration": 10.896, + "rms": 0.10000133805787564, + "peak": 0.534820556640625 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-apple.wav?v=0.2.3", + "sha256": "8832f1b793ab3eedbe663875ea8dbeabb122c329bd5879437c71230b0418c3c8", + "bytes": 360620, + "sampleRate": 24000, + "channels": 1, + "duration": 7.512, + "rms": 0.10000145024648589, + "peak": 0.553558349609375 + }, + { + "url": "http://127.0.0.1:4173/audio/last-umbrella.wav?v=0.2.3", + "sha256": "c801293a34013a8d93d3289a2cc87cd3eed83f97ba4647f5060efa00b117a9ad", + "bytes": 370988, + "sampleRate": 24000, + "channels": 1, + "duration": 7.728, + "rms": 0.10000149360501835, + "peak": 0.59765625 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-sea.wav?v=0.2.3", + "sha256": "9233431d78ab4b144e3c33ad0cf0d49fc0fb91b29514343230ba32987b794bb3", + "bytes": 398636, + "sampleRate": 24000, + "channels": 1, + "duration": 8.304, + "rms": 0.10000134688905045, + "peak": 0.49616992473602295 + }, + { + "url": "http://127.0.0.1:4173/audio/password-apple.wav?v=0.2.3", + "sha256": "b6f5de3fe571fe3a7fdb722fe49250bcfeedef49475271e0ec76a7630907edd5", + "bytes": 235052, + "sampleRate": 24000, + "channels": 1, + "duration": 4.896, + "rms": 0.10000148212193387, + "peak": 0.4834437072277069 + }, + { + "url": "http://127.0.0.1:4173/audio/first-furniture.wav?v=0.2.3", + "sha256": "29f007b385b7182db1d8aeccad4fc3c260df5e66e14e52a46b0ef0fcd0ff3a0a", + "bytes": 364076, + "sampleRate": 24000, + "channels": 1, + "duration": 7.584, + "rms": 0.1000014551820741, + "peak": 0.5700552463531494 + }, + { + "url": "http://127.0.0.1:4173/audio/password-hat.wav?v=0.2.3", + "sha256": "e91bfc97df90a1675b6cd856880ac15c54de32cfc3b23603bdd1c2c5ac3ce6b8", + "bytes": 235052, + "sampleRate": 24000, + "channels": 1, + "duration": 4.896, + "rms": 0.10000146155157119, + "peak": 0.5059053301811218 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-oil.wav?v=0.2.3", + "sha256": "7a6b122b11c07da86c95fb78e2db2a70681b5219c63d6441fe56da1979ac1dc3", + "bytes": 334124, + "sampleRate": 24000, + "channels": 1, + "duration": 6.96, + "rms": 0.1000014880654183, + "peak": 0.539933443069458 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-meat.wav?v=0.2.3", + "sha256": "d416107cc05e7c5b92ca27100a10a8a9689de913346179945d5542de4a6bac0c", + "bytes": 342188, + "sampleRate": 24000, + "channels": 1, + "duration": 7.128, + "rms": 0.10000157422522808, + "peak": 0.510833740234375 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-apple.wav?v=0.2.3", + "sha256": "1bf2aef9a9f030af1a8fd7dee8f44aa420a397b3ba99b575feeb3dc7a63ec191", + "bytes": 395180, + "sampleRate": 24000, + "channels": 1, + "duration": 8.232, + "rms": 0.10000148399213096, + "peak": 0.563568115234375 + }, + { + "url": "http://127.0.0.1:4173/audio/first-oil.wav?v=0.2.3", + "sha256": "f415195e0cfc7ee711d09de7519e88eab62cc8b58d70772c83c3f5c27c267819", + "bytes": 335276, + "sampleRate": 24000, + "channels": 1, + "duration": 6.984, + "rms": 0.10000145886808136, + "peak": 0.5347453355789185 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-hat.wav?v=0.2.3", + "sha256": "31a6a4270bf368cda419094d87a303ac3cd5c22539786cb165f8044b0b8e9d6e", + "bytes": 402092, + "sampleRate": 24000, + "channels": 1, + "duration": 8.376, + "rms": 0.10000145804818952, + "peak": 0.541778564453125 + }, + { + "url": "http://127.0.0.1:4173/audio/message-furniture.wav?v=0.2.3", + "sha256": "26c331b7e12311236f4bb48f88918dfbf53cccd2f50b55741ea6ff4473e71dd8", + "bytes": 521900, + "sampleRate": 24000, + "channels": 1, + "duration": 10.872, + "rms": 0.10000134596838128, + "peak": 0.529327392578125 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-oil.wav?v=0.2.3", + "sha256": "3fa1e662a3af8f2726b17b2baa5bec2934406e6595ebc243c8380dd16e190977", + "bytes": 190124, + "sampleRate": 24000, + "channels": 1, + "duration": 3.96, + "rms": 0.10000134375667624, + "peak": 0.3817255198955536 + }, + { + "url": "http://127.0.0.1:4173/audio/last-sea.wav?v=0.2.3", + "sha256": "f755452e1da44674aa1df7d12edffa988091b89a394e7eb6d4a00eb721f07cbf", + "bytes": 345644, + "sampleRate": 24000, + "channels": 1, + "duration": 7.2, + "rms": 0.10000140162255576, + "peak": 0.591033935546875 + }, + { + "url": "http://127.0.0.1:4173/audio/password-oil.wav?v=0.2.3", + "sha256": "b472957b27ff98ea7b8894fa1ff12653f7e9f66f77870faa9e52a1c1bf116c41", + "bytes": 240812, + "sampleRate": 24000, + "channels": 1, + "duration": 5.016, + "rms": 0.10000146772662066, + "peak": 0.4945219159126282 + }, + { + "url": "http://127.0.0.1:4173/audio/first-umbrella.wav?v=0.2.3", + "sha256": "878e0bd2e6e4105f175aef51a028f6b141f3a2072be20f783193f3ba897a3ee0", + "bytes": 366380, + "sampleRate": 24000, + "channels": 1, + "duration": 7.632, + "rms": 0.10000147647908036, + "peak": 0.5700247287750244 + }, + { + "url": "http://127.0.0.1:4173/audio/last-apple.wav?v=0.2.3", + "sha256": "4cb2a8579fa3a7b91bb36363826ce8ca0d6d86e96e16a479e226a2802edd82f7", + "bytes": 356012, + "sampleRate": 24000, + "channels": 1, + "duration": 7.416, + "rms": 0.10000144523423521, + "peak": 0.622528076171875 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-market.wav?v=0.2.3", + "sha256": "68a5b899115a66ab225d610ec47b4de56cc8793657362bc38f533c06f741e4cc", + "bytes": 402092, + "sampleRate": 24000, + "channels": 1, + "duration": 8.376, + "rms": 0.10000160159844854, + "peak": 0.6822717785835266 + }, + { + "url": "http://127.0.0.1:4173/audio/message-oil.wav?v=0.2.3", + "sha256": "a2a71a7e5e07c81871a25c6cb7540c39aa0b32fc44f78cda66b5f34ace98d805", + "bytes": 509228, + "sampleRate": 24000, + "channels": 1, + "duration": 10.608, + "rms": 0.10000135184106136, + "peak": 0.51812744140625 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-meat.wav?v=0.2.3", + "sha256": "d36dfc395a5c53fbfa4abe9980db7bb59adfdac59e40318c4aca365365e3f2ab", + "bytes": 187820, + "sampleRate": 24000, + "channels": 1, + "duration": 3.912, + "rms": 0.1000013329979738, + "peak": 0.371124267578125 + }, + { + "url": "http://127.0.0.1:4173/audio/password-market.wav?v=0.2.3", + "sha256": "02e325fb753ef7a3ee585a03d2ca2aa3f1fbc58523b062222ae1136eeed7a95c", + "bytes": 230444, + "sampleRate": 24000, + "channels": 1, + "duration": 4.8, + "rms": 0.10000151520861549, + "peak": 0.48170414566993713 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-hat.wav?v=0.2.3", + "sha256": "4ff43dd042f4b5451e9fdeb3edd59f1e389a7d1dd488094587a3a9fc7dfffa44", + "bytes": 191276, + "sampleRate": 24000, + "channels": 1, + "duration": 3.984, + "rms": 0.10000132502946775, + "peak": 0.417083740234375 + }, + { + "url": "http://127.0.0.1:4173/audio/last-market.wav?v=0.2.3", + "sha256": "7857e87e9dbfe8fe849cc0b18c1d45b60916cb337328099c7a87a42c82e2821e", + "bytes": 359468, + "sampleRate": 24000, + "channels": 1, + "duration": 7.488, + "rms": 0.10000148064140717, + "peak": 0.600555419921875 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-meat.wav?v=0.2.3", + "sha256": "94f8a4f9e116a787e5ed052661d6de9ecf3ad8629db476661dd59ad03014b0c9", + "bytes": 244268, + "sampleRate": 24000, + "channels": 1, + "duration": 5.088, + "rms": 0.10000146176253134, + "peak": 0.44187748432159424 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-oil.wav?v=0.2.3", + "sha256": "55b2c7d6aa8bbce04edf8661882c9781da81c57f56217f99b80457a3bb895da0", + "bytes": 369836, + "sampleRate": 24000, + "channels": 1, + "duration": 7.704, + "rms": 0.10000146897241707, + "peak": 0.6239814162254333 + }, + { + "url": "http://127.0.0.1:4173/audio/first-sound.wav?v=0.2.3", + "sha256": "46f6adeed928a16af0700f1e8626cf8049f124632a04a5d10604426fb06f9596", + "bytes": 353708, + "sampleRate": 24000, + "channels": 1, + "duration": 7.368, + "rms": 0.10000157588418972, + "peak": 0.5189672708511353 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-umbrella.wav?v=0.2.3", + "sha256": "4b4c858a25659540f9dbc524664496fc6de61ab8c1627f3cfee8c9c744e11d5b", + "bytes": 247724, + "sampleRate": 24000, + "channels": 1, + "duration": 5.16, + "rms": 0.10000144286672341, + "peak": 0.46534621715545654 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-oil.wav?v=0.2.3", + "sha256": "3ca98682ff06d1d6b8af02c0fd5b2124f42266ac989884223eff4a9bbde1287a", + "bytes": 399788, + "sampleRate": 24000, + "channels": 1, + "duration": 8.328, + "rms": 0.10000149133669024, + "peak": 0.5243995189666748 + }, + { + "url": "http://127.0.0.1:4173/audio/first-sea.wav?v=0.2.3", + "sha256": "0f0b39314c5f7d7168d4854003c0c284e7bc3438cdc4d1d1c5adab7cb5ed30e5", + "bytes": 349100, + "sampleRate": 24000, + "channels": 1, + "duration": 7.272, + "rms": 0.10000142148394393, + "peak": 0.5717948079109192 + }, + { + "url": "http://127.0.0.1:4173/audio/last-meat.wav?v=0.2.3", + "sha256": "10f8ad4259ed8945c9da831e80b3902303c09caef96d400298599168fb1efed4", + "bytes": 346796, + "sampleRate": 24000, + "channels": 1, + "duration": 7.224, + "rms": 0.10000155834091913, + "peak": 0.537200927734375 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-umbrella.wav?v=0.2.3", + "sha256": "399ea2f681f755918f1117c8baba42739ceca64b307b999342f457a9235050b6", + "bytes": 368684, + "sampleRate": 24000, + "channels": 1, + "duration": 7.68, + "rms": 0.10000155028684544, + "peak": 0.569549560546875 + }, + { + "url": "http://127.0.0.1:4173/audio/message-meat.wav?v=0.2.3", + "sha256": "ce19735df079b54c171e775b6b365385a80160b9033442abab95b2b9c8505e1a", + "bytes": 512684, + "sampleRate": 24000, + "channels": 1, + "duration": 10.68, + "rms": 0.10000140834686953, + "peak": 0.5147705078125 + }, + { + "url": "http://127.0.0.1:4173/audio/message-umbrella.wav?v=0.2.3", + "sha256": "41d5866dae66600df4694a8312b531571d44cece6dba0e423e7c43d09d184819", + "bytes": 523052, + "sampleRate": 24000, + "channels": 1, + "duration": 10.896, + "rms": 0.10000120668553683, + "peak": 0.530364990234375 + }, + { + "url": "http://127.0.0.1:4173/audio/last-furniture.wav?v=0.2.3", + "sha256": "5ad4f776e35439d408abed0e66567d6b5cdc80fc54d579165472e474f1238776", + "bytes": 357164, + "sampleRate": 24000, + "channels": 1, + "duration": 7.44, + "rms": 0.10000152394963031, + "peak": 0.583587646484375 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-sea.wav?v=0.2.3", + "sha256": "8838d6a1ee8a790427dc5aa761e70b3d8872af62086efeed743297ff7f8b8a06", + "bytes": 243116, + "sampleRate": 24000, + "channels": 1, + "duration": 5.064, + "rms": 0.10000138788281714, + "peak": 0.45013427734375 + }, + { + "url": "http://127.0.0.1:4173/audio/message-apple.wav?v=0.2.3", + "sha256": "d85e6f47d871369f00de2274139e5ad6b4b5686b5e20e248df0ed6b9a320d942", + "bytes": 517292, + "sampleRate": 24000, + "channels": 1, + "duration": 10.776, + "rms": 0.10000133916854889, + "peak": 0.525360107421875 + }, + { + "url": "http://127.0.0.1:4173/audio/last-hat.wav?v=0.2.3", + "sha256": "bdaf8fbc54df8061e9e58aa8c14b3044a6e863dc54973ee3ee6ae2c5ae1a28f1", + "bytes": 354860, + "sampleRate": 24000, + "channels": 1, + "duration": 7.392, + "rms": 0.10000152378078818, + "peak": 0.550079345703125 + }, + { + "url": "http://127.0.0.1:4173/audio/first-apple.wav?v=0.2.3", + "sha256": "7c1dbcb3082055df2b8f087f7e906ec867c92f679de0894c34740c05e61a4bc1", + "bytes": 359468, + "sampleRate": 24000, + "channels": 1, + "duration": 7.488, + "rms": 0.10000143468253914, + "peak": 0.57977294921875 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-umbrella.wav?v=0.2.3", + "sha256": "8d3e8e8bc97e5fe3f3362184c4abb12f01a882a1f1174d2644f0f70aac677c0a", + "bytes": 192428, + "sampleRate": 24000, + "channels": 1, + "duration": 4.008, + "rms": 0.10000131475711933, + "peak": 0.385650634765625 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-furniture.wav?v=0.2.3", + "sha256": "5c004a7b2f5a4a918c9f689f1a2dcb219a620ed14313f40a9655b36dbf64948d", + "bytes": 398636, + "sampleRate": 24000, + "channels": 1, + "duration": 8.304, + "rms": 0.10000141690978645, + "peak": 0.487396240234375 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-tree.wav?v=0.2.3", + "sha256": "122f496834fb16d6da47f801e50e46e272e4e934af959467d1db4e490f79be7a", + "bytes": 183212, + "sampleRate": 24000, + "channels": 1, + "duration": 3.816, + "rms": 0.10000140751524371, + "peak": 0.36920166015625 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-tree.wav?v=0.2.3", + "sha256": "00d8e77ec0371971d632724d91f8cf8d947bfb83c582a513b6421be4c457a1da", + "bytes": 241964, + "sampleRate": 24000, + "channels": 1, + "duration": 5.04, + "rms": 0.10000146153372488, + "peak": 0.4585406184196472 + }, + { + "url": "http://127.0.0.1:4173/audio/message-tree.wav?v=0.2.3", + "sha256": "5d684aa710a63d36ed8dcc2a8bfbdd5c71b0b1c63dad2a324adecb76591e85b8", + "bytes": 540332, + "sampleRate": 24000, + "channels": 1, + "duration": 11.256, + "rms": 0.10000132424453942, + "peak": 0.5262451171875 + }, + { + "url": "http://127.0.0.1:4173/audio/last-tree.wav?v=0.2.3", + "sha256": "589e56d940a3c9e80ec02ae0b2dd93463fdc85ef019a753fcd0fded0752055f9", + "bytes": 382508, + "sampleRate": 24000, + "channels": 1, + "duration": 7.968, + "rms": 0.10000149781706567, + "peak": 0.5807672142982483 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-tree.wav?v=0.2.3", + "sha256": "341888c75275c13eb31058f53a1d4276be0daa0a1b5a3a45522036928b83b0c1", + "bytes": 382508, + "sampleRate": 24000, + "channels": 1, + "duration": 7.968, + "rms": 0.1000014873304774, + "peak": 0.600024402141571 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-tree.wav?v=0.2.3", + "sha256": "8735c3d9672561ca237fa87317beec2878492eb9063d6048d5b214423561acc1", + "bytes": 423980, + "sampleRate": 24000, + "channels": 1, + "duration": 8.832, + "rms": 0.10000150947389638, + "peak": 0.6187627911567688 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-furniture.wav?v=0.2.3", + "sha256": "52cb92cdb8ee92b6f581c9d68dbc346f180c470564809ba57185429c9eb84127", + "bytes": 186668, + "sampleRate": 24000, + "channels": 1, + "duration": 3.888, + "rms": 0.1000013480244084, + "peak": 0.387054443359375 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-tree.wav?v=0.2.3", + "sha256": "bc8e54f5407e8866bf1ca1ddfd4f6c63d85fee29bd9e430c7dd33e87974fc5b8", + "bytes": 409004, + "sampleRate": 24000, + "channels": 1, + "duration": 8.52, + "rms": 0.10000146559822108, + "peak": 0.5486617684364319 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-tree.wav?v=0.2.3", + "sha256": "b8e8bbe6b8b14727efd953fae9d4aed2caeb004055d52f611c6378322847edbe", + "bytes": 400940, + "sampleRate": 24000, + "channels": 1, + "duration": 8.352, + "rms": 0.10000144970799159, + "peak": 0.470611572265625 + }, + { + "url": "http://127.0.0.1:4173/audio/first-tree.wav?v=0.2.3", + "sha256": "3178230fd5850b6277a2153b438ec5289720e3db7ac929914cc213964f004bd5", + "bytes": 379052, + "sampleRate": 24000, + "channels": 1, + "duration": 7.896, + "rms": 0.10000144270360484, + "peak": 0.5833613276481628 + }, + { + "url": "http://127.0.0.1:4173/audio/password-tree.wav?v=0.2.3", + "sha256": "67da8147296e35134ec254bc82b58317630061b2c64d2d63c4be197ce8692d50", + "bytes": 233900, + "sampleRate": 24000, + "channels": 1, + "duration": 4.872, + "rms": 0.10000156310809623, + "peak": 0.4904019236564636 + } + ] +} diff --git a/.agent/evidence-v0.2.3/privacy-screening/browser-final/game-실제-오디오로-혼합-모드-완주·레이아웃·접근성·외부-요청-없음-desktop/game.png b/.agent/evidence-v0.2.3/privacy-screening/browser-final/game-실제-오디오로-혼합-모드-완주·레이아웃·접근성·외부-요청-없음-desktop/game.png new file mode 100644 index 0000000..04505e0 Binary files /dev/null and b/.agent/evidence-v0.2.3/privacy-screening/browser-final/game-실제-오디오로-혼합-모드-완주·레이아웃·접근성·외부-요청-없음-desktop/game.png differ diff --git a/.agent/evidence-v0.2.3/privacy-screening/browser-final/game-실제-오디오로-혼합-모드-완주·레이아웃·접근성·외부-요청-없음-desktop/home.png b/.agent/evidence-v0.2.3/privacy-screening/browser-final/game-실제-오디오로-혼합-모드-완주·레이아웃·접근성·외부-요청-없음-desktop/home.png new file mode 100644 index 0000000..3e1863d Binary files /dev/null and b/.agent/evidence-v0.2.3/privacy-screening/browser-final/game-실제-오디오로-혼합-모드-완주·레이아웃·접근성·외부-요청-없음-desktop/home.png differ diff --git a/.agent/evidence-v0.2.3/privacy-screening/browser-final/game-실제-오디오로-혼합-모드-완주·레이아웃·접근성·외부-요청-없음-desktop/results.png b/.agent/evidence-v0.2.3/privacy-screening/browser-final/game-실제-오디오로-혼합-모드-완주·레이아웃·접근성·외부-요청-없음-desktop/results.png new file mode 100644 index 0000000..60986f0 Binary files /dev/null and b/.agent/evidence-v0.2.3/privacy-screening/browser-final/game-실제-오디오로-혼합-모드-완주·레이아웃·접근성·외부-요청-없음-desktop/results.png differ diff --git a/.agent/evidence-v0.2.3/privacy-screening/browser-final/game-실제-오디오로-혼합-모드-완주·레이아웃·접근성·외부-요청-없음-mobile/game.png b/.agent/evidence-v0.2.3/privacy-screening/browser-final/game-실제-오디오로-혼합-모드-완주·레이아웃·접근성·외부-요청-없음-mobile/game.png new file mode 100644 index 0000000..3e43e9c Binary files /dev/null and b/.agent/evidence-v0.2.3/privacy-screening/browser-final/game-실제-오디오로-혼합-모드-완주·레이아웃·접근성·외부-요청-없음-mobile/game.png differ diff --git a/.agent/evidence-v0.2.3/privacy-screening/browser-final/game-실제-오디오로-혼합-모드-완주·레이아웃·접근성·외부-요청-없음-mobile/home.png b/.agent/evidence-v0.2.3/privacy-screening/browser-final/game-실제-오디오로-혼합-모드-완주·레이아웃·접근성·외부-요청-없음-mobile/home.png new file mode 100644 index 0000000..93c1298 Binary files /dev/null and b/.agent/evidence-v0.2.3/privacy-screening/browser-final/game-실제-오디오로-혼합-모드-완주·레이아웃·접근성·외부-요청-없음-mobile/home.png differ diff --git a/.agent/evidence-v0.2.3/privacy-screening/browser-final/game-실제-오디오로-혼합-모드-완주·레이아웃·접근성·외부-요청-없음-mobile/results.png b/.agent/evidence-v0.2.3/privacy-screening/browser-final/game-실제-오디오로-혼합-모드-완주·레이아웃·접근성·외부-요청-없음-mobile/results.png new file mode 100644 index 0000000..46bdd67 Binary files /dev/null and b/.agent/evidence-v0.2.3/privacy-screening/browser-final/game-실제-오디오로-혼합-모드-완주·레이아웃·접근성·외부-요청-없음-mobile/results.png differ diff --git a/.agent/evidence-v0.2.3/privacy-screening/browser-final/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-desktop/normal-results.png b/.agent/evidence-v0.2.3/privacy-screening/browser-final/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-desktop/normal-results.png new file mode 100644 index 0000000..fa53c92 Binary files /dev/null and b/.agent/evidence-v0.2.3/privacy-screening/browser-final/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-desktop/normal-results.png differ diff --git a/.agent/evidence-v0.2.3/privacy-screening/browser-final/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-desktop/progress-1.png b/.agent/evidence-v0.2.3/privacy-screening/browser-final/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-desktop/progress-1.png new file mode 100644 index 0000000..ef8031b Binary files /dev/null and b/.agent/evidence-v0.2.3/privacy-screening/browser-final/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-desktop/progress-1.png differ diff --git a/.agent/evidence-v0.2.3/privacy-screening/browser-final/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-desktop/progress-2.png b/.agent/evidence-v0.2.3/privacy-screening/browser-final/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-desktop/progress-2.png new file mode 100644 index 0000000..e2b4352 Binary files /dev/null and b/.agent/evidence-v0.2.3/privacy-screening/browser-final/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-desktop/progress-2.png differ diff --git a/.agent/evidence-v0.2.3/privacy-screening/browser-final/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-desktop/progress-3.png b/.agent/evidence-v0.2.3/privacy-screening/browser-final/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-desktop/progress-3.png new file mode 100644 index 0000000..f0651da Binary files /dev/null and b/.agent/evidence-v0.2.3/privacy-screening/browser-final/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-desktop/progress-3.png differ diff --git a/.agent/evidence-v0.2.3/privacy-screening/browser-final/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-mobile/normal-results.png b/.agent/evidence-v0.2.3/privacy-screening/browser-final/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-mobile/normal-results.png new file mode 100644 index 0000000..46bdd67 Binary files /dev/null and b/.agent/evidence-v0.2.3/privacy-screening/browser-final/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-mobile/normal-results.png differ diff --git a/.agent/evidence-v0.2.3/privacy-screening/browser-final/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-mobile/progress-1.png b/.agent/evidence-v0.2.3/privacy-screening/browser-final/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-mobile/progress-1.png new file mode 100644 index 0000000..c6c3af6 Binary files /dev/null and b/.agent/evidence-v0.2.3/privacy-screening/browser-final/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-mobile/progress-1.png differ diff --git a/.agent/evidence-v0.2.3/privacy-screening/browser-final/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-mobile/progress-2.png b/.agent/evidence-v0.2.3/privacy-screening/browser-final/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-mobile/progress-2.png new file mode 100644 index 0000000..19e468c Binary files /dev/null and b/.agent/evidence-v0.2.3/privacy-screening/browser-final/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-mobile/progress-2.png differ diff --git a/.agent/evidence-v0.2.3/privacy-screening/browser-final/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-mobile/progress-3.png b/.agent/evidence-v0.2.3/privacy-screening/browser-final/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-mobile/progress-3.png new file mode 100644 index 0000000..1801343 Binary files /dev/null and b/.agent/evidence-v0.2.3/privacy-screening/browser-final/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-mobile/progress-3.png differ diff --git a/.agent/evidence-v0.2.3/privacy-screening/browser-final/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-desktop/copy-320-home.png b/.agent/evidence-v0.2.3/privacy-screening/browser-final/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-desktop/copy-320-home.png new file mode 100644 index 0000000..9bb9d97 Binary files /dev/null and b/.agent/evidence-v0.2.3/privacy-screening/browser-final/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-desktop/copy-320-home.png differ diff --git a/.agent/evidence-v0.2.3/privacy-screening/browser-final/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-desktop/copy-320-results.png b/.agent/evidence-v0.2.3/privacy-screening/browser-final/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-desktop/copy-320-results.png new file mode 100644 index 0000000..969eef1 Binary files /dev/null and b/.agent/evidence-v0.2.3/privacy-screening/browser-final/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-desktop/copy-320-results.png differ diff --git a/.agent/evidence-v0.2.3/privacy-screening/browser-final/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-desktop/copy-360-home.png b/.agent/evidence-v0.2.3/privacy-screening/browser-final/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-desktop/copy-360-home.png new file mode 100644 index 0000000..93c1298 Binary files /dev/null and b/.agent/evidence-v0.2.3/privacy-screening/browser-final/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-desktop/copy-360-home.png differ diff --git a/.agent/evidence-v0.2.3/privacy-screening/browser-final/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-desktop/copy-360-results.png b/.agent/evidence-v0.2.3/privacy-screening/browser-final/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-desktop/copy-360-results.png new file mode 100644 index 0000000..122ee5d Binary files /dev/null and b/.agent/evidence-v0.2.3/privacy-screening/browser-final/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-desktop/copy-360-results.png differ diff --git a/.agent/evidence-v0.2.3/privacy-screening/browser-final/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-mobile/copy-320-home.png b/.agent/evidence-v0.2.3/privacy-screening/browser-final/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-mobile/copy-320-home.png new file mode 100644 index 0000000..9bb9d97 Binary files /dev/null and b/.agent/evidence-v0.2.3/privacy-screening/browser-final/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-mobile/copy-320-home.png differ diff --git a/.agent/evidence-v0.2.3/privacy-screening/browser-final/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-mobile/copy-320-results.png b/.agent/evidence-v0.2.3/privacy-screening/browser-final/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-mobile/copy-320-results.png new file mode 100644 index 0000000..969eef1 Binary files /dev/null and b/.agent/evidence-v0.2.3/privacy-screening/browser-final/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-mobile/copy-320-results.png differ diff --git a/.agent/evidence-v0.2.3/privacy-screening/browser-final/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-mobile/copy-360-home.png b/.agent/evidence-v0.2.3/privacy-screening/browser-final/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-mobile/copy-360-home.png new file mode 100644 index 0000000..93c1298 Binary files /dev/null and b/.agent/evidence-v0.2.3/privacy-screening/browser-final/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-mobile/copy-360-home.png differ diff --git a/.agent/evidence-v0.2.3/privacy-screening/browser-final/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-mobile/copy-360-results.png b/.agent/evidence-v0.2.3/privacy-screening/browser-final/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-mobile/copy-360-results.png new file mode 100644 index 0000000..122ee5d Binary files /dev/null and b/.agent/evidence-v0.2.3/privacy-screening/browser-final/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-mobile/copy-360-results.png differ diff --git a/.agent/evidence-v0.2.3/privacy-screening/browser-final/rounds-시작-단계·SNR·3문항-완료→다음-단계·재생-중-종료·응답-후-종료·홈-초기화-desktop/early-exit.png b/.agent/evidence-v0.2.3/privacy-screening/browser-final/rounds-시작-단계·SNR·3문항-완료→다음-단계·재생-중-종료·응답-후-종료·홈-초기화-desktop/early-exit.png new file mode 100644 index 0000000..811489d Binary files /dev/null and b/.agent/evidence-v0.2.3/privacy-screening/browser-final/rounds-시작-단계·SNR·3문항-완료→다음-단계·재생-중-종료·응답-후-종료·홈-초기화-desktop/early-exit.png differ diff --git a/.agent/evidence-v0.2.3/privacy-screening/browser-final/rounds-시작-단계·SNR·3문항-완료→다음-단계·재생-중-종료·응답-후-종료·홈-초기화-mobile/early-exit.png b/.agent/evidence-v0.2.3/privacy-screening/browser-final/rounds-시작-단계·SNR·3문항-완료→다음-단계·재생-중-종료·응답-후-종료·홈-초기화-mobile/early-exit.png new file mode 100644 index 0000000..122ee5d Binary files /dev/null and b/.agent/evidence-v0.2.3/privacy-screening/browser-final/rounds-시작-단계·SNR·3문항-완료→다음-단계·재생-중-종료·응답-후-종료·홈-초기화-mobile/early-exit.png differ diff --git a/.agent/evidence-v0.2.3/privacy-screening/browser-final/ui-한국어-제목은-단어-중간에서-줄바꿈하지-않는다-desktop/heading.png b/.agent/evidence-v0.2.3/privacy-screening/browser-final/ui-한국어-제목은-단어-중간에서-줄바꿈하지-않는다-desktop/heading.png new file mode 100644 index 0000000..e3e5e42 Binary files /dev/null and b/.agent/evidence-v0.2.3/privacy-screening/browser-final/ui-한국어-제목은-단어-중간에서-줄바꿈하지-않는다-desktop/heading.png differ diff --git a/.agent/evidence-v0.2.3/privacy-screening/browser-final/ui-한국어-제목은-단어-중간에서-줄바꿈하지-않는다-mobile/heading.png b/.agent/evidence-v0.2.3/privacy-screening/browser-final/ui-한국어-제목은-단어-중간에서-줄바꿈하지-않는다-mobile/heading.png new file mode 100644 index 0000000..9b38a30 Binary files /dev/null and b/.agent/evidence-v0.2.3/privacy-screening/browser-final/ui-한국어-제목은-단어-중간에서-줄바꿈하지-않는다-mobile/heading.png differ diff --git a/.agent/evidence-v0.2.3/privacy-screening/browser-integrity-summary.json b/.agent/evidence-v0.2.3/privacy-screening/browser-integrity-summary.json new file mode 100644 index 0000000..f5eeeef --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/browser-integrity-summary.json @@ -0,0 +1,24 @@ +[ + { + "project": "mobile", + "chrome": "146.0.7680.80", + "filesMatched": 109, + "externalRequests": 0, + "consoleOrPageErrors": 0, + "failedRequests": 0, + "evidence": "mobile-audio-integrity.json", + "levelTolerance": 3.0517578125e-05, + "levelToleranceReason": "One PCM16 step accommodates browser decoder float scaling versus manifest signed PCM/32768 measurements. Hashes and byte counts must match exactly." + }, + { + "project": "desktop", + "chrome": "146.0.7680.80", + "filesMatched": 109, + "externalRequests": 0, + "consoleOrPageErrors": 0, + "failedRequests": 0, + "evidence": "desktop-audio-integrity.json", + "levelTolerance": 3.0517578125e-05, + "levelToleranceReason": "One PCM16 step accommodates browser decoder float scaling versus manifest signed PCM/32768 measurements. Hashes and byte counts must match exactly." + } +] diff --git a/.agent/evidence-v0.2.3/privacy-screening/browser-red/.last-run.json b/.agent/evidence-v0.2.3/privacy-screening/browser-red/.last-run.json new file mode 100644 index 0000000..37aa4e1 --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/browser-red/.last-run.json @@ -0,0 +1,7 @@ +{ + "status": "failed", + "failedTests": [ + "87be2dcdb54c25970a35-d93130048b0c80dc4106", + "87be2dcdb54c25970a35-9f9914a49e88a65e211e" + ] +} \ No newline at end of file diff --git a/.agent/evidence-v0.2.3/privacy-screening/browser-red/audio-음성·현장음-109개-versioned-WAV를-실제-Chrome에서-해시·디코드-검증한다-desktop/error-context.md b/.agent/evidence-v0.2.3/privacy-screening/browser-red/audio-음성·현장음-109개-versioned-WAV를-실제-Chrome에서-해시·디코드-검증한다-desktop/error-context.md new file mode 100644 index 0000000..d923d71 --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/browser-red/audio-음성·현장음-109개-versioned-WAV를-실제-Chrome에서-해시·디코드-검증한다-desktop/error-context.md @@ -0,0 +1,286 @@ +# 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: audio.spec.ts >> 음성·현장음 109개 versioned WAV를 실제 Chrome에서 해시·디코드 검증한다 +- Location: tests/browser/audio.spec.ts:7:1 + +# Error details + +``` +Error: expect(received).toBe(expected) // Object.is equality + +Expected: true +Received: false +``` + +# 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.3 + - generic [ref=e13]: + - link "플레이 방법" [ref=e14] [cursor=pointer]: + - /url: "#howto" + - text: 플레이 방법 ↓ + - text: 소리에 집중하는 시간 + - main [ref=e16]: + - region [ref=e17]: + - generic [ref=e18]: + - paragraph [ref=e19]: 귀를 기울이면, 발견하는 즐거움 + - heading [level=2] [ref=e21]: + - text: 소음 속 작은 단어, + - emphasis [ref=e22]: 들리시나요? + - paragraph [ref=e23]: 도시의 소리 사이에 에스가 숨겨 둔 단어.조금 더 귀 기울여, 오늘의 행운을 찾아보세요. + - generic [ref=e24]: + - generic [ref=e25]: 한 라운드 3개의 질문 + - generic [ref=e26]: ·5단계 도전 + - generic [ref=e27]: ·나만의 속도로 + - generic [ref=e28]: + - generic [ref=e29]: + - generic [ref=e30]: 에스의 사운드 룸 + - generic [ref=e32]: 8가지 환경 + - generic [aria-hidden] [ref=e35]: ♪ + - generic [aria-hidden] [ref=e36]: ✳ + - generic [ref=e37]: 행운의 단어를 찾아보거라! + - generic [ref=e44]: S + - generic [ref=e45]: 소음 사이, 숨겨진 한마디 + - region [ref=e82]: + - generic [ref=e83]: + - generic [ref=e84]: "01" + - generic [ref=e85]: + - heading "나의 소리 탐험 준비" [level=2] [ref=e86] + - paragraph [ref=e87]: 한 단계에서 세 문제를 풀고, 완료 후 다음 단계에 도전해요. + - generic [ref=e88]: 라운드당 약 1–2분 + - generic [ref=e89]: + - group "어떻게 답할까요?" [ref=e90]: + - generic [ref=e92]: + - generic [ref=e93] [cursor=pointer]: + - radio "골고루 풀기" [checked] [ref=e94] + - generic [aria-hidden] [ref=e95]: ◈ + - strong [ref=e96]: 골고루 풀기 + - generic [ref=e97]: 선택 + 직접 입력 + - generic [ref=e98] [cursor=pointer]: + - radio "보기에서 선택" [ref=e99] + - generic [aria-hidden] [ref=e100]: ☷ + - strong [ref=e101]: 보기에서 선택 + - generic [ref=e102]: 4개 단어 중 하나 + - generic [ref=e103] [cursor=pointer]: + - radio "직접 입력" [ref=e104] + - generic [aria-hidden] [ref=e105]: ✎ + - strong [ref=e106]: 직접 입력 + - generic [ref=e107]: 기억한 단어 쓰기 + - generic [ref=e108]: + - generic [ref=e109]: 배경 환경 + - combobox "배경 환경" [ref=e110] [cursor=pointer]: + - option "여덟 가지 일상 속으로" [selected] + - option "길거리" + - option "쇼핑몰" + - option "극장" + - option "백화점" + - option "시장" + - option "지하철" + - option "카페" + - option "비 오는 거리" + - paragraph [ref=e111]: 길거리부터 비 오는 거리까지, 매번 다른 공간을 만나요. + - generic [ref=e112]: + - generic [ref=e113]: 길거리 + - generic [ref=e114]: 카페 + - generic [ref=e115]: 지하철 + - generic [ref=e116]: +5개 환경 + - generic [ref=e117]: + - generic [ref=e118]: 시작 난이도 + - combobox "시작 난이도" [ref=e119] [cursor=pointer]: + - option "1단계 · 소리에 익숙해지기" [selected] + - option "2단계 · 귀 기울이기" + - option "3단계 · 소음 사이로" + - option "4단계 · 작은 단서 찾기" + - option "5단계 · 깊이 집중하기" + - generic [ref=e120]: + - generic [ref=e121]: 목표 음성 SNR + - slider "목표 음성 SNR" [ref=e122] [cursor=pointer]: "6" + - status [ref=e123]: SNR +6 dB + - paragraph [ref=e124]: 음성이 배경보다 6 dB 커요. 범위 −12~+12 dB · 1 dB 간격. 양수는 음성이 더 크게, 0은 같게, 음수는 더 작게 들려요. 변경은 다음 재생·재청취부터 적용돼요. + - generic [ref=e125]: + - generic [ref=e126]: ◖)) 전체 음량 + - slider "전체 음량" [ref=e127] [cursor=pointer]: "35" + - status [ref=e128]: 35% + - generic [ref=e129]: + - paragraph [ref=e130]: ♬ 편안한 작은 음량으로 시작해 보세요. + - button "게임 시작 · 소리 듣기" [ref=e131] [cursor=pointer]: + - text: 게임 시작 · 소리 듣기 + - generic [aria-hidden] [ref=e132]: → + - region [ref=e133]: + - heading "작은 단어를 발견하는 방법" [level=2] [ref=e134] + - generic [ref=e135]: + - article [ref=e136]: + - generic [ref=e137]: "01" + - heading "먼저, 귀 기울이기" [level=3] [ref=e138] + - paragraph [ref=e139]: 에스의 안내와 소음 속 문장을 들어요.한 라운드 동안 같은 난이도로 들어요. + - article [ref=e140]: + - generic [ref=e141]: "02" + - heading "기억한 단어 찾기" [level=3] [ref=e142] + - paragraph [ref=e143]: 소리가 끝나면 질문이 나타나요.보기에서 고르거나 직접 입력해요. + - article [ref=e144]: + - generic [ref=e145]: "03" + - heading "나의 발견 돌아보기" [level=3] [ref=e146] + - paragraph [ref=e147]: 세 문제 뒤 나의 결과를 확인해요.놓쳤다면 언제든 다시 들어도 좋아요. + - contentinfo [ref=e148]: + - paragraph [ref=e149]: Designed by OZ at Heat-T Medical Inc. + - paragraph [ref=e150]: 청각적 주의·식별 게임 · 의료적 진단이나 치료를 제공하지 않습니다. + - generic [ref=e151]: 개인정보 수집 없이, 오직 플레이만. + - link "환경음 출처·라이선스" [ref=e152] [cursor=pointer]: + - /url: /ambience/AMBIENCE_NOTICES.md +``` + +# Test source + +```ts + 1 | import { readFileSync, writeFileSync } from "node:fs"; + 2 | import { expect, test } from "@playwright/test"; + 3 | import { createQuestions } from "../../src/game"; + 4 | import { isAudioRequest } from "./audio-requests"; + 5 | + 6 | // 과거 evidence의 검증 스크립트는 보존하고, query URL 전수 검사를 정규 suite로 옮긴다. + 7 | test("음성·현장음 109개 versioned WAV를 실제 Chrome에서 해시·디코드 검증한다", async ({ + 8 | page, + 9 | browser, + 10 | }, info) => { + 11 | const external: string[] = []; + 12 | const errors: string[] = []; + 13 | const failed: string[] = []; + 14 | const requests: string[] = []; + 15 | page.on("request", (request) => { + 16 | const url = new URL(request.url()); + 17 | if (url.origin !== "http://127.0.0.1:4173") external.push(url.href); + 18 | if (isAudioRequest(url) || url.pathname.startsWith("/ambience/")) + 19 | requests.push(url.href); + 20 | }); + 21 | page.on("console", (message) => { + 22 | if (message.type() === "error") errors.push(message.text()); + 23 | }); + 24 | page.on("requestfailed", (request) => failed.push(request.url())); + 25 | page.on("pageerror", (error) => errors.push(error.message)); + 26 | await page.goto("/"); + 27 | await expect(page).toHaveTitle("단어를 맞춰라 · Find-Word v0.2.3"); + 28 | await expect(page.locator(".version")).toHaveText("v0.2.3"); + 29 | const plan = JSON.parse(readFileSync(".agent/AMBIENCE-SOURCES-v0.2.3.json", "utf8")); + 30 | const published = await page.evaluate(async () => ({ + 31 | manifest: await (await fetch("/ambience/manifest.json?v=0.2.3")).json(), + 32 | notice: await (await fetch("/ambience/AMBIENCE_NOTICES.md?v=0.2.3")).text(), + 33 | })); + 34 | expect(published.manifest).toEqual(JSON.parse(readFileSync("public/ambience/manifest.json", "utf8"))); + 35 | for (const asset of plan.assets) { + 36 | const start = asset.selectedSegmentStartSeconds; +> 37 | expect(Number.isFinite(start)).toBe(true); + | ^ Error: expect(received).toBe(expected) // Object.is equality + 38 | expect(start).toBeGreaterThanOrEqual(0); + 39 | expect(start + 12).toBeLessThanOrEqual(asset.directMediaDurationSeconds); + 40 | const entry = published.manifest.files.find((e: { environmentId: string }) => e.environmentId === asset.environmentId); + 41 | expect(entry.selectedSegmentStartSeconds).toBe(start); + 42 | expect(entry.conversion.startSeconds).toBe(start); + 43 | expect(entry.conversion.durationSeconds).toBe(12); + 44 | const section = published.notice.split("## ").find((s: string) => s.startsWith(`${asset.displayName} — ${asset.environmentId}\n`)); + 45 | expect(section).toContain(`source seconds ${start}–${start + 12}.`); + 46 | } + 47 | // intro는 테스트에서 URL을 재조립하지 않고 배포 앱의 실제 요청을 관찰한다. + 48 | const introRequest = page.waitForRequest( + 49 | (request) => new URL(request.url()).pathname === "/audio/intro.wav", + 50 | ); + 51 | await page.getByRole("button", { name: "게임 시작 · 소리 듣기" }).click(); + 52 | const introUrl = (await introRequest).url(); + 53 | await expect(page.getByRole("group", { name: "답 선택" })).toBeVisible({ + 54 | timeout: 30000, + 55 | }); + 56 | await page.getByRole("button", { name: "문제 풀이 종료" }).click(); + 57 | await page.getByRole("button", { name: "처음 화면으로" }).click(); + 58 | const targetUrls = [ + 59 | ...new Set( + 60 | Array.from({ length: 1000 }, (_, seed) => + 61 | createQuestions(seed, "mixed").map((question) => question.audioUrl), + 62 | ).flat(), + 63 | ), + 64 | ]; + 65 | expect(targetUrls).toHaveLength(100); + 66 | const ambience = JSON.parse( + 67 | readFileSync("public/ambience/manifest.json", "utf8"), + 68 | ); + 69 | const urls = [ + 70 | introUrl, + 71 | ...ambience.files.map( + 72 | (entry: { file: string }) => + 73 | new URL(`/ambience/${entry.file}?v=0.2.3`, page.url()).href, + 74 | ), + 75 | ...targetUrls.map((url) => new URL(url, page.url()).href), + 76 | ]; + 77 | expect( + 78 | new Set(urls.map((url) => new URL(url).searchParams.get("v"))), + 79 | ).toEqual(new Set(["0.2.3"])); + 80 | expect( + 81 | urls.every((url) => new URL(url).origin === new URL(page.url()).origin), + 82 | ).toBe(true); + 83 | const manifest = JSON.parse( + 84 | readFileSync("public/audio/manifest.json", "utf8"), + 85 | ) as { + 86 | version: string; + 87 | files: { file: string; sha256: string; bytes: number; duration: number }[]; + 88 | }; + 89 | expect(manifest.version).toBe("0.2.3"); + 90 | // 두 manifest의 파일명 충돌 없이 경로를 명시해 109개 응답을 독립 대조한다. + 91 | const entries = [ + 92 | ...manifest.files.map((entry) => ({ + 93 | ...entry, + 94 | path: `/audio/${entry.file}`, + 95 | })), + 96 | ...ambience.files.map( + 97 | (entry: { + 98 | file: string; + 99 | sha256: string; + 100 | bytes: number; + 101 | duration: number; + 102 | }) => ({ ...entry, path: `/ambience/${entry.file}` }), + 103 | ), + 104 | ]; + 105 | expect(urls.map((url) => new URL(url).pathname).sort()).toEqual( + 106 | entries.map((entry) => entry.path).sort(), + 107 | ); + 108 | requests.length = 0; + 109 | const rows = await page.evaluate( + 110 | async ({ urls, entries }) => { + 111 | const context = new OfflineAudioContext(1, 1, 24000); + 112 | const rows = []; + 113 | for (const url of urls) { + 114 | // query를 파일명으로 취급하지 않는다. 원문 파일과 응답 해시를 독립 대조한다. + 115 | const entry = entries.find( + 116 | (entry) => entry.path === new URL(url).pathname, + 117 | )!; + 118 | const response = await fetch(url); + 119 | if (!response.ok) throw Error(`${url}: HTTP ${response.status}`); + 120 | const bytes = await response.arrayBuffer(); + 121 | const sha256 = Array.from( + 122 | new Uint8Array(await crypto.subtle.digest("SHA-256", bytes)), + 123 | (b) => b.toString(16).padStart(2, "0"), + 124 | ).join(""); + 125 | if (sha256 !== entry.sha256 || bytes.byteLength !== entry.bytes) + 126 | throw Error(`${url}: integrity mismatch`); + 127 | const buffer = await context.decodeAudioData(bytes); + 128 | if ( + 129 | buffer.sampleRate !== 24000 || + 130 | buffer.numberOfChannels !== 1 || + 131 | Math.abs(buffer.duration - entry.duration) > 1e-9 + 132 | ) + 133 | throw Error(`${url}: decode format/duration mismatch`); + 134 | let power = 0, + 135 | peak = 0; + 136 | for (const sample of buffer.getChannelData(0)) { + 137 | power += sample * sample; +``` \ No newline at end of file diff --git a/.agent/evidence-v0.2.3/privacy-screening/browser-red/audio-음성·현장음-109개-versioned-WAV를-실제-Chrome에서-해시·디코드-검증한다-desktop/trace.zip b/.agent/evidence-v0.2.3/privacy-screening/browser-red/audio-음성·현장음-109개-versioned-WAV를-실제-Chrome에서-해시·디코드-검증한다-desktop/trace.zip new file mode 100644 index 0000000..7cb41e3 Binary files /dev/null and b/.agent/evidence-v0.2.3/privacy-screening/browser-red/audio-음성·현장음-109개-versioned-WAV를-실제-Chrome에서-해시·디코드-검증한다-desktop/trace.zip differ diff --git a/.agent/evidence-v0.2.3/privacy-screening/browser-red/audio-음성·현장음-109개-versioned-WAV를-실제-Chrome에서-해시·디코드-검증한다-mobile/error-context.md b/.agent/evidence-v0.2.3/privacy-screening/browser-red/audio-음성·현장음-109개-versioned-WAV를-실제-Chrome에서-해시·디코드-검증한다-mobile/error-context.md new file mode 100644 index 0000000..b46bca6 --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/browser-red/audio-음성·현장음-109개-versioned-WAV를-실제-Chrome에서-해시·디코드-검증한다-mobile/error-context.md @@ -0,0 +1,285 @@ +# 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: audio.spec.ts >> 음성·현장음 109개 versioned WAV를 실제 Chrome에서 해시·디코드 검증한다 +- Location: tests/browser/audio.spec.ts:7:1 + +# Error details + +``` +Error: expect(received).toBe(expected) // Object.is equality + +Expected: true +Received: false +``` + +# 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.3 + - generic [ref=e13]: + - link "플레이 방법" [ref=e14] [cursor=pointer]: + - /url: "#howto" + - text: 플레이 방법 ↓ + - text: 소리에 집중하는 시간 + - main [ref=e15]: + - region [ref=e16]: + - generic [ref=e17]: + - paragraph [ref=e18]: 귀를 기울이면, 발견하는 즐거움 + - heading [level=2] [ref=e20]: + - text: 소음 속 작은 단어, + - emphasis [ref=e21]: 들리시나요? + - paragraph [ref=e22]: 도시의 소리 사이에 에스가 숨겨 둔 단어.조금 더 귀 기울여, 오늘의 행운을 찾아보세요. + - generic [ref=e23]: + - generic [ref=e24]: 한 라운드 3개의 질문 + - generic [ref=e25]: ·5단계 도전 + - generic [ref=e26]: ·나만의 속도로 + - generic [ref=e27]: + - generic [ref=e28]: + - generic [ref=e29]: 에스의 사운드 룸 + - generic [ref=e31]: 8가지 환경 + - generic [aria-hidden] [ref=e34]: ♪ + - generic [aria-hidden] [ref=e35]: ✳ + - generic [ref=e36]: 행운의 단어를 찾아보거라! + - generic [ref=e43]: S + - generic [ref=e44]: 소음 사이, 숨겨진 한마디 + - region [ref=e81]: + - generic [ref=e82]: + - generic [ref=e83]: "01" + - generic [ref=e84]: + - heading "나의 소리 탐험 준비" [level=2] [ref=e85] + - paragraph [ref=e86]: 한 단계에서 세 문제를 풀고, 완료 후 다음 단계에 도전해요. + - generic [ref=e87]: + - group "어떻게 답할까요?" [ref=e88]: + - generic [ref=e90]: + - generic [ref=e91] [cursor=pointer]: + - radio "골고루 풀기" [checked] [ref=e92] + - generic [aria-hidden] [ref=e93]: ◈ + - strong [ref=e94]: 골고루 풀기 + - generic [ref=e95]: 선택 + 직접 입력 + - generic [ref=e96] [cursor=pointer]: + - radio "보기에서 선택" [ref=e97] + - generic [aria-hidden] [ref=e98]: ☷ + - strong [ref=e99]: 보기에서 선택 + - generic [ref=e100]: 4개 단어 중 하나 + - generic [ref=e101] [cursor=pointer]: + - radio "직접 입력" [ref=e102] + - generic [aria-hidden] [ref=e103]: ✎ + - strong [ref=e104]: 직접 입력 + - generic [ref=e105]: 기억한 단어 쓰기 + - generic [ref=e106]: + - generic [ref=e107]: 배경 환경 + - combobox "배경 환경" [ref=e108] [cursor=pointer]: + - option "여덟 가지 일상 속으로" [selected] + - option "길거리" + - option "쇼핑몰" + - option "극장" + - option "백화점" + - option "시장" + - option "지하철" + - option "카페" + - option "비 오는 거리" + - paragraph [ref=e109]: 길거리부터 비 오는 거리까지, 매번 다른 공간을 만나요. + - generic [ref=e110]: + - generic [ref=e111]: 길거리 + - generic [ref=e112]: 카페 + - generic [ref=e113]: 지하철 + - generic [ref=e114]: +5개 환경 + - generic [ref=e115]: + - generic [ref=e116]: 시작 난이도 + - combobox "시작 난이도" [ref=e117] [cursor=pointer]: + - option "1단계 · 소리에 익숙해지기" [selected] + - option "2단계 · 귀 기울이기" + - option "3단계 · 소음 사이로" + - option "4단계 · 작은 단서 찾기" + - option "5단계 · 깊이 집중하기" + - generic [ref=e118]: + - generic [ref=e119]: 목표 음성 SNR + - slider "목표 음성 SNR" [ref=e120] [cursor=pointer]: "6" + - status [ref=e121]: SNR +6 dB + - paragraph [ref=e122]: 음성이 배경보다 6 dB 커요. 범위 −12~+12 dB · 1 dB 간격. 양수는 음성이 더 크게, 0은 같게, 음수는 더 작게 들려요. 변경은 다음 재생·재청취부터 적용돼요. + - generic [ref=e123]: + - generic [ref=e124]: ◖)) 전체 음량 + - slider "전체 음량" [ref=e125] [cursor=pointer]: "35" + - status [ref=e126]: 35% + - generic [ref=e127]: + - paragraph [ref=e128]: ♬ 편안한 작은 음량으로 시작해 보세요. + - button "게임 시작 · 소리 듣기" [ref=e129] [cursor=pointer]: + - text: 게임 시작 · 소리 듣기 + - generic [aria-hidden] [ref=e130]: → + - region [ref=e131]: + - heading "작은 단어를 발견하는 방법" [level=2] [ref=e132] + - generic [ref=e133]: + - article [ref=e134]: + - generic [ref=e135]: "01" + - heading "먼저, 귀 기울이기" [level=3] [ref=e136] + - paragraph [ref=e137]: 에스의 안내와 소음 속 문장을 들어요. 한 라운드 동안 같은 난이도로 들어요. + - article [ref=e138]: + - generic [ref=e139]: "02" + - heading "기억한 단어 찾기" [level=3] [ref=e140] + - paragraph [ref=e141]: 소리가 끝나면 질문이 나타나요. 보기에서 고르거나 직접 입력해요. + - article [ref=e142]: + - generic [ref=e143]: "03" + - heading "나의 발견 돌아보기" [level=3] [ref=e144] + - paragraph [ref=e145]: 세 문제 뒤 나의 결과를 확인해요. 놓쳤다면 언제든 다시 들어도 좋아요. + - contentinfo [ref=e146]: + - paragraph [ref=e147]: Designed by OZ at Heat-T Medical Inc. + - paragraph [ref=e148]: 청각적 주의·식별 게임 · 의료적 진단이나 치료를 제공하지 않습니다. + - generic [ref=e149]: 개인정보 수집 없이, 오직 플레이만. + - link "환경음 출처·라이선스" [ref=e150] [cursor=pointer]: + - /url: /ambience/AMBIENCE_NOTICES.md +``` + +# Test source + +```ts + 1 | import { readFileSync, writeFileSync } from "node:fs"; + 2 | import { expect, test } from "@playwright/test"; + 3 | import { createQuestions } from "../../src/game"; + 4 | import { isAudioRequest } from "./audio-requests"; + 5 | + 6 | // 과거 evidence의 검증 스크립트는 보존하고, query URL 전수 검사를 정규 suite로 옮긴다. + 7 | test("음성·현장음 109개 versioned WAV를 실제 Chrome에서 해시·디코드 검증한다", async ({ + 8 | page, + 9 | browser, + 10 | }, info) => { + 11 | const external: string[] = []; + 12 | const errors: string[] = []; + 13 | const failed: string[] = []; + 14 | const requests: string[] = []; + 15 | page.on("request", (request) => { + 16 | const url = new URL(request.url()); + 17 | if (url.origin !== "http://127.0.0.1:4173") external.push(url.href); + 18 | if (isAudioRequest(url) || url.pathname.startsWith("/ambience/")) + 19 | requests.push(url.href); + 20 | }); + 21 | page.on("console", (message) => { + 22 | if (message.type() === "error") errors.push(message.text()); + 23 | }); + 24 | page.on("requestfailed", (request) => failed.push(request.url())); + 25 | page.on("pageerror", (error) => errors.push(error.message)); + 26 | await page.goto("/"); + 27 | await expect(page).toHaveTitle("단어를 맞춰라 · Find-Word v0.2.3"); + 28 | await expect(page.locator(".version")).toHaveText("v0.2.3"); + 29 | const plan = JSON.parse(readFileSync(".agent/AMBIENCE-SOURCES-v0.2.3.json", "utf8")); + 30 | const published = await page.evaluate(async () => ({ + 31 | manifest: await (await fetch("/ambience/manifest.json?v=0.2.3")).json(), + 32 | notice: await (await fetch("/ambience/AMBIENCE_NOTICES.md?v=0.2.3")).text(), + 33 | })); + 34 | expect(published.manifest).toEqual(JSON.parse(readFileSync("public/ambience/manifest.json", "utf8"))); + 35 | for (const asset of plan.assets) { + 36 | const start = asset.selectedSegmentStartSeconds; +> 37 | expect(Number.isFinite(start)).toBe(true); + | ^ Error: expect(received).toBe(expected) // Object.is equality + 38 | expect(start).toBeGreaterThanOrEqual(0); + 39 | expect(start + 12).toBeLessThanOrEqual(asset.directMediaDurationSeconds); + 40 | const entry = published.manifest.files.find((e: { environmentId: string }) => e.environmentId === asset.environmentId); + 41 | expect(entry.selectedSegmentStartSeconds).toBe(start); + 42 | expect(entry.conversion.startSeconds).toBe(start); + 43 | expect(entry.conversion.durationSeconds).toBe(12); + 44 | const section = published.notice.split("## ").find((s: string) => s.startsWith(`${asset.displayName} — ${asset.environmentId}\n`)); + 45 | expect(section).toContain(`source seconds ${start}–${start + 12}.`); + 46 | } + 47 | // intro는 테스트에서 URL을 재조립하지 않고 배포 앱의 실제 요청을 관찰한다. + 48 | const introRequest = page.waitForRequest( + 49 | (request) => new URL(request.url()).pathname === "/audio/intro.wav", + 50 | ); + 51 | await page.getByRole("button", { name: "게임 시작 · 소리 듣기" }).click(); + 52 | const introUrl = (await introRequest).url(); + 53 | await expect(page.getByRole("group", { name: "답 선택" })).toBeVisible({ + 54 | timeout: 30000, + 55 | }); + 56 | await page.getByRole("button", { name: "문제 풀이 종료" }).click(); + 57 | await page.getByRole("button", { name: "처음 화면으로" }).click(); + 58 | const targetUrls = [ + 59 | ...new Set( + 60 | Array.from({ length: 1000 }, (_, seed) => + 61 | createQuestions(seed, "mixed").map((question) => question.audioUrl), + 62 | ).flat(), + 63 | ), + 64 | ]; + 65 | expect(targetUrls).toHaveLength(100); + 66 | const ambience = JSON.parse( + 67 | readFileSync("public/ambience/manifest.json", "utf8"), + 68 | ); + 69 | const urls = [ + 70 | introUrl, + 71 | ...ambience.files.map( + 72 | (entry: { file: string }) => + 73 | new URL(`/ambience/${entry.file}?v=0.2.3`, page.url()).href, + 74 | ), + 75 | ...targetUrls.map((url) => new URL(url, page.url()).href), + 76 | ]; + 77 | expect( + 78 | new Set(urls.map((url) => new URL(url).searchParams.get("v"))), + 79 | ).toEqual(new Set(["0.2.3"])); + 80 | expect( + 81 | urls.every((url) => new URL(url).origin === new URL(page.url()).origin), + 82 | ).toBe(true); + 83 | const manifest = JSON.parse( + 84 | readFileSync("public/audio/manifest.json", "utf8"), + 85 | ) as { + 86 | version: string; + 87 | files: { file: string; sha256: string; bytes: number; duration: number }[]; + 88 | }; + 89 | expect(manifest.version).toBe("0.2.3"); + 90 | // 두 manifest의 파일명 충돌 없이 경로를 명시해 109개 응답을 독립 대조한다. + 91 | const entries = [ + 92 | ...manifest.files.map((entry) => ({ + 93 | ...entry, + 94 | path: `/audio/${entry.file}`, + 95 | })), + 96 | ...ambience.files.map( + 97 | (entry: { + 98 | file: string; + 99 | sha256: string; + 100 | bytes: number; + 101 | duration: number; + 102 | }) => ({ ...entry, path: `/ambience/${entry.file}` }), + 103 | ), + 104 | ]; + 105 | expect(urls.map((url) => new URL(url).pathname).sort()).toEqual( + 106 | entries.map((entry) => entry.path).sort(), + 107 | ); + 108 | requests.length = 0; + 109 | const rows = await page.evaluate( + 110 | async ({ urls, entries }) => { + 111 | const context = new OfflineAudioContext(1, 1, 24000); + 112 | const rows = []; + 113 | for (const url of urls) { + 114 | // query를 파일명으로 취급하지 않는다. 원문 파일과 응답 해시를 독립 대조한다. + 115 | const entry = entries.find( + 116 | (entry) => entry.path === new URL(url).pathname, + 117 | )!; + 118 | const response = await fetch(url); + 119 | if (!response.ok) throw Error(`${url}: HTTP ${response.status}`); + 120 | const bytes = await response.arrayBuffer(); + 121 | const sha256 = Array.from( + 122 | new Uint8Array(await crypto.subtle.digest("SHA-256", bytes)), + 123 | (b) => b.toString(16).padStart(2, "0"), + 124 | ).join(""); + 125 | if (sha256 !== entry.sha256 || bytes.byteLength !== entry.bytes) + 126 | throw Error(`${url}: integrity mismatch`); + 127 | const buffer = await context.decodeAudioData(bytes); + 128 | if ( + 129 | buffer.sampleRate !== 24000 || + 130 | buffer.numberOfChannels !== 1 || + 131 | Math.abs(buffer.duration - entry.duration) > 1e-9 + 132 | ) + 133 | throw Error(`${url}: decode format/duration mismatch`); + 134 | let power = 0, + 135 | peak = 0; + 136 | for (const sample of buffer.getChannelData(0)) { + 137 | power += sample * sample; +``` \ No newline at end of file diff --git a/.agent/evidence-v0.2.3/privacy-screening/browser-red/audio-음성·현장음-109개-versioned-WAV를-실제-Chrome에서-해시·디코드-검증한다-mobile/trace.zip b/.agent/evidence-v0.2.3/privacy-screening/browser-red/audio-음성·현장음-109개-versioned-WAV를-실제-Chrome에서-해시·디코드-검증한다-mobile/trace.zip new file mode 100644 index 0000000..a43a515 Binary files /dev/null and b/.agent/evidence-v0.2.3/privacy-screening/browser-red/audio-음성·현장음-109개-versioned-WAV를-실제-Chrome에서-해시·디코드-검증한다-mobile/trace.zip differ diff --git a/.agent/evidence-v0.2.3/privacy-screening/browser-results.json b/.agent/evidence-v0.2.3/privacy-screening/browser-results.json new file mode 100644 index 0000000..dfb11bb --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/browser-results.json @@ -0,0 +1,1253 @@ +{ + "config": { + "argv": [ + "/home/hermes/.hermes/node/bin/node", + "/home/hermes/worktrees/find-word-v0.2.3/node_modules/.bin/playwright", + "test", + "--reporter=line,json", + "--output=.agent/evidence-v0.2.3/privacy-screening/browser-final" + ], + "configFile": "/home/hermes/worktrees/find-word-v0.2.3/playwright.config.ts", + "rootDir": "/home/hermes/worktrees/find-word-v0.2.3/tests/browser", + "failOnFlakyTests": false, + "forbidOnly": false, + "fullyParallel": true, + "globalSetup": null, + "globalTeardown": null, + "globalTimeout": 0, + "grep": {}, + "grepInvert": null, + "maxFailures": 0, + "metadata": { + "actualWorkers": 2 + }, + "preserveOutput": "always", + "projects": [ + { + "outputDir": "/home/hermes/worktrees/find-word-v0.2.3/.agent/evidence-v0.2.3/privacy-screening/browser-final", + "repeatEach": 1, + "retries": 0, + "metadata": { + "actualWorkers": 2 + }, + "id": "desktop", + "name": "desktop", + "testDir": "/home/hermes/worktrees/find-word-v0.2.3/tests/browser", + "testIgnore": [], + "testMatch": [ + "**/*.@(spec|test).?(c|m)[jt]s?(x)" + ], + "timeout": 120000 + }, + { + "outputDir": "/home/hermes/worktrees/find-word-v0.2.3/.agent/evidence-v0.2.3/privacy-screening/browser-final", + "repeatEach": 1, + "retries": 0, + "metadata": { + "actualWorkers": 2 + }, + "id": "mobile", + "name": "mobile", + "testDir": "/home/hermes/worktrees/find-word-v0.2.3/tests/browser", + "testIgnore": [], + "testMatch": [ + "**/*.@(spec|test).?(c|m)[jt]s?(x)" + ], + "timeout": 120000 + } + ], + "filteredProjects": [ + { + "grep": {}, + "grepInvert": null, + "outputDir": "/home/hermes/worktrees/find-word-v0.2.3/.agent/evidence-v0.2.3/privacy-screening/browser-final", + "repeatEach": 1, + "retries": 0, + "metadata": { + "actualWorkers": 2 + }, + "name": "desktop", + "testDir": "/home/hermes/worktrees/find-word-v0.2.3/tests/browser", + "snapshotDir": "/home/hermes/worktrees/find-word-v0.2.3/tests/browser", + "testIgnore": [], + "testMatch": "**/*.@(spec|test).?(c|m)[jt]s?(x)", + "timeout": 120000, + "use": { + "baseURL": "http://127.0.0.1:4173", + "launchOptions": { + "executablePath": "/usr/bin/google-chrome", + "chromiumSandbox": true + }, + "trace": "retain-on-failure", + "viewport": { + "width": 1280, + "height": 1000 + } + }, + "dependencies": [], + "ignoreSnapshots": false, + "__projectId": "desktop" + }, + { + "grep": {}, + "grepInvert": null, + "outputDir": "/home/hermes/worktrees/find-word-v0.2.3/.agent/evidence-v0.2.3/privacy-screening/browser-final", + "repeatEach": 1, + "retries": 0, + "metadata": { + "actualWorkers": 2 + }, + "name": "mobile", + "testDir": "/home/hermes/worktrees/find-word-v0.2.3/tests/browser", + "snapshotDir": "/home/hermes/worktrees/find-word-v0.2.3/tests/browser", + "testIgnore": [], + "testMatch": "**/*.@(spec|test).?(c|m)[jt]s?(x)", + "timeout": 120000, + "use": { + "baseURL": "http://127.0.0.1:4173", + "launchOptions": { + "executablePath": "/usr/bin/google-chrome", + "chromiumSandbox": true + }, + "trace": "retain-on-failure", + "viewport": { + "width": 360, + "height": 800 + }, + "isMobile": true, + "hasTouch": true + }, + "dependencies": [], + "ignoreSnapshots": false, + "__projectId": "mobile" + } + ], + "quiet": false, + "reporter": [ + [ + "line" + ], + [ + "json" + ] + ], + "reportSlowTests": { + "max": 5, + "threshold": 300000 + }, + "shard": null, + "tags": [], + "updateSnapshots": "default", + "updateSourceMethod": "patch", + "version": "1.64.0", + "workers": 2, + "webServer": { + "command": "npm run preview -- --port 4173 --strictPort", + "url": "http://127.0.0.1:4173", + "reuseExistingServer": false + } + }, + "suites": [ + { + "title": "audio.spec.ts", + "file": "audio.spec.ts", + "column": 0, + "line": 0, + "specs": [ + { + "title": "음성·현장음 109개 versioned WAV를 실제 Chrome에서 해시·디코드 검증한다", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "desktop", + "projectName": "desktop", + "results": [ + { + "workerIndex": 0, + "parallelIndex": 0, + "status": "passed", + "duration": 21045, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T09:19:40.021Z", + "annotations": [], + "attachments": [ + { + "name": "109 versioned WAV integrity", + "contentType": "application/json", + "path": "/home/hermes/worktrees/find-word-v0.2.3/.agent/evidence-v0.2.3/privacy-screening/browser-final/audio-음성·현장음-109개-versioned-WAV를-실제-Chrome에서-해시·디코드-검증한다-desktop/attachments/109-versioned-WAV-integrity-bcde2a64dc46084caae2c89272a63e0ce1b6dc06.json" + } + ] + } + ], + "status": "expected" + } + ], + "id": "87be2dcdb54c25970a35-d93130048b0c80dc4106", + "file": "audio.spec.ts", + "line": 7, + "column": 1 + }, + { + "title": "음성·현장음 109개 versioned WAV를 실제 Chrome에서 해시·디코드 검증한다", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "mobile", + "projectName": "mobile", + "results": [ + { + "workerIndex": 2, + "parallelIndex": 1, + "status": "passed", + "duration": 20875, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T09:21:39.365Z", + "annotations": [], + "attachments": [ + { + "name": "109 versioned WAV integrity", + "contentType": "application/json", + "path": "/home/hermes/worktrees/find-word-v0.2.3/.agent/evidence-v0.2.3/privacy-screening/browser-final/audio-음성·현장음-109개-versioned-WAV를-실제-Chrome에서-해시·디코드-검증한다-mobile/attachments/109-versioned-WAV-integrity-c90c562b8cfd985ad0d76e1c0d918e5063cd2fba.json" + } + ] + } + ], + "status": "expected" + } + ], + "id": "87be2dcdb54c25970a35-9f9914a49e88a65e211e", + "file": "audio.spec.ts", + "line": 7, + "column": 1 + } + ] + }, + { + "title": "game.spec.ts", + "file": "game.spec.ts", + "column": 0, + "line": 0, + "specs": [ + { + "title": "실제 오디오로 혼합 모드 완주·레이아웃·접근성·외부 요청 없음", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "desktop", + "projectName": "desktop", + "results": [ + { + "workerIndex": 1, + "parallelIndex": 1, + "status": "passed", + "duration": 37648, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T09:19:40.059Z", + "annotations": [], + "attachments": [] + } + ], + "status": "expected" + } + ], + "id": "8b1bb1493a64c9fc3ab6-d223e249bc9a81f166b0", + "file": "game.spec.ts", + "line": 8, + "column": 1 + }, + { + "title": "intro WAV query URL의 404를 표시하고 같은 URL로 재시도·정답 mapping한다", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "desktop", + "projectName": "desktop", + "results": [ + { + "workerIndex": 0, + "parallelIndex": 0, + "status": "passed", + "duration": 13973, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T09:20:01.386Z", + "annotations": [], + "attachments": [] + } + ], + "status": "expected" + } + ], + "id": "8b1bb1493a64c9fc3ab6-ab45385409470bdf7ef2", + "file": "game.spec.ts", + "line": 130, + "column": 3 + }, + { + "title": "target WAV query URL의 404를 표시하고 같은 URL로 재시도·정답 mapping한다", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "desktop", + "projectName": "desktop", + "results": [ + { + "workerIndex": 0, + "parallelIndex": 0, + "status": "passed", + "duration": 19834, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T09:20:15.389Z", + "annotations": [], + "attachments": [] + } + ], + "status": "expected" + } + ], + "id": "8b1bb1493a64c9fc3ab6-52922f8228abc9f39bfe", + "file": "game.spec.ts", + "line": 130, + "column": 3 + }, + { + "title": "실제 오디오로 혼합 모드 완주·레이아웃·접근성·외부 요청 없음", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "mobile", + "projectName": "mobile", + "results": [ + { + "workerIndex": 3, + "parallelIndex": 0, + "status": "passed", + "duration": 43357, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T09:21:40.444Z", + "annotations": [], + "attachments": [] + } + ], + "status": "expected" + } + ], + "id": "8b1bb1493a64c9fc3ab6-e4766fea5c25788202a8", + "file": "game.spec.ts", + "line": 8, + "column": 1 + }, + { + "title": "intro WAV query URL의 404를 표시하고 같은 URL로 재시도·정답 mapping한다", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "mobile", + "projectName": "mobile", + "results": [ + { + "workerIndex": 2, + "parallelIndex": 1, + "status": "passed", + "duration": 16864, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T09:22:00.726Z", + "annotations": [], + "attachments": [] + } + ], + "status": "expected" + } + ], + "id": "8b1bb1493a64c9fc3ab6-84b7835dc149f0ebaeb2", + "file": "game.spec.ts", + "line": 130, + "column": 3 + }, + { + "title": "target WAV query URL의 404를 표시하고 같은 URL로 재시도·정답 mapping한다", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "mobile", + "projectName": "mobile", + "results": [ + { + "workerIndex": 2, + "parallelIndex": 1, + "status": "passed", + "duration": 16253, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T09:22:17.635Z", + "annotations": [], + "attachments": [] + } + ], + "status": "expected" + } + ], + "id": "8b1bb1493a64c9fc3ab6-05de2d3047fb33c59bd2", + "file": "game.spec.ts", + "line": 130, + "column": 3 + } + ] + }, + { + "title": "release.spec.ts", + "file": "release.spec.ts", + "column": 0, + "line": 0, + "specs": [ + { + "title": "릴리스는 사용자 크레딧과 런타임 MIT notice 전문을 제공한다", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "desktop", + "projectName": "desktop", + "results": [ + { + "workerIndex": 1, + "parallelIndex": 1, + "status": "passed", + "duration": 553, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T09:20:18.095Z", + "annotations": [], + "attachments": [] + } + ], + "status": "expected" + } + ], + "id": "7324964a6aa193ebd049-64d3eb3e631d5e3a7482", + "file": "release.spec.ts", + "line": 6, + "column": 1 + }, + { + "title": "누락 음성·환경음은 query와 HTML accept에도 404이고 출처 고지는 번들된다", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "desktop", + "projectName": "desktop", + "results": [ + { + "workerIndex": 1, + "parallelIndex": 1, + "status": "passed", + "duration": 55, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T09:20:18.683Z", + "annotations": [], + "attachments": [] + } + ], + "status": "expected" + } + ], + "id": "7324964a6aa193ebd049-a9a4a24641e1381cb656", + "file": "release.spec.ts", + "line": 24, + "column": 1 + }, + { + "title": "릴리스는 사용자 크레딧과 런타임 MIT notice 전문을 제공한다", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "mobile", + "projectName": "mobile", + "results": [ + { + "workerIndex": 3, + "parallelIndex": 0, + "status": "passed", + "duration": 290, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T09:22:24.235Z", + "annotations": [], + "attachments": [] + } + ], + "status": "expected" + } + ], + "id": "7324964a6aa193ebd049-b2bb581aa05f7bfc0a11", + "file": "release.spec.ts", + "line": 6, + "column": 1 + }, + { + "title": "누락 음성·환경음은 query와 HTML accept에도 404이고 출처 고지는 번들된다", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "mobile", + "projectName": "mobile", + "results": [ + { + "workerIndex": 3, + "parallelIndex": 0, + "status": "passed", + "duration": 18, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T09:22:24.547Z", + "annotations": [], + "attachments": [] + } + ], + "status": "expected" + } + ], + "id": "7324964a6aa193ebd049-87e393dee6d378b60b88", + "file": "release.spec.ts", + "line": 24, + "column": 1 + } + ] + }, + { + "title": "review-fixes.spec.ts", + "file": "review-fixes.spec.ts", + "column": 0, + "line": 0, + "specs": [ + { + "title": "리뷰: 한국어 모드·결과 어절은 320px와 360px에서도 갈라지거나 넘치지 않는다", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "desktop", + "projectName": "desktop", + "results": [ + { + "workerIndex": 1, + "parallelIndex": 1, + "status": "passed", + "duration": 2077, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T09:20:18.767Z", + "annotations": [], + "attachments": [] + } + ], + "status": "expected" + } + ], + "id": "abdd2e2cf517d3c959fd-e748bd769b024912a05a", + "file": "review-fixes.spec.ts", + "line": 27, + "column": 1 + }, + { + "title": "리뷰: 실제 진행 막대는 현재 문항의 1/3·2/3·3/3을 채운다", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "desktop", + "projectName": "desktop", + "results": [ + { + "workerIndex": 1, + "parallelIndex": 1, + "status": "passed", + "duration": 34208, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T09:20:20.873Z", + "annotations": [], + "attachments": [] + } + ], + "status": "expected" + } + ], + "id": "abdd2e2cf517d3c959fd-f7936886d307bf504a2e", + "file": "review-fixes.spec.ts", + "line": 62, + "column": 1 + }, + { + "title": "리뷰: 한국어 모드·결과 어절은 320px와 360px에서도 갈라지거나 넘치지 않는다", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "mobile", + "projectName": "mobile", + "results": [ + { + "workerIndex": 3, + "parallelIndex": 0, + "status": "passed", + "duration": 1620, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T09:22:24.582Z", + "annotations": [], + "attachments": [] + } + ], + "status": "expected" + } + ], + "id": "abdd2e2cf517d3c959fd-297a2a889ff2a2c13233", + "file": "review-fixes.spec.ts", + "line": 27, + "column": 1 + }, + { + "title": "리뷰: 실제 진행 막대는 현재 문항의 1/3·2/3·3/3을 채운다", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "mobile", + "projectName": "mobile", + "results": [ + { + "workerIndex": 3, + "parallelIndex": 0, + "status": "passed", + "duration": 30692, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T09:22:26.215Z", + "annotations": [], + "attachments": [] + } + ], + "status": "expected" + } + ], + "id": "abdd2e2cf517d3c959fd-99533baf08fa35da0cd2", + "file": "review-fixes.spec.ts", + "line": 62, + "column": 1 + } + ] + }, + { + "title": "rounds.spec.ts", + "file": "rounds.spec.ts", + "column": 0, + "line": 0, + "specs": [ + { + "title": "시작 단계·SNR·3문항 완료→다음 단계·재생 중 종료·응답 후 종료·홈 초기화", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "desktop", + "projectName": "desktop", + "results": [ + { + "workerIndex": 0, + "parallelIndex": 0, + "status": "passed", + "duration": 63528, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T09:20:35.282Z", + "annotations": [], + "attachments": [ + { + "name": "runtime-audit", + "contentType": "application/json", + "body": "ewogICJlcnJvcnMiOiBbXSwKICAiZmFpbGVkIjogW10sCiAgImV4dGVybmFsIjogW10sCiAgImF1ZGlvIjogewogICAgInN0YXJ0cyI6IFsKICAgICAgewogICAgICAgICJsb29wIjogdHJ1ZSwKICAgICAgICAiZHVyYXRpb24iOiAxMgogICAgICB9LAogICAgICB7CiAgICAgICAgImxvb3AiOiBmYWxzZSwKICAgICAgICAiZHVyYXRpb24iOiA3LjA1NTk4NjM5NDU1NzgyMwogICAgICB9LAogICAgICB7CiAgICAgICAgImxvb3AiOiBmYWxzZSwKICAgICAgICAiZHVyYXRpb24iOiAxMC43NzU5ODYzOTQ1NTc4MjIKICAgICAgfSwKICAgICAgewogICAgICAgICJsb29wIjogdHJ1ZSwKICAgICAgICAiZHVyYXRpb24iOiAxMgogICAgICB9LAogICAgICB7CiAgICAgICAgImxvb3AiOiBmYWxzZSwKICAgICAgICAiZHVyYXRpb24iOiA1LjA4Nzk4MTg1OTQxMDQzMQogICAgICB9LAogICAgICB7CiAgICAgICAgImxvb3AiOiB0cnVlLAogICAgICAgICJkdXJhdGlvbiI6IDEyCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAibG9vcCI6IGZhbHNlLAogICAgICAgICJkdXJhdGlvbiI6IDcuMgogICAgICB9LAogICAgICB7CiAgICAgICAgImxvb3AiOiB0cnVlLAogICAgICAgICJkdXJhdGlvbiI6IDEyCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAibG9vcCI6IGZhbHNlLAogICAgICAgICJkdXJhdGlvbiI6IDcuMDU1OTg2Mzk0NTU3ODIzCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAibG9vcCI6IGZhbHNlLAogICAgICAgICJkdXJhdGlvbiI6IDguMjMxOTk1NDY0ODUyNjA3CiAgICAgIH0sCiAgICAgIHsKICAgICAgICAibG9vcCI6IHRydWUsCiAgICAgICAgImR1cmF0aW9uIjogMTIKICAgICAgfSwKICAgICAgewogICAgICAgICJsb29wIjogZmFsc2UsCiAgICAgICAgImR1cmF0aW9uIjogNy4wNTU5ODYzOTQ1NTc4MjMKICAgICAgfSwKICAgICAgewogICAgICAgICJsb29wIjogZmFsc2UsCiAgICAgICAgImR1cmF0aW9uIjogOC44MzE5OTU0NjQ4NTI2MDcKICAgICAgfSwKICAgICAgewogICAgICAgICJsb29wIjogdHJ1ZSwKICAgICAgICAiZHVyYXRpb24iOiAxMgogICAgICB9LAogICAgICB7CiAgICAgICAgImxvb3AiOiBmYWxzZSwKICAgICAgICAiZHVyYXRpb24iOiA4LjgzMTk5NTQ2NDg1MjYwNwogICAgICB9CiAgICBdLAogICAgInN0b3BzIjogMTUKICB9Cn0=" + } + ] + } + ], + "status": "expected" + } + ], + "id": "5d80d20ef944a60dee29-84fa7dcc311fcc9f3abb", + "file": "rounds.spec.ts", + "line": 35, + "column": 1 + }, + { + "title": "여덟 환경의 실제 WAV를 각각 디코드하고 루프 재생한 뒤 즉시 정지한다", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "desktop", + "projectName": "desktop", + "results": [ + { + "workerIndex": 1, + "parallelIndex": 1, + "status": "passed", + "duration": 8092, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T09:20:55.136Z", + "annotations": [], + "attachments": [] + } + ], + "status": "expected" + } + ], + "id": "5d80d20ef944a60dee29-67ee259e43d6a5758a4c", + "file": "rounds.spec.ts", + "line": 135, + "column": 1 + }, + { + "title": "환경음 404는 한국어 오류와 재시도 후 정상 답변으로 복구한다", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "desktop", + "projectName": "desktop", + "results": [ + { + "workerIndex": 1, + "parallelIndex": 1, + "status": "passed", + "duration": 13808, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T09:21:03.257Z", + "annotations": [], + "attachments": [] + } + ], + "status": "expected" + } + ], + "id": "5d80d20ef944a60dee29-b3270c20fde2468292dc", + "file": "rounds.spec.ts", + "line": 178, + "column": 1 + }, + { + "title": "시작 단계·SNR·3문항 완료→다음 단계·재생 중 종료·응답 후 종료·홈 초기화", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "mobile", + "projectName": "mobile", + "results": [ + { + "workerIndex": 2, + "parallelIndex": 1, + "status": "passed", + "duration": 63087, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T09:22:33.938Z", + "annotations": [], + "attachments": [ + { + "name": "runtime-audit", + "contentType": "application/json", + "body": "ewogICJlcnJvcnMiOiBbXSwKICAiZmFpbGVkIjogW10sCiAgImV4dGVybmFsIjogW10sCiAgImF1ZGlvIjogewogICAgInN0YXJ0cyI6IFsKICAgICAgewogICAgICAgICJsb29wIjogdHJ1ZSwKICAgICAgICAiZHVyYXRpb24iOiAxMgogICAgICB9LAogICAgICB7CiAgICAgICAgImxvb3AiOiBmYWxzZSwKICAgICAgICAiZHVyYXRpb24iOiA3LjA1NTk4NjM5NDU1NzgyMwogICAgICB9LAogICAgICB7CiAgICAgICAgImxvb3AiOiBmYWxzZSwKICAgICAgICAiZHVyYXRpb24iOiAxMS4yNTU5ODYzOTQ1NTc4MjMKICAgICAgfSwKICAgICAgewogICAgICAgICJsb29wIjogdHJ1ZSwKICAgICAgICAiZHVyYXRpb24iOiAxMgogICAgICB9LAogICAgICB7CiAgICAgICAgImxvb3AiOiBmYWxzZSwKICAgICAgICAiZHVyYXRpb24iOiA3LjQxNTk4NjM5NDU1NzgyMwogICAgICB9LAogICAgICB7CiAgICAgICAgImxvb3AiOiB0cnVlLAogICAgICAgICJkdXJhdGlvbiI6IDEyCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAibG9vcCI6IGZhbHNlLAogICAgICAgICJkdXJhdGlvbiI6IDguMzI3OTgxODU5NDEwNDMKICAgICAgfSwKICAgICAgewogICAgICAgICJsb29wIjogdHJ1ZSwKICAgICAgICAiZHVyYXRpb24iOiAxMgogICAgICB9LAogICAgICB7CiAgICAgICAgImxvb3AiOiBmYWxzZSwKICAgICAgICAiZHVyYXRpb24iOiA3LjA1NTk4NjM5NDU1NzgyMwogICAgICB9LAogICAgICB7CiAgICAgICAgImxvb3AiOiBmYWxzZSwKICAgICAgICAiZHVyYXRpb24iOiA4LjQ3MTk5NTQ2NDg1MjYwOAogICAgICB9LAogICAgICB7CiAgICAgICAgImxvb3AiOiB0cnVlLAogICAgICAgICJkdXJhdGlvbiI6IDEyCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAibG9vcCI6IGZhbHNlLAogICAgICAgICJkdXJhdGlvbiI6IDcuMDU1OTg2Mzk0NTU3ODIzCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAibG9vcCI6IGZhbHNlLAogICAgICAgICJkdXJhdGlvbiI6IDcuNjc5OTc3MzI0MjYzMDM5CiAgICAgIH0sCiAgICAgIHsKICAgICAgICAibG9vcCI6IHRydWUsCiAgICAgICAgImR1cmF0aW9uIjogMTIKICAgICAgfSwKICAgICAgewogICAgICAgICJsb29wIjogZmFsc2UsCiAgICAgICAgImR1cmF0aW9uIjogNy42Nzk5NzczMjQyNjMwMzkKICAgICAgfQogICAgXSwKICAgICJzdG9wcyI6IDE1CiAgfQp9" + } + ] + } + ], + "status": "expected" + } + ], + "id": "5d80d20ef944a60dee29-13a6d49b3ccf87a3e87d", + "file": "rounds.spec.ts", + "line": 35, + "column": 1 + }, + { + "title": "여덟 환경의 실제 WAV를 각각 디코드하고 루프 재생한 뒤 즉시 정지한다", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "mobile", + "projectName": "mobile", + "results": [ + { + "workerIndex": 3, + "parallelIndex": 0, + "status": "passed", + "duration": 6095, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T09:22:56.929Z", + "annotations": [], + "attachments": [] + } + ], + "status": "expected" + } + ], + "id": "5d80d20ef944a60dee29-986d947b51ae90d63e40", + "file": "rounds.spec.ts", + "line": 135, + "column": 1 + }, + { + "title": "환경음 404는 한국어 오류와 재시도 후 정상 답변으로 복구한다", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "mobile", + "projectName": "mobile", + "results": [ + { + "workerIndex": 3, + "parallelIndex": 0, + "status": "passed", + "duration": 15890, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T09:23:03.064Z", + "annotations": [], + "attachments": [] + } + ], + "status": "expected" + } + ], + "id": "5d80d20ef944a60dee29-cf677d38ab55c08f0ba0", + "file": "rounds.spec.ts", + "line": 178, + "column": 1 + } + ] + }, + { + "title": "ui.spec.ts", + "file": "ui.spec.ts", + "column": 0, + "line": 0, + "specs": [ + { + "title": "전체 음량은 설정 흐름 안에 들어가며 키보드로 조절된다", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "desktop", + "projectName": "desktop", + "results": [ + { + "workerIndex": 1, + "parallelIndex": 1, + "status": "passed", + "duration": 1458, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T09:21:17.129Z", + "annotations": [], + "attachments": [] + } + ], + "status": "expected" + } + ], + "id": "d425444c687fa36b5882-2f651fec20696a7afab2", + "file": "ui.spec.ts", + "line": 4, + "column": 1 + }, + { + "title": "난이도 설명은 모바일에서도 보인다", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "desktop", + "projectName": "desktop", + "results": [ + { + "workerIndex": 1, + "parallelIndex": 1, + "status": "passed", + "duration": 1012, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T09:21:18.617Z", + "annotations": [], + "attachments": [] + } + ], + "status": "expected" + } + ], + "id": "d425444c687fa36b5882-7db7ff839d8655c45b58", + "file": "ui.spec.ts", + "line": 52, + "column": 1 + }, + { + "title": "한국어 제목은 단어 중간에서 줄바꿈하지 않는다", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "desktop", + "projectName": "desktop", + "results": [ + { + "workerIndex": 1, + "parallelIndex": 1, + "status": "passed", + "duration": 17420, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T09:21:19.658Z", + "annotations": [], + "attachments": [] + } + ], + "status": "expected" + } + ], + "id": "d425444c687fa36b5882-7518419f9a74847f1877", + "file": "ui.spec.ts", + "line": 68, + "column": 1 + }, + { + "title": "시작 단계와 SNR 설정은 카드 안에 들어가고 터치 영역을 확보한다", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "desktop", + "projectName": "desktop", + "results": [ + { + "workerIndex": 1, + "parallelIndex": 1, + "status": "passed", + "duration": 893, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T09:21:37.111Z", + "annotations": [], + "attachments": [] + } + ], + "status": "expected" + } + ], + "id": "d425444c687fa36b5882-8c65d4cc796bafc3d050", + "file": "ui.spec.ts", + "line": 121, + "column": 1 + }, + { + "title": "전체 음량은 설정 흐름 안에 들어가며 키보드로 조절된다", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "mobile", + "projectName": "mobile", + "results": [ + { + "workerIndex": 3, + "parallelIndex": 0, + "status": "passed", + "duration": 789, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T09:23:18.986Z", + "annotations": [], + "attachments": [] + } + ], + "status": "expected" + } + ], + "id": "d425444c687fa36b5882-42b32cae06f88c5571de", + "file": "ui.spec.ts", + "line": 4, + "column": 1 + }, + { + "title": "난이도 설명은 모바일에서도 보인다", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "mobile", + "projectName": "mobile", + "results": [ + { + "workerIndex": 3, + "parallelIndex": 0, + "status": "passed", + "duration": 667, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T09:23:19.791Z", + "annotations": [], + "attachments": [] + } + ], + "status": "expected" + } + ], + "id": "d425444c687fa36b5882-9bad02fda46134f05a95", + "file": "ui.spec.ts", + "line": 52, + "column": 1 + }, + { + "title": "한국어 제목은 단어 중간에서 줄바꿈하지 않는다", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "mobile", + "projectName": "mobile", + "results": [ + { + "workerIndex": 3, + "parallelIndex": 0, + "status": "passed", + "duration": 17063, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T09:23:20.473Z", + "annotations": [], + "attachments": [] + } + ], + "status": "expected" + } + ], + "id": "d425444c687fa36b5882-6ac401056de90e7e3757", + "file": "ui.spec.ts", + "line": 68, + "column": 1 + }, + { + "title": "시작 단계와 SNR 설정은 카드 안에 들어가고 터치 영역을 확보한다", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "mobile", + "projectName": "mobile", + "results": [ + { + "workerIndex": 2, + "parallelIndex": 1, + "status": "passed", + "duration": 335, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T09:23:37.057Z", + "annotations": [], + "attachments": [] + } + ], + "status": "expected" + } + ], + "id": "d425444c687fa36b5882-c761fe2d98a1c83f2536", + "file": "ui.spec.ts", + "line": 121, + "column": 1 + } + ] + } + ], + "errors": [], + "stats": { + "startTime": "2026-10-14T09:19:38.889Z", + "duration": 238765.232, + "expected": 30, + "skipped": 0, + "unexpected": 0, + "flaky": 0 + } +} \ No newline at end of file diff --git a/.agent/evidence-v0.2.3/privacy-screening/candidate-scan-original.json b/.agent/evidence-v0.2.3/privacy-screening/candidate-scan-original.json new file mode 100644 index 0000000..40a3d24 --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/candidate-scan-original.json @@ -0,0 +1,128 @@ +{ + "mall": [ + { + "start": 0, + "lang": "nn", + "p": 0.136, + "text": "We are going to take a look at this. We are going to take a look at this. We are going to take a look at this." + }, + { + "start": 12, + "lang": "en", + "p": 0.41, + "text": "Thank you." + }, + { + "start": 24, + "lang": "en", + "p": 0.302, + "text": "" + }, + { + "start": 36, + "lang": "en", + "p": 0.302, + "text": "" + }, + { + "start": 48, + "lang": "ru", + "p": 0.176, + "text": "ДИНАМИЧНАЯ МУЗЫКА" + } + ], + "market": [ + { + "start": 0, + "lang": "ja", + "p": 0.275, + "text": "キスチャでに伸ばしてる よろしくかどうしよう ごたさら、かき下でいらっしゃいこう" + }, + { + "start": 12, + "lang": "nn", + "p": 0.108, + "text": "Hey, you can't go anywhere but come! Hey, hey, hey, hey, hey!" + }, + { + "start": 24, + "lang": "en", + "p": 0.258, + "text": "" + }, + { + "start": 36, + "lang": "en", + "p": 0.302, + "text": "" + }, + { + "start": 48, + "lang": "ja", + "p": 0.205, + "text": "アナウンスで行ったら、 アナウンスで行ったら、 アナウンスで行ったら、" + }, + { + "start": 60, + "lang": "en", + "p": 0.334, + "text": "" + } + ], + "cafe": [ + { + "start": 0, + "lang": "en", + "p": 0.302, + "text": "" + }, + { + "start": 60, + "lang": "en", + "p": 0.225, + "text": "Thank you very much." + }, + { + "start": 120, + "lang": "en", + "p": 0.264, + "text": "Thank you." + }, + { + "start": 180, + "lang": "en", + "p": 0.302, + "text": "" + }, + { + "start": 300, + "lang": "en", + "p": 0.302, + "text": "" + }, + { + "start": 480, + "lang": "en", + "p": 0.302, + "text": "" + }, + { + "start": 720, + "lang": "en", + "p": 0.302, + "text": "" + }, + { + "start": 960, + "lang": "en", + "p": 0.302, + "text": "" + }, + { + "start": 1140, + "lang": "en", + "p": 0.302, + "text": "" + } + ] +} diff --git a/.agent/evidence-v0.2.3/privacy-screening/chrome-sandbox.json b/.agent/evidence-v0.2.3/privacy-screening/chrome-sandbox.json new file mode 100644 index 0000000..8db06d4 --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/chrome-sandbox.json @@ -0,0 +1,637 @@ +{ + "capturedAtUtc": "2026-10-14T09:21:57.933277+00:00", + "runnerPids": [ + 1143583 + ], + "method": "Chrome descendants of this suite runner only; chromiumSandbox=true; no --no-sandbox token in actual process command lines", + "processes": [ + { + "pid": 1150425, + "ppid": 1150374, + "commandLine": "/opt/google/chrome/chrome --disable-field-trial-config --disable-background-networking --disable-background-timer-throttling --disable-backgrounding-occluded-windows --disable-back-forward-cache --disable-breakpad --disable-client-side-phishing-detection --disable-component-extensions-with-background-pages --disable-component-update --no-default-browser-check --disable-default-apps --disable-dev-shm-usage --disable-edgeupdater --disable-extensions --disable-features=AvoidUnnecessaryBeforeUnloadCheckSync,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,PaintHolding,ThirdPartyStoragePartitioning,BlockOriginHeaderModificationOnRedirect,Translate,AutoDeElevate,OptimizationHints,NetworkTimeServiceQuerying,AimEnabled,msForceBrowserSignIn,msEdgeUpdateLaunchServicesPreferredVersion --enable-features=CDPScreenshotNewSurface --allow-pre-commit-input --disable-hang-monitor --disable-ipc-flooding-protection --disable-popup-blocking --disable-prompt-on-repost --disable-renderer-backgrounding --disable-updater-scheduler --force-color-profile=srgb --metrics-recording-only --no-first-run --password-store=basic --use-mock-keychain --no-service-autorun --export-tagged-pdf --disable-search-engine-choice-screen --unsafely-disable-devtools-self-xss-warnings --edge-skip-compat-layer-relaunch --disable-infobars --disable-search-engine-choice-screen --disable-sync --enable-unsafe-swiftshader --headless --hide-scrollbars --mute-audio --blink-settings=primaryHoverType=2,availableHoverTypes=2,primaryPointerType=4,availablePointerTypes=4 --user-data-dir=/tmp/playwright_chromiumdev_profile-FjSsOM --remote-debugging-pipe --no-startup-window --noerrdialogs --ozone-platform=headless --ozone-override-screen-size=800,600 --use-angle=swiftshader-webgl", + "arguments": [ + "/opt/google/chrome/chrome", + "--disable-field-trial-config", + "--disable-background-networking", + "--disable-background-timer-throttling", + "--disable-backgrounding-occluded-windows", + "--disable-back-forward-cache", + "--disable-breakpad", + "--disable-client-side-phishing-detection", + "--disable-component-extensions-with-background-pages", + "--disable-component-update", + "--no-default-browser-check", + "--disable-default-apps", + "--disable-dev-shm-usage", + "--disable-edgeupdater", + "--disable-extensions", + "--disable-features=AvoidUnnecessaryBeforeUnloadCheckSync,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,PaintHolding,ThirdPartyStoragePartitioning,BlockOriginHeaderModificationOnRedirect,Translate,AutoDeElevate,OptimizationHints,NetworkTimeServiceQuerying,AimEnabled,msForceBrowserSignIn,msEdgeUpdateLaunchServicesPreferredVersion", + "--enable-features=CDPScreenshotNewSurface", + "--allow-pre-commit-input", + "--disable-hang-monitor", + "--disable-ipc-flooding-protection", + "--disable-popup-blocking", + "--disable-prompt-on-repost", + "--disable-renderer-backgrounding", + "--disable-updater-scheduler", + "--force-color-profile=srgb", + "--metrics-recording-only", + "--no-first-run", + "--password-store=basic", + "--use-mock-keychain", + "--no-service-autorun", + "--export-tagged-pdf", + "--disable-search-engine-choice-screen", + "--unsafely-disable-devtools-self-xss-warnings", + "--edge-skip-compat-layer-relaunch", + "--disable-infobars", + "--disable-search-engine-choice-screen", + "--disable-sync", + "--enable-unsafe-swiftshader", + "--headless", + "--hide-scrollbars", + "--mute-audio", + "--blink-settings=primaryHoverType=2,availableHoverTypes=2,primaryPointerType=4,availablePointerTypes=4", + "--user-data-dir=/tmp/playwright_chromiumdev_profile-FjSsOM", + "--remote-debugging-pipe", + "--no-startup-window", + "--noerrdialogs", + "--ozone-platform=headless", + "--ozone-override-screen-size=800,600", + "--use-angle=swiftshader-webgl" + ] + }, + { + "pid": 1150447, + "ppid": 1150425, + "commandLine": "/opt/google/chrome/chrome --type=zygote --no-zygote-sandbox --headless --crashpad-handler-pid=1150439 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/playwright_chromiumdev_profile-FjSsOM --change-stack-guard-on-fork=enable --no-first-run --ozone-platform=headless --ozone-override-screen-size=800,600 --use-angle=swiftshader-webgl", + "arguments": [ + "/opt/google/chrome/chrome", + "--type=zygote", + "--no-zygote-sandbox", + "--headless", + "--crashpad-handler-pid=1150439", + "--enable-crash-reporter=,", + "--noerrdialogs", + "--user-data-dir=/tmp/playwright_chromiumdev_profile-FjSsOM", + "--change-stack-guard-on-fork=enable", + "--no-first-run", + "--ozone-platform=headless", + "--ozone-override-screen-size=800,600", + "--use-angle=swiftshader-webgl" + ] + }, + { + "pid": 1150448, + "ppid": 1150425, + "commandLine": "/opt/google/chrome/chrome --type=zygote --headless --crashpad-handler-pid=1150439 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/playwright_chromiumdev_profile-FjSsOM --change-stack-guard-on-fork=enable --no-first-run --ozone-platform=headless --ozone-override-screen-size=800,600 --use-angle=swiftshader-webgl", + "arguments": [ + "/opt/google/chrome/chrome", + "--type=zygote", + "--headless", + "--crashpad-handler-pid=1150439", + "--enable-crash-reporter=,", + "--noerrdialogs", + "--user-data-dir=/tmp/playwright_chromiumdev_profile-FjSsOM", + "--change-stack-guard-on-fork=enable", + "--no-first-run", + "--ozone-platform=headless", + "--ozone-override-screen-size=800,600", + "--use-angle=swiftshader-webgl" + ] + }, + { + "pid": 1150451, + "ppid": 1150448, + "commandLine": "/opt/google/chrome/chrome --type=zygote --headless --crashpad-handler-pid=1150439 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/playwright_chromiumdev_profile-FjSsOM --change-stack-guard-on-fork=enable --no-first-run --ozone-platform=headless --ozone-override-screen-size=800,600 --use-angle=swiftshader-webgl", + "arguments": [ + "/opt/google/chrome/chrome", + "--type=zygote", + "--headless", + "--crashpad-handler-pid=1150439", + "--enable-crash-reporter=,", + "--noerrdialogs", + "--user-data-dir=/tmp/playwright_chromiumdev_profile-FjSsOM", + "--change-stack-guard-on-fork=enable", + "--no-first-run", + "--ozone-platform=headless", + "--ozone-override-screen-size=800,600", + "--use-angle=swiftshader-webgl" + ] + }, + { + "pid": 1150472, + "ppid": 1150447, + "commandLine": "/opt/google/chrome/chrome --type=gpu-process --disable-dev-shm-usage --disable-breakpad --headless --ozone-platform=headless --use-angle=swiftshader-webgl --enable-unsafe-swiftshader --crashpad-handler-pid=1150439 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/playwright_chromiumdev_profile-FjSsOM --change-stack-guard-on-fork=enable --gpu-preferences=UAAAAAAAAAAgAAAEAAAAAAAAAAAAAGAAAQAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAYAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAgAAAAAAAAA --shared-files --field-trial-handle=3,i,16751779656710944080,9574512793703583948,262144 --enable-features=CDPScreenshotNewSurface --disable-features=AimEnabled,AutoDeElevate,AvoidUnnecessaryBeforeUnloadCheckSync,BlockOriginHeaderModificationOnRedirect,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,NetworkTimeServiceQuerying,OptimizationHints,PaintHolding,ThirdPartyStoragePartitioning,Translate,msEdgeUpdateLaunchServicesPreferredVersion,msForceBrowserSignIn --variations-seed-version --pseudonymization-salt-handle=7,i,5504656500254648753,8553557855284974703,4 --trace-process-track-uuid=3190708988185955192", + "arguments": [ + "/opt/google/chrome/chrome", + "--type=gpu-process", + "--disable-dev-shm-usage", + "--disable-breakpad", + "--headless", + "--ozone-platform=headless", + "--use-angle=swiftshader-webgl", + "--enable-unsafe-swiftshader", + "--crashpad-handler-pid=1150439", + "--enable-crash-reporter=,", + "--noerrdialogs", + "--user-data-dir=/tmp/playwright_chromiumdev_profile-FjSsOM", + "--change-stack-guard-on-fork=enable", + "--gpu-preferences=UAAAAAAAAAAgAAAEAAAAAAAAAAAAAGAAAQAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAYAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAgAAAAAAAAA", + "--shared-files", + "--field-trial-handle=3,i,16751779656710944080,9574512793703583948,262144", + "--enable-features=CDPScreenshotNewSurface", + "--disable-features=AimEnabled,AutoDeElevate,AvoidUnnecessaryBeforeUnloadCheckSync,BlockOriginHeaderModificationOnRedirect,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,NetworkTimeServiceQuerying,OptimizationHints,PaintHolding,ThirdPartyStoragePartitioning,Translate,msEdgeUpdateLaunchServicesPreferredVersion,msForceBrowserSignIn", + "--variations-seed-version", + "--pseudonymization-salt-handle=7,i,5504656500254648753,8553557855284974703,4", + "--trace-process-track-uuid=3190708988185955192" + ] + }, + { + "pid": 1150474, + "ppid": 1150425, + "commandLine": "/opt/google/chrome/chrome --type=utility --utility-sub-type=network.mojom.NetworkService --lang=en-US --service-sandbox-type=none --disable-dev-shm-usage --use-angle=swiftshader-webgl --mute-audio --crashpad-handler-pid=1150439 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/playwright_chromiumdev_profile-FjSsOM --change-stack-guard-on-fork=enable --shared-files=v8_context_snapshot_data:100 --field-trial-handle=3,i,16751779656710944080,9574512793703583948,262144 --enable-features=CDPScreenshotNewSurface --disable-features=AimEnabled,AutoDeElevate,AvoidUnnecessaryBeforeUnloadCheckSync,BlockOriginHeaderModificationOnRedirect,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,NetworkTimeServiceQuerying,OptimizationHints,PaintHolding,ThirdPartyStoragePartitioning,Translate,msEdgeUpdateLaunchServicesPreferredVersion,msForceBrowserSignIn --variations-seed-version --pseudonymization-salt-handle=7,i,5504656500254648753,8553557855284974703,4 --trace-process-track-uuid=3190708989122997041", + "arguments": [ + "/opt/google/chrome/chrome", + "--type=utility", + "--utility-sub-type=network.mojom.NetworkService", + "--lang=en-US", + "--service-sandbox-type=none", + "--disable-dev-shm-usage", + "--use-angle=swiftshader-webgl", + "--mute-audio", + "--crashpad-handler-pid=1150439", + "--enable-crash-reporter=,", + "--noerrdialogs", + "--user-data-dir=/tmp/playwright_chromiumdev_profile-FjSsOM", + "--change-stack-guard-on-fork=enable", + "--shared-files=v8_context_snapshot_data:100", + "--field-trial-handle=3,i,16751779656710944080,9574512793703583948,262144", + "--enable-features=CDPScreenshotNewSurface", + "--disable-features=AimEnabled,AutoDeElevate,AvoidUnnecessaryBeforeUnloadCheckSync,BlockOriginHeaderModificationOnRedirect,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,NetworkTimeServiceQuerying,OptimizationHints,PaintHolding,ThirdPartyStoragePartitioning,Translate,msEdgeUpdateLaunchServicesPreferredVersion,msForceBrowserSignIn", + "--variations-seed-version", + "--pseudonymization-salt-handle=7,i,5504656500254648753,8553557855284974703,4", + "--trace-process-track-uuid=3190708989122997041" + ] + }, + { + "pid": 1150485, + "ppid": 1150451, + "commandLine": "/opt/google/chrome/chrome --type=utility --utility-sub-type=storage.mojom.StorageService --lang=en-US --service-sandbox-type=utility --disable-dev-shm-usage --use-angle=swiftshader-webgl --mute-audio --crashpad-handler-pid=1150439 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/playwright_chromiumdev_profile-FjSsOM --change-stack-guard-on-fork=enable --shared-files=v8_context_snapshot_data:100 --field-trial-handle=3,i,16751779656710944080,9574512793703583948,262144 --enable-features=CDPScreenshotNewSurface --disable-features=AimEnabled,AutoDeElevate,AvoidUnnecessaryBeforeUnloadCheckSync,BlockOriginHeaderModificationOnRedirect,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,NetworkTimeServiceQuerying,OptimizationHints,PaintHolding,ThirdPartyStoragePartitioning,Translate,msEdgeUpdateLaunchServicesPreferredVersion,msForceBrowserSignIn --variations-seed-version --pseudonymization-salt-handle=7,i,5504656500254648753,8553557855284974703,4 --trace-process-track-uuid=3190708990060038890", + "arguments": [ + "/opt/google/chrome/chrome", + "--type=utility", + "--utility-sub-type=storage.mojom.StorageService", + "--lang=en-US", + "--service-sandbox-type=utility", + "--disable-dev-shm-usage", + "--use-angle=swiftshader-webgl", + "--mute-audio", + "--crashpad-handler-pid=1150439", + "--enable-crash-reporter=,", + "--noerrdialogs", + "--user-data-dir=/tmp/playwright_chromiumdev_profile-FjSsOM", + "--change-stack-guard-on-fork=enable", + "--shared-files=v8_context_snapshot_data:100", + "--field-trial-handle=3,i,16751779656710944080,9574512793703583948,262144", + "--enable-features=CDPScreenshotNewSurface", + "--disable-features=AimEnabled,AutoDeElevate,AvoidUnnecessaryBeforeUnloadCheckSync,BlockOriginHeaderModificationOnRedirect,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,NetworkTimeServiceQuerying,OptimizationHints,PaintHolding,ThirdPartyStoragePartitioning,Translate,msEdgeUpdateLaunchServicesPreferredVersion,msForceBrowserSignIn", + "--variations-seed-version", + "--pseudonymization-salt-handle=7,i,5504656500254648753,8553557855284974703,4", + "--trace-process-track-uuid=3190708990060038890" + ] + }, + { + "pid": 1150515, + "ppid": 1150451, + "commandLine": "/opt/google/chrome/chrome --type=renderer --crashpad-handler-pid=1150439 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/playwright_chromiumdev_profile-FjSsOM --change-stack-guard-on-fork=enable --disable-dev-shm-usage --disable-back-forward-cache --disable-background-timer-throttling --disable-breakpad --force-color-profile=srgb --remote-debugging-pipe --allow-pre-commit-input --blink-settings=primaryHoverType=2,availableHoverTypes=2,primaryPointerType=4,availablePointerTypes=4 --ozone-platform=headless --lang=en-US --num-raster-threads=2 --enable-main-frame-before-activation --renderer-client-id=6 --time-ticks-at-unix-epoch=-1790509733151410 --launch-time-ticks=1459966789304 --shared-files=v8_context_snapshot_data:100 --field-trial-handle=3,i,16751779656710944080,9574512793703583948,262144 --enable-features=CDPScreenshotNewSurface --disable-features=AimEnabled,AutoDeElevate,AvoidUnnecessaryBeforeUnloadCheckSync,BlockOriginHeaderModificationOnRedirect,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,NetworkTimeServiceQuerying,OptimizationHints,PaintHolding,ThirdPartyStoragePartitioning,Translate,msEdgeUpdateLaunchServicesPreferredVersion,msForceBrowserSignIn --variations-seed-version --pseudonymization-salt-handle=7,i,5504656500254648753,8553557855284974703,4 --trace-process-track-uuid=3190708991934122588", + "arguments": [ + "/opt/google/chrome/chrome", + "--type=renderer", + "--crashpad-handler-pid=1150439", + "--enable-crash-reporter=,", + "--noerrdialogs", + "--user-data-dir=/tmp/playwright_chromiumdev_profile-FjSsOM", + "--change-stack-guard-on-fork=enable", + "--disable-dev-shm-usage", + "--disable-back-forward-cache", + "--disable-background-timer-throttling", + "--disable-breakpad", + "--force-color-profile=srgb", + "--remote-debugging-pipe", + "--allow-pre-commit-input", + "--blink-settings=primaryHoverType=2,availableHoverTypes=2,primaryPointerType=4,availablePointerTypes=4", + "--ozone-platform=headless", + "--lang=en-US", + "--num-raster-threads=2", + "--enable-main-frame-before-activation", + "--renderer-client-id=6", + "--time-ticks-at-unix-epoch=-1790509733151410", + "--launch-time-ticks=1459966789304", + "--shared-files=v8_context_snapshot_data:100", + "--field-trial-handle=3,i,16751779656710944080,9574512793703583948,262144", + "--enable-features=CDPScreenshotNewSurface", + "--disable-features=AimEnabled,AutoDeElevate,AvoidUnnecessaryBeforeUnloadCheckSync,BlockOriginHeaderModificationOnRedirect,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,NetworkTimeServiceQuerying,OptimizationHints,PaintHolding,ThirdPartyStoragePartitioning,Translate,msEdgeUpdateLaunchServicesPreferredVersion,msForceBrowserSignIn", + "--variations-seed-version", + "--pseudonymization-salt-handle=7,i,5504656500254648753,8553557855284974703,4", + "--trace-process-track-uuid=3190708991934122588" + ] + }, + { + "pid": 1150517, + "ppid": 1150451, + "commandLine": "/opt/google/chrome/chrome --type=renderer --crashpad-handler-pid=1150439 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/playwright_chromiumdev_profile-FjSsOM --change-stack-guard-on-fork=enable --disable-dev-shm-usage --disable-back-forward-cache --disable-background-timer-throttling --disable-breakpad --force-color-profile=srgb --remote-debugging-pipe --allow-pre-commit-input --blink-settings=primaryHoverType=2,availableHoverTypes=2,primaryPointerType=4,availablePointerTypes=4 --ozone-platform=headless --lang=en-US --num-raster-threads=2 --enable-main-frame-before-activation --renderer-client-id=5 --time-ticks-at-unix-epoch=-1790509733151410 --launch-time-ticks=1459966794595 --shared-files=v8_context_snapshot_data:100 --field-trial-handle=3,i,16751779656710944080,9574512793703583948,262144 --enable-features=CDPScreenshotNewSurface --disable-features=AimEnabled,AutoDeElevate,AvoidUnnecessaryBeforeUnloadCheckSync,BlockOriginHeaderModificationOnRedirect,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,NetworkTimeServiceQuerying,OptimizationHints,PaintHolding,ThirdPartyStoragePartitioning,Translate,msEdgeUpdateLaunchServicesPreferredVersion,msForceBrowserSignIn --variations-seed-version --pseudonymization-salt-handle=7,i,5504656500254648753,8553557855284974703,4 --trace-process-track-uuid=3190708990997080739", + "arguments": [ + "/opt/google/chrome/chrome", + "--type=renderer", + "--crashpad-handler-pid=1150439", + "--enable-crash-reporter=,", + "--noerrdialogs", + "--user-data-dir=/tmp/playwright_chromiumdev_profile-FjSsOM", + "--change-stack-guard-on-fork=enable", + "--disable-dev-shm-usage", + "--disable-back-forward-cache", + "--disable-background-timer-throttling", + "--disable-breakpad", + "--force-color-profile=srgb", + "--remote-debugging-pipe", + "--allow-pre-commit-input", + "--blink-settings=primaryHoverType=2,availableHoverTypes=2,primaryPointerType=4,availablePointerTypes=4", + "--ozone-platform=headless", + "--lang=en-US", + "--num-raster-threads=2", + "--enable-main-frame-before-activation", + "--renderer-client-id=5", + "--time-ticks-at-unix-epoch=-1790509733151410", + "--launch-time-ticks=1459966794595", + "--shared-files=v8_context_snapshot_data:100", + "--field-trial-handle=3,i,16751779656710944080,9574512793703583948,262144", + "--enable-features=CDPScreenshotNewSurface", + "--disable-features=AimEnabled,AutoDeElevate,AvoidUnnecessaryBeforeUnloadCheckSync,BlockOriginHeaderModificationOnRedirect,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,NetworkTimeServiceQuerying,OptimizationHints,PaintHolding,ThirdPartyStoragePartitioning,Translate,msEdgeUpdateLaunchServicesPreferredVersion,msForceBrowserSignIn", + "--variations-seed-version", + "--pseudonymization-salt-handle=7,i,5504656500254648753,8553557855284974703,4", + "--trace-process-track-uuid=3190708990997080739" + ] + }, + { + "pid": 1150558, + "ppid": 1150409, + "commandLine": "/opt/google/chrome/chrome --disable-field-trial-config --disable-background-networking --disable-background-timer-throttling --disable-backgrounding-occluded-windows --disable-back-forward-cache --disable-breakpad --disable-client-side-phishing-detection --disable-component-extensions-with-background-pages --disable-component-update --no-default-browser-check --disable-default-apps --disable-dev-shm-usage --disable-edgeupdater --disable-extensions --disable-features=AvoidUnnecessaryBeforeUnloadCheckSync,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,PaintHolding,ThirdPartyStoragePartitioning,BlockOriginHeaderModificationOnRedirect,Translate,AutoDeElevate,OptimizationHints,NetworkTimeServiceQuerying,AimEnabled,msForceBrowserSignIn,msEdgeUpdateLaunchServicesPreferredVersion --enable-features=CDPScreenshotNewSurface --allow-pre-commit-input --disable-hang-monitor --disable-ipc-flooding-protection --disable-popup-blocking --disable-prompt-on-repost --disable-renderer-backgrounding --disable-updater-scheduler --force-color-profile=srgb --metrics-recording-only --no-first-run --password-store=basic --use-mock-keychain --no-service-autorun --export-tagged-pdf --disable-search-engine-choice-screen --unsafely-disable-devtools-self-xss-warnings --edge-skip-compat-layer-relaunch --disable-infobars --disable-search-engine-choice-screen --disable-sync --enable-unsafe-swiftshader --headless --hide-scrollbars --mute-audio --blink-settings=primaryHoverType=2,availableHoverTypes=2,primaryPointerType=4,availablePointerTypes=4 --user-data-dir=/tmp/playwright_chromiumdev_profile-xUTkdp --remote-debugging-pipe --no-startup-window --noerrdialogs --ozone-platform=headless --ozone-override-screen-size=800,600 --use-angle=swiftshader-webgl", + "arguments": [ + "/opt/google/chrome/chrome", + "--disable-field-trial-config", + "--disable-background-networking", + "--disable-background-timer-throttling", + "--disable-backgrounding-occluded-windows", + "--disable-back-forward-cache", + "--disable-breakpad", + "--disable-client-side-phishing-detection", + "--disable-component-extensions-with-background-pages", + "--disable-component-update", + "--no-default-browser-check", + "--disable-default-apps", + "--disable-dev-shm-usage", + "--disable-edgeupdater", + "--disable-extensions", + "--disable-features=AvoidUnnecessaryBeforeUnloadCheckSync,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,PaintHolding,ThirdPartyStoragePartitioning,BlockOriginHeaderModificationOnRedirect,Translate,AutoDeElevate,OptimizationHints,NetworkTimeServiceQuerying,AimEnabled,msForceBrowserSignIn,msEdgeUpdateLaunchServicesPreferredVersion", + "--enable-features=CDPScreenshotNewSurface", + "--allow-pre-commit-input", + "--disable-hang-monitor", + "--disable-ipc-flooding-protection", + "--disable-popup-blocking", + "--disable-prompt-on-repost", + "--disable-renderer-backgrounding", + "--disable-updater-scheduler", + "--force-color-profile=srgb", + "--metrics-recording-only", + "--no-first-run", + "--password-store=basic", + "--use-mock-keychain", + "--no-service-autorun", + "--export-tagged-pdf", + "--disable-search-engine-choice-screen", + "--unsafely-disable-devtools-self-xss-warnings", + "--edge-skip-compat-layer-relaunch", + "--disable-infobars", + "--disable-search-engine-choice-screen", + "--disable-sync", + "--enable-unsafe-swiftshader", + "--headless", + "--hide-scrollbars", + "--mute-audio", + "--blink-settings=primaryHoverType=2,availableHoverTypes=2,primaryPointerType=4,availablePointerTypes=4", + "--user-data-dir=/tmp/playwright_chromiumdev_profile-xUTkdp", + "--remote-debugging-pipe", + "--no-startup-window", + "--noerrdialogs", + "--ozone-platform=headless", + "--ozone-override-screen-size=800,600", + "--use-angle=swiftshader-webgl" + ] + }, + { + "pid": 1150574, + "ppid": 1150558, + "commandLine": "/opt/google/chrome/chrome --type=zygote --no-zygote-sandbox --headless --crashpad-handler-pid=1150566 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/playwright_chromiumdev_profile-xUTkdp --change-stack-guard-on-fork=enable --no-first-run --ozone-platform=headless --ozone-override-screen-size=800,600 --use-angle=swiftshader-webgl", + "arguments": [ + "/opt/google/chrome/chrome", + "--type=zygote", + "--no-zygote-sandbox", + "--headless", + "--crashpad-handler-pid=1150566", + "--enable-crash-reporter=,", + "--noerrdialogs", + "--user-data-dir=/tmp/playwright_chromiumdev_profile-xUTkdp", + "--change-stack-guard-on-fork=enable", + "--no-first-run", + "--ozone-platform=headless", + "--ozone-override-screen-size=800,600", + "--use-angle=swiftshader-webgl" + ] + }, + { + "pid": 1150575, + "ppid": 1150558, + "commandLine": "/opt/google/chrome/chrome --type=zygote --headless --crashpad-handler-pid=1150566 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/playwright_chromiumdev_profile-xUTkdp --change-stack-guard-on-fork=enable --no-first-run --ozone-platform=headless --ozone-override-screen-size=800,600 --use-angle=swiftshader-webgl", + "arguments": [ + "/opt/google/chrome/chrome", + "--type=zygote", + "--headless", + "--crashpad-handler-pid=1150566", + "--enable-crash-reporter=,", + "--noerrdialogs", + "--user-data-dir=/tmp/playwright_chromiumdev_profile-xUTkdp", + "--change-stack-guard-on-fork=enable", + "--no-first-run", + "--ozone-platform=headless", + "--ozone-override-screen-size=800,600", + "--use-angle=swiftshader-webgl" + ] + }, + { + "pid": 1150577, + "ppid": 1150575, + "commandLine": "/opt/google/chrome/chrome --type=zygote --headless --crashpad-handler-pid=1150566 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/playwright_chromiumdev_profile-xUTkdp --change-stack-guard-on-fork=enable --no-first-run --ozone-platform=headless --ozone-override-screen-size=800,600 --use-angle=swiftshader-webgl", + "arguments": [ + "/opt/google/chrome/chrome", + "--type=zygote", + "--headless", + "--crashpad-handler-pid=1150566", + "--enable-crash-reporter=,", + "--noerrdialogs", + "--user-data-dir=/tmp/playwright_chromiumdev_profile-xUTkdp", + "--change-stack-guard-on-fork=enable", + "--no-first-run", + "--ozone-platform=headless", + "--ozone-override-screen-size=800,600", + "--use-angle=swiftshader-webgl" + ] + }, + { + "pid": 1150599, + "ppid": 1150574, + "commandLine": "/opt/google/chrome/chrome --type=gpu-process --disable-dev-shm-usage --disable-breakpad --headless --ozone-platform=headless --use-angle=swiftshader-webgl --enable-unsafe-swiftshader --crashpad-handler-pid=1150566 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/playwright_chromiumdev_profile-xUTkdp --change-stack-guard-on-fork=enable --gpu-preferences=UAAAAAAAAAAgAAAEAAAAAAAAAAAAAGAAAQAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAYAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAgAAAAAAAAA --shared-files --field-trial-handle=3,i,14772660448816671451,4345369394915051995,262144 --enable-features=CDPScreenshotNewSurface --disable-features=AimEnabled,AutoDeElevate,AvoidUnnecessaryBeforeUnloadCheckSync,BlockOriginHeaderModificationOnRedirect,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,NetworkTimeServiceQuerying,OptimizationHints,PaintHolding,ThirdPartyStoragePartitioning,Translate,msEdgeUpdateLaunchServicesPreferredVersion,msForceBrowserSignIn --variations-seed-version --pseudonymization-salt-handle=7,i,12347905022210369448,8211810852701794377,4 --trace-process-track-uuid=3190708988185955192", + "arguments": [ + "/opt/google/chrome/chrome", + "--type=gpu-process", + "--disable-dev-shm-usage", + "--disable-breakpad", + "--headless", + "--ozone-platform=headless", + "--use-angle=swiftshader-webgl", + "--enable-unsafe-swiftshader", + "--crashpad-handler-pid=1150566", + "--enable-crash-reporter=,", + "--noerrdialogs", + "--user-data-dir=/tmp/playwright_chromiumdev_profile-xUTkdp", + "--change-stack-guard-on-fork=enable", + "--gpu-preferences=UAAAAAAAAAAgAAAEAAAAAAAAAAAAAGAAAQAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAYAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAgAAAAAAAAA", + "--shared-files", + "--field-trial-handle=3,i,14772660448816671451,4345369394915051995,262144", + "--enable-features=CDPScreenshotNewSurface", + "--disable-features=AimEnabled,AutoDeElevate,AvoidUnnecessaryBeforeUnloadCheckSync,BlockOriginHeaderModificationOnRedirect,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,NetworkTimeServiceQuerying,OptimizationHints,PaintHolding,ThirdPartyStoragePartitioning,Translate,msEdgeUpdateLaunchServicesPreferredVersion,msForceBrowserSignIn", + "--variations-seed-version", + "--pseudonymization-salt-handle=7,i,12347905022210369448,8211810852701794377,4", + "--trace-process-track-uuid=3190708988185955192" + ] + }, + { + "pid": 1150601, + "ppid": 1150558, + "commandLine": "/opt/google/chrome/chrome --type=utility --utility-sub-type=network.mojom.NetworkService --lang=en-US --service-sandbox-type=none --disable-dev-shm-usage --use-angle=swiftshader-webgl --mute-audio --crashpad-handler-pid=1150566 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/playwright_chromiumdev_profile-xUTkdp --change-stack-guard-on-fork=enable --shared-files=v8_context_snapshot_data:100 --field-trial-handle=3,i,14772660448816671451,4345369394915051995,262144 --enable-features=CDPScreenshotNewSurface --disable-features=AimEnabled,AutoDeElevate,AvoidUnnecessaryBeforeUnloadCheckSync,BlockOriginHeaderModificationOnRedirect,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,NetworkTimeServiceQuerying,OptimizationHints,PaintHolding,ThirdPartyStoragePartitioning,Translate,msEdgeUpdateLaunchServicesPreferredVersion,msForceBrowserSignIn --variations-seed-version --pseudonymization-salt-handle=7,i,12347905022210369448,8211810852701794377,4 --trace-process-track-uuid=3190708989122997041", + "arguments": [ + "/opt/google/chrome/chrome", + "--type=utility", + "--utility-sub-type=network.mojom.NetworkService", + "--lang=en-US", + "--service-sandbox-type=none", + "--disable-dev-shm-usage", + "--use-angle=swiftshader-webgl", + "--mute-audio", + "--crashpad-handler-pid=1150566", + "--enable-crash-reporter=,", + "--noerrdialogs", + "--user-data-dir=/tmp/playwright_chromiumdev_profile-xUTkdp", + "--change-stack-guard-on-fork=enable", + "--shared-files=v8_context_snapshot_data:100", + "--field-trial-handle=3,i,14772660448816671451,4345369394915051995,262144", + "--enable-features=CDPScreenshotNewSurface", + "--disable-features=AimEnabled,AutoDeElevate,AvoidUnnecessaryBeforeUnloadCheckSync,BlockOriginHeaderModificationOnRedirect,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,NetworkTimeServiceQuerying,OptimizationHints,PaintHolding,ThirdPartyStoragePartitioning,Translate,msEdgeUpdateLaunchServicesPreferredVersion,msForceBrowserSignIn", + "--variations-seed-version", + "--pseudonymization-salt-handle=7,i,12347905022210369448,8211810852701794377,4", + "--trace-process-track-uuid=3190708989122997041" + ] + }, + { + "pid": 1150608, + "ppid": 1150577, + "commandLine": "/opt/google/chrome/chrome --type=utility --utility-sub-type=storage.mojom.StorageService --lang=en-US --service-sandbox-type=utility --disable-dev-shm-usage --use-angle=swiftshader-webgl --mute-audio --crashpad-handler-pid=1150566 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/playwright_chromiumdev_profile-xUTkdp --change-stack-guard-on-fork=enable --shared-files=v8_context_snapshot_data:100 --field-trial-handle=3,i,14772660448816671451,4345369394915051995,262144 --enable-features=CDPScreenshotNewSurface --disable-features=AimEnabled,AutoDeElevate,AvoidUnnecessaryBeforeUnloadCheckSync,BlockOriginHeaderModificationOnRedirect,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,NetworkTimeServiceQuerying,OptimizationHints,PaintHolding,ThirdPartyStoragePartitioning,Translate,msEdgeUpdateLaunchServicesPreferredVersion,msForceBrowserSignIn --variations-seed-version --pseudonymization-salt-handle=7,i,12347905022210369448,8211810852701794377,4 --trace-process-track-uuid=3190708990060038890", + "arguments": [ + "/opt/google/chrome/chrome", + "--type=utility", + "--utility-sub-type=storage.mojom.StorageService", + "--lang=en-US", + "--service-sandbox-type=utility", + "--disable-dev-shm-usage", + "--use-angle=swiftshader-webgl", + "--mute-audio", + "--crashpad-handler-pid=1150566", + "--enable-crash-reporter=,", + "--noerrdialogs", + "--user-data-dir=/tmp/playwright_chromiumdev_profile-xUTkdp", + "--change-stack-guard-on-fork=enable", + "--shared-files=v8_context_snapshot_data:100", + "--field-trial-handle=3,i,14772660448816671451,4345369394915051995,262144", + "--enable-features=CDPScreenshotNewSurface", + "--disable-features=AimEnabled,AutoDeElevate,AvoidUnnecessaryBeforeUnloadCheckSync,BlockOriginHeaderModificationOnRedirect,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,NetworkTimeServiceQuerying,OptimizationHints,PaintHolding,ThirdPartyStoragePartitioning,Translate,msEdgeUpdateLaunchServicesPreferredVersion,msForceBrowserSignIn", + "--variations-seed-version", + "--pseudonymization-salt-handle=7,i,12347905022210369448,8211810852701794377,4", + "--trace-process-track-uuid=3190708990060038890" + ] + }, + { + "pid": 1150645, + "ppid": 1150425, + "commandLine": "/opt/google/chrome/chrome --type=utility --utility-sub-type=audio.mojom.AudioService --lang=en-US --service-sandbox-type=none --disable-dev-shm-usage --use-angle=swiftshader-webgl --mute-audio --crashpad-handler-pid=1150439 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/playwright_chromiumdev_profile-FjSsOM --change-stack-guard-on-fork=enable --shared-files=v8_context_snapshot_data:100 --field-trial-handle=3,i,16751779656710944080,9574512793703583948,262144 --enable-features=CDPScreenshotNewSurface --disable-features=AimEnabled,AutoDeElevate,AvoidUnnecessaryBeforeUnloadCheckSync,BlockOriginHeaderModificationOnRedirect,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,NetworkTimeServiceQuerying,OptimizationHints,PaintHolding,ThirdPartyStoragePartitioning,Translate,msEdgeUpdateLaunchServicesPreferredVersion,msForceBrowserSignIn --variations-seed-version --pseudonymization-salt-handle=7,i,5504656500254648753,8553557855284974703,4 --trace-process-track-uuid=3190708992871164437", + "arguments": [ + "/opt/google/chrome/chrome", + "--type=utility", + "--utility-sub-type=audio.mojom.AudioService", + "--lang=en-US", + "--service-sandbox-type=none", + "--disable-dev-shm-usage", + "--use-angle=swiftshader-webgl", + "--mute-audio", + "--crashpad-handler-pid=1150439", + "--enable-crash-reporter=,", + "--noerrdialogs", + "--user-data-dir=/tmp/playwright_chromiumdev_profile-FjSsOM", + "--change-stack-guard-on-fork=enable", + "--shared-files=v8_context_snapshot_data:100", + "--field-trial-handle=3,i,16751779656710944080,9574512793703583948,262144", + "--enable-features=CDPScreenshotNewSurface", + "--disable-features=AimEnabled,AutoDeElevate,AvoidUnnecessaryBeforeUnloadCheckSync,BlockOriginHeaderModificationOnRedirect,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,NetworkTimeServiceQuerying,OptimizationHints,PaintHolding,ThirdPartyStoragePartitioning,Translate,msEdgeUpdateLaunchServicesPreferredVersion,msForceBrowserSignIn", + "--variations-seed-version", + "--pseudonymization-salt-handle=7,i,5504656500254648753,8553557855284974703,4", + "--trace-process-track-uuid=3190708992871164437" + ] + }, + { + "pid": 1150648, + "ppid": 1150577, + "commandLine": "/opt/google/chrome/chrome --type=renderer --crashpad-handler-pid=1150566 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/playwright_chromiumdev_profile-xUTkdp --change-stack-guard-on-fork=enable --disable-dev-shm-usage --disable-back-forward-cache --disable-background-timer-throttling --disable-breakpad --force-color-profile=srgb --remote-debugging-pipe --allow-pre-commit-input --blink-settings=primaryHoverType=2,availableHoverTypes=2,primaryPointerType=4,availablePointerTypes=4 --ozone-platform=headless --lang=en-US --num-raster-threads=2 --enable-main-frame-before-activation --renderer-client-id=5 --time-ticks-at-unix-epoch=-1790509733151410 --launch-time-ticks=1459967878786 --shared-files=v8_context_snapshot_data:100 --field-trial-handle=3,i,14772660448816671451,4345369394915051995,262144 --enable-features=CDPScreenshotNewSurface --disable-features=AimEnabled,AutoDeElevate,AvoidUnnecessaryBeforeUnloadCheckSync,BlockOriginHeaderModificationOnRedirect,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,NetworkTimeServiceQuerying,OptimizationHints,PaintHolding,ThirdPartyStoragePartitioning,Translate,msEdgeUpdateLaunchServicesPreferredVersion,msForceBrowserSignIn --variations-seed-version --pseudonymization-salt-handle=7,i,12347905022210369448,8211810852701794377,4 --trace-process-track-uuid=3190708990997080739", + "arguments": [ + "/opt/google/chrome/chrome", + "--type=renderer", + "--crashpad-handler-pid=1150566", + "--enable-crash-reporter=,", + "--noerrdialogs", + "--user-data-dir=/tmp/playwright_chromiumdev_profile-xUTkdp", + "--change-stack-guard-on-fork=enable", + "--disable-dev-shm-usage", + "--disable-back-forward-cache", + "--disable-background-timer-throttling", + "--disable-breakpad", + "--force-color-profile=srgb", + "--remote-debugging-pipe", + "--allow-pre-commit-input", + "--blink-settings=primaryHoverType=2,availableHoverTypes=2,primaryPointerType=4,availablePointerTypes=4", + "--ozone-platform=headless", + "--lang=en-US", + "--num-raster-threads=2", + "--enable-main-frame-before-activation", + "--renderer-client-id=5", + "--time-ticks-at-unix-epoch=-1790509733151410", + "--launch-time-ticks=1459967878786", + "--shared-files=v8_context_snapshot_data:100", + "--field-trial-handle=3,i,14772660448816671451,4345369394915051995,262144", + "--enable-features=CDPScreenshotNewSurface", + "--disable-features=AimEnabled,AutoDeElevate,AvoidUnnecessaryBeforeUnloadCheckSync,BlockOriginHeaderModificationOnRedirect,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,NetworkTimeServiceQuerying,OptimizationHints,PaintHolding,ThirdPartyStoragePartitioning,Translate,msEdgeUpdateLaunchServicesPreferredVersion,msForceBrowserSignIn", + "--variations-seed-version", + "--pseudonymization-salt-handle=7,i,12347905022210369448,8211810852701794377,4", + "--trace-process-track-uuid=3190708990997080739" + ] + }, + { + "pid": 1150738, + "ppid": 1150577, + "commandLine": "/opt/google/chrome/chrome --type=renderer --crashpad-handler-pid=1150566 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/playwright_chromiumdev_profile-xUTkdp --change-stack-guard-on-fork=enable --disable-dev-shm-usage --disable-back-forward-cache --disable-background-timer-throttling --disable-breakpad --force-color-profile=srgb --remote-debugging-pipe --allow-pre-commit-input --blink-settings=primaryHoverType=2,availableHoverTypes=2,primaryPointerType=4,availablePointerTypes=4 --ozone-platform=headless --disable-gpu-compositing --lang=en-US --num-raster-threads=2 --enable-main-frame-before-activation --renderer-client-id=7 --time-ticks-at-unix-epoch=-1790509733151410 --launch-time-ticks=1459970002387 --shared-files=v8_context_snapshot_data:100 --field-trial-handle=3,i,14772660448816671451,4345369394915051995,262144 --enable-features=CDPScreenshotNewSurface --disable-features=AimEnabled,AutoDeElevate,AvoidUnnecessaryBeforeUnloadCheckSync,BlockOriginHeaderModificationOnRedirect,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,NetworkTimeServiceQuerying,OptimizationHints,PaintHolding,ThirdPartyStoragePartitioning,Translate,msEdgeUpdateLaunchServicesPreferredVersion,msForceBrowserSignIn --variations-seed-version --pseudonymization-salt-handle=7,i,12347905022210369448,8211810852701794377,4 --trace-process-track-uuid=3190708992871164437", + "arguments": [ + "/opt/google/chrome/chrome", + "--type=renderer", + "--crashpad-handler-pid=1150566", + "--enable-crash-reporter=,", + "--noerrdialogs", + "--user-data-dir=/tmp/playwright_chromiumdev_profile-xUTkdp", + "--change-stack-guard-on-fork=enable", + "--disable-dev-shm-usage", + "--disable-back-forward-cache", + "--disable-background-timer-throttling", + "--disable-breakpad", + "--force-color-profile=srgb", + "--remote-debugging-pipe", + "--allow-pre-commit-input", + "--blink-settings=primaryHoverType=2,availableHoverTypes=2,primaryPointerType=4,availablePointerTypes=4", + "--ozone-platform=headless", + "--disable-gpu-compositing", + "--lang=en-US", + "--num-raster-threads=2", + "--enable-main-frame-before-activation", + "--renderer-client-id=7", + "--time-ticks-at-unix-epoch=-1790509733151410", + "--launch-time-ticks=1459970002387", + "--shared-files=v8_context_snapshot_data:100", + "--field-trial-handle=3,i,14772660448816671451,4345369394915051995,262144", + "--enable-features=CDPScreenshotNewSurface", + "--disable-features=AimEnabled,AutoDeElevate,AvoidUnnecessaryBeforeUnloadCheckSync,BlockOriginHeaderModificationOnRedirect,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,NetworkTimeServiceQuerying,OptimizationHints,PaintHolding,ThirdPartyStoragePartitioning,Translate,msEdgeUpdateLaunchServicesPreferredVersion,msForceBrowserSignIn", + "--variations-seed-version", + "--pseudonymization-salt-handle=7,i,12347905022210369448,8211810852701794377,4", + "--trace-process-track-uuid=3190708992871164437" + ] + }, + { + "pid": 1150764, + "ppid": 1150558, + "commandLine": "/opt/google/chrome/chrome --type=utility --utility-sub-type=audio.mojom.AudioService --lang=en-US --service-sandbox-type=none --disable-dev-shm-usage --use-angle=swiftshader-webgl --mute-audio --crashpad-handler-pid=1150566 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/playwright_chromiumdev_profile-xUTkdp --change-stack-guard-on-fork=enable --shared-files=v8_context_snapshot_data:100 --field-trial-handle=3,i,14772660448816671451,4345369394915051995,262144 --enable-features=CDPScreenshotNewSurface --disable-features=AimEnabled,AutoDeElevate,AvoidUnnecessaryBeforeUnloadCheckSync,BlockOriginHeaderModificationOnRedirect,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,NetworkTimeServiceQuerying,OptimizationHints,PaintHolding,ThirdPartyStoragePartitioning,Translate,msEdgeUpdateLaunchServicesPreferredVersion,msForceBrowserSignIn --variations-seed-version --pseudonymization-salt-handle=7,i,12347905022210369448,8211810852701794377,4 --trace-process-track-uuid=3190708993808206286", + "arguments": [ + "/opt/google/chrome/chrome", + "--type=utility", + "--utility-sub-type=audio.mojom.AudioService", + "--lang=en-US", + "--service-sandbox-type=none", + "--disable-dev-shm-usage", + "--use-angle=swiftshader-webgl", + "--mute-audio", + "--crashpad-handler-pid=1150566", + "--enable-crash-reporter=,", + "--noerrdialogs", + "--user-data-dir=/tmp/playwright_chromiumdev_profile-xUTkdp", + "--change-stack-guard-on-fork=enable", + "--shared-files=v8_context_snapshot_data:100", + "--field-trial-handle=3,i,14772660448816671451,4345369394915051995,262144", + "--enable-features=CDPScreenshotNewSurface", + "--disable-features=AimEnabled,AutoDeElevate,AvoidUnnecessaryBeforeUnloadCheckSync,BlockOriginHeaderModificationOnRedirect,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,NetworkTimeServiceQuerying,OptimizationHints,PaintHolding,ThirdPartyStoragePartitioning,Translate,msEdgeUpdateLaunchServicesPreferredVersion,msForceBrowserSignIn", + "--variations-seed-version", + "--pseudonymization-salt-handle=7,i,12347905022210369448,8211810852701794377,4", + "--trace-process-track-uuid=3190708993808206286" + ] + }, + { + "pid": 1151282, + "ppid": 1150577, + "commandLine": "/opt/google/chrome/chrome --type=renderer --crashpad-handler-pid=1150566 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/playwright_chromiumdev_profile-xUTkdp --change-stack-guard-on-fork=enable --disable-dev-shm-usage --disable-back-forward-cache --disable-background-timer-throttling --disable-breakpad --force-color-profile=srgb --remote-debugging-pipe --allow-pre-commit-input --blink-settings=primaryHoverType=2,availableHoverTypes=2,primaryPointerType=4,availablePointerTypes=4 --ozone-platform=headless --disable-gpu-compositing --lang=en-US --num-raster-threads=2 --enable-main-frame-before-activation --renderer-client-id=9 --time-ticks-at-unix-epoch=-1790509733151410 --launch-time-ticks=1459984500539 --shared-files=v8_context_snapshot_data:100 --field-trial-handle=3,i,14772660448816671451,4345369394915051995,262144 --enable-features=CDPScreenshotNewSurface --disable-features=AimEnabled,AutoDeElevate,AvoidUnnecessaryBeforeUnloadCheckSync,BlockOriginHeaderModificationOnRedirect,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,NetworkTimeServiceQuerying,OptimizationHints,PaintHolding,ThirdPartyStoragePartitioning,Translate,msEdgeUpdateLaunchServicesPreferredVersion,msForceBrowserSignIn --variations-seed-version --pseudonymization-salt-handle=7,i,12347905022210369448,8211810852701794377,4 --trace-process-track-uuid=3190708994745248135", + "arguments": [ + "/opt/google/chrome/chrome", + "--type=renderer", + "--crashpad-handler-pid=1150566", + "--enable-crash-reporter=,", + "--noerrdialogs", + "--user-data-dir=/tmp/playwright_chromiumdev_profile-xUTkdp", + "--change-stack-guard-on-fork=enable", + "--disable-dev-shm-usage", + "--disable-back-forward-cache", + "--disable-background-timer-throttling", + "--disable-breakpad", + "--force-color-profile=srgb", + "--remote-debugging-pipe", + "--allow-pre-commit-input", + "--blink-settings=primaryHoverType=2,availableHoverTypes=2,primaryPointerType=4,availablePointerTypes=4", + "--ozone-platform=headless", + "--disable-gpu-compositing", + "--lang=en-US", + "--num-raster-threads=2", + "--enable-main-frame-before-activation", + "--renderer-client-id=9", + "--time-ticks-at-unix-epoch=-1790509733151410", + "--launch-time-ticks=1459984500539", + "--shared-files=v8_context_snapshot_data:100", + "--field-trial-handle=3,i,14772660448816671451,4345369394915051995,262144", + "--enable-features=CDPScreenshotNewSurface", + "--disable-features=AimEnabled,AutoDeElevate,AvoidUnnecessaryBeforeUnloadCheckSync,BlockOriginHeaderModificationOnRedirect,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,NetworkTimeServiceQuerying,OptimizationHints,PaintHolding,ThirdPartyStoragePartitioning,Translate,msEdgeUpdateLaunchServicesPreferredVersion,msForceBrowserSignIn", + "--variations-seed-version", + "--pseudonymization-salt-handle=7,i,12347905022210369448,8211810852701794377,4", + "--trace-process-track-uuid=3190708994745248135" + ] + } + ] +} diff --git a/.agent/evidence-v0.2.3/privacy-screening/desktop-audio-integrity.json b/.agent/evidence-v0.2.3/privacy-screening/desktop-audio-integrity.json new file mode 100644 index 0000000..d6db5ea --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/desktop-audio-integrity.json @@ -0,0 +1,1098 @@ +{ + "chrome": "146.0.7680.80", + "external": [], + "errors": [], + "failed": [], + "files": [ + { + "url": "http://127.0.0.1:4173/audio/intro.wav?v=0.2.3", + "sha256": "90d9f46e6e3f9c8a0c1a781096df54d7809ef4ad38b289508ef7b8c0411465ce", + "bytes": 338732, + "sampleRate": 24000, + "channels": 1, + "duration": 7.056, + "rms": 0.10000144992850359, + "peak": 0.4998626708984375 + }, + { + "url": "http://127.0.0.1:4173/ambience/street.wav?v=0.2.3", + "sha256": "a8bffa201b174618955bc51b860167169125304811aabe2086b0bb35b06c3ae1", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.07999880181401388, + "peak": 0.3967711329460144 + }, + { + "url": "http://127.0.0.1:4173/ambience/mall.wav?v=0.2.3", + "sha256": "680a769940c08f0d12c6c954c08366598dd8b5745e276f39c82b10d1a88261a1", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.07999875178666456, + "peak": 0.7191991806030273 + }, + { + "url": "http://127.0.0.1:4173/ambience/theater.wav?v=0.2.3", + "sha256": "2d6a444fb7874cdf6b2d8a741a69175299b112eb66834912c025437d8277d635", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.07999878601263052, + "peak": 0.495086669921875 + }, + { + "url": "http://127.0.0.1:4173/ambience/department.wav?v=0.2.3", + "sha256": "aa43f3d1d3e7c2b1f8ace24ecbda45d0ea3a031db941c39506dc6c1665b8efa7", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.07999879026023995, + "peak": 0.4749900698661804 + }, + { + "url": "http://127.0.0.1:4173/ambience/market.wav?v=0.2.3", + "sha256": "7a7a980845a4aade2a7e8a108eae746220a4688e92792ee93d3deb76b2a762f6", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.07999876626924392, + "peak": 0.507232666015625 + }, + { + "url": "http://127.0.0.1:4173/ambience/subway.wav?v=0.2.3", + "sha256": "9faf70b68617d267b367a0f3692ed90015458543ab4b0844f6c704e6a724728f", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.079998775670051, + "peak": 0.42530596256256104 + }, + { + "url": "http://127.0.0.1:4173/ambience/cafe.wav?v=0.2.3", + "sha256": "802a956e91b85a2fdd0e1f161d75bfada7a53499bcb57ba7f578411480ded216", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.0799987945764348, + "peak": 0.44708251953125 + }, + { + "url": "http://127.0.0.1:4173/ambience/rain.wav?v=0.2.3", + "sha256": "f4315084e820f742b0709de5bb0d1abd3d5af1730620e08c2948b70347356dd9", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.011384798571746246, + "peak": 0.1024169921875 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-apple.wav?v=0.2.3", + "sha256": "cb7da4e9a1288cac64d168b241f27d7d2bc2dfecace58744f9bbf2792dfad04e", + "bytes": 397484, + "sampleRate": 24000, + "channels": 1, + "duration": 8.28, + "rms": 0.10000142448574952, + "peak": 0.6414685249328613 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-market.wav?v=0.2.3", + "sha256": "b8d25b867497adcd0fe7c8b6a8a8d2e7a52965956738a83e53f58735708773f9", + "bytes": 405548, + "sampleRate": 24000, + "channels": 1, + "duration": 8.448, + "rms": 0.10000141405173993, + "peak": 0.491485595703125 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-sound.wav?v=0.2.3", + "sha256": "34e4d9758d2ed448646fda364610e34779c84794403d9051ab3d8c1d33e2c80c", + "bytes": 184364, + "sampleRate": 24000, + "channels": 1, + "duration": 3.84, + "rms": 0.10000138709171018, + "peak": 0.386322021484375 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-furniture.wav?v=0.2.3", + "sha256": "b45b1afc8d9b534ff3e0a2a2ecb99efc1f4e40d41f89f55c4ed8ba94ad6d76d4", + "bytes": 354860, + "sampleRate": 24000, + "channels": 1, + "duration": 7.392, + "rms": 0.1000015072973225, + "peak": 0.5576171875 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-market.wav?v=0.2.3", + "sha256": "cefa0e95649ea6bd1df4c8dfccd2b74b4f4c028714420ce1087b61db2f2a8d47", + "bytes": 248876, + "sampleRate": 24000, + "channels": 1, + "duration": 5.184, + "rms": 0.10000142548167161, + "peak": 0.4857020676136017 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-oil.wav?v=0.2.3", + "sha256": "f6eff0cdddcad9790351491e60c53cb2a70d222033a583652f2de0b8cd6abcc7", + "bytes": 406700, + "sampleRate": 24000, + "channels": 1, + "duration": 8.472, + "rms": 0.10000139122025363, + "peak": 0.470794677734375 + }, + { + "url": "http://127.0.0.1:4173/audio/first-hat.wav?v=0.2.3", + "sha256": "17c8cde90567e7574b0c0702663bd70713054089ee920241b5444d9b7869eef5", + "bytes": 357164, + "sampleRate": 24000, + "channels": 1, + "duration": 7.44, + "rms": 0.10000152904790521, + "peak": 0.5312662124633789 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-furniture.wav?v=0.2.3", + "sha256": "af82e03b686635c3356e706fe5b05c1231aeaaeab33f275aa5b8714988c65d43", + "bytes": 241964, + "sampleRate": 24000, + "channels": 1, + "duration": 5.04, + "rms": 0.10000137346142077, + "peak": 0.4852443039417267 + }, + { + "url": "http://127.0.0.1:4173/audio/password-sound.wav?v=0.2.3", + "sha256": "044aafff08a19e39f21e58b963644715a987cd155896998769ef8e9ce6449628", + "bytes": 236204, + "sampleRate": 24000, + "channels": 1, + "duration": 4.92, + "rms": 0.10000156641621728, + "peak": 0.4621112644672394 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-hat.wav?v=0.2.3", + "sha256": "f9f98c91cfbcfcb106eef7d5d3795a9cf3c3aab7e19a60f13d7dffe284d19f86", + "bytes": 398636, + "sampleRate": 24000, + "channels": 1, + "duration": 8.304, + "rms": 0.10000141071544869, + "peak": 0.470977783203125 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-apple.wav?v=0.2.3", + "sha256": "7c8f413f4b7e164f090e508ba090448f1376c6012649bbb6a917d45851313883", + "bytes": 188972, + "sampleRate": 24000, + "channels": 1, + "duration": 3.936, + "rms": 0.10000130469939268, + "peak": 0.401641845703125 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-sea.wav?v=0.2.3", + "sha256": "db2f235bee26ac804b5362e8e013b8f40c8da24fd3a34e0fb3b43c6d264feb36", + "bytes": 382508, + "sampleRate": 24000, + "channels": 1, + "duration": 7.968, + "rms": 0.10000145042993039, + "peak": 0.6843470335006714 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-furniture.wav?v=0.2.3", + "sha256": "442bdcb956f120c270e1f321feae0415c897de0183e468980fcc119b898b2a67", + "bytes": 403244, + "sampleRate": 24000, + "channels": 1, + "duration": 8.4, + "rms": 0.10000149119200713, + "peak": 0.5619068145751953 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-sea.wav?v=0.2.3", + "sha256": "b6dbe0af143ea775f05bd59a3d6af348bcc770ab378ac91ea75a56e06c326edf", + "bytes": 346796, + "sampleRate": 24000, + "channels": 1, + "duration": 7.224, + "rms": 0.10000144532868623, + "peak": 0.56494140625 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-sound.wav?v=0.2.3", + "sha256": "e9d636ff7f4777f38b1ff15bebdcec6fbde95b4b4b05625a7415b4cfa0025b59", + "bytes": 395180, + "sampleRate": 24000, + "channels": 1, + "duration": 8.232, + "rms": 0.10000164955559301, + "peak": 0.6114688515663147 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-apple.wav?v=0.2.3", + "sha256": "3ef42e276ff3500c3e197d149f29f79d6a0c1d5516ed1d5a2c57210333fded9c", + "bytes": 246572, + "sampleRate": 24000, + "channels": 1, + "duration": 5.136, + "rms": 0.10000144279302126, + "peak": 0.4701681435108185 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-market.wav?v=0.2.3", + "sha256": "356af25332bf2000ed349671f3ff39767929e1f4599af622c021f907d11fb7bf", + "bytes": 194732, + "sampleRate": 24000, + "channels": 1, + "duration": 4.056, + "rms": 0.10000132629820717, + "peak": 0.4022216796875 + }, + { + "url": "http://127.0.0.1:4173/audio/message-sea.wav?v=0.2.3", + "sha256": "28a461fbe03bffe2560030dea8b60715f7c0fe262dcf85b5b7f7daf483836382", + "bytes": 517292, + "sampleRate": 24000, + "channels": 1, + "duration": 10.776, + "rms": 0.10000130584401576, + "peak": 0.53521728515625 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-umbrella.wav?v=0.2.3", + "sha256": "c8988e604ba05d52597e561389541e8f9cda86e052279f1862bbf8399ead314e", + "bytes": 403244, + "sampleRate": 24000, + "channels": 1, + "duration": 8.4, + "rms": 0.10000148262660476, + "peak": 0.557830810546875 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-hat.wav?v=0.2.3", + "sha256": "308278ec2bd27d4224976a55632d1f7fa1edabb0792126d9d858a699c287aee4", + "bytes": 245420, + "sampleRate": 24000, + "channels": 1, + "duration": 5.112, + "rms": 0.10000140702099906, + "peak": 0.4498428404331207 + }, + { + "url": "http://127.0.0.1:4173/audio/password-furniture.wav?v=0.2.3", + "sha256": "fb2b631dd4e12120d08a84cce6450f9cd9cd68105d13d7001d808e7deaa1df4a", + "bytes": 233900, + "sampleRate": 24000, + "channels": 1, + "duration": 4.872, + "rms": 0.10000146718546903, + "peak": 0.4836573302745819 + }, + { + "url": "http://127.0.0.1:4173/audio/first-market.wav?v=0.2.3", + "sha256": "1e00b8f70a796cdebb0feb00c605fece7488b06915e6e036f54206f05e201e0c", + "bytes": 359468, + "sampleRate": 24000, + "channels": 1, + "duration": 7.488, + "rms": 0.10000152633991319, + "peak": 0.6390880942344666 + }, + { + "url": "http://127.0.0.1:4173/audio/first-meat.wav?v=0.2.3", + "sha256": "f51a37c1722fef581f7d642a4dcae7fcb9953b3c318dce971bf616cd1a81fecc", + "bytes": 345644, + "sampleRate": 24000, + "channels": 1, + "duration": 7.2, + "rms": 0.10000152244411063, + "peak": 0.5131382346153259 + }, + { + "url": "http://127.0.0.1:4173/audio/password-sea.wav?v=0.2.3", + "sha256": "03f45b8cb5b3dc72faf5c6e3d0e2a10cea6b60301ea400d0a4453596d2f0b337", + "bytes": 232748, + "sampleRate": 24000, + "channels": 1, + "duration": 4.848, + "rms": 0.10000144821976133, + "peak": 0.5339213013648987 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-sound.wav?v=0.2.3", + "sha256": "98387ccc7aab566f6487d4c250b2128082cc527e013a6f7b7bc4d0266ac295df", + "bytes": 394028, + "sampleRate": 24000, + "channels": 1, + "duration": 8.208, + "rms": 0.10000158053850364, + "peak": 0.5377971529960632 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-umbrella.wav?v=0.2.3", + "sha256": "5e59ef39113c3d5e106862356d715f4cef2862ef8ee02654a97e532675c1ac6d", + "bytes": 410156, + "sampleRate": 24000, + "channels": 1, + "duration": 8.544, + "rms": 0.10000147499132286, + "peak": 0.6748558282852173 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-hat.wav?v=0.2.3", + "sha256": "b01ef9762ac84e3eb757243bc9286c62f7d45444a821ae35ac36a8b095e1598a", + "bytes": 353708, + "sampleRate": 24000, + "channels": 1, + "duration": 7.368, + "rms": 0.10000153089787694, + "peak": 0.555206298828125 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-market.wav?v=0.2.3", + "sha256": "d89792da51c83ac49d27e55aa6d822a338899a5ee487b34b552748201e1522f6", + "bytes": 398636, + "sampleRate": 24000, + "channels": 1, + "duration": 8.304, + "rms": 0.10000149710778367, + "peak": 0.5728324055671692 + }, + { + "url": "http://127.0.0.1:4173/audio/password-umbrella.wav?v=0.2.3", + "sha256": "ab3ca6398c879971dc793eb25b472fcc0db72d76e386f11ef4d32c639f37c69d", + "bytes": 239660, + "sampleRate": 24000, + "channels": 1, + "duration": 4.992, + "rms": 0.100001426973271, + "peak": 0.4776757061481476 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-meat.wav?v=0.2.3", + "sha256": "48e91b3932d3798e852041a854b3ee08c72127e092c62083a47af6b99adff241", + "bytes": 403244, + "sampleRate": 24000, + "channels": 1, + "duration": 8.4, + "rms": 0.10000140336390047, + "peak": 0.481536865234375 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-hat.wav?v=0.2.3", + "sha256": "6e089a42fd7e65e82eec7186d369c926fb7fdac794365b2bd7658822fd92437c", + "bytes": 396332, + "sampleRate": 24000, + "channels": 1, + "duration": 8.256, + "rms": 0.1000015662548192, + "peak": 0.616748571395874 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-sound.wav?v=0.2.3", + "sha256": "4d00aa6114327f450a00dacbc7e7b572ebf1de4ce9dc2fe4b5505766cca71ce9", + "bytes": 353708, + "sampleRate": 24000, + "channels": 1, + "duration": 7.368, + "rms": 0.10000162019345048, + "peak": 0.5348368883132935 + }, + { + "url": "http://127.0.0.1:4173/audio/last-oil.wav?v=0.2.3", + "sha256": "b5ce34950b8b31b1baf6ce55410797f0d8aa5478a670d6eace87cf76d134d6d3", + "bytes": 337580, + "sampleRate": 24000, + "channels": 1, + "duration": 7.032, + "rms": 0.10000149980584365, + "peak": 0.55706787109375 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-sea.wav?v=0.2.3", + "sha256": "47aa31d757c9fb49c9b53a1c052d90a5ced4be57549d649850d9b48f8864045b", + "bytes": 191276, + "sampleRate": 24000, + "channels": 1, + "duration": 3.984, + "rms": 0.10000129182106483, + "peak": 0.388702392578125 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-sound.wav?v=0.2.3", + "sha256": "659eb0e2b06e6b165b46744769743e032e2282519f8486c57bc45e0f7d07a069", + "bytes": 240812, + "sampleRate": 24000, + "channels": 1, + "duration": 5.016, + "rms": 0.10000152909529536, + "peak": 0.45481735467910767 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-meat.wav?v=0.2.3", + "sha256": "6599d2fac73ea616a793151b4ce6f51af673988d630bac6219a77e78ae6cb34e", + "bytes": 380204, + "sampleRate": 24000, + "channels": 1, + "duration": 7.92, + "rms": 0.1000016061190976, + "peak": 0.5921201109886169 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-market.wav?v=0.2.3", + "sha256": "c855b449e0d4ace74681bfe68e5e7f0b063568827ae872017234dbe8ae119e4c", + "bytes": 356012, + "sampleRate": 24000, + "channels": 1, + "duration": 7.416, + "rms": 0.10000151456676445, + "peak": 0.5949888825416565 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-furniture.wav?v=0.2.3", + "sha256": "bf84dc6cff1f227924a3a62158d2fc18769fb0ca40b91418fa19e534dbf92f00", + "bytes": 397484, + "sampleRate": 24000, + "channels": 1, + "duration": 8.28, + "rms": 0.10000155255948041, + "peak": 0.6670430898666382 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-sound.wav?v=0.2.3", + "sha256": "5a603bc69979603afddcaeb6edf500a7c540b72405daeb33f5335d746b327da1", + "bytes": 397484, + "sampleRate": 24000, + "channels": 1, + "duration": 8.28, + "rms": 0.10000146491234768, + "peak": 0.469268798828125 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-meat.wav?v=0.2.3", + "sha256": "9183ef90b64f5ceaf3bb0178c689231ff3e9981d6ce889124a15f2a6e2b7a344", + "bytes": 395180, + "sampleRate": 24000, + "channels": 1, + "duration": 8.232, + "rms": 0.10000155087122137, + "peak": 0.5193029642105103 + }, + { + "url": "http://127.0.0.1:4173/audio/last-sound.wav?v=0.2.3", + "sha256": "ec9c49802aebeb6a8b898a1c0d8ad1daa127d2d64c905c197ed49a8e0c4eb64a", + "bytes": 354860, + "sampleRate": 24000, + "channels": 1, + "duration": 7.392, + "rms": 0.10000165748716579, + "peak": 0.5641041398048401 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-oil.wav?v=0.2.3", + "sha256": "5fb63e04520c312aa6b7b48b70c2f7c140b5ab480e5c6992edbc2ba85b9a06e7", + "bytes": 241964, + "sampleRate": 24000, + "channels": 1, + "duration": 5.04, + "rms": 0.10000143720418167, + "peak": 0.443586528301239 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-umbrella.wav?v=0.2.3", + "sha256": "92b54f04884ab915783945077efd8f3bd443849a1720f72168b6348cae1f8e85", + "bytes": 406700, + "sampleRate": 24000, + "channels": 1, + "duration": 8.472, + "rms": 0.10000140257790288, + "peak": 0.479034423828125 + }, + { + "url": "http://127.0.0.1:4173/audio/message-sound.wav?v=0.2.3", + "sha256": "1e682147dae8026ba78dc8f256c7f24acb3a6743bfd88a0fcc86096930eef078", + "bytes": 521900, + "sampleRate": 24000, + "channels": 1, + "duration": 10.872, + "rms": 0.10000138583471241, + "peak": 0.51953125 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-apple.wav?v=0.2.3", + "sha256": "ccd7327a3fb54d3320d049ffdced3bc17595861cee69429c0ee97182d454195b", + "bytes": 402092, + "sampleRate": 24000, + "channels": 1, + "duration": 8.376, + "rms": 0.10000140667715379, + "peak": 0.490325927734375 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-sea.wav?v=0.2.3", + "sha256": "5c91a36496e274d2be9c6fa8d9b506cd04f2a1b7ceb05ed1b7bb03fe7fca99d9", + "bytes": 399788, + "sampleRate": 24000, + "channels": 1, + "duration": 8.328, + "rms": 0.10000144241513113, + "peak": 0.5465559959411621 + }, + { + "url": "http://127.0.0.1:4173/audio/message-hat.wav?v=0.2.3", + "sha256": "5a713a8522b231bb8276805c014b385b9150b79f58ff2618446607e2b442495e", + "bytes": 518444, + "sampleRate": 24000, + "channels": 1, + "duration": 10.8, + "rms": 0.10000136927555209, + "peak": 0.587005615234375 + }, + { + "url": "http://127.0.0.1:4173/audio/password-meat.wav?v=0.2.3", + "sha256": "b009caadd56350d6a641ff17f0973e2b2724c183e1f45ae0bf3c483e237fa99e", + "bytes": 240812, + "sampleRate": 24000, + "channels": 1, + "duration": 5.016, + "rms": 0.10000148386024335, + "peak": 0.4978789687156677 + }, + { + "url": "http://127.0.0.1:4173/audio/message-market.wav?v=0.2.3", + "sha256": "9242d4cd6e0030e6b073e4d2360f84aa8a454d1749711cdb2d64c14f28a7ea20", + "bytes": 523052, + "sampleRate": 24000, + "channels": 1, + "duration": 10.896, + "rms": 0.10000133805787564, + "peak": 0.534820556640625 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-apple.wav?v=0.2.3", + "sha256": "8832f1b793ab3eedbe663875ea8dbeabb122c329bd5879437c71230b0418c3c8", + "bytes": 360620, + "sampleRate": 24000, + "channels": 1, + "duration": 7.512, + "rms": 0.10000145024648589, + "peak": 0.553558349609375 + }, + { + "url": "http://127.0.0.1:4173/audio/last-umbrella.wav?v=0.2.3", + "sha256": "c801293a34013a8d93d3289a2cc87cd3eed83f97ba4647f5060efa00b117a9ad", + "bytes": 370988, + "sampleRate": 24000, + "channels": 1, + "duration": 7.728, + "rms": 0.10000149360501835, + "peak": 0.59765625 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-sea.wav?v=0.2.3", + "sha256": "9233431d78ab4b144e3c33ad0cf0d49fc0fb91b29514343230ba32987b794bb3", + "bytes": 398636, + "sampleRate": 24000, + "channels": 1, + "duration": 8.304, + "rms": 0.10000134688905045, + "peak": 0.49616992473602295 + }, + { + "url": "http://127.0.0.1:4173/audio/password-apple.wav?v=0.2.3", + "sha256": "b6f5de3fe571fe3a7fdb722fe49250bcfeedef49475271e0ec76a7630907edd5", + "bytes": 235052, + "sampleRate": 24000, + "channels": 1, + "duration": 4.896, + "rms": 0.10000148212193387, + "peak": 0.4834437072277069 + }, + { + "url": "http://127.0.0.1:4173/audio/first-furniture.wav?v=0.2.3", + "sha256": "29f007b385b7182db1d8aeccad4fc3c260df5e66e14e52a46b0ef0fcd0ff3a0a", + "bytes": 364076, + "sampleRate": 24000, + "channels": 1, + "duration": 7.584, + "rms": 0.1000014551820741, + "peak": 0.5700552463531494 + }, + { + "url": "http://127.0.0.1:4173/audio/password-hat.wav?v=0.2.3", + "sha256": "e91bfc97df90a1675b6cd856880ac15c54de32cfc3b23603bdd1c2c5ac3ce6b8", + "bytes": 235052, + "sampleRate": 24000, + "channels": 1, + "duration": 4.896, + "rms": 0.10000146155157119, + "peak": 0.5059053301811218 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-oil.wav?v=0.2.3", + "sha256": "7a6b122b11c07da86c95fb78e2db2a70681b5219c63d6441fe56da1979ac1dc3", + "bytes": 334124, + "sampleRate": 24000, + "channels": 1, + "duration": 6.96, + "rms": 0.1000014880654183, + "peak": 0.539933443069458 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-meat.wav?v=0.2.3", + "sha256": "d416107cc05e7c5b92ca27100a10a8a9689de913346179945d5542de4a6bac0c", + "bytes": 342188, + "sampleRate": 24000, + "channels": 1, + "duration": 7.128, + "rms": 0.10000157422522808, + "peak": 0.510833740234375 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-apple.wav?v=0.2.3", + "sha256": "1bf2aef9a9f030af1a8fd7dee8f44aa420a397b3ba99b575feeb3dc7a63ec191", + "bytes": 395180, + "sampleRate": 24000, + "channels": 1, + "duration": 8.232, + "rms": 0.10000148399213096, + "peak": 0.563568115234375 + }, + { + "url": "http://127.0.0.1:4173/audio/first-oil.wav?v=0.2.3", + "sha256": "f415195e0cfc7ee711d09de7519e88eab62cc8b58d70772c83c3f5c27c267819", + "bytes": 335276, + "sampleRate": 24000, + "channels": 1, + "duration": 6.984, + "rms": 0.10000145886808136, + "peak": 0.5347453355789185 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-hat.wav?v=0.2.3", + "sha256": "31a6a4270bf368cda419094d87a303ac3cd5c22539786cb165f8044b0b8e9d6e", + "bytes": 402092, + "sampleRate": 24000, + "channels": 1, + "duration": 8.376, + "rms": 0.10000145804818952, + "peak": 0.541778564453125 + }, + { + "url": "http://127.0.0.1:4173/audio/message-furniture.wav?v=0.2.3", + "sha256": "26c331b7e12311236f4bb48f88918dfbf53cccd2f50b55741ea6ff4473e71dd8", + "bytes": 521900, + "sampleRate": 24000, + "channels": 1, + "duration": 10.872, + "rms": 0.10000134596838128, + "peak": 0.529327392578125 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-oil.wav?v=0.2.3", + "sha256": "3fa1e662a3af8f2726b17b2baa5bec2934406e6595ebc243c8380dd16e190977", + "bytes": 190124, + "sampleRate": 24000, + "channels": 1, + "duration": 3.96, + "rms": 0.10000134375667624, + "peak": 0.3817255198955536 + }, + { + "url": "http://127.0.0.1:4173/audio/last-sea.wav?v=0.2.3", + "sha256": "f755452e1da44674aa1df7d12edffa988091b89a394e7eb6d4a00eb721f07cbf", + "bytes": 345644, + "sampleRate": 24000, + "channels": 1, + "duration": 7.2, + "rms": 0.10000140162255576, + "peak": 0.591033935546875 + }, + { + "url": "http://127.0.0.1:4173/audio/password-oil.wav?v=0.2.3", + "sha256": "b472957b27ff98ea7b8894fa1ff12653f7e9f66f77870faa9e52a1c1bf116c41", + "bytes": 240812, + "sampleRate": 24000, + "channels": 1, + "duration": 5.016, + "rms": 0.10000146772662066, + "peak": 0.4945219159126282 + }, + { + "url": "http://127.0.0.1:4173/audio/first-umbrella.wav?v=0.2.3", + "sha256": "878e0bd2e6e4105f175aef51a028f6b141f3a2072be20f783193f3ba897a3ee0", + "bytes": 366380, + "sampleRate": 24000, + "channels": 1, + "duration": 7.632, + "rms": 0.10000147647908036, + "peak": 0.5700247287750244 + }, + { + "url": "http://127.0.0.1:4173/audio/last-apple.wav?v=0.2.3", + "sha256": "4cb2a8579fa3a7b91bb36363826ce8ca0d6d86e96e16a479e226a2802edd82f7", + "bytes": 356012, + "sampleRate": 24000, + "channels": 1, + "duration": 7.416, + "rms": 0.10000144523423521, + "peak": 0.622528076171875 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-market.wav?v=0.2.3", + "sha256": "68a5b899115a66ab225d610ec47b4de56cc8793657362bc38f533c06f741e4cc", + "bytes": 402092, + "sampleRate": 24000, + "channels": 1, + "duration": 8.376, + "rms": 0.10000160159844854, + "peak": 0.6822717785835266 + }, + { + "url": "http://127.0.0.1:4173/audio/message-oil.wav?v=0.2.3", + "sha256": "a2a71a7e5e07c81871a25c6cb7540c39aa0b32fc44f78cda66b5f34ace98d805", + "bytes": 509228, + "sampleRate": 24000, + "channels": 1, + "duration": 10.608, + "rms": 0.10000135184106136, + "peak": 0.51812744140625 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-meat.wav?v=0.2.3", + "sha256": "d36dfc395a5c53fbfa4abe9980db7bb59adfdac59e40318c4aca365365e3f2ab", + "bytes": 187820, + "sampleRate": 24000, + "channels": 1, + "duration": 3.912, + "rms": 0.1000013329979738, + "peak": 0.371124267578125 + }, + { + "url": "http://127.0.0.1:4173/audio/password-market.wav?v=0.2.3", + "sha256": "02e325fb753ef7a3ee585a03d2ca2aa3f1fbc58523b062222ae1136eeed7a95c", + "bytes": 230444, + "sampleRate": 24000, + "channels": 1, + "duration": 4.8, + "rms": 0.10000151520861549, + "peak": 0.48170414566993713 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-hat.wav?v=0.2.3", + "sha256": "4ff43dd042f4b5451e9fdeb3edd59f1e389a7d1dd488094587a3a9fc7dfffa44", + "bytes": 191276, + "sampleRate": 24000, + "channels": 1, + "duration": 3.984, + "rms": 0.10000132502946775, + "peak": 0.417083740234375 + }, + { + "url": "http://127.0.0.1:4173/audio/last-market.wav?v=0.2.3", + "sha256": "7857e87e9dbfe8fe849cc0b18c1d45b60916cb337328099c7a87a42c82e2821e", + "bytes": 359468, + "sampleRate": 24000, + "channels": 1, + "duration": 7.488, + "rms": 0.10000148064140717, + "peak": 0.600555419921875 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-meat.wav?v=0.2.3", + "sha256": "94f8a4f9e116a787e5ed052661d6de9ecf3ad8629db476661dd59ad03014b0c9", + "bytes": 244268, + "sampleRate": 24000, + "channels": 1, + "duration": 5.088, + "rms": 0.10000146176253134, + "peak": 0.44187748432159424 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-oil.wav?v=0.2.3", + "sha256": "55b2c7d6aa8bbce04edf8661882c9781da81c57f56217f99b80457a3bb895da0", + "bytes": 369836, + "sampleRate": 24000, + "channels": 1, + "duration": 7.704, + "rms": 0.10000146897241707, + "peak": 0.6239814162254333 + }, + { + "url": "http://127.0.0.1:4173/audio/first-sound.wav?v=0.2.3", + "sha256": "46f6adeed928a16af0700f1e8626cf8049f124632a04a5d10604426fb06f9596", + "bytes": 353708, + "sampleRate": 24000, + "channels": 1, + "duration": 7.368, + "rms": 0.10000157588418972, + "peak": 0.5189672708511353 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-umbrella.wav?v=0.2.3", + "sha256": "4b4c858a25659540f9dbc524664496fc6de61ab8c1627f3cfee8c9c744e11d5b", + "bytes": 247724, + "sampleRate": 24000, + "channels": 1, + "duration": 5.16, + "rms": 0.10000144286672341, + "peak": 0.46534621715545654 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-oil.wav?v=0.2.3", + "sha256": "3ca98682ff06d1d6b8af02c0fd5b2124f42266ac989884223eff4a9bbde1287a", + "bytes": 399788, + "sampleRate": 24000, + "channels": 1, + "duration": 8.328, + "rms": 0.10000149133669024, + "peak": 0.5243995189666748 + }, + { + "url": "http://127.0.0.1:4173/audio/first-sea.wav?v=0.2.3", + "sha256": "0f0b39314c5f7d7168d4854003c0c284e7bc3438cdc4d1d1c5adab7cb5ed30e5", + "bytes": 349100, + "sampleRate": 24000, + "channels": 1, + "duration": 7.272, + "rms": 0.10000142148394393, + "peak": 0.5717948079109192 + }, + { + "url": "http://127.0.0.1:4173/audio/last-meat.wav?v=0.2.3", + "sha256": "10f8ad4259ed8945c9da831e80b3902303c09caef96d400298599168fb1efed4", + "bytes": 346796, + "sampleRate": 24000, + "channels": 1, + "duration": 7.224, + "rms": 0.10000155834091913, + "peak": 0.537200927734375 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-umbrella.wav?v=0.2.3", + "sha256": "399ea2f681f755918f1117c8baba42739ceca64b307b999342f457a9235050b6", + "bytes": 368684, + "sampleRate": 24000, + "channels": 1, + "duration": 7.68, + "rms": 0.10000155028684544, + "peak": 0.569549560546875 + }, + { + "url": "http://127.0.0.1:4173/audio/message-meat.wav?v=0.2.3", + "sha256": "ce19735df079b54c171e775b6b365385a80160b9033442abab95b2b9c8505e1a", + "bytes": 512684, + "sampleRate": 24000, + "channels": 1, + "duration": 10.68, + "rms": 0.10000140834686953, + "peak": 0.5147705078125 + }, + { + "url": "http://127.0.0.1:4173/audio/message-umbrella.wav?v=0.2.3", + "sha256": "41d5866dae66600df4694a8312b531571d44cece6dba0e423e7c43d09d184819", + "bytes": 523052, + "sampleRate": 24000, + "channels": 1, + "duration": 10.896, + "rms": 0.10000120668553683, + "peak": 0.530364990234375 + }, + { + "url": "http://127.0.0.1:4173/audio/last-furniture.wav?v=0.2.3", + "sha256": "5ad4f776e35439d408abed0e66567d6b5cdc80fc54d579165472e474f1238776", + "bytes": 357164, + "sampleRate": 24000, + "channels": 1, + "duration": 7.44, + "rms": 0.10000152394963031, + "peak": 0.583587646484375 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-sea.wav?v=0.2.3", + "sha256": "8838d6a1ee8a790427dc5aa761e70b3d8872af62086efeed743297ff7f8b8a06", + "bytes": 243116, + "sampleRate": 24000, + "channels": 1, + "duration": 5.064, + "rms": 0.10000138788281714, + "peak": 0.45013427734375 + }, + { + "url": "http://127.0.0.1:4173/audio/message-apple.wav?v=0.2.3", + "sha256": "d85e6f47d871369f00de2274139e5ad6b4b5686b5e20e248df0ed6b9a320d942", + "bytes": 517292, + "sampleRate": 24000, + "channels": 1, + "duration": 10.776, + "rms": 0.10000133916854889, + "peak": 0.525360107421875 + }, + { + "url": "http://127.0.0.1:4173/audio/last-hat.wav?v=0.2.3", + "sha256": "bdaf8fbc54df8061e9e58aa8c14b3044a6e863dc54973ee3ee6ae2c5ae1a28f1", + "bytes": 354860, + "sampleRate": 24000, + "channels": 1, + "duration": 7.392, + "rms": 0.10000152378078818, + "peak": 0.550079345703125 + }, + { + "url": "http://127.0.0.1:4173/audio/first-apple.wav?v=0.2.3", + "sha256": "7c1dbcb3082055df2b8f087f7e906ec867c92f679de0894c34740c05e61a4bc1", + "bytes": 359468, + "sampleRate": 24000, + "channels": 1, + "duration": 7.488, + "rms": 0.10000143468253914, + "peak": 0.57977294921875 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-umbrella.wav?v=0.2.3", + "sha256": "8d3e8e8bc97e5fe3f3362184c4abb12f01a882a1f1174d2644f0f70aac677c0a", + "bytes": 192428, + "sampleRate": 24000, + "channels": 1, + "duration": 4.008, + "rms": 0.10000131475711933, + "peak": 0.385650634765625 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-furniture.wav?v=0.2.3", + "sha256": "5c004a7b2f5a4a918c9f689f1a2dcb219a620ed14313f40a9655b36dbf64948d", + "bytes": 398636, + "sampleRate": 24000, + "channels": 1, + "duration": 8.304, + "rms": 0.10000141690978645, + "peak": 0.487396240234375 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-tree.wav?v=0.2.3", + "sha256": "122f496834fb16d6da47f801e50e46e272e4e934af959467d1db4e490f79be7a", + "bytes": 183212, + "sampleRate": 24000, + "channels": 1, + "duration": 3.816, + "rms": 0.10000140751524371, + "peak": 0.36920166015625 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-tree.wav?v=0.2.3", + "sha256": "00d8e77ec0371971d632724d91f8cf8d947bfb83c582a513b6421be4c457a1da", + "bytes": 241964, + "sampleRate": 24000, + "channels": 1, + "duration": 5.04, + "rms": 0.10000146153372488, + "peak": 0.4585406184196472 + }, + { + "url": "http://127.0.0.1:4173/audio/message-tree.wav?v=0.2.3", + "sha256": "5d684aa710a63d36ed8dcc2a8bfbdd5c71b0b1c63dad2a324adecb76591e85b8", + "bytes": 540332, + "sampleRate": 24000, + "channels": 1, + "duration": 11.256, + "rms": 0.10000132424453942, + "peak": 0.5262451171875 + }, + { + "url": "http://127.0.0.1:4173/audio/last-tree.wav?v=0.2.3", + "sha256": "589e56d940a3c9e80ec02ae0b2dd93463fdc85ef019a753fcd0fded0752055f9", + "bytes": 382508, + "sampleRate": 24000, + "channels": 1, + "duration": 7.968, + "rms": 0.10000149781706567, + "peak": 0.5807672142982483 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-tree.wav?v=0.2.3", + "sha256": "341888c75275c13eb31058f53a1d4276be0daa0a1b5a3a45522036928b83b0c1", + "bytes": 382508, + "sampleRate": 24000, + "channels": 1, + "duration": 7.968, + "rms": 0.1000014873304774, + "peak": 0.600024402141571 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-tree.wav?v=0.2.3", + "sha256": "8735c3d9672561ca237fa87317beec2878492eb9063d6048d5b214423561acc1", + "bytes": 423980, + "sampleRate": 24000, + "channels": 1, + "duration": 8.832, + "rms": 0.10000150947389638, + "peak": 0.6187627911567688 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-furniture.wav?v=0.2.3", + "sha256": "52cb92cdb8ee92b6f581c9d68dbc346f180c470564809ba57185429c9eb84127", + "bytes": 186668, + "sampleRate": 24000, + "channels": 1, + "duration": 3.888, + "rms": 0.1000013480244084, + "peak": 0.387054443359375 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-tree.wav?v=0.2.3", + "sha256": "bc8e54f5407e8866bf1ca1ddfd4f6c63d85fee29bd9e430c7dd33e87974fc5b8", + "bytes": 409004, + "sampleRate": 24000, + "channels": 1, + "duration": 8.52, + "rms": 0.10000146559822108, + "peak": 0.5486617684364319 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-tree.wav?v=0.2.3", + "sha256": "b8e8bbe6b8b14727efd953fae9d4aed2caeb004055d52f611c6378322847edbe", + "bytes": 400940, + "sampleRate": 24000, + "channels": 1, + "duration": 8.352, + "rms": 0.10000144970799159, + "peak": 0.470611572265625 + }, + { + "url": "http://127.0.0.1:4173/audio/first-tree.wav?v=0.2.3", + "sha256": "3178230fd5850b6277a2153b438ec5289720e3db7ac929914cc213964f004bd5", + "bytes": 379052, + "sampleRate": 24000, + "channels": 1, + "duration": 7.896, + "rms": 0.10000144270360484, + "peak": 0.5833613276481628 + }, + { + "url": "http://127.0.0.1:4173/audio/password-tree.wav?v=0.2.3", + "sha256": "67da8147296e35134ec254bc82b58317630061b2c64d2d63c4be197ce8692d50", + "bytes": 233900, + "sampleRate": 24000, + "channels": 1, + "duration": 4.872, + "rms": 0.10000156310809623, + "peak": 0.4904019236564636 + } + ] +} diff --git a/.agent/evidence-v0.2.3/privacy-screening/earlier-asr-provenance.json b/.agent/evidence-v0.2.3/privacy-screening/earlier-asr-provenance.json new file mode 100644 index 0000000..b7a1a48 --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/earlier-asr-provenance.json @@ -0,0 +1,262 @@ +{ + "preservedAtUtc": "2026-10-14T09:14:01.449054+00:00", + "reportedTool": { + "name": "faster-whisper", + "version": "1.2.1", + "model": "tiny multilingual", + "attribution": "Neo, as supplied in the user request; raw JSON has no tool configuration metadata." + }, + "records": [ + { + "sourcePath": "/tmp/findword-ambience-candidate-asr.json", + "savedFile": "candidate-scan-original.json", + "sha256": "2f89b954b323d2d1da96ce5927d68771f9f7ec82331c04a3bfdefbdb693b4ef6", + "bytes": 2258, + "sourceModifiedAtUtc": "2026-10-14T08:46:59.249935+00:00", + "scope": "Earlier broad source candidate scan; 12-second candidates for mall, market and cafe, as reported by Neo through the user." + }, + { + "sourcePath": "/tmp/findword-ambience-asr.json", + "savedFile": "prior-derivatives-asr-original.json", + "sha256": "ab65f3d21655ee1894d16b2836d8976ba6419457aabc67a2f90a66eb8fa8bb88", + "bytes": 1372, + "sourceModifiedAtUtc": "2026-10-14T08:46:03.032951+00:00", + "scope": "Earlier screening of the pre-refinement eight 12-second derivatives, as reported by Neo through the user." + } + ], + "provenanceLimits": "Raw records are preserved byte-for-byte. They do not embed input hashes, model revision, decoder settings or full invocation metadata. Source/derivative associations below are the task context and captured pre-refinement plan/manifest, not independently proven by those raw ASR files. Candidate lang/p values are heuristic guesses (p is rounded in the supplied scan), not speaker identification or validated transcription.", + "contextSources": [ + { + "environmentId": "street", + "directUrl": "https://upload.wikimedia.org/wikipedia/commons/2/24/Sunday_in_the_city_street_noise2.ogg", + "expectedSourceSha256": "0ddb0be7eb3427f781c8268bcbc74b8ad7e1fbf75b9f6966e65274dbe85f3d9d", + "sourceBytes": 3414104, + "directMediaDurationSeconds": 264.254694 + }, + { + "environmentId": "mall", + "directUrl": "https://upload.wikimedia.org/wikipedia/commons/f/fd/1_minute_at_the_alexa_mall_in_berlin.ogg", + "expectedSourceSha256": "bb066e130e5d665db57cb5f88e820d053c724d8f777b275213998d2074c6529a", + "sourceBytes": 1666896, + "directMediaDurationSeconds": 60.05551 + }, + { + "environmentId": "theater", + "directUrl": "https://cdn.freesound.org/previews/853/853576_14269391-lq.mp3", + "expectedSourceSha256": "05c3ece7c088f34700b7610f791c0ad848a24c77be2c32fd1503a78356739a43", + "sourceBytes": 1485015, + "directMediaDurationSeconds": 176.901224 + }, + { + "environmentId": "department", + "directUrl": "https://cdn.freesound.org/previews/268/268941_40107-lq.mp3", + "expectedSourceSha256": "261fda28722fba623483a90b32e7a2ec388c59887f56a5247156b53f1ffb6ccd", + "sourceBytes": 2445024, + "directMediaDurationSeconds": 292.872 + }, + { + "environmentId": "market", + "directUrl": "https://upload.wikimedia.org/wikipedia/commons/e/e8/Italia_Palermo_mercato-Ballaro_20161225_122421.ogg", + "expectedSourceSha256": "fc0075dce8ad05b56460c9f18754c27b2021f21f1c780a595ccda648d33c941d", + "sourceBytes": 622200, + "directMediaDurationSeconds": 76.696961 + }, + { + "environmentId": "subway", + "directUrl": "https://upload.wikimedia.org/wikipedia/commons/d/d3/TTC_Subway_Line_1_Ambience_-_Museum_to_Union_%28Freesound%29.ogg", + "expectedSourceSha256": "41fcf064cde53cef1528fe98721347851e60c070d8ff9f213f354025cf272d4c", + "sourceBytes": 3343901, + "directMediaDurationSeconds": 425.024 + }, + { + "environmentId": "cafe", + "directUrl": "https://upload.wikimedia.org/wikipedia/commons/5/54/Cafe_ambiance.ogg", + "expectedSourceSha256": "6360791fdcee1f64638f0fc9abd6d2c7a1aa75fd3d2b80033170a02d025099dc", + "sourceBytes": 19947952, + "directMediaDurationSeconds": 1200.000998 + }, + { + "environmentId": "rain", + "directUrl": "https://upload.wikimedia.org/wikipedia/commons/8/8c/Urban_Street_on_a_Rainy_Afternoon.flac", + "expectedSourceSha256": "ef0511593b1bb0ba47d5c5dafd83eb07ba854b5a65fd5d41b8c76a1b3ff2c22a", + "sourceBytes": 91187572, + "directMediaDurationSeconds": 1800.0 + } + ], + "contextPriorDerivatives": [ + { + "environmentId": "street", + "file": "street.wav", + "sha256": "a8bffa201b174618955bc51b860167169125304811aabe2086b0bb35b06c3ae1", + "bytes": 576044, + "conversion": { + "startSeconds": 35, + "durationSeconds": 12, + "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", + "file": "mall.wav", + "sha256": "6e9171f549cacadfaeedd57a41c8e2a76b0e789f5c9a97af029a8d3558c9f145", + "bytes": 576044, + "conversion": { + "startSeconds": 20, + "durationSeconds": 12, + "fadeSeconds": 0.05, + "sampleRate": 24000, + "channels": 1, + "encoding": "PCM16 little-endian", + "linearGain": 0.9603596731816801, + "targetRms": 0.08, + "peakLimit": 0.85, + "maxGain": 4, + "operations": "excerpt, downmix, resample, linear end fades, bounded linear normalization, WAV encoding" + } + }, + { + "environmentId": "theater", + "file": "theater.wav", + "sha256": "2d6a444fb7874cdf6b2d8a741a69175299b112eb66834912c025437d8277d635", + "bytes": 576044, + "conversion": { + "startSeconds": 45, + "durationSeconds": 12, + "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", + "file": "department.wav", + "sha256": "aa43f3d1d3e7c2b1f8ace24ecbda45d0ea3a031db941c39506dc6c1665b8efa7", + "bytes": 576044, + "conversion": { + "startSeconds": 90, + "durationSeconds": 12, + "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", + "file": "market.wav", + "sha256": "4287e971a12767f70da714e0c1aff30125268f9c3faf07ebfbcc0d2904f4a312", + "bytes": 576044, + "conversion": { + "startSeconds": 30, + "durationSeconds": 12, + "fadeSeconds": 0.05, + "sampleRate": 24000, + "channels": 1, + "encoding": "PCM16 little-endian", + "linearGain": 0.9408509216036823, + "targetRms": 0.08, + "peakLimit": 0.85, + "maxGain": 4, + "operations": "excerpt, downmix, resample, linear end fades, bounded linear normalization, WAV encoding" + } + }, + { + "environmentId": "subway", + "file": "subway.wav", + "sha256": "9faf70b68617d267b367a0f3692ed90015458543ab4b0844f6c704e6a724728f", + "bytes": 576044, + "conversion": { + "startSeconds": 65, + "durationSeconds": 12, + "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", + "file": "cafe.wav", + "sha256": "8db06f3f09bbd8409573ba4874c7ccdd1e7e825c8a61989a4efe66206a66c2d2", + "bytes": 576044, + "conversion": { + "startSeconds": 120, + "durationSeconds": 12, + "fadeSeconds": 0.05, + "sampleRate": 24000, + "channels": 1, + "encoding": "PCM16 little-endian", + "linearGain": 0.6543423611954429, + "targetRms": 0.08, + "peakLimit": 0.85, + "maxGain": 4, + "operations": "excerpt, downmix, resample, linear end fades, bounded linear normalization, WAV encoding" + } + }, + { + "environmentId": "rain", + "file": "rain.wav", + "sha256": "f4315084e820f742b0709de5bb0d1abd3d5af1730620e08c2948b70347356dd9", + "bytes": 576044, + "conversion": { + "startSeconds": 180, + "durationSeconds": 12, + "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" + } + } + ], + "selection": { + "mall": { + "previousStartSeconds": 20, + "selectedStartSeconds": 36, + "durationSeconds": 12 + }, + "market": { + "previousStartSeconds": 30, + "selectedStartSeconds": 60, + "durationSeconds": 12 + }, + "cafe": { + "previousStartSeconds": 120, + "selectedStartSeconds": 180, + "durationSeconds": 12 + } + }, + "screeningOnly": true, + "textIsVerifiedTranscript": false, + "humanListeningAcceptance": false, + "legalPrivacyClearance": false, + "limitations": "Heuristic ASR output can miss speech and hallucinate text. Neither candidate text nor empty text is a faithful transcript or clearance. Final exact derivatives must be screened separately; human listening acceptance remains unperformed." +} diff --git a/.agent/evidence-v0.2.3/privacy-screening/failed-regeneration-preservation.json b/.agent/evidence-v0.2.3/privacy-screening/failed-regeneration-preservation.json new file mode 100644 index 0000000..ae610cd --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/failed-regeneration-preservation.json @@ -0,0 +1,9 @@ +{ + "afterFailedRuns": [ + "05-regeneration.log", + "07-regeneration.log" + ], + "all109WavsUnchanged": true, + "manifestUnchanged": true, + "noticesUnchanged": true +} \ No newline at end of file diff --git a/.agent/evidence-v0.2.3/privacy-screening/final-asr.json b/.agent/evidence-v0.2.3/privacy-screening/final-asr.json new file mode 100644 index 0000000..f8559ef --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/final-asr.json @@ -0,0 +1,4538 @@ +{ + "schemaVersion": 1, + "startedAtUtc": "2026-10-14T09:33:40.673065+00:00", + "completedAtUtc": "2026-10-14T09:33:44.172691+00:00", + "tool": { + "name": "faster-whisper", + "version": "1.2.1", + "python": "3.11.16", + "dependencies": { + "ctranslate2": "4.8.3", + "av": "18.1.0", + "numpy": "2.4.6", + "tokenizers": "0.23.3", + "huggingface-hub": "2.2.0" + } + }, + "model": { + "name": "tiny", + "multilingual": true, + "repository": "Systran/faster-whisper-tiny", + "revision": "d90ca5fe260221311c53c58e660288d3deb8d356", + "files": { + "config.json": "a73a28cdfe1c43ccc7202fa333d1f89c202477271407ae9a7f19afa52039cac8", + "model.bin": "dcb76c6586fc06cbdac6dd21f14cfd129cc4cdd9dce19bf4ffa62e59cbe6e6d1", + "tokenizer.json": "fb7b63191e9bb045082c79fd742a3106a12c99513ab30df4a0d47fa6cb6fd0ab", + "vocabulary.txt": "34ce3fe1c5041027b3f8d42912270993f986dbc4bb34cf27f951e34a1e453913" + } + }, + "method": { + "input": "Exact final 12-second public/ambience WAV files, hash verified before and after inference; built-in Silero VAD with package defaults, no text editing or manual filtering.", + "device": "cpu", + "computeType": "int8", + "cpuThreads": 4, + "numWorkers": 1, + "randomSeed": 0, + "nonFiniteNumberEncoding": "Non-finite default options use {nonFiniteFloat: Infinity|-Infinity|NaN} tagged objects; no ASR segments or text are discarded.", + "offline": true, + "parameters": { + "language": null, + "task": "transcribe", + "log_progress": false, + "beam_size": 5, + "best_of": 5, + "patience": 1, + "length_penalty": 1, + "repetition_penalty": 1, + "no_repeat_ngram_size": 0, + "temperature": [ + 0.0, + 0.2, + 0.4, + 0.6, + 0.8, + 1.0 + ], + "compression_ratio_threshold": 2.4, + "log_prob_threshold": -1.0, + "no_speech_threshold": 0.6, + "condition_on_previous_text": true, + "prompt_reset_on_temperature": 0.5, + "initial_prompt": null, + "prefix": null, + "suppress_blank": true, + "suppress_tokens": [ + -1 + ], + "without_timestamps": false, + "max_initial_timestamp": 1.0, + "word_timestamps": false, + "prepend_punctuations": "\"'“¿([{-", + "append_punctuations": "\"'.。,,!!??::”)]}、", + "multilingual": false, + "vad_filter": true, + "vad_parameters": null, + "max_new_tokens": null, + "chunk_length": null, + "clip_timestamps": "0", + "hallucination_silence_threshold": null, + "hotwords": null, + "language_detection_threshold": 0.5, + "language_detection_segments": 1 + }, + "manifestSha256": "2aeae8bb7a1f6e12543ba7e32a233b47b1ebcfdd65c7e55f67fc8f22f8d0f8c1", + "vadModelSha256": "4cbf549b8326f60f80f2536d9eefeb450a9abe83365a098031c89719f1be17d2", + "scriptSha256": "49dbb095773ba4d66404a7b15c125e799ce43933e1f21bbb77183dfb74ffa5ed", + "command": "/tmp/findword-asr-venv/bin/python .agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/screen-final.py" + }, + "limitations": { + "screeningOnly": true, + "humanListeningAcceptance": false, + "legalPrivacyClearance": false, + "textIsVerifiedTranscript": false, + "explanation": "Tiny-model ASR is only a screening signal. Empty segments do not prove absence of speech, music or private conversation. Candidate text and language guesses may be hallucinated and are not faithful transcripts. This is NOT human listening acceptance or legal/privacy clearance." + }, + "priorFailedAttempt": { + "file": "prior-attempt-market60-cafe180/final-asr.json", + "sha256": "01c8a92fab9f8df7a5f778c5f7e478ce96bcedc33e11a1055bd29154a08b706b", + "requiredEmptyPassed": false + }, + "supplementaryNoVadRun": { + "file": "no-vad-asr.json", + "sha256": "14b42ee0b80c194caa3c0de2644f647d6d7720c60c2208374778619f47c2e969", + "requiredEmptyPassed": false, + "explanation": "Historical no-VAD run on mall 36s, market 60s and cafe 180s emitted candidate text that may be hallucinated. It is retained unchanged, is not a screen of the replacement market/cafe WAVs, and does not override the specified VAD gate. Neither empty VAD results nor no-VAD text proves absence or presence of speech/music or provides human listening acceptance or legal/privacy clearance." + }, + "requiredEmptyEnvironmentIds": [ + "mall", + "market", + "cafe" + ], + "requiredEmptyPassed": true, + "files": [ + { + "environmentId": "street", + "file": "public/ambience/street.wav", + "sha256": "a8bffa201b174618955bc51b860167169125304811aabe2086b0bb35b06c3ae1", + "bytes": 576044, + "durationSeconds": 12.0, + "selectedSegmentStartSeconds": 35, + "sourceSha256": "0ddb0be7eb3427f781c8268bcbc74b8ad7e1fbf75b9f6966e65274dbe85f3d9d", + "language": "en", + "languageProbability": 0.3020564913749695, + "segments": [], + "text": "", + "info": { + "language": "en", + "language_probability": 0.3020564913749695, + "duration": 12.0, + "duration_after_vad": 0.0, + "all_language_probs": [ + [ + "en", + 0.3020564913749695 + ], + [ + "cy", + 0.21030105650424957 + ], + [ + "nn", + 0.14189758896827698 + ], + [ + "zh", + 0.04061942175030708 + ], + [ + "ja", + 0.03452612832188606 + ], + [ + "ru", + 0.03396379575133324 + ], + [ + "la", + 0.030456941574811935 + ], + [ + "pl", + 0.02258244901895523 + ], + [ + "es", + 0.021157776936888695 + ], + [ + "pt", + 0.017485281452536583 + ], + [ + "fr", + 0.015300172381103039 + ], + [ + "ko", + 0.01108497753739357 + ], + [ + "it", + 0.010035485960543156 + ], + [ + "de", + 0.007656001951545477 + ], + [ + "ar", + 0.006853005383163691 + ], + [ + "nl", + 0.006296808365732431 + ], + [ + "tr", + 0.005499983672052622 + ], + [ + "haw", + 0.005389326252043247 + ], + [ + "sv", + 0.004781618714332581 + ], + [ + "th", + 0.004685405641794205 + ], + [ + "el", + 0.004048524424433708 + ], + [ + "hi", + 0.0036309813149273396 + ], + [ + "fi", + 0.0033149493392556906 + ], + [ + "id", + 0.003307837527245283 + ], + [ + "ms", + 0.0032469655852764845 + ], + [ + "jw", + 0.0031340355053544044 + ], + [ + "ro", + 0.0029805265367031097 + ], + [ + "br", + 0.0029171525966376066 + ], + [ + "mi", + 0.0028367217164486647 + ], + [ + "vi", + 0.0028196300845593214 + ], + [ + "gl", + 0.0025912728160619736 + ], + [ + "km", + 0.002590385964140296 + ], + [ + "sn", + 0.0024162698537111282 + ], + [ + "hu", + 0.002406821819022298 + ], + [ + "uk", + 0.0018103669863194227 + ], + [ + "cs", + 0.0016262015560641885 + ], + [ + "yo", + 0.001625207718461752 + ], + [ + "bo", + 0.0015162129420787096 + ], + [ + "sa", + 0.00130862754303962 + ], + [ + "he", + 0.0011921327095478773 + ], + [ + "si", + 0.0011325259692966938 + ], + [ + "ml", + 0.0010853250278159976 + ], + [ + "bn", + 0.0010256647365167737 + ], + [ + "ta", + 0.0009075920679606497 + ], + [ + "sw", + 0.000845721981022507 + ], + [ + "da", + 0.0008275281288661063 + ], + [ + "fa", + 0.0007775731501169503 + ], + [ + "te", + 0.0007719157729297876 + ], + [ + "ca", + 0.0007328137289732695 + ], + [ + "ur", + 0.0007311314693652093 + ], + [ + "bg", + 0.000695197784807533 + ], + [ + "eu", + 0.0005441734101623297 + ], + [ + "hr", + 0.0004312059027142823 + ], + [ + "sl", + 0.0004269620985724032 + ], + [ + "fo", + 0.00038641990977339447 + ], + [ + "af", + 0.000331822142470628 + ], + [ + "no", + 0.0003316291549708694 + ], + [ + "my", + 0.00031328442855738103 + ], + [ + "tl", + 0.00027318537468090653 + ], + [ + "bs", + 0.0002692292327992618 + ], + [ + "yi", + 0.00024950431543402374 + ], + [ + "mn", + 0.00024202950589824468 + ], + [ + "az", + 0.00021917068806942552 + ], + [ + "sk", + 0.00020947805023752153 + ], + [ + "ne", + 0.00020235382544342428 + ], + [ + "sr", + 0.0001879734336398542 + ], + [ + "ht", + 0.0001864101504907012 + ], + [ + "oc", + 0.0001844368816819042 + ], + [ + "be", + 0.0001775887212716043 + ], + [ + "lt", + 0.00013429981481749564 + ], + [ + "sd", + 0.00012911477824673057 + ], + [ + "is", + 0.00010892335558310151 + ], + [ + "pa", + 9.756845247466117e-05 + ], + [ + "sq", + 9.457524720346555e-05 + ], + [ + "mk", + 9.2326634330675e-05 + ], + [ + "mr", + 7.776313577778637e-05 + ], + [ + "ps", + 7.548009307356551e-05 + ], + [ + "hy", + 7.365928468061611e-05 + ], + [ + "lv", + 6.607783143408597e-05 + ], + [ + "mt", + 6.539625610457733e-05 + ], + [ + "et", + 6.393730291165411e-05 + ], + [ + "gu", + 4.735660331789404e-05 + ], + [ + "ka", + 4.6489964006468654e-05 + ], + [ + "kn", + 3.211794683011249e-05 + ], + [ + "lo", + 3.088561425101943e-05 + ], + [ + "as", + 2.7807591322925873e-05 + ], + [ + "kk", + 2.5295639716205187e-05 + ], + [ + "am", + 2.479039176250808e-05 + ], + [ + "so", + 1.860335578385275e-05 + ], + [ + "ln", + 1.4299822396424133e-05 + ], + [ + "tg", + 9.60720967668749e-07 + ], + [ + "tt", + 6.956781817279989e-07 + ], + [ + "lb", + 3.706700795191864e-07 + ], + [ + "ha", + 2.8613706604119216e-07 + ], + [ + "su", + 2.6732325864031736e-07 + ], + [ + "mg", + 1.1841115110655664e-07 + ], + [ + "tk", + 8.603510792681845e-08 + ], + [ + "ba", + 6.101110727740888e-08 + ], + [ + "uz", + 1.4534106362873445e-08 + ] + ], + "transcription_options": { + "beam_size": 5, + "best_of": 5, + "patience": 1, + "length_penalty": 1, + "repetition_penalty": 1, + "no_repeat_ngram_size": 0, + "log_prob_threshold": -1.0, + "no_speech_threshold": 0.6, + "compression_ratio_threshold": 2.4, + "condition_on_previous_text": true, + "prompt_reset_on_temperature": 0.5, + "temperatures": [ + 0.0, + 0.2, + 0.4, + 0.6, + 0.8, + 1.0 + ], + "initial_prompt": null, + "prefix": null, + "suppress_blank": true, + "suppress_tokens": [ + 1, + 2, + 7, + 8, + 9, + 10, + 14, + 25, + 26, + 27, + 28, + 29, + 31, + 58, + 59, + 60, + 61, + 62, + 63, + 90, + 91, + 92, + 93, + 359, + 503, + 522, + 542, + 873, + 893, + 902, + 918, + 922, + 931, + 1350, + 1853, + 1982, + 2460, + 2627, + 3246, + 3253, + 3268, + 3536, + 3846, + 3961, + 4183, + 4667, + 6585, + 6647, + 7273, + 9061, + 9383, + 10428, + 10929, + 11938, + 12033, + 12331, + 12562, + 13793, + 14157, + 14635, + 15265, + 15618, + 16553, + 16604, + 18362, + 18956, + 20075, + 21675, + 22520, + 26130, + 26161, + 26435, + 28279, + 29464, + 31650, + 32302, + 32470, + 36865, + 42863, + 47425, + 49870, + 50254, + 50258, + 50358, + 50359, + 50360, + 50361, + 50362 + ], + "without_timestamps": false, + "max_initial_timestamp": 1.0, + "word_timestamps": false, + "prepend_punctuations": "\"'“¿([{-", + "append_punctuations": "\"'.。,,!!??::”)]}、", + "multilingual": false, + "max_new_tokens": null, + "clip_timestamps": [ + 0.0 + ], + "hallucination_silence_threshold": null, + "hotwords": null + }, + "vad_options": { + "threshold": 0.5, + "neg_threshold": null, + "min_speech_duration_ms": 0, + "max_speech_duration_s": { + "nonFiniteFloat": "Infinity" + }, + "min_silence_duration_ms": 2000, + "speech_pad_ms": 400 + } + } + }, + { + "environmentId": "mall", + "file": "public/ambience/mall.wav", + "sha256": "680a769940c08f0d12c6c954c08366598dd8b5745e276f39c82b10d1a88261a1", + "bytes": 576044, + "durationSeconds": 12.0, + "selectedSegmentStartSeconds": 36, + "sourceSha256": "bb066e130e5d665db57cb5f88e820d053c724d8f777b275213998d2074c6529a", + "language": "en", + "languageProbability": 0.3020564913749695, + "segments": [], + "text": "", + "info": { + "language": "en", + "language_probability": 0.3020564913749695, + "duration": 12.0, + "duration_after_vad": 0.0, + "all_language_probs": [ + [ + "en", + 0.3020564913749695 + ], + [ + "cy", + 0.21030105650424957 + ], + [ + "nn", + 0.14189758896827698 + ], + [ + "zh", + 0.04061942175030708 + ], + [ + "ja", + 0.03452612832188606 + ], + [ + "ru", + 0.03396379575133324 + ], + [ + "la", + 0.030456941574811935 + ], + [ + "pl", + 0.02258244901895523 + ], + [ + "es", + 0.021157776936888695 + ], + [ + "pt", + 0.017485281452536583 + ], + [ + "fr", + 0.015300172381103039 + ], + [ + "ko", + 0.01108497753739357 + ], + [ + "it", + 0.010035485960543156 + ], + [ + "de", + 0.007656001951545477 + ], + [ + "ar", + 0.006853005383163691 + ], + [ + "nl", + 0.006296808365732431 + ], + [ + "tr", + 0.005499983672052622 + ], + [ + "haw", + 0.005389326252043247 + ], + [ + "sv", + 0.004781618714332581 + ], + [ + "th", + 0.004685405641794205 + ], + [ + "el", + 0.004048524424433708 + ], + [ + "hi", + 0.0036309813149273396 + ], + [ + "fi", + 0.0033149493392556906 + ], + [ + "id", + 0.003307837527245283 + ], + [ + "ms", + 0.0032469655852764845 + ], + [ + "jw", + 0.0031340355053544044 + ], + [ + "ro", + 0.0029805265367031097 + ], + [ + "br", + 0.0029171525966376066 + ], + [ + "mi", + 0.0028367217164486647 + ], + [ + "vi", + 0.0028196300845593214 + ], + [ + "gl", + 0.0025912728160619736 + ], + [ + "km", + 0.002590385964140296 + ], + [ + "sn", + 0.0024162698537111282 + ], + [ + "hu", + 0.002406821819022298 + ], + [ + "uk", + 0.0018103669863194227 + ], + [ + "cs", + 0.0016262015560641885 + ], + [ + "yo", + 0.001625207718461752 + ], + [ + "bo", + 0.0015162129420787096 + ], + [ + "sa", + 0.00130862754303962 + ], + [ + "he", + 0.0011921327095478773 + ], + [ + "si", + 0.0011325259692966938 + ], + [ + "ml", + 0.0010853250278159976 + ], + [ + "bn", + 0.0010256647365167737 + ], + [ + "ta", + 0.0009075920679606497 + ], + [ + "sw", + 0.000845721981022507 + ], + [ + "da", + 0.0008275281288661063 + ], + [ + "fa", + 0.0007775731501169503 + ], + [ + "te", + 0.0007719157729297876 + ], + [ + "ca", + 0.0007328137289732695 + ], + [ + "ur", + 0.0007311314693652093 + ], + [ + "bg", + 0.000695197784807533 + ], + [ + "eu", + 0.0005441734101623297 + ], + [ + "hr", + 0.0004312059027142823 + ], + [ + "sl", + 0.0004269620985724032 + ], + [ + "fo", + 0.00038641990977339447 + ], + [ + "af", + 0.000331822142470628 + ], + [ + "no", + 0.0003316291549708694 + ], + [ + "my", + 0.00031328442855738103 + ], + [ + "tl", + 0.00027318537468090653 + ], + [ + "bs", + 0.0002692292327992618 + ], + [ + "yi", + 0.00024950431543402374 + ], + [ + "mn", + 0.00024202950589824468 + ], + [ + "az", + 0.00021917068806942552 + ], + [ + "sk", + 0.00020947805023752153 + ], + [ + "ne", + 0.00020235382544342428 + ], + [ + "sr", + 0.0001879734336398542 + ], + [ + "ht", + 0.0001864101504907012 + ], + [ + "oc", + 0.0001844368816819042 + ], + [ + "be", + 0.0001775887212716043 + ], + [ + "lt", + 0.00013429981481749564 + ], + [ + "sd", + 0.00012911477824673057 + ], + [ + "is", + 0.00010892335558310151 + ], + [ + "pa", + 9.756845247466117e-05 + ], + [ + "sq", + 9.457524720346555e-05 + ], + [ + "mk", + 9.2326634330675e-05 + ], + [ + "mr", + 7.776313577778637e-05 + ], + [ + "ps", + 7.548009307356551e-05 + ], + [ + "hy", + 7.365928468061611e-05 + ], + [ + "lv", + 6.607783143408597e-05 + ], + [ + "mt", + 6.539625610457733e-05 + ], + [ + "et", + 6.393730291165411e-05 + ], + [ + "gu", + 4.735660331789404e-05 + ], + [ + "ka", + 4.6489964006468654e-05 + ], + [ + "kn", + 3.211794683011249e-05 + ], + [ + "lo", + 3.088561425101943e-05 + ], + [ + "as", + 2.7807591322925873e-05 + ], + [ + "kk", + 2.5295639716205187e-05 + ], + [ + "am", + 2.479039176250808e-05 + ], + [ + "so", + 1.860335578385275e-05 + ], + [ + "ln", + 1.4299822396424133e-05 + ], + [ + "tg", + 9.60720967668749e-07 + ], + [ + "tt", + 6.956781817279989e-07 + ], + [ + "lb", + 3.706700795191864e-07 + ], + [ + "ha", + 2.8613706604119216e-07 + ], + [ + "su", + 2.6732325864031736e-07 + ], + [ + "mg", + 1.1841115110655664e-07 + ], + [ + "tk", + 8.603510792681845e-08 + ], + [ + "ba", + 6.101110727740888e-08 + ], + [ + "uz", + 1.4534106362873445e-08 + ] + ], + "transcription_options": { + "beam_size": 5, + "best_of": 5, + "patience": 1, + "length_penalty": 1, + "repetition_penalty": 1, + "no_repeat_ngram_size": 0, + "log_prob_threshold": -1.0, + "no_speech_threshold": 0.6, + "compression_ratio_threshold": 2.4, + "condition_on_previous_text": true, + "prompt_reset_on_temperature": 0.5, + "temperatures": [ + 0.0, + 0.2, + 0.4, + 0.6, + 0.8, + 1.0 + ], + "initial_prompt": null, + "prefix": null, + "suppress_blank": true, + "suppress_tokens": [ + 1, + 2, + 7, + 8, + 9, + 10, + 14, + 25, + 26, + 27, + 28, + 29, + 31, + 58, + 59, + 60, + 61, + 62, + 63, + 90, + 91, + 92, + 93, + 359, + 503, + 522, + 542, + 873, + 893, + 902, + 918, + 922, + 931, + 1350, + 1853, + 1982, + 2460, + 2627, + 3246, + 3253, + 3268, + 3536, + 3846, + 3961, + 4183, + 4667, + 6585, + 6647, + 7273, + 9061, + 9383, + 10428, + 10929, + 11938, + 12033, + 12331, + 12562, + 13793, + 14157, + 14635, + 15265, + 15618, + 16553, + 16604, + 18362, + 18956, + 20075, + 21675, + 22520, + 26130, + 26161, + 26435, + 28279, + 29464, + 31650, + 32302, + 32470, + 36865, + 42863, + 47425, + 49870, + 50254, + 50258, + 50358, + 50359, + 50360, + 50361, + 50362 + ], + "without_timestamps": false, + "max_initial_timestamp": 1.0, + "word_timestamps": false, + "prepend_punctuations": "\"'“¿([{-", + "append_punctuations": "\"'.。,,!!??::”)]}、", + "multilingual": false, + "max_new_tokens": null, + "clip_timestamps": [ + 0.0 + ], + "hallucination_silence_threshold": null, + "hotwords": null + }, + "vad_options": { + "threshold": 0.5, + "neg_threshold": null, + "min_speech_duration_ms": 0, + "max_speech_duration_s": { + "nonFiniteFloat": "Infinity" + }, + "min_silence_duration_ms": 2000, + "speech_pad_ms": 400 + } + } + }, + { + "environmentId": "theater", + "file": "public/ambience/theater.wav", + "sha256": "2d6a444fb7874cdf6b2d8a741a69175299b112eb66834912c025437d8277d635", + "bytes": 576044, + "durationSeconds": 12.0, + "selectedSegmentStartSeconds": 45, + "sourceSha256": "05c3ece7c088f34700b7610f791c0ad848a24c77be2c32fd1503a78356739a43", + "language": "en", + "languageProbability": 0.3020564913749695, + "segments": [], + "text": "", + "info": { + "language": "en", + "language_probability": 0.3020564913749695, + "duration": 12.0, + "duration_after_vad": 0.0, + "all_language_probs": [ + [ + "en", + 0.3020564913749695 + ], + [ + "cy", + 0.21030105650424957 + ], + [ + "nn", + 0.14189758896827698 + ], + [ + "zh", + 0.04061942175030708 + ], + [ + "ja", + 0.03452612832188606 + ], + [ + "ru", + 0.03396379575133324 + ], + [ + "la", + 0.030456941574811935 + ], + [ + "pl", + 0.02258244901895523 + ], + [ + "es", + 0.021157776936888695 + ], + [ + "pt", + 0.017485281452536583 + ], + [ + "fr", + 0.015300172381103039 + ], + [ + "ko", + 0.01108497753739357 + ], + [ + "it", + 0.010035485960543156 + ], + [ + "de", + 0.007656001951545477 + ], + [ + "ar", + 0.006853005383163691 + ], + [ + "nl", + 0.006296808365732431 + ], + [ + "tr", + 0.005499983672052622 + ], + [ + "haw", + 0.005389326252043247 + ], + [ + "sv", + 0.004781618714332581 + ], + [ + "th", + 0.004685405641794205 + ], + [ + "el", + 0.004048524424433708 + ], + [ + "hi", + 0.0036309813149273396 + ], + [ + "fi", + 0.0033149493392556906 + ], + [ + "id", + 0.003307837527245283 + ], + [ + "ms", + 0.0032469655852764845 + ], + [ + "jw", + 0.0031340355053544044 + ], + [ + "ro", + 0.0029805265367031097 + ], + [ + "br", + 0.0029171525966376066 + ], + [ + "mi", + 0.0028367217164486647 + ], + [ + "vi", + 0.0028196300845593214 + ], + [ + "gl", + 0.0025912728160619736 + ], + [ + "km", + 0.002590385964140296 + ], + [ + "sn", + 0.0024162698537111282 + ], + [ + "hu", + 0.002406821819022298 + ], + [ + "uk", + 0.0018103669863194227 + ], + [ + "cs", + 0.0016262015560641885 + ], + [ + "yo", + 0.001625207718461752 + ], + [ + "bo", + 0.0015162129420787096 + ], + [ + "sa", + 0.00130862754303962 + ], + [ + "he", + 0.0011921327095478773 + ], + [ + "si", + 0.0011325259692966938 + ], + [ + "ml", + 0.0010853250278159976 + ], + [ + "bn", + 0.0010256647365167737 + ], + [ + "ta", + 0.0009075920679606497 + ], + [ + "sw", + 0.000845721981022507 + ], + [ + "da", + 0.0008275281288661063 + ], + [ + "fa", + 0.0007775731501169503 + ], + [ + "te", + 0.0007719157729297876 + ], + [ + "ca", + 0.0007328137289732695 + ], + [ + "ur", + 0.0007311314693652093 + ], + [ + "bg", + 0.000695197784807533 + ], + [ + "eu", + 0.0005441734101623297 + ], + [ + "hr", + 0.0004312059027142823 + ], + [ + "sl", + 0.0004269620985724032 + ], + [ + "fo", + 0.00038641990977339447 + ], + [ + "af", + 0.000331822142470628 + ], + [ + "no", + 0.0003316291549708694 + ], + [ + "my", + 0.00031328442855738103 + ], + [ + "tl", + 0.00027318537468090653 + ], + [ + "bs", + 0.0002692292327992618 + ], + [ + "yi", + 0.00024950431543402374 + ], + [ + "mn", + 0.00024202950589824468 + ], + [ + "az", + 0.00021917068806942552 + ], + [ + "sk", + 0.00020947805023752153 + ], + [ + "ne", + 0.00020235382544342428 + ], + [ + "sr", + 0.0001879734336398542 + ], + [ + "ht", + 0.0001864101504907012 + ], + [ + "oc", + 0.0001844368816819042 + ], + [ + "be", + 0.0001775887212716043 + ], + [ + "lt", + 0.00013429981481749564 + ], + [ + "sd", + 0.00012911477824673057 + ], + [ + "is", + 0.00010892335558310151 + ], + [ + "pa", + 9.756845247466117e-05 + ], + [ + "sq", + 9.457524720346555e-05 + ], + [ + "mk", + 9.2326634330675e-05 + ], + [ + "mr", + 7.776313577778637e-05 + ], + [ + "ps", + 7.548009307356551e-05 + ], + [ + "hy", + 7.365928468061611e-05 + ], + [ + "lv", + 6.607783143408597e-05 + ], + [ + "mt", + 6.539625610457733e-05 + ], + [ + "et", + 6.393730291165411e-05 + ], + [ + "gu", + 4.735660331789404e-05 + ], + [ + "ka", + 4.6489964006468654e-05 + ], + [ + "kn", + 3.211794683011249e-05 + ], + [ + "lo", + 3.088561425101943e-05 + ], + [ + "as", + 2.7807591322925873e-05 + ], + [ + "kk", + 2.5295639716205187e-05 + ], + [ + "am", + 2.479039176250808e-05 + ], + [ + "so", + 1.860335578385275e-05 + ], + [ + "ln", + 1.4299822396424133e-05 + ], + [ + "tg", + 9.60720967668749e-07 + ], + [ + "tt", + 6.956781817279989e-07 + ], + [ + "lb", + 3.706700795191864e-07 + ], + [ + "ha", + 2.8613706604119216e-07 + ], + [ + "su", + 2.6732325864031736e-07 + ], + [ + "mg", + 1.1841115110655664e-07 + ], + [ + "tk", + 8.603510792681845e-08 + ], + [ + "ba", + 6.101110727740888e-08 + ], + [ + "uz", + 1.4534106362873445e-08 + ] + ], + "transcription_options": { + "beam_size": 5, + "best_of": 5, + "patience": 1, + "length_penalty": 1, + "repetition_penalty": 1, + "no_repeat_ngram_size": 0, + "log_prob_threshold": -1.0, + "no_speech_threshold": 0.6, + "compression_ratio_threshold": 2.4, + "condition_on_previous_text": true, + "prompt_reset_on_temperature": 0.5, + "temperatures": [ + 0.0, + 0.2, + 0.4, + 0.6, + 0.8, + 1.0 + ], + "initial_prompt": null, + "prefix": null, + "suppress_blank": true, + "suppress_tokens": [ + 1, + 2, + 7, + 8, + 9, + 10, + 14, + 25, + 26, + 27, + 28, + 29, + 31, + 58, + 59, + 60, + 61, + 62, + 63, + 90, + 91, + 92, + 93, + 359, + 503, + 522, + 542, + 873, + 893, + 902, + 918, + 922, + 931, + 1350, + 1853, + 1982, + 2460, + 2627, + 3246, + 3253, + 3268, + 3536, + 3846, + 3961, + 4183, + 4667, + 6585, + 6647, + 7273, + 9061, + 9383, + 10428, + 10929, + 11938, + 12033, + 12331, + 12562, + 13793, + 14157, + 14635, + 15265, + 15618, + 16553, + 16604, + 18362, + 18956, + 20075, + 21675, + 22520, + 26130, + 26161, + 26435, + 28279, + 29464, + 31650, + 32302, + 32470, + 36865, + 42863, + 47425, + 49870, + 50254, + 50258, + 50358, + 50359, + 50360, + 50361, + 50362 + ], + "without_timestamps": false, + "max_initial_timestamp": 1.0, + "word_timestamps": false, + "prepend_punctuations": "\"'“¿([{-", + "append_punctuations": "\"'.。,,!!??::”)]}、", + "multilingual": false, + "max_new_tokens": null, + "clip_timestamps": [ + 0.0 + ], + "hallucination_silence_threshold": null, + "hotwords": null + }, + "vad_options": { + "threshold": 0.5, + "neg_threshold": null, + "min_speech_duration_ms": 0, + "max_speech_duration_s": { + "nonFiniteFloat": "Infinity" + }, + "min_silence_duration_ms": 2000, + "speech_pad_ms": 400 + } + } + }, + { + "environmentId": "department", + "file": "public/ambience/department.wav", + "sha256": "aa43f3d1d3e7c2b1f8ace24ecbda45d0ea3a031db941c39506dc6c1665b8efa7", + "bytes": 576044, + "durationSeconds": 12.0, + "selectedSegmentStartSeconds": 90, + "sourceSha256": "261fda28722fba623483a90b32e7a2ec388c59887f56a5247156b53f1ffb6ccd", + "language": "en", + "languageProbability": 0.3020564913749695, + "segments": [], + "text": "", + "info": { + "language": "en", + "language_probability": 0.3020564913749695, + "duration": 12.0, + "duration_after_vad": 0.0, + "all_language_probs": [ + [ + "en", + 0.3020564913749695 + ], + [ + "cy", + 0.21030105650424957 + ], + [ + "nn", + 0.14189758896827698 + ], + [ + "zh", + 0.04061942175030708 + ], + [ + "ja", + 0.03452612832188606 + ], + [ + "ru", + 0.03396379575133324 + ], + [ + "la", + 0.030456941574811935 + ], + [ + "pl", + 0.02258244901895523 + ], + [ + "es", + 0.021157776936888695 + ], + [ + "pt", + 0.017485281452536583 + ], + [ + "fr", + 0.015300172381103039 + ], + [ + "ko", + 0.01108497753739357 + ], + [ + "it", + 0.010035485960543156 + ], + [ + "de", + 0.007656001951545477 + ], + [ + "ar", + 0.006853005383163691 + ], + [ + "nl", + 0.006296808365732431 + ], + [ + "tr", + 0.005499983672052622 + ], + [ + "haw", + 0.005389326252043247 + ], + [ + "sv", + 0.004781618714332581 + ], + [ + "th", + 0.004685405641794205 + ], + [ + "el", + 0.004048524424433708 + ], + [ + "hi", + 0.0036309813149273396 + ], + [ + "fi", + 0.0033149493392556906 + ], + [ + "id", + 0.003307837527245283 + ], + [ + "ms", + 0.0032469655852764845 + ], + [ + "jw", + 0.0031340355053544044 + ], + [ + "ro", + 0.0029805265367031097 + ], + [ + "br", + 0.0029171525966376066 + ], + [ + "mi", + 0.0028367217164486647 + ], + [ + "vi", + 0.0028196300845593214 + ], + [ + "gl", + 0.0025912728160619736 + ], + [ + "km", + 0.002590385964140296 + ], + [ + "sn", + 0.0024162698537111282 + ], + [ + "hu", + 0.002406821819022298 + ], + [ + "uk", + 0.0018103669863194227 + ], + [ + "cs", + 0.0016262015560641885 + ], + [ + "yo", + 0.001625207718461752 + ], + [ + "bo", + 0.0015162129420787096 + ], + [ + "sa", + 0.00130862754303962 + ], + [ + "he", + 0.0011921327095478773 + ], + [ + "si", + 0.0011325259692966938 + ], + [ + "ml", + 0.0010853250278159976 + ], + [ + "bn", + 0.0010256647365167737 + ], + [ + "ta", + 0.0009075920679606497 + ], + [ + "sw", + 0.000845721981022507 + ], + [ + "da", + 0.0008275281288661063 + ], + [ + "fa", + 0.0007775731501169503 + ], + [ + "te", + 0.0007719157729297876 + ], + [ + "ca", + 0.0007328137289732695 + ], + [ + "ur", + 0.0007311314693652093 + ], + [ + "bg", + 0.000695197784807533 + ], + [ + "eu", + 0.0005441734101623297 + ], + [ + "hr", + 0.0004312059027142823 + ], + [ + "sl", + 0.0004269620985724032 + ], + [ + "fo", + 0.00038641990977339447 + ], + [ + "af", + 0.000331822142470628 + ], + [ + "no", + 0.0003316291549708694 + ], + [ + "my", + 0.00031328442855738103 + ], + [ + "tl", + 0.00027318537468090653 + ], + [ + "bs", + 0.0002692292327992618 + ], + [ + "yi", + 0.00024950431543402374 + ], + [ + "mn", + 0.00024202950589824468 + ], + [ + "az", + 0.00021917068806942552 + ], + [ + "sk", + 0.00020947805023752153 + ], + [ + "ne", + 0.00020235382544342428 + ], + [ + "sr", + 0.0001879734336398542 + ], + [ + "ht", + 0.0001864101504907012 + ], + [ + "oc", + 0.0001844368816819042 + ], + [ + "be", + 0.0001775887212716043 + ], + [ + "lt", + 0.00013429981481749564 + ], + [ + "sd", + 0.00012911477824673057 + ], + [ + "is", + 0.00010892335558310151 + ], + [ + "pa", + 9.756845247466117e-05 + ], + [ + "sq", + 9.457524720346555e-05 + ], + [ + "mk", + 9.2326634330675e-05 + ], + [ + "mr", + 7.776313577778637e-05 + ], + [ + "ps", + 7.548009307356551e-05 + ], + [ + "hy", + 7.365928468061611e-05 + ], + [ + "lv", + 6.607783143408597e-05 + ], + [ + "mt", + 6.539625610457733e-05 + ], + [ + "et", + 6.393730291165411e-05 + ], + [ + "gu", + 4.735660331789404e-05 + ], + [ + "ka", + 4.6489964006468654e-05 + ], + [ + "kn", + 3.211794683011249e-05 + ], + [ + "lo", + 3.088561425101943e-05 + ], + [ + "as", + 2.7807591322925873e-05 + ], + [ + "kk", + 2.5295639716205187e-05 + ], + [ + "am", + 2.479039176250808e-05 + ], + [ + "so", + 1.860335578385275e-05 + ], + [ + "ln", + 1.4299822396424133e-05 + ], + [ + "tg", + 9.60720967668749e-07 + ], + [ + "tt", + 6.956781817279989e-07 + ], + [ + "lb", + 3.706700795191864e-07 + ], + [ + "ha", + 2.8613706604119216e-07 + ], + [ + "su", + 2.6732325864031736e-07 + ], + [ + "mg", + 1.1841115110655664e-07 + ], + [ + "tk", + 8.603510792681845e-08 + ], + [ + "ba", + 6.101110727740888e-08 + ], + [ + "uz", + 1.4534106362873445e-08 + ] + ], + "transcription_options": { + "beam_size": 5, + "best_of": 5, + "patience": 1, + "length_penalty": 1, + "repetition_penalty": 1, + "no_repeat_ngram_size": 0, + "log_prob_threshold": -1.0, + "no_speech_threshold": 0.6, + "compression_ratio_threshold": 2.4, + "condition_on_previous_text": true, + "prompt_reset_on_temperature": 0.5, + "temperatures": [ + 0.0, + 0.2, + 0.4, + 0.6, + 0.8, + 1.0 + ], + "initial_prompt": null, + "prefix": null, + "suppress_blank": true, + "suppress_tokens": [ + 1, + 2, + 7, + 8, + 9, + 10, + 14, + 25, + 26, + 27, + 28, + 29, + 31, + 58, + 59, + 60, + 61, + 62, + 63, + 90, + 91, + 92, + 93, + 359, + 503, + 522, + 542, + 873, + 893, + 902, + 918, + 922, + 931, + 1350, + 1853, + 1982, + 2460, + 2627, + 3246, + 3253, + 3268, + 3536, + 3846, + 3961, + 4183, + 4667, + 6585, + 6647, + 7273, + 9061, + 9383, + 10428, + 10929, + 11938, + 12033, + 12331, + 12562, + 13793, + 14157, + 14635, + 15265, + 15618, + 16553, + 16604, + 18362, + 18956, + 20075, + 21675, + 22520, + 26130, + 26161, + 26435, + 28279, + 29464, + 31650, + 32302, + 32470, + 36865, + 42863, + 47425, + 49870, + 50254, + 50258, + 50358, + 50359, + 50360, + 50361, + 50362 + ], + "without_timestamps": false, + "max_initial_timestamp": 1.0, + "word_timestamps": false, + "prepend_punctuations": "\"'“¿([{-", + "append_punctuations": "\"'.。,,!!??::”)]}、", + "multilingual": false, + "max_new_tokens": null, + "clip_timestamps": [ + 0.0 + ], + "hallucination_silence_threshold": null, + "hotwords": null + }, + "vad_options": { + "threshold": 0.5, + "neg_threshold": null, + "min_speech_duration_ms": 0, + "max_speech_duration_s": { + "nonFiniteFloat": "Infinity" + }, + "min_silence_duration_ms": 2000, + "speech_pad_ms": 400 + } + } + }, + { + "environmentId": "market", + "file": "public/ambience/market.wav", + "sha256": "d6f73d86aea98b83e2995e61baaa7315a0ea7adeebc093769d76e1569b207658", + "bytes": 576044, + "durationSeconds": 12.0, + "selectedSegmentStartSeconds": 24, + "sourceSha256": "fc0075dce8ad05b56460c9f18754c27b2021f21f1c780a595ccda648d33c941d", + "language": "en", + "languageProbability": 0.3020564913749695, + "segments": [], + "text": "", + "info": { + "language": "en", + "language_probability": 0.3020564913749695, + "duration": 12.0, + "duration_after_vad": 0.0, + "all_language_probs": [ + [ + "en", + 0.3020564913749695 + ], + [ + "cy", + 0.21030105650424957 + ], + [ + "nn", + 0.14189758896827698 + ], + [ + "zh", + 0.04061942175030708 + ], + [ + "ja", + 0.03452612832188606 + ], + [ + "ru", + 0.03396379575133324 + ], + [ + "la", + 0.030456941574811935 + ], + [ + "pl", + 0.02258244901895523 + ], + [ + "es", + 0.021157776936888695 + ], + [ + "pt", + 0.017485281452536583 + ], + [ + "fr", + 0.015300172381103039 + ], + [ + "ko", + 0.01108497753739357 + ], + [ + "it", + 0.010035485960543156 + ], + [ + "de", + 0.007656001951545477 + ], + [ + "ar", + 0.006853005383163691 + ], + [ + "nl", + 0.006296808365732431 + ], + [ + "tr", + 0.005499983672052622 + ], + [ + "haw", + 0.005389326252043247 + ], + [ + "sv", + 0.004781618714332581 + ], + [ + "th", + 0.004685405641794205 + ], + [ + "el", + 0.004048524424433708 + ], + [ + "hi", + 0.0036309813149273396 + ], + [ + "fi", + 0.0033149493392556906 + ], + [ + "id", + 0.003307837527245283 + ], + [ + "ms", + 0.0032469655852764845 + ], + [ + "jw", + 0.0031340355053544044 + ], + [ + "ro", + 0.0029805265367031097 + ], + [ + "br", + 0.0029171525966376066 + ], + [ + "mi", + 0.0028367217164486647 + ], + [ + "vi", + 0.0028196300845593214 + ], + [ + "gl", + 0.0025912728160619736 + ], + [ + "km", + 0.002590385964140296 + ], + [ + "sn", + 0.0024162698537111282 + ], + [ + "hu", + 0.002406821819022298 + ], + [ + "uk", + 0.0018103669863194227 + ], + [ + "cs", + 0.0016262015560641885 + ], + [ + "yo", + 0.001625207718461752 + ], + [ + "bo", + 0.0015162129420787096 + ], + [ + "sa", + 0.00130862754303962 + ], + [ + "he", + 0.0011921327095478773 + ], + [ + "si", + 0.0011325259692966938 + ], + [ + "ml", + 0.0010853250278159976 + ], + [ + "bn", + 0.0010256647365167737 + ], + [ + "ta", + 0.0009075920679606497 + ], + [ + "sw", + 0.000845721981022507 + ], + [ + "da", + 0.0008275281288661063 + ], + [ + "fa", + 0.0007775731501169503 + ], + [ + "te", + 0.0007719157729297876 + ], + [ + "ca", + 0.0007328137289732695 + ], + [ + "ur", + 0.0007311314693652093 + ], + [ + "bg", + 0.000695197784807533 + ], + [ + "eu", + 0.0005441734101623297 + ], + [ + "hr", + 0.0004312059027142823 + ], + [ + "sl", + 0.0004269620985724032 + ], + [ + "fo", + 0.00038641990977339447 + ], + [ + "af", + 0.000331822142470628 + ], + [ + "no", + 0.0003316291549708694 + ], + [ + "my", + 0.00031328442855738103 + ], + [ + "tl", + 0.00027318537468090653 + ], + [ + "bs", + 0.0002692292327992618 + ], + [ + "yi", + 0.00024950431543402374 + ], + [ + "mn", + 0.00024202950589824468 + ], + [ + "az", + 0.00021917068806942552 + ], + [ + "sk", + 0.00020947805023752153 + ], + [ + "ne", + 0.00020235382544342428 + ], + [ + "sr", + 0.0001879734336398542 + ], + [ + "ht", + 0.0001864101504907012 + ], + [ + "oc", + 0.0001844368816819042 + ], + [ + "be", + 0.0001775887212716043 + ], + [ + "lt", + 0.00013429981481749564 + ], + [ + "sd", + 0.00012911477824673057 + ], + [ + "is", + 0.00010892335558310151 + ], + [ + "pa", + 9.756845247466117e-05 + ], + [ + "sq", + 9.457524720346555e-05 + ], + [ + "mk", + 9.2326634330675e-05 + ], + [ + "mr", + 7.776313577778637e-05 + ], + [ + "ps", + 7.548009307356551e-05 + ], + [ + "hy", + 7.365928468061611e-05 + ], + [ + "lv", + 6.607783143408597e-05 + ], + [ + "mt", + 6.539625610457733e-05 + ], + [ + "et", + 6.393730291165411e-05 + ], + [ + "gu", + 4.735660331789404e-05 + ], + [ + "ka", + 4.6489964006468654e-05 + ], + [ + "kn", + 3.211794683011249e-05 + ], + [ + "lo", + 3.088561425101943e-05 + ], + [ + "as", + 2.7807591322925873e-05 + ], + [ + "kk", + 2.5295639716205187e-05 + ], + [ + "am", + 2.479039176250808e-05 + ], + [ + "so", + 1.860335578385275e-05 + ], + [ + "ln", + 1.4299822396424133e-05 + ], + [ + "tg", + 9.60720967668749e-07 + ], + [ + "tt", + 6.956781817279989e-07 + ], + [ + "lb", + 3.706700795191864e-07 + ], + [ + "ha", + 2.8613706604119216e-07 + ], + [ + "su", + 2.6732325864031736e-07 + ], + [ + "mg", + 1.1841115110655664e-07 + ], + [ + "tk", + 8.603510792681845e-08 + ], + [ + "ba", + 6.101110727740888e-08 + ], + [ + "uz", + 1.4534106362873445e-08 + ] + ], + "transcription_options": { + "beam_size": 5, + "best_of": 5, + "patience": 1, + "length_penalty": 1, + "repetition_penalty": 1, + "no_repeat_ngram_size": 0, + "log_prob_threshold": -1.0, + "no_speech_threshold": 0.6, + "compression_ratio_threshold": 2.4, + "condition_on_previous_text": true, + "prompt_reset_on_temperature": 0.5, + "temperatures": [ + 0.0, + 0.2, + 0.4, + 0.6, + 0.8, + 1.0 + ], + "initial_prompt": null, + "prefix": null, + "suppress_blank": true, + "suppress_tokens": [ + 1, + 2, + 7, + 8, + 9, + 10, + 14, + 25, + 26, + 27, + 28, + 29, + 31, + 58, + 59, + 60, + 61, + 62, + 63, + 90, + 91, + 92, + 93, + 359, + 503, + 522, + 542, + 873, + 893, + 902, + 918, + 922, + 931, + 1350, + 1853, + 1982, + 2460, + 2627, + 3246, + 3253, + 3268, + 3536, + 3846, + 3961, + 4183, + 4667, + 6585, + 6647, + 7273, + 9061, + 9383, + 10428, + 10929, + 11938, + 12033, + 12331, + 12562, + 13793, + 14157, + 14635, + 15265, + 15618, + 16553, + 16604, + 18362, + 18956, + 20075, + 21675, + 22520, + 26130, + 26161, + 26435, + 28279, + 29464, + 31650, + 32302, + 32470, + 36865, + 42863, + 47425, + 49870, + 50254, + 50258, + 50358, + 50359, + 50360, + 50361, + 50362 + ], + "without_timestamps": false, + "max_initial_timestamp": 1.0, + "word_timestamps": false, + "prepend_punctuations": "\"'“¿([{-", + "append_punctuations": "\"'.。,,!!??::”)]}、", + "multilingual": false, + "max_new_tokens": null, + "clip_timestamps": [ + 0.0 + ], + "hallucination_silence_threshold": null, + "hotwords": null + }, + "vad_options": { + "threshold": 0.5, + "neg_threshold": null, + "min_speech_duration_ms": 0, + "max_speech_duration_s": { + "nonFiniteFloat": "Infinity" + }, + "min_silence_duration_ms": 2000, + "speech_pad_ms": 400 + } + } + }, + { + "environmentId": "subway", + "file": "public/ambience/subway.wav", + "sha256": "9faf70b68617d267b367a0f3692ed90015458543ab4b0844f6c704e6a724728f", + "bytes": 576044, + "durationSeconds": 12.0, + "selectedSegmentStartSeconds": 65, + "sourceSha256": "41fcf064cde53cef1528fe98721347851e60c070d8ff9f213f354025cf272d4c", + "language": "en", + "languageProbability": 0.3020564913749695, + "segments": [], + "text": "", + "info": { + "language": "en", + "language_probability": 0.3020564913749695, + "duration": 12.0, + "duration_after_vad": 0.0, + "all_language_probs": [ + [ + "en", + 0.3020564913749695 + ], + [ + "cy", + 0.21030105650424957 + ], + [ + "nn", + 0.14189758896827698 + ], + [ + "zh", + 0.04061942175030708 + ], + [ + "ja", + 0.03452612832188606 + ], + [ + "ru", + 0.03396379575133324 + ], + [ + "la", + 0.030456941574811935 + ], + [ + "pl", + 0.02258244901895523 + ], + [ + "es", + 0.021157776936888695 + ], + [ + "pt", + 0.017485281452536583 + ], + [ + "fr", + 0.015300172381103039 + ], + [ + "ko", + 0.01108497753739357 + ], + [ + "it", + 0.010035485960543156 + ], + [ + "de", + 0.007656001951545477 + ], + [ + "ar", + 0.006853005383163691 + ], + [ + "nl", + 0.006296808365732431 + ], + [ + "tr", + 0.005499983672052622 + ], + [ + "haw", + 0.005389326252043247 + ], + [ + "sv", + 0.004781618714332581 + ], + [ + "th", + 0.004685405641794205 + ], + [ + "el", + 0.004048524424433708 + ], + [ + "hi", + 0.0036309813149273396 + ], + [ + "fi", + 0.0033149493392556906 + ], + [ + "id", + 0.003307837527245283 + ], + [ + "ms", + 0.0032469655852764845 + ], + [ + "jw", + 0.0031340355053544044 + ], + [ + "ro", + 0.0029805265367031097 + ], + [ + "br", + 0.0029171525966376066 + ], + [ + "mi", + 0.0028367217164486647 + ], + [ + "vi", + 0.0028196300845593214 + ], + [ + "gl", + 0.0025912728160619736 + ], + [ + "km", + 0.002590385964140296 + ], + [ + "sn", + 0.0024162698537111282 + ], + [ + "hu", + 0.002406821819022298 + ], + [ + "uk", + 0.0018103669863194227 + ], + [ + "cs", + 0.0016262015560641885 + ], + [ + "yo", + 0.001625207718461752 + ], + [ + "bo", + 0.0015162129420787096 + ], + [ + "sa", + 0.00130862754303962 + ], + [ + "he", + 0.0011921327095478773 + ], + [ + "si", + 0.0011325259692966938 + ], + [ + "ml", + 0.0010853250278159976 + ], + [ + "bn", + 0.0010256647365167737 + ], + [ + "ta", + 0.0009075920679606497 + ], + [ + "sw", + 0.000845721981022507 + ], + [ + "da", + 0.0008275281288661063 + ], + [ + "fa", + 0.0007775731501169503 + ], + [ + "te", + 0.0007719157729297876 + ], + [ + "ca", + 0.0007328137289732695 + ], + [ + "ur", + 0.0007311314693652093 + ], + [ + "bg", + 0.000695197784807533 + ], + [ + "eu", + 0.0005441734101623297 + ], + [ + "hr", + 0.0004312059027142823 + ], + [ + "sl", + 0.0004269620985724032 + ], + [ + "fo", + 0.00038641990977339447 + ], + [ + "af", + 0.000331822142470628 + ], + [ + "no", + 0.0003316291549708694 + ], + [ + "my", + 0.00031328442855738103 + ], + [ + "tl", + 0.00027318537468090653 + ], + [ + "bs", + 0.0002692292327992618 + ], + [ + "yi", + 0.00024950431543402374 + ], + [ + "mn", + 0.00024202950589824468 + ], + [ + "az", + 0.00021917068806942552 + ], + [ + "sk", + 0.00020947805023752153 + ], + [ + "ne", + 0.00020235382544342428 + ], + [ + "sr", + 0.0001879734336398542 + ], + [ + "ht", + 0.0001864101504907012 + ], + [ + "oc", + 0.0001844368816819042 + ], + [ + "be", + 0.0001775887212716043 + ], + [ + "lt", + 0.00013429981481749564 + ], + [ + "sd", + 0.00012911477824673057 + ], + [ + "is", + 0.00010892335558310151 + ], + [ + "pa", + 9.756845247466117e-05 + ], + [ + "sq", + 9.457524720346555e-05 + ], + [ + "mk", + 9.2326634330675e-05 + ], + [ + "mr", + 7.776313577778637e-05 + ], + [ + "ps", + 7.548009307356551e-05 + ], + [ + "hy", + 7.365928468061611e-05 + ], + [ + "lv", + 6.607783143408597e-05 + ], + [ + "mt", + 6.539625610457733e-05 + ], + [ + "et", + 6.393730291165411e-05 + ], + [ + "gu", + 4.735660331789404e-05 + ], + [ + "ka", + 4.6489964006468654e-05 + ], + [ + "kn", + 3.211794683011249e-05 + ], + [ + "lo", + 3.088561425101943e-05 + ], + [ + "as", + 2.7807591322925873e-05 + ], + [ + "kk", + 2.5295639716205187e-05 + ], + [ + "am", + 2.479039176250808e-05 + ], + [ + "so", + 1.860335578385275e-05 + ], + [ + "ln", + 1.4299822396424133e-05 + ], + [ + "tg", + 9.60720967668749e-07 + ], + [ + "tt", + 6.956781817279989e-07 + ], + [ + "lb", + 3.706700795191864e-07 + ], + [ + "ha", + 2.8613706604119216e-07 + ], + [ + "su", + 2.6732325864031736e-07 + ], + [ + "mg", + 1.1841115110655664e-07 + ], + [ + "tk", + 8.603510792681845e-08 + ], + [ + "ba", + 6.101110727740888e-08 + ], + [ + "uz", + 1.4534106362873445e-08 + ] + ], + "transcription_options": { + "beam_size": 5, + "best_of": 5, + "patience": 1, + "length_penalty": 1, + "repetition_penalty": 1, + "no_repeat_ngram_size": 0, + "log_prob_threshold": -1.0, + "no_speech_threshold": 0.6, + "compression_ratio_threshold": 2.4, + "condition_on_previous_text": true, + "prompt_reset_on_temperature": 0.5, + "temperatures": [ + 0.0, + 0.2, + 0.4, + 0.6, + 0.8, + 1.0 + ], + "initial_prompt": null, + "prefix": null, + "suppress_blank": true, + "suppress_tokens": [ + 1, + 2, + 7, + 8, + 9, + 10, + 14, + 25, + 26, + 27, + 28, + 29, + 31, + 58, + 59, + 60, + 61, + 62, + 63, + 90, + 91, + 92, + 93, + 359, + 503, + 522, + 542, + 873, + 893, + 902, + 918, + 922, + 931, + 1350, + 1853, + 1982, + 2460, + 2627, + 3246, + 3253, + 3268, + 3536, + 3846, + 3961, + 4183, + 4667, + 6585, + 6647, + 7273, + 9061, + 9383, + 10428, + 10929, + 11938, + 12033, + 12331, + 12562, + 13793, + 14157, + 14635, + 15265, + 15618, + 16553, + 16604, + 18362, + 18956, + 20075, + 21675, + 22520, + 26130, + 26161, + 26435, + 28279, + 29464, + 31650, + 32302, + 32470, + 36865, + 42863, + 47425, + 49870, + 50254, + 50258, + 50358, + 50359, + 50360, + 50361, + 50362 + ], + "without_timestamps": false, + "max_initial_timestamp": 1.0, + "word_timestamps": false, + "prepend_punctuations": "\"'“¿([{-", + "append_punctuations": "\"'.。,,!!??::”)]}、", + "multilingual": false, + "max_new_tokens": null, + "clip_timestamps": [ + 0.0 + ], + "hallucination_silence_threshold": null, + "hotwords": null + }, + "vad_options": { + "threshold": 0.5, + "neg_threshold": null, + "min_speech_duration_ms": 0, + "max_speech_duration_s": { + "nonFiniteFloat": "Infinity" + }, + "min_silence_duration_ms": 2000, + "speech_pad_ms": 400 + } + } + }, + { + "environmentId": "cafe", + "file": "public/ambience/cafe.wav", + "sha256": "6853c121104940041c268a2891eadae032c17aa22b4c3b3ddfbc025262434995", + "bytes": 576044, + "durationSeconds": 12.0, + "selectedSegmentStartSeconds": 0, + "sourceSha256": "6360791fdcee1f64638f0fc9abd6d2c7a1aa75fd3d2b80033170a02d025099dc", + "language": "en", + "languageProbability": 0.3020564913749695, + "segments": [], + "text": "", + "info": { + "language": "en", + "language_probability": 0.3020564913749695, + "duration": 12.0, + "duration_after_vad": 0.0, + "all_language_probs": [ + [ + "en", + 0.3020564913749695 + ], + [ + "cy", + 0.21030105650424957 + ], + [ + "nn", + 0.14189758896827698 + ], + [ + "zh", + 0.04061942175030708 + ], + [ + "ja", + 0.03452612832188606 + ], + [ + "ru", + 0.03396379575133324 + ], + [ + "la", + 0.030456941574811935 + ], + [ + "pl", + 0.02258244901895523 + ], + [ + "es", + 0.021157776936888695 + ], + [ + "pt", + 0.017485281452536583 + ], + [ + "fr", + 0.015300172381103039 + ], + [ + "ko", + 0.01108497753739357 + ], + [ + "it", + 0.010035485960543156 + ], + [ + "de", + 0.007656001951545477 + ], + [ + "ar", + 0.006853005383163691 + ], + [ + "nl", + 0.006296808365732431 + ], + [ + "tr", + 0.005499983672052622 + ], + [ + "haw", + 0.005389326252043247 + ], + [ + "sv", + 0.004781618714332581 + ], + [ + "th", + 0.004685405641794205 + ], + [ + "el", + 0.004048524424433708 + ], + [ + "hi", + 0.0036309813149273396 + ], + [ + "fi", + 0.0033149493392556906 + ], + [ + "id", + 0.003307837527245283 + ], + [ + "ms", + 0.0032469655852764845 + ], + [ + "jw", + 0.0031340355053544044 + ], + [ + "ro", + 0.0029805265367031097 + ], + [ + "br", + 0.0029171525966376066 + ], + [ + "mi", + 0.0028367217164486647 + ], + [ + "vi", + 0.0028196300845593214 + ], + [ + "gl", + 0.0025912728160619736 + ], + [ + "km", + 0.002590385964140296 + ], + [ + "sn", + 0.0024162698537111282 + ], + [ + "hu", + 0.002406821819022298 + ], + [ + "uk", + 0.0018103669863194227 + ], + [ + "cs", + 0.0016262015560641885 + ], + [ + "yo", + 0.001625207718461752 + ], + [ + "bo", + 0.0015162129420787096 + ], + [ + "sa", + 0.00130862754303962 + ], + [ + "he", + 0.0011921327095478773 + ], + [ + "si", + 0.0011325259692966938 + ], + [ + "ml", + 0.0010853250278159976 + ], + [ + "bn", + 0.0010256647365167737 + ], + [ + "ta", + 0.0009075920679606497 + ], + [ + "sw", + 0.000845721981022507 + ], + [ + "da", + 0.0008275281288661063 + ], + [ + "fa", + 0.0007775731501169503 + ], + [ + "te", + 0.0007719157729297876 + ], + [ + "ca", + 0.0007328137289732695 + ], + [ + "ur", + 0.0007311314693652093 + ], + [ + "bg", + 0.000695197784807533 + ], + [ + "eu", + 0.0005441734101623297 + ], + [ + "hr", + 0.0004312059027142823 + ], + [ + "sl", + 0.0004269620985724032 + ], + [ + "fo", + 0.00038641990977339447 + ], + [ + "af", + 0.000331822142470628 + ], + [ + "no", + 0.0003316291549708694 + ], + [ + "my", + 0.00031328442855738103 + ], + [ + "tl", + 0.00027318537468090653 + ], + [ + "bs", + 0.0002692292327992618 + ], + [ + "yi", + 0.00024950431543402374 + ], + [ + "mn", + 0.00024202950589824468 + ], + [ + "az", + 0.00021917068806942552 + ], + [ + "sk", + 0.00020947805023752153 + ], + [ + "ne", + 0.00020235382544342428 + ], + [ + "sr", + 0.0001879734336398542 + ], + [ + "ht", + 0.0001864101504907012 + ], + [ + "oc", + 0.0001844368816819042 + ], + [ + "be", + 0.0001775887212716043 + ], + [ + "lt", + 0.00013429981481749564 + ], + [ + "sd", + 0.00012911477824673057 + ], + [ + "is", + 0.00010892335558310151 + ], + [ + "pa", + 9.756845247466117e-05 + ], + [ + "sq", + 9.457524720346555e-05 + ], + [ + "mk", + 9.2326634330675e-05 + ], + [ + "mr", + 7.776313577778637e-05 + ], + [ + "ps", + 7.548009307356551e-05 + ], + [ + "hy", + 7.365928468061611e-05 + ], + [ + "lv", + 6.607783143408597e-05 + ], + [ + "mt", + 6.539625610457733e-05 + ], + [ + "et", + 6.393730291165411e-05 + ], + [ + "gu", + 4.735660331789404e-05 + ], + [ + "ka", + 4.6489964006468654e-05 + ], + [ + "kn", + 3.211794683011249e-05 + ], + [ + "lo", + 3.088561425101943e-05 + ], + [ + "as", + 2.7807591322925873e-05 + ], + [ + "kk", + 2.5295639716205187e-05 + ], + [ + "am", + 2.479039176250808e-05 + ], + [ + "so", + 1.860335578385275e-05 + ], + [ + "ln", + 1.4299822396424133e-05 + ], + [ + "tg", + 9.60720967668749e-07 + ], + [ + "tt", + 6.956781817279989e-07 + ], + [ + "lb", + 3.706700795191864e-07 + ], + [ + "ha", + 2.8613706604119216e-07 + ], + [ + "su", + 2.6732325864031736e-07 + ], + [ + "mg", + 1.1841115110655664e-07 + ], + [ + "tk", + 8.603510792681845e-08 + ], + [ + "ba", + 6.101110727740888e-08 + ], + [ + "uz", + 1.4534106362873445e-08 + ] + ], + "transcription_options": { + "beam_size": 5, + "best_of": 5, + "patience": 1, + "length_penalty": 1, + "repetition_penalty": 1, + "no_repeat_ngram_size": 0, + "log_prob_threshold": -1.0, + "no_speech_threshold": 0.6, + "compression_ratio_threshold": 2.4, + "condition_on_previous_text": true, + "prompt_reset_on_temperature": 0.5, + "temperatures": [ + 0.0, + 0.2, + 0.4, + 0.6, + 0.8, + 1.0 + ], + "initial_prompt": null, + "prefix": null, + "suppress_blank": true, + "suppress_tokens": [ + 1, + 2, + 7, + 8, + 9, + 10, + 14, + 25, + 26, + 27, + 28, + 29, + 31, + 58, + 59, + 60, + 61, + 62, + 63, + 90, + 91, + 92, + 93, + 359, + 503, + 522, + 542, + 873, + 893, + 902, + 918, + 922, + 931, + 1350, + 1853, + 1982, + 2460, + 2627, + 3246, + 3253, + 3268, + 3536, + 3846, + 3961, + 4183, + 4667, + 6585, + 6647, + 7273, + 9061, + 9383, + 10428, + 10929, + 11938, + 12033, + 12331, + 12562, + 13793, + 14157, + 14635, + 15265, + 15618, + 16553, + 16604, + 18362, + 18956, + 20075, + 21675, + 22520, + 26130, + 26161, + 26435, + 28279, + 29464, + 31650, + 32302, + 32470, + 36865, + 42863, + 47425, + 49870, + 50254, + 50258, + 50358, + 50359, + 50360, + 50361, + 50362 + ], + "without_timestamps": false, + "max_initial_timestamp": 1.0, + "word_timestamps": false, + "prepend_punctuations": "\"'“¿([{-", + "append_punctuations": "\"'.。,,!!??::”)]}、", + "multilingual": false, + "max_new_tokens": null, + "clip_timestamps": [ + 0.0 + ], + "hallucination_silence_threshold": null, + "hotwords": null + }, + "vad_options": { + "threshold": 0.5, + "neg_threshold": null, + "min_speech_duration_ms": 0, + "max_speech_duration_s": { + "nonFiniteFloat": "Infinity" + }, + "min_silence_duration_ms": 2000, + "speech_pad_ms": 400 + } + } + }, + { + "environmentId": "rain", + "file": "public/ambience/rain.wav", + "sha256": "f4315084e820f742b0709de5bb0d1abd3d5af1730620e08c2948b70347356dd9", + "bytes": 576044, + "durationSeconds": 12.0, + "selectedSegmentStartSeconds": 180, + "sourceSha256": "ef0511593b1bb0ba47d5c5dafd83eb07ba854b5a65fd5d41b8c76a1b3ff2c22a", + "language": "en", + "languageProbability": 0.3020564913749695, + "segments": [], + "text": "", + "info": { + "language": "en", + "language_probability": 0.3020564913749695, + "duration": 12.0, + "duration_after_vad": 0.0, + "all_language_probs": [ + [ + "en", + 0.3020564913749695 + ], + [ + "cy", + 0.21030105650424957 + ], + [ + "nn", + 0.14189758896827698 + ], + [ + "zh", + 0.04061942175030708 + ], + [ + "ja", + 0.03452612832188606 + ], + [ + "ru", + 0.03396379575133324 + ], + [ + "la", + 0.030456941574811935 + ], + [ + "pl", + 0.02258244901895523 + ], + [ + "es", + 0.021157776936888695 + ], + [ + "pt", + 0.017485281452536583 + ], + [ + "fr", + 0.015300172381103039 + ], + [ + "ko", + 0.01108497753739357 + ], + [ + "it", + 0.010035485960543156 + ], + [ + "de", + 0.007656001951545477 + ], + [ + "ar", + 0.006853005383163691 + ], + [ + "nl", + 0.006296808365732431 + ], + [ + "tr", + 0.005499983672052622 + ], + [ + "haw", + 0.005389326252043247 + ], + [ + "sv", + 0.004781618714332581 + ], + [ + "th", + 0.004685405641794205 + ], + [ + "el", + 0.004048524424433708 + ], + [ + "hi", + 0.0036309813149273396 + ], + [ + "fi", + 0.0033149493392556906 + ], + [ + "id", + 0.003307837527245283 + ], + [ + "ms", + 0.0032469655852764845 + ], + [ + "jw", + 0.0031340355053544044 + ], + [ + "ro", + 0.0029805265367031097 + ], + [ + "br", + 0.0029171525966376066 + ], + [ + "mi", + 0.0028367217164486647 + ], + [ + "vi", + 0.0028196300845593214 + ], + [ + "gl", + 0.0025912728160619736 + ], + [ + "km", + 0.002590385964140296 + ], + [ + "sn", + 0.0024162698537111282 + ], + [ + "hu", + 0.002406821819022298 + ], + [ + "uk", + 0.0018103669863194227 + ], + [ + "cs", + 0.0016262015560641885 + ], + [ + "yo", + 0.001625207718461752 + ], + [ + "bo", + 0.0015162129420787096 + ], + [ + "sa", + 0.00130862754303962 + ], + [ + "he", + 0.0011921327095478773 + ], + [ + "si", + 0.0011325259692966938 + ], + [ + "ml", + 0.0010853250278159976 + ], + [ + "bn", + 0.0010256647365167737 + ], + [ + "ta", + 0.0009075920679606497 + ], + [ + "sw", + 0.000845721981022507 + ], + [ + "da", + 0.0008275281288661063 + ], + [ + "fa", + 0.0007775731501169503 + ], + [ + "te", + 0.0007719157729297876 + ], + [ + "ca", + 0.0007328137289732695 + ], + [ + "ur", + 0.0007311314693652093 + ], + [ + "bg", + 0.000695197784807533 + ], + [ + "eu", + 0.0005441734101623297 + ], + [ + "hr", + 0.0004312059027142823 + ], + [ + "sl", + 0.0004269620985724032 + ], + [ + "fo", + 0.00038641990977339447 + ], + [ + "af", + 0.000331822142470628 + ], + [ + "no", + 0.0003316291549708694 + ], + [ + "my", + 0.00031328442855738103 + ], + [ + "tl", + 0.00027318537468090653 + ], + [ + "bs", + 0.0002692292327992618 + ], + [ + "yi", + 0.00024950431543402374 + ], + [ + "mn", + 0.00024202950589824468 + ], + [ + "az", + 0.00021917068806942552 + ], + [ + "sk", + 0.00020947805023752153 + ], + [ + "ne", + 0.00020235382544342428 + ], + [ + "sr", + 0.0001879734336398542 + ], + [ + "ht", + 0.0001864101504907012 + ], + [ + "oc", + 0.0001844368816819042 + ], + [ + "be", + 0.0001775887212716043 + ], + [ + "lt", + 0.00013429981481749564 + ], + [ + "sd", + 0.00012911477824673057 + ], + [ + "is", + 0.00010892335558310151 + ], + [ + "pa", + 9.756845247466117e-05 + ], + [ + "sq", + 9.457524720346555e-05 + ], + [ + "mk", + 9.2326634330675e-05 + ], + [ + "mr", + 7.776313577778637e-05 + ], + [ + "ps", + 7.548009307356551e-05 + ], + [ + "hy", + 7.365928468061611e-05 + ], + [ + "lv", + 6.607783143408597e-05 + ], + [ + "mt", + 6.539625610457733e-05 + ], + [ + "et", + 6.393730291165411e-05 + ], + [ + "gu", + 4.735660331789404e-05 + ], + [ + "ka", + 4.6489964006468654e-05 + ], + [ + "kn", + 3.211794683011249e-05 + ], + [ + "lo", + 3.088561425101943e-05 + ], + [ + "as", + 2.7807591322925873e-05 + ], + [ + "kk", + 2.5295639716205187e-05 + ], + [ + "am", + 2.479039176250808e-05 + ], + [ + "so", + 1.860335578385275e-05 + ], + [ + "ln", + 1.4299822396424133e-05 + ], + [ + "tg", + 9.60720967668749e-07 + ], + [ + "tt", + 6.956781817279989e-07 + ], + [ + "lb", + 3.706700795191864e-07 + ], + [ + "ha", + 2.8613706604119216e-07 + ], + [ + "su", + 2.6732325864031736e-07 + ], + [ + "mg", + 1.1841115110655664e-07 + ], + [ + "tk", + 8.603510792681845e-08 + ], + [ + "ba", + 6.101110727740888e-08 + ], + [ + "uz", + 1.4534106362873445e-08 + ] + ], + "transcription_options": { + "beam_size": 5, + "best_of": 5, + "patience": 1, + "length_penalty": 1, + "repetition_penalty": 1, + "no_repeat_ngram_size": 0, + "log_prob_threshold": -1.0, + "no_speech_threshold": 0.6, + "compression_ratio_threshold": 2.4, + "condition_on_previous_text": true, + "prompt_reset_on_temperature": 0.5, + "temperatures": [ + 0.0, + 0.2, + 0.4, + 0.6, + 0.8, + 1.0 + ], + "initial_prompt": null, + "prefix": null, + "suppress_blank": true, + "suppress_tokens": [ + 1, + 2, + 7, + 8, + 9, + 10, + 14, + 25, + 26, + 27, + 28, + 29, + 31, + 58, + 59, + 60, + 61, + 62, + 63, + 90, + 91, + 92, + 93, + 359, + 503, + 522, + 542, + 873, + 893, + 902, + 918, + 922, + 931, + 1350, + 1853, + 1982, + 2460, + 2627, + 3246, + 3253, + 3268, + 3536, + 3846, + 3961, + 4183, + 4667, + 6585, + 6647, + 7273, + 9061, + 9383, + 10428, + 10929, + 11938, + 12033, + 12331, + 12562, + 13793, + 14157, + 14635, + 15265, + 15618, + 16553, + 16604, + 18362, + 18956, + 20075, + 21675, + 22520, + 26130, + 26161, + 26435, + 28279, + 29464, + 31650, + 32302, + 32470, + 36865, + 42863, + 47425, + 49870, + 50254, + 50258, + 50358, + 50359, + 50360, + 50361, + 50362 + ], + "without_timestamps": false, + "max_initial_timestamp": 1.0, + "word_timestamps": false, + "prepend_punctuations": "\"'“¿([{-", + "append_punctuations": "\"'.。,,!!??::”)]}、", + "multilingual": false, + "max_new_tokens": null, + "clip_timestamps": [ + 0.0 + ], + "hallucination_silence_threshold": null, + "hotwords": null + }, + "vad_options": { + "threshold": 0.5, + "neg_threshold": null, + "min_speech_duration_ms": 0, + "max_speech_duration_s": { + "nonFiniteFloat": "Infinity" + }, + "min_silence_duration_ms": 2000, + "speech_pad_ms": 400 + } + } + } + ] +} diff --git a/.agent/evidence-v0.2.3/privacy-screening/mobile-audio-integrity.json b/.agent/evidence-v0.2.3/privacy-screening/mobile-audio-integrity.json new file mode 100644 index 0000000..d6db5ea --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/mobile-audio-integrity.json @@ -0,0 +1,1098 @@ +{ + "chrome": "146.0.7680.80", + "external": [], + "errors": [], + "failed": [], + "files": [ + { + "url": "http://127.0.0.1:4173/audio/intro.wav?v=0.2.3", + "sha256": "90d9f46e6e3f9c8a0c1a781096df54d7809ef4ad38b289508ef7b8c0411465ce", + "bytes": 338732, + "sampleRate": 24000, + "channels": 1, + "duration": 7.056, + "rms": 0.10000144992850359, + "peak": 0.4998626708984375 + }, + { + "url": "http://127.0.0.1:4173/ambience/street.wav?v=0.2.3", + "sha256": "a8bffa201b174618955bc51b860167169125304811aabe2086b0bb35b06c3ae1", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.07999880181401388, + "peak": 0.3967711329460144 + }, + { + "url": "http://127.0.0.1:4173/ambience/mall.wav?v=0.2.3", + "sha256": "680a769940c08f0d12c6c954c08366598dd8b5745e276f39c82b10d1a88261a1", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.07999875178666456, + "peak": 0.7191991806030273 + }, + { + "url": "http://127.0.0.1:4173/ambience/theater.wav?v=0.2.3", + "sha256": "2d6a444fb7874cdf6b2d8a741a69175299b112eb66834912c025437d8277d635", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.07999878601263052, + "peak": 0.495086669921875 + }, + { + "url": "http://127.0.0.1:4173/ambience/department.wav?v=0.2.3", + "sha256": "aa43f3d1d3e7c2b1f8ace24ecbda45d0ea3a031db941c39506dc6c1665b8efa7", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.07999879026023995, + "peak": 0.4749900698661804 + }, + { + "url": "http://127.0.0.1:4173/ambience/market.wav?v=0.2.3", + "sha256": "7a7a980845a4aade2a7e8a108eae746220a4688e92792ee93d3deb76b2a762f6", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.07999876626924392, + "peak": 0.507232666015625 + }, + { + "url": "http://127.0.0.1:4173/ambience/subway.wav?v=0.2.3", + "sha256": "9faf70b68617d267b367a0f3692ed90015458543ab4b0844f6c704e6a724728f", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.079998775670051, + "peak": 0.42530596256256104 + }, + { + "url": "http://127.0.0.1:4173/ambience/cafe.wav?v=0.2.3", + "sha256": "802a956e91b85a2fdd0e1f161d75bfada7a53499bcb57ba7f578411480ded216", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.0799987945764348, + "peak": 0.44708251953125 + }, + { + "url": "http://127.0.0.1:4173/ambience/rain.wav?v=0.2.3", + "sha256": "f4315084e820f742b0709de5bb0d1abd3d5af1730620e08c2948b70347356dd9", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.011384798571746246, + "peak": 0.1024169921875 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-apple.wav?v=0.2.3", + "sha256": "cb7da4e9a1288cac64d168b241f27d7d2bc2dfecace58744f9bbf2792dfad04e", + "bytes": 397484, + "sampleRate": 24000, + "channels": 1, + "duration": 8.28, + "rms": 0.10000142448574952, + "peak": 0.6414685249328613 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-market.wav?v=0.2.3", + "sha256": "b8d25b867497adcd0fe7c8b6a8a8d2e7a52965956738a83e53f58735708773f9", + "bytes": 405548, + "sampleRate": 24000, + "channels": 1, + "duration": 8.448, + "rms": 0.10000141405173993, + "peak": 0.491485595703125 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-sound.wav?v=0.2.3", + "sha256": "34e4d9758d2ed448646fda364610e34779c84794403d9051ab3d8c1d33e2c80c", + "bytes": 184364, + "sampleRate": 24000, + "channels": 1, + "duration": 3.84, + "rms": 0.10000138709171018, + "peak": 0.386322021484375 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-furniture.wav?v=0.2.3", + "sha256": "b45b1afc8d9b534ff3e0a2a2ecb99efc1f4e40d41f89f55c4ed8ba94ad6d76d4", + "bytes": 354860, + "sampleRate": 24000, + "channels": 1, + "duration": 7.392, + "rms": 0.1000015072973225, + "peak": 0.5576171875 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-market.wav?v=0.2.3", + "sha256": "cefa0e95649ea6bd1df4c8dfccd2b74b4f4c028714420ce1087b61db2f2a8d47", + "bytes": 248876, + "sampleRate": 24000, + "channels": 1, + "duration": 5.184, + "rms": 0.10000142548167161, + "peak": 0.4857020676136017 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-oil.wav?v=0.2.3", + "sha256": "f6eff0cdddcad9790351491e60c53cb2a70d222033a583652f2de0b8cd6abcc7", + "bytes": 406700, + "sampleRate": 24000, + "channels": 1, + "duration": 8.472, + "rms": 0.10000139122025363, + "peak": 0.470794677734375 + }, + { + "url": "http://127.0.0.1:4173/audio/first-hat.wav?v=0.2.3", + "sha256": "17c8cde90567e7574b0c0702663bd70713054089ee920241b5444d9b7869eef5", + "bytes": 357164, + "sampleRate": 24000, + "channels": 1, + "duration": 7.44, + "rms": 0.10000152904790521, + "peak": 0.5312662124633789 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-furniture.wav?v=0.2.3", + "sha256": "af82e03b686635c3356e706fe5b05c1231aeaaeab33f275aa5b8714988c65d43", + "bytes": 241964, + "sampleRate": 24000, + "channels": 1, + "duration": 5.04, + "rms": 0.10000137346142077, + "peak": 0.4852443039417267 + }, + { + "url": "http://127.0.0.1:4173/audio/password-sound.wav?v=0.2.3", + "sha256": "044aafff08a19e39f21e58b963644715a987cd155896998769ef8e9ce6449628", + "bytes": 236204, + "sampleRate": 24000, + "channels": 1, + "duration": 4.92, + "rms": 0.10000156641621728, + "peak": 0.4621112644672394 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-hat.wav?v=0.2.3", + "sha256": "f9f98c91cfbcfcb106eef7d5d3795a9cf3c3aab7e19a60f13d7dffe284d19f86", + "bytes": 398636, + "sampleRate": 24000, + "channels": 1, + "duration": 8.304, + "rms": 0.10000141071544869, + "peak": 0.470977783203125 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-apple.wav?v=0.2.3", + "sha256": "7c8f413f4b7e164f090e508ba090448f1376c6012649bbb6a917d45851313883", + "bytes": 188972, + "sampleRate": 24000, + "channels": 1, + "duration": 3.936, + "rms": 0.10000130469939268, + "peak": 0.401641845703125 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-sea.wav?v=0.2.3", + "sha256": "db2f235bee26ac804b5362e8e013b8f40c8da24fd3a34e0fb3b43c6d264feb36", + "bytes": 382508, + "sampleRate": 24000, + "channels": 1, + "duration": 7.968, + "rms": 0.10000145042993039, + "peak": 0.6843470335006714 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-furniture.wav?v=0.2.3", + "sha256": "442bdcb956f120c270e1f321feae0415c897de0183e468980fcc119b898b2a67", + "bytes": 403244, + "sampleRate": 24000, + "channels": 1, + "duration": 8.4, + "rms": 0.10000149119200713, + "peak": 0.5619068145751953 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-sea.wav?v=0.2.3", + "sha256": "b6dbe0af143ea775f05bd59a3d6af348bcc770ab378ac91ea75a56e06c326edf", + "bytes": 346796, + "sampleRate": 24000, + "channels": 1, + "duration": 7.224, + "rms": 0.10000144532868623, + "peak": 0.56494140625 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-sound.wav?v=0.2.3", + "sha256": "e9d636ff7f4777f38b1ff15bebdcec6fbde95b4b4b05625a7415b4cfa0025b59", + "bytes": 395180, + "sampleRate": 24000, + "channels": 1, + "duration": 8.232, + "rms": 0.10000164955559301, + "peak": 0.6114688515663147 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-apple.wav?v=0.2.3", + "sha256": "3ef42e276ff3500c3e197d149f29f79d6a0c1d5516ed1d5a2c57210333fded9c", + "bytes": 246572, + "sampleRate": 24000, + "channels": 1, + "duration": 5.136, + "rms": 0.10000144279302126, + "peak": 0.4701681435108185 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-market.wav?v=0.2.3", + "sha256": "356af25332bf2000ed349671f3ff39767929e1f4599af622c021f907d11fb7bf", + "bytes": 194732, + "sampleRate": 24000, + "channels": 1, + "duration": 4.056, + "rms": 0.10000132629820717, + "peak": 0.4022216796875 + }, + { + "url": "http://127.0.0.1:4173/audio/message-sea.wav?v=0.2.3", + "sha256": "28a461fbe03bffe2560030dea8b60715f7c0fe262dcf85b5b7f7daf483836382", + "bytes": 517292, + "sampleRate": 24000, + "channels": 1, + "duration": 10.776, + "rms": 0.10000130584401576, + "peak": 0.53521728515625 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-umbrella.wav?v=0.2.3", + "sha256": "c8988e604ba05d52597e561389541e8f9cda86e052279f1862bbf8399ead314e", + "bytes": 403244, + "sampleRate": 24000, + "channels": 1, + "duration": 8.4, + "rms": 0.10000148262660476, + "peak": 0.557830810546875 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-hat.wav?v=0.2.3", + "sha256": "308278ec2bd27d4224976a55632d1f7fa1edabb0792126d9d858a699c287aee4", + "bytes": 245420, + "sampleRate": 24000, + "channels": 1, + "duration": 5.112, + "rms": 0.10000140702099906, + "peak": 0.4498428404331207 + }, + { + "url": "http://127.0.0.1:4173/audio/password-furniture.wav?v=0.2.3", + "sha256": "fb2b631dd4e12120d08a84cce6450f9cd9cd68105d13d7001d808e7deaa1df4a", + "bytes": 233900, + "sampleRate": 24000, + "channels": 1, + "duration": 4.872, + "rms": 0.10000146718546903, + "peak": 0.4836573302745819 + }, + { + "url": "http://127.0.0.1:4173/audio/first-market.wav?v=0.2.3", + "sha256": "1e00b8f70a796cdebb0feb00c605fece7488b06915e6e036f54206f05e201e0c", + "bytes": 359468, + "sampleRate": 24000, + "channels": 1, + "duration": 7.488, + "rms": 0.10000152633991319, + "peak": 0.6390880942344666 + }, + { + "url": "http://127.0.0.1:4173/audio/first-meat.wav?v=0.2.3", + "sha256": "f51a37c1722fef581f7d642a4dcae7fcb9953b3c318dce971bf616cd1a81fecc", + "bytes": 345644, + "sampleRate": 24000, + "channels": 1, + "duration": 7.2, + "rms": 0.10000152244411063, + "peak": 0.5131382346153259 + }, + { + "url": "http://127.0.0.1:4173/audio/password-sea.wav?v=0.2.3", + "sha256": "03f45b8cb5b3dc72faf5c6e3d0e2a10cea6b60301ea400d0a4453596d2f0b337", + "bytes": 232748, + "sampleRate": 24000, + "channels": 1, + "duration": 4.848, + "rms": 0.10000144821976133, + "peak": 0.5339213013648987 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-sound.wav?v=0.2.3", + "sha256": "98387ccc7aab566f6487d4c250b2128082cc527e013a6f7b7bc4d0266ac295df", + "bytes": 394028, + "sampleRate": 24000, + "channels": 1, + "duration": 8.208, + "rms": 0.10000158053850364, + "peak": 0.5377971529960632 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-umbrella.wav?v=0.2.3", + "sha256": "5e59ef39113c3d5e106862356d715f4cef2862ef8ee02654a97e532675c1ac6d", + "bytes": 410156, + "sampleRate": 24000, + "channels": 1, + "duration": 8.544, + "rms": 0.10000147499132286, + "peak": 0.6748558282852173 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-hat.wav?v=0.2.3", + "sha256": "b01ef9762ac84e3eb757243bc9286c62f7d45444a821ae35ac36a8b095e1598a", + "bytes": 353708, + "sampleRate": 24000, + "channels": 1, + "duration": 7.368, + "rms": 0.10000153089787694, + "peak": 0.555206298828125 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-market.wav?v=0.2.3", + "sha256": "d89792da51c83ac49d27e55aa6d822a338899a5ee487b34b552748201e1522f6", + "bytes": 398636, + "sampleRate": 24000, + "channels": 1, + "duration": 8.304, + "rms": 0.10000149710778367, + "peak": 0.5728324055671692 + }, + { + "url": "http://127.0.0.1:4173/audio/password-umbrella.wav?v=0.2.3", + "sha256": "ab3ca6398c879971dc793eb25b472fcc0db72d76e386f11ef4d32c639f37c69d", + "bytes": 239660, + "sampleRate": 24000, + "channels": 1, + "duration": 4.992, + "rms": 0.100001426973271, + "peak": 0.4776757061481476 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-meat.wav?v=0.2.3", + "sha256": "48e91b3932d3798e852041a854b3ee08c72127e092c62083a47af6b99adff241", + "bytes": 403244, + "sampleRate": 24000, + "channels": 1, + "duration": 8.4, + "rms": 0.10000140336390047, + "peak": 0.481536865234375 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-hat.wav?v=0.2.3", + "sha256": "6e089a42fd7e65e82eec7186d369c926fb7fdac794365b2bd7658822fd92437c", + "bytes": 396332, + "sampleRate": 24000, + "channels": 1, + "duration": 8.256, + "rms": 0.1000015662548192, + "peak": 0.616748571395874 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-sound.wav?v=0.2.3", + "sha256": "4d00aa6114327f450a00dacbc7e7b572ebf1de4ce9dc2fe4b5505766cca71ce9", + "bytes": 353708, + "sampleRate": 24000, + "channels": 1, + "duration": 7.368, + "rms": 0.10000162019345048, + "peak": 0.5348368883132935 + }, + { + "url": "http://127.0.0.1:4173/audio/last-oil.wav?v=0.2.3", + "sha256": "b5ce34950b8b31b1baf6ce55410797f0d8aa5478a670d6eace87cf76d134d6d3", + "bytes": 337580, + "sampleRate": 24000, + "channels": 1, + "duration": 7.032, + "rms": 0.10000149980584365, + "peak": 0.55706787109375 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-sea.wav?v=0.2.3", + "sha256": "47aa31d757c9fb49c9b53a1c052d90a5ced4be57549d649850d9b48f8864045b", + "bytes": 191276, + "sampleRate": 24000, + "channels": 1, + "duration": 3.984, + "rms": 0.10000129182106483, + "peak": 0.388702392578125 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-sound.wav?v=0.2.3", + "sha256": "659eb0e2b06e6b165b46744769743e032e2282519f8486c57bc45e0f7d07a069", + "bytes": 240812, + "sampleRate": 24000, + "channels": 1, + "duration": 5.016, + "rms": 0.10000152909529536, + "peak": 0.45481735467910767 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-meat.wav?v=0.2.3", + "sha256": "6599d2fac73ea616a793151b4ce6f51af673988d630bac6219a77e78ae6cb34e", + "bytes": 380204, + "sampleRate": 24000, + "channels": 1, + "duration": 7.92, + "rms": 0.1000016061190976, + "peak": 0.5921201109886169 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-market.wav?v=0.2.3", + "sha256": "c855b449e0d4ace74681bfe68e5e7f0b063568827ae872017234dbe8ae119e4c", + "bytes": 356012, + "sampleRate": 24000, + "channels": 1, + "duration": 7.416, + "rms": 0.10000151456676445, + "peak": 0.5949888825416565 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-furniture.wav?v=0.2.3", + "sha256": "bf84dc6cff1f227924a3a62158d2fc18769fb0ca40b91418fa19e534dbf92f00", + "bytes": 397484, + "sampleRate": 24000, + "channels": 1, + "duration": 8.28, + "rms": 0.10000155255948041, + "peak": 0.6670430898666382 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-sound.wav?v=0.2.3", + "sha256": "5a603bc69979603afddcaeb6edf500a7c540b72405daeb33f5335d746b327da1", + "bytes": 397484, + "sampleRate": 24000, + "channels": 1, + "duration": 8.28, + "rms": 0.10000146491234768, + "peak": 0.469268798828125 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-meat.wav?v=0.2.3", + "sha256": "9183ef90b64f5ceaf3bb0178c689231ff3e9981d6ce889124a15f2a6e2b7a344", + "bytes": 395180, + "sampleRate": 24000, + "channels": 1, + "duration": 8.232, + "rms": 0.10000155087122137, + "peak": 0.5193029642105103 + }, + { + "url": "http://127.0.0.1:4173/audio/last-sound.wav?v=0.2.3", + "sha256": "ec9c49802aebeb6a8b898a1c0d8ad1daa127d2d64c905c197ed49a8e0c4eb64a", + "bytes": 354860, + "sampleRate": 24000, + "channels": 1, + "duration": 7.392, + "rms": 0.10000165748716579, + "peak": 0.5641041398048401 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-oil.wav?v=0.2.3", + "sha256": "5fb63e04520c312aa6b7b48b70c2f7c140b5ab480e5c6992edbc2ba85b9a06e7", + "bytes": 241964, + "sampleRate": 24000, + "channels": 1, + "duration": 5.04, + "rms": 0.10000143720418167, + "peak": 0.443586528301239 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-umbrella.wav?v=0.2.3", + "sha256": "92b54f04884ab915783945077efd8f3bd443849a1720f72168b6348cae1f8e85", + "bytes": 406700, + "sampleRate": 24000, + "channels": 1, + "duration": 8.472, + "rms": 0.10000140257790288, + "peak": 0.479034423828125 + }, + { + "url": "http://127.0.0.1:4173/audio/message-sound.wav?v=0.2.3", + "sha256": "1e682147dae8026ba78dc8f256c7f24acb3a6743bfd88a0fcc86096930eef078", + "bytes": 521900, + "sampleRate": 24000, + "channels": 1, + "duration": 10.872, + "rms": 0.10000138583471241, + "peak": 0.51953125 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-apple.wav?v=0.2.3", + "sha256": "ccd7327a3fb54d3320d049ffdced3bc17595861cee69429c0ee97182d454195b", + "bytes": 402092, + "sampleRate": 24000, + "channels": 1, + "duration": 8.376, + "rms": 0.10000140667715379, + "peak": 0.490325927734375 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-sea.wav?v=0.2.3", + "sha256": "5c91a36496e274d2be9c6fa8d9b506cd04f2a1b7ceb05ed1b7bb03fe7fca99d9", + "bytes": 399788, + "sampleRate": 24000, + "channels": 1, + "duration": 8.328, + "rms": 0.10000144241513113, + "peak": 0.5465559959411621 + }, + { + "url": "http://127.0.0.1:4173/audio/message-hat.wav?v=0.2.3", + "sha256": "5a713a8522b231bb8276805c014b385b9150b79f58ff2618446607e2b442495e", + "bytes": 518444, + "sampleRate": 24000, + "channels": 1, + "duration": 10.8, + "rms": 0.10000136927555209, + "peak": 0.587005615234375 + }, + { + "url": "http://127.0.0.1:4173/audio/password-meat.wav?v=0.2.3", + "sha256": "b009caadd56350d6a641ff17f0973e2b2724c183e1f45ae0bf3c483e237fa99e", + "bytes": 240812, + "sampleRate": 24000, + "channels": 1, + "duration": 5.016, + "rms": 0.10000148386024335, + "peak": 0.4978789687156677 + }, + { + "url": "http://127.0.0.1:4173/audio/message-market.wav?v=0.2.3", + "sha256": "9242d4cd6e0030e6b073e4d2360f84aa8a454d1749711cdb2d64c14f28a7ea20", + "bytes": 523052, + "sampleRate": 24000, + "channels": 1, + "duration": 10.896, + "rms": 0.10000133805787564, + "peak": 0.534820556640625 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-apple.wav?v=0.2.3", + "sha256": "8832f1b793ab3eedbe663875ea8dbeabb122c329bd5879437c71230b0418c3c8", + "bytes": 360620, + "sampleRate": 24000, + "channels": 1, + "duration": 7.512, + "rms": 0.10000145024648589, + "peak": 0.553558349609375 + }, + { + "url": "http://127.0.0.1:4173/audio/last-umbrella.wav?v=0.2.3", + "sha256": "c801293a34013a8d93d3289a2cc87cd3eed83f97ba4647f5060efa00b117a9ad", + "bytes": 370988, + "sampleRate": 24000, + "channels": 1, + "duration": 7.728, + "rms": 0.10000149360501835, + "peak": 0.59765625 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-sea.wav?v=0.2.3", + "sha256": "9233431d78ab4b144e3c33ad0cf0d49fc0fb91b29514343230ba32987b794bb3", + "bytes": 398636, + "sampleRate": 24000, + "channels": 1, + "duration": 8.304, + "rms": 0.10000134688905045, + "peak": 0.49616992473602295 + }, + { + "url": "http://127.0.0.1:4173/audio/password-apple.wav?v=0.2.3", + "sha256": "b6f5de3fe571fe3a7fdb722fe49250bcfeedef49475271e0ec76a7630907edd5", + "bytes": 235052, + "sampleRate": 24000, + "channels": 1, + "duration": 4.896, + "rms": 0.10000148212193387, + "peak": 0.4834437072277069 + }, + { + "url": "http://127.0.0.1:4173/audio/first-furniture.wav?v=0.2.3", + "sha256": "29f007b385b7182db1d8aeccad4fc3c260df5e66e14e52a46b0ef0fcd0ff3a0a", + "bytes": 364076, + "sampleRate": 24000, + "channels": 1, + "duration": 7.584, + "rms": 0.1000014551820741, + "peak": 0.5700552463531494 + }, + { + "url": "http://127.0.0.1:4173/audio/password-hat.wav?v=0.2.3", + "sha256": "e91bfc97df90a1675b6cd856880ac15c54de32cfc3b23603bdd1c2c5ac3ce6b8", + "bytes": 235052, + "sampleRate": 24000, + "channels": 1, + "duration": 4.896, + "rms": 0.10000146155157119, + "peak": 0.5059053301811218 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-oil.wav?v=0.2.3", + "sha256": "7a6b122b11c07da86c95fb78e2db2a70681b5219c63d6441fe56da1979ac1dc3", + "bytes": 334124, + "sampleRate": 24000, + "channels": 1, + "duration": 6.96, + "rms": 0.1000014880654183, + "peak": 0.539933443069458 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-meat.wav?v=0.2.3", + "sha256": "d416107cc05e7c5b92ca27100a10a8a9689de913346179945d5542de4a6bac0c", + "bytes": 342188, + "sampleRate": 24000, + "channels": 1, + "duration": 7.128, + "rms": 0.10000157422522808, + "peak": 0.510833740234375 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-apple.wav?v=0.2.3", + "sha256": "1bf2aef9a9f030af1a8fd7dee8f44aa420a397b3ba99b575feeb3dc7a63ec191", + "bytes": 395180, + "sampleRate": 24000, + "channels": 1, + "duration": 8.232, + "rms": 0.10000148399213096, + "peak": 0.563568115234375 + }, + { + "url": "http://127.0.0.1:4173/audio/first-oil.wav?v=0.2.3", + "sha256": "f415195e0cfc7ee711d09de7519e88eab62cc8b58d70772c83c3f5c27c267819", + "bytes": 335276, + "sampleRate": 24000, + "channels": 1, + "duration": 6.984, + "rms": 0.10000145886808136, + "peak": 0.5347453355789185 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-hat.wav?v=0.2.3", + "sha256": "31a6a4270bf368cda419094d87a303ac3cd5c22539786cb165f8044b0b8e9d6e", + "bytes": 402092, + "sampleRate": 24000, + "channels": 1, + "duration": 8.376, + "rms": 0.10000145804818952, + "peak": 0.541778564453125 + }, + { + "url": "http://127.0.0.1:4173/audio/message-furniture.wav?v=0.2.3", + "sha256": "26c331b7e12311236f4bb48f88918dfbf53cccd2f50b55741ea6ff4473e71dd8", + "bytes": 521900, + "sampleRate": 24000, + "channels": 1, + "duration": 10.872, + "rms": 0.10000134596838128, + "peak": 0.529327392578125 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-oil.wav?v=0.2.3", + "sha256": "3fa1e662a3af8f2726b17b2baa5bec2934406e6595ebc243c8380dd16e190977", + "bytes": 190124, + "sampleRate": 24000, + "channels": 1, + "duration": 3.96, + "rms": 0.10000134375667624, + "peak": 0.3817255198955536 + }, + { + "url": "http://127.0.0.1:4173/audio/last-sea.wav?v=0.2.3", + "sha256": "f755452e1da44674aa1df7d12edffa988091b89a394e7eb6d4a00eb721f07cbf", + "bytes": 345644, + "sampleRate": 24000, + "channels": 1, + "duration": 7.2, + "rms": 0.10000140162255576, + "peak": 0.591033935546875 + }, + { + "url": "http://127.0.0.1:4173/audio/password-oil.wav?v=0.2.3", + "sha256": "b472957b27ff98ea7b8894fa1ff12653f7e9f66f77870faa9e52a1c1bf116c41", + "bytes": 240812, + "sampleRate": 24000, + "channels": 1, + "duration": 5.016, + "rms": 0.10000146772662066, + "peak": 0.4945219159126282 + }, + { + "url": "http://127.0.0.1:4173/audio/first-umbrella.wav?v=0.2.3", + "sha256": "878e0bd2e6e4105f175aef51a028f6b141f3a2072be20f783193f3ba897a3ee0", + "bytes": 366380, + "sampleRate": 24000, + "channels": 1, + "duration": 7.632, + "rms": 0.10000147647908036, + "peak": 0.5700247287750244 + }, + { + "url": "http://127.0.0.1:4173/audio/last-apple.wav?v=0.2.3", + "sha256": "4cb2a8579fa3a7b91bb36363826ce8ca0d6d86e96e16a479e226a2802edd82f7", + "bytes": 356012, + "sampleRate": 24000, + "channels": 1, + "duration": 7.416, + "rms": 0.10000144523423521, + "peak": 0.622528076171875 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-market.wav?v=0.2.3", + "sha256": "68a5b899115a66ab225d610ec47b4de56cc8793657362bc38f533c06f741e4cc", + "bytes": 402092, + "sampleRate": 24000, + "channels": 1, + "duration": 8.376, + "rms": 0.10000160159844854, + "peak": 0.6822717785835266 + }, + { + "url": "http://127.0.0.1:4173/audio/message-oil.wav?v=0.2.3", + "sha256": "a2a71a7e5e07c81871a25c6cb7540c39aa0b32fc44f78cda66b5f34ace98d805", + "bytes": 509228, + "sampleRate": 24000, + "channels": 1, + "duration": 10.608, + "rms": 0.10000135184106136, + "peak": 0.51812744140625 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-meat.wav?v=0.2.3", + "sha256": "d36dfc395a5c53fbfa4abe9980db7bb59adfdac59e40318c4aca365365e3f2ab", + "bytes": 187820, + "sampleRate": 24000, + "channels": 1, + "duration": 3.912, + "rms": 0.1000013329979738, + "peak": 0.371124267578125 + }, + { + "url": "http://127.0.0.1:4173/audio/password-market.wav?v=0.2.3", + "sha256": "02e325fb753ef7a3ee585a03d2ca2aa3f1fbc58523b062222ae1136eeed7a95c", + "bytes": 230444, + "sampleRate": 24000, + "channels": 1, + "duration": 4.8, + "rms": 0.10000151520861549, + "peak": 0.48170414566993713 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-hat.wav?v=0.2.3", + "sha256": "4ff43dd042f4b5451e9fdeb3edd59f1e389a7d1dd488094587a3a9fc7dfffa44", + "bytes": 191276, + "sampleRate": 24000, + "channels": 1, + "duration": 3.984, + "rms": 0.10000132502946775, + "peak": 0.417083740234375 + }, + { + "url": "http://127.0.0.1:4173/audio/last-market.wav?v=0.2.3", + "sha256": "7857e87e9dbfe8fe849cc0b18c1d45b60916cb337328099c7a87a42c82e2821e", + "bytes": 359468, + "sampleRate": 24000, + "channels": 1, + "duration": 7.488, + "rms": 0.10000148064140717, + "peak": 0.600555419921875 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-meat.wav?v=0.2.3", + "sha256": "94f8a4f9e116a787e5ed052661d6de9ecf3ad8629db476661dd59ad03014b0c9", + "bytes": 244268, + "sampleRate": 24000, + "channels": 1, + "duration": 5.088, + "rms": 0.10000146176253134, + "peak": 0.44187748432159424 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-oil.wav?v=0.2.3", + "sha256": "55b2c7d6aa8bbce04edf8661882c9781da81c57f56217f99b80457a3bb895da0", + "bytes": 369836, + "sampleRate": 24000, + "channels": 1, + "duration": 7.704, + "rms": 0.10000146897241707, + "peak": 0.6239814162254333 + }, + { + "url": "http://127.0.0.1:4173/audio/first-sound.wav?v=0.2.3", + "sha256": "46f6adeed928a16af0700f1e8626cf8049f124632a04a5d10604426fb06f9596", + "bytes": 353708, + "sampleRate": 24000, + "channels": 1, + "duration": 7.368, + "rms": 0.10000157588418972, + "peak": 0.5189672708511353 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-umbrella.wav?v=0.2.3", + "sha256": "4b4c858a25659540f9dbc524664496fc6de61ab8c1627f3cfee8c9c744e11d5b", + "bytes": 247724, + "sampleRate": 24000, + "channels": 1, + "duration": 5.16, + "rms": 0.10000144286672341, + "peak": 0.46534621715545654 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-oil.wav?v=0.2.3", + "sha256": "3ca98682ff06d1d6b8af02c0fd5b2124f42266ac989884223eff4a9bbde1287a", + "bytes": 399788, + "sampleRate": 24000, + "channels": 1, + "duration": 8.328, + "rms": 0.10000149133669024, + "peak": 0.5243995189666748 + }, + { + "url": "http://127.0.0.1:4173/audio/first-sea.wav?v=0.2.3", + "sha256": "0f0b39314c5f7d7168d4854003c0c284e7bc3438cdc4d1d1c5adab7cb5ed30e5", + "bytes": 349100, + "sampleRate": 24000, + "channels": 1, + "duration": 7.272, + "rms": 0.10000142148394393, + "peak": 0.5717948079109192 + }, + { + "url": "http://127.0.0.1:4173/audio/last-meat.wav?v=0.2.3", + "sha256": "10f8ad4259ed8945c9da831e80b3902303c09caef96d400298599168fb1efed4", + "bytes": 346796, + "sampleRate": 24000, + "channels": 1, + "duration": 7.224, + "rms": 0.10000155834091913, + "peak": 0.537200927734375 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-umbrella.wav?v=0.2.3", + "sha256": "399ea2f681f755918f1117c8baba42739ceca64b307b999342f457a9235050b6", + "bytes": 368684, + "sampleRate": 24000, + "channels": 1, + "duration": 7.68, + "rms": 0.10000155028684544, + "peak": 0.569549560546875 + }, + { + "url": "http://127.0.0.1:4173/audio/message-meat.wav?v=0.2.3", + "sha256": "ce19735df079b54c171e775b6b365385a80160b9033442abab95b2b9c8505e1a", + "bytes": 512684, + "sampleRate": 24000, + "channels": 1, + "duration": 10.68, + "rms": 0.10000140834686953, + "peak": 0.5147705078125 + }, + { + "url": "http://127.0.0.1:4173/audio/message-umbrella.wav?v=0.2.3", + "sha256": "41d5866dae66600df4694a8312b531571d44cece6dba0e423e7c43d09d184819", + "bytes": 523052, + "sampleRate": 24000, + "channels": 1, + "duration": 10.896, + "rms": 0.10000120668553683, + "peak": 0.530364990234375 + }, + { + "url": "http://127.0.0.1:4173/audio/last-furniture.wav?v=0.2.3", + "sha256": "5ad4f776e35439d408abed0e66567d6b5cdc80fc54d579165472e474f1238776", + "bytes": 357164, + "sampleRate": 24000, + "channels": 1, + "duration": 7.44, + "rms": 0.10000152394963031, + "peak": 0.583587646484375 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-sea.wav?v=0.2.3", + "sha256": "8838d6a1ee8a790427dc5aa761e70b3d8872af62086efeed743297ff7f8b8a06", + "bytes": 243116, + "sampleRate": 24000, + "channels": 1, + "duration": 5.064, + "rms": 0.10000138788281714, + "peak": 0.45013427734375 + }, + { + "url": "http://127.0.0.1:4173/audio/message-apple.wav?v=0.2.3", + "sha256": "d85e6f47d871369f00de2274139e5ad6b4b5686b5e20e248df0ed6b9a320d942", + "bytes": 517292, + "sampleRate": 24000, + "channels": 1, + "duration": 10.776, + "rms": 0.10000133916854889, + "peak": 0.525360107421875 + }, + { + "url": "http://127.0.0.1:4173/audio/last-hat.wav?v=0.2.3", + "sha256": "bdaf8fbc54df8061e9e58aa8c14b3044a6e863dc54973ee3ee6ae2c5ae1a28f1", + "bytes": 354860, + "sampleRate": 24000, + "channels": 1, + "duration": 7.392, + "rms": 0.10000152378078818, + "peak": 0.550079345703125 + }, + { + "url": "http://127.0.0.1:4173/audio/first-apple.wav?v=0.2.3", + "sha256": "7c1dbcb3082055df2b8f087f7e906ec867c92f679de0894c34740c05e61a4bc1", + "bytes": 359468, + "sampleRate": 24000, + "channels": 1, + "duration": 7.488, + "rms": 0.10000143468253914, + "peak": 0.57977294921875 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-umbrella.wav?v=0.2.3", + "sha256": "8d3e8e8bc97e5fe3f3362184c4abb12f01a882a1f1174d2644f0f70aac677c0a", + "bytes": 192428, + "sampleRate": 24000, + "channels": 1, + "duration": 4.008, + "rms": 0.10000131475711933, + "peak": 0.385650634765625 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-furniture.wav?v=0.2.3", + "sha256": "5c004a7b2f5a4a918c9f689f1a2dcb219a620ed14313f40a9655b36dbf64948d", + "bytes": 398636, + "sampleRate": 24000, + "channels": 1, + "duration": 8.304, + "rms": 0.10000141690978645, + "peak": 0.487396240234375 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-tree.wav?v=0.2.3", + "sha256": "122f496834fb16d6da47f801e50e46e272e4e934af959467d1db4e490f79be7a", + "bytes": 183212, + "sampleRate": 24000, + "channels": 1, + "duration": 3.816, + "rms": 0.10000140751524371, + "peak": 0.36920166015625 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-tree.wav?v=0.2.3", + "sha256": "00d8e77ec0371971d632724d91f8cf8d947bfb83c582a513b6421be4c457a1da", + "bytes": 241964, + "sampleRate": 24000, + "channels": 1, + "duration": 5.04, + "rms": 0.10000146153372488, + "peak": 0.4585406184196472 + }, + { + "url": "http://127.0.0.1:4173/audio/message-tree.wav?v=0.2.3", + "sha256": "5d684aa710a63d36ed8dcc2a8bfbdd5c71b0b1c63dad2a324adecb76591e85b8", + "bytes": 540332, + "sampleRate": 24000, + "channels": 1, + "duration": 11.256, + "rms": 0.10000132424453942, + "peak": 0.5262451171875 + }, + { + "url": "http://127.0.0.1:4173/audio/last-tree.wav?v=0.2.3", + "sha256": "589e56d940a3c9e80ec02ae0b2dd93463fdc85ef019a753fcd0fded0752055f9", + "bytes": 382508, + "sampleRate": 24000, + "channels": 1, + "duration": 7.968, + "rms": 0.10000149781706567, + "peak": 0.5807672142982483 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-tree.wav?v=0.2.3", + "sha256": "341888c75275c13eb31058f53a1d4276be0daa0a1b5a3a45522036928b83b0c1", + "bytes": 382508, + "sampleRate": 24000, + "channels": 1, + "duration": 7.968, + "rms": 0.1000014873304774, + "peak": 0.600024402141571 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-tree.wav?v=0.2.3", + "sha256": "8735c3d9672561ca237fa87317beec2878492eb9063d6048d5b214423561acc1", + "bytes": 423980, + "sampleRate": 24000, + "channels": 1, + "duration": 8.832, + "rms": 0.10000150947389638, + "peak": 0.6187627911567688 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-furniture.wav?v=0.2.3", + "sha256": "52cb92cdb8ee92b6f581c9d68dbc346f180c470564809ba57185429c9eb84127", + "bytes": 186668, + "sampleRate": 24000, + "channels": 1, + "duration": 3.888, + "rms": 0.1000013480244084, + "peak": 0.387054443359375 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-tree.wav?v=0.2.3", + "sha256": "bc8e54f5407e8866bf1ca1ddfd4f6c63d85fee29bd9e430c7dd33e87974fc5b8", + "bytes": 409004, + "sampleRate": 24000, + "channels": 1, + "duration": 8.52, + "rms": 0.10000146559822108, + "peak": 0.5486617684364319 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-tree.wav?v=0.2.3", + "sha256": "b8e8bbe6b8b14727efd953fae9d4aed2caeb004055d52f611c6378322847edbe", + "bytes": 400940, + "sampleRate": 24000, + "channels": 1, + "duration": 8.352, + "rms": 0.10000144970799159, + "peak": 0.470611572265625 + }, + { + "url": "http://127.0.0.1:4173/audio/first-tree.wav?v=0.2.3", + "sha256": "3178230fd5850b6277a2153b438ec5289720e3db7ac929914cc213964f004bd5", + "bytes": 379052, + "sampleRate": 24000, + "channels": 1, + "duration": 7.896, + "rms": 0.10000144270360484, + "peak": 0.5833613276481628 + }, + { + "url": "http://127.0.0.1:4173/audio/password-tree.wav?v=0.2.3", + "sha256": "67da8147296e35134ec254bc82b58317630061b2c64d2d63c4be197ce8692d50", + "bytes": 233900, + "sampleRate": 24000, + "channels": 1, + "duration": 4.872, + "rms": 0.10000156310809623, + "peak": 0.4904019236564636 + } + ] +} diff --git a/.agent/evidence-v0.2.3/privacy-screening/no-vad-asr.json b/.agent/evidence-v0.2.3/privacy-screening/no-vad-asr.json new file mode 100644 index 0000000..5e5fb31 --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/no-vad-asr.json @@ -0,0 +1,4616 @@ +{ + "schemaVersion": 1, + "startedAtUtc": "2026-10-14T09:16:48.127493+00:00", + "completedAtUtc": "2026-10-14T09:17:06.531103+00:00", + "tool": { + "name": "faster-whisper", + "version": "1.2.1", + "python": "3.11.16", + "dependencies": { + "ctranslate2": "4.8.3", + "av": "18.1.0", + "numpy": "2.4.6", + "tokenizers": "0.23.3", + "huggingface-hub": "2.2.0" + } + }, + "model": { + "name": "tiny", + "multilingual": true, + "repository": "Systran/faster-whisper-tiny", + "revision": "d90ca5fe260221311c53c58e660288d3deb8d356", + "files": { + "config.json": "a73a28cdfe1c43ccc7202fa333d1f89c202477271407ae9a7f19afa52039cac8", + "model.bin": "dcb76c6586fc06cbdac6dd21f14cfd129cc4cdd9dce19bf4ffa62e59cbe6e6d1", + "tokenizer.json": "fb7b63191e9bb045082c79fd742a3106a12c99513ab30df4a0d47fa6cb6fd0ab", + "vocabulary.txt": "34ce3fe1c5041027b3f8d42912270993f986dbc4bb34cf27f951e34a1e453913" + } + }, + "method": { + "input": "Exact final 12-second public/ambience WAV files, hash verified before and after inference; no source scan, VAD, text editing or manual filtering.", + "device": "cpu", + "computeType": "int8", + "cpuThreads": 4, + "numWorkers": 1, + "randomSeed": 0, + "offline": true, + "parameters": { + "language": null, + "task": "transcribe", + "log_progress": false, + "beam_size": 5, + "best_of": 5, + "patience": 1, + "length_penalty": 1, + "repetition_penalty": 1, + "no_repeat_ngram_size": 0, + "temperature": [ + 0.0, + 0.2, + 0.4, + 0.6, + 0.8, + 1.0 + ], + "compression_ratio_threshold": 2.4, + "log_prob_threshold": -1.0, + "no_speech_threshold": 0.6, + "condition_on_previous_text": true, + "prompt_reset_on_temperature": 0.5, + "initial_prompt": null, + "prefix": null, + "suppress_blank": true, + "suppress_tokens": [ + -1 + ], + "without_timestamps": false, + "max_initial_timestamp": 1.0, + "word_timestamps": false, + "prepend_punctuations": "\"'“¿([{-", + "append_punctuations": "\"'.。,,!!??::”)]}、", + "multilingual": false, + "vad_filter": false, + "vad_parameters": null, + "max_new_tokens": null, + "chunk_length": null, + "clip_timestamps": "0", + "hallucination_silence_threshold": null, + "hotwords": null, + "language_detection_threshold": 0.5, + "language_detection_segments": 1 + }, + "manifestSha256": "4f21df1c046e545553319889218c29b3efe0da0d49d45d3e09a36fb7759a617c", + "scriptSha256": "9aa0912152952179f0a541e7dfb06a893114a2d5361e266fd24fff567fb60183", + "command": "/tmp/findword-asr-venv/bin/python .agent/evidence-v0.2.3/privacy-screening/screen-final.py" + }, + "limitations": { + "screeningOnly": true, + "humanListeningAcceptance": false, + "legalPrivacyClearance": false, + "textIsVerifiedTranscript": false, + "explanation": "Tiny-model ASR is only a screening signal. Empty segments do not prove absence of speech, music or private conversation. Candidate text and language guesses may be hallucinated and are not faithful transcripts. This is NOT human listening acceptance or legal/privacy clearance." + }, + "requiredEmptyEnvironmentIds": [ + "mall", + "market", + "cafe" + ], + "requiredEmptyPassed": false, + "files": [ + { + "environmentId": "street", + "file": "public/ambience/street.wav", + "sha256": "a8bffa201b174618955bc51b860167169125304811aabe2086b0bb35b06c3ae1", + "bytes": 576044, + "durationSeconds": 12.0, + "selectedSegmentStartSeconds": 35, + "sourceSha256": "0ddb0be7eb3427f781c8268bcbc74b8ad7e1fbf75b9f6966e65274dbe85f3d9d", + "language": "en", + "languageProbability": 0.3898167014122009, + "segments": [], + "text": "", + "info": { + "language": "en", + "language_probability": 0.3898167014122009, + "duration": 12.0, + "duration_after_vad": 12.0, + "all_language_probs": [ + [ + "en", + 0.3898167014122009 + ], + [ + "nn", + 0.3773292601108551 + ], + [ + "ja", + 0.06501289457082748 + ], + [ + "la", + 0.023608574643731117 + ], + [ + "ru", + 0.022245649248361588 + ], + [ + "zh", + 0.017556218430399895 + ], + [ + "pl", + 0.015413372777402401 + ], + [ + "fr", + 0.011790702119469643 + ], + [ + "ko", + 0.008136247284710407 + ], + [ + "it", + 0.00798924919217825 + ], + [ + "cy", + 0.006835925858467817 + ], + [ + "es", + 0.005992465186864138 + ], + [ + "de", + 0.005646164529025555 + ], + [ + "pt", + 0.0055279298685491085 + ], + [ + "jw", + 0.0039305430836975574 + ], + [ + "ms", + 0.003485121764242649 + ], + [ + "nl", + 0.0032830832060426474 + ], + [ + "tr", + 0.003047135192900896 + ], + [ + "haw", + 0.0022543524391949177 + ], + [ + "id", + 0.0020179746206849813 + ], + [ + "ar", + 0.0017123047728091478 + ], + [ + "br", + 0.0014755696756765246 + ], + [ + "sv", + 0.0012604424264281988 + ], + [ + "vi", + 0.001172330928966403 + ], + [ + "hu", + 0.0010453202994540334 + ], + [ + "ro", + 0.0010091399308294058 + ], + [ + "th", + 0.0009070205851458013 + ], + [ + "fi", + 0.0008353945449925959 + ], + [ + "uk", + 0.0007772117387503386 + ], + [ + "cs", + 0.0006651243311353028 + ], + [ + "ml", + 0.0006492466200143099 + ], + [ + "hi", + 0.0006309545715339482 + ], + [ + "km", + 0.0005552098737098277 + ], + [ + "mi", + 0.0005535497330129147 + ], + [ + "he", + 0.00034290700568817556 + ], + [ + "bn", + 0.00033340704976581037 + ], + [ + "fa", + 0.00033155339770019054 + ], + [ + "gl", + 0.00031247417791746557 + ], + [ + "bg", + 0.00030625364161096513 + ], + [ + "el", + 0.00029560347320511937 + ], + [ + "ur", + 0.0002897378581110388 + ], + [ + "no", + 0.00022572425950784236 + ], + [ + "sa", + 0.00021767226280644536 + ], + [ + "tl", + 0.0002080294507322833 + ], + [ + "ta", + 0.00019707648607436568 + ], + [ + "mn", + 0.00019343286112416536 + ], + [ + "sn", + 0.00018949534569401294 + ], + [ + "fo", + 0.00018244943930767477 + ], + [ + "si", + 0.00016089763084892184 + ], + [ + "ca", + 0.00014699241728521883 + ], + [ + "sk", + 0.00013925577513873577 + ], + [ + "sl", + 0.00013076419418212026 + ], + [ + "eu", + 0.00012416201934684068 + ], + [ + "hr", + 0.0001171264229924418 + ], + [ + "my", + 0.0001115358027163893 + ], + [ + "da", + 0.00010515708709135652 + ], + [ + "oc", + 9.845638851402327e-05 + ], + [ + "bo", + 9.779151878319681e-05 + ], + [ + "te", + 9.539799793856218e-05 + ], + [ + "bs", + 8.616797276772559e-05 + ], + [ + "yo", + 7.896757597336546e-05 + ], + [ + "af", + 5.53969330212567e-05 + ], + [ + "ne", + 5.2842075092485175e-05 + ], + [ + "be", + 4.986268322682008e-05 + ], + [ + "sr", + 4.168130544712767e-05 + ], + [ + "yi", + 4.163950870861299e-05 + ], + [ + "sw", + 4.1316412534797564e-05 + ], + [ + "ht", + 3.948143785237335e-05 + ], + [ + "mr", + 3.505341737763956e-05 + ], + [ + "sq", + 3.3929929486475885e-05 + ], + [ + "lt", + 3.364408985362388e-05 + ], + [ + "az", + 3.3502285077702254e-05 + ], + [ + "et", + 3.185659079463221e-05 + ], + [ + "ka", + 2.797528577502817e-05 + ], + [ + "is", + 2.2226044166018255e-05 + ], + [ + "hy", + 2.203913936682511e-05 + ], + [ + "lv", + 2.149387182726059e-05 + ], + [ + "mk", + 2.0967792806914076e-05 + ], + [ + "sd", + 2.017345468630083e-05 + ], + [ + "kn", + 1.5103326404641848e-05 + ], + [ + "pa", + 1.3008128007641062e-05 + ], + [ + "mt", + 1.166138918051729e-05 + ], + [ + "as", + 9.951302672561724e-06 + ], + [ + "kk", + 9.138066161540337e-06 + ], + [ + "ps", + 7.828160960343666e-06 + ], + [ + "lo", + 5.198997769184643e-06 + ], + [ + "gu", + 5.1800725486828014e-06 + ], + [ + "ln", + 5.022172899771249e-06 + ], + [ + "am", + 3.1193615086522186e-06 + ], + [ + "so", + 2.339740831303061e-06 + ], + [ + "tg", + 1.8183044403485837e-07 + ], + [ + "lb", + 1.3595980874470115e-07 + ], + [ + "tt", + 9.28747709849631e-08 + ], + [ + "su", + 3.691809524752898e-08 + ], + [ + "mg", + 2.2037571767441477e-08 + ], + [ + "tk", + 2.1740069300335563e-08 + ], + [ + "ha", + 1.4544235149571705e-08 + ], + [ + "ba", + 1.4421503102823863e-08 + ], + [ + "uz", + 2.3822739336765153e-09 + ] + ], + "transcription_options": { + "beam_size": 5, + "best_of": 5, + "patience": 1, + "length_penalty": 1, + "repetition_penalty": 1, + "no_repeat_ngram_size": 0, + "log_prob_threshold": -1.0, + "no_speech_threshold": 0.6, + "compression_ratio_threshold": 2.4, + "condition_on_previous_text": true, + "prompt_reset_on_temperature": 0.5, + "temperatures": [ + 0.0, + 0.2, + 0.4, + 0.6, + 0.8, + 1.0 + ], + "initial_prompt": null, + "prefix": null, + "suppress_blank": true, + "suppress_tokens": [ + 1, + 2, + 7, + 8, + 9, + 10, + 14, + 25, + 26, + 27, + 28, + 29, + 31, + 58, + 59, + 60, + 61, + 62, + 63, + 90, + 91, + 92, + 93, + 359, + 503, + 522, + 542, + 873, + 893, + 902, + 918, + 922, + 931, + 1350, + 1853, + 1982, + 2460, + 2627, + 3246, + 3253, + 3268, + 3536, + 3846, + 3961, + 4183, + 4667, + 6585, + 6647, + 7273, + 9061, + 9383, + 10428, + 10929, + 11938, + 12033, + 12331, + 12562, + 13793, + 14157, + 14635, + 15265, + 15618, + 16553, + 16604, + 18362, + 18956, + 20075, + 21675, + 22520, + 26130, + 26161, + 26435, + 28279, + 29464, + 31650, + 32302, + 32470, + 36865, + 42863, + 47425, + 49870, + 50254, + 50258, + 50358, + 50359, + 50360, + 50361, + 50362 + ], + "without_timestamps": false, + "max_initial_timestamp": 1.0, + "word_timestamps": false, + "prepend_punctuations": "\"'“¿([{-", + "append_punctuations": "\"'.。,,!!??::”)]}、", + "multilingual": false, + "max_new_tokens": null, + "clip_timestamps": [ + 0.0 + ], + "hallucination_silence_threshold": null, + "hotwords": null + }, + "vad_options": null + } + }, + { + "environmentId": "mall", + "file": "public/ambience/mall.wav", + "sha256": "680a769940c08f0d12c6c954c08366598dd8b5745e276f39c82b10d1a88261a1", + "bytes": 576044, + "durationSeconds": 12.0, + "selectedSegmentStartSeconds": 36, + "sourceSha256": "bb066e130e5d665db57cb5f88e820d053c724d8f777b275213998d2074c6529a", + "language": "en", + "languageProbability": 0.21966177225112915, + "segments": [ + { + "id": 1, + "seek": 0, + "start": 0.0, + "end": 12.0, + "text": " It's so beautiful, it's so beautiful, it's so beautiful.", + "tokens": [ + 50364, + 467, + 311, + 370, + 2238, + 11, + 309, + 311, + 370, + 2238, + 11, + 309, + 311, + 370, + 2238, + 13, + 50964 + ], + "avg_logprob": -0.93099288476838, + "compression_ratio": 1.8064516129032258, + "no_speech_prob": 0.33958810567855835, + "words": null, + "temperature": 0.0 + } + ], + "text": " It's so beautiful, it's so beautiful, it's so beautiful.", + "info": { + "language": "en", + "language_probability": 0.21966177225112915, + "duration": 12.0, + "duration_after_vad": 12.0, + "all_language_probs": [ + [ + "en", + 0.21966177225112915 + ], + [ + "nn", + 0.20048785209655762 + ], + [ + "ja", + 0.1832902729511261 + ], + [ + "ko", + 0.07881028950214386 + ], + [ + "ru", + 0.04566512629389763 + ], + [ + "fr", + 0.04488835111260414 + ], + [ + "zh", + 0.04111019894480705 + ], + [ + "de", + 0.02999817207455635 + ], + [ + "pt", + 0.020327338948845863 + ], + [ + "jw", + 0.014624389819800854 + ], + [ + "pl", + 0.012955095618963242 + ], + [ + "nl", + 0.011913426220417023 + ], + [ + "it", + 0.011344920843839645 + ], + [ + "es", + 0.01083869393914938 + ], + [ + "tr", + 0.007394611835479736 + ], + [ + "la", + 0.005497111473232508 + ], + [ + "fi", + 0.005356523673981428 + ], + [ + "sv", + 0.005069385282695293 + ], + [ + "cy", + 0.004953988827764988 + ], + [ + "ar", + 0.003675843821838498 + ], + [ + "ms", + 0.0036368872970342636 + ], + [ + "haw", + 0.0031657186336815357 + ], + [ + "hu", + 0.002980473218485713 + ], + [ + "vi", + 0.002515817992389202 + ], + [ + "br", + 0.002150120912119746 + ], + [ + "el", + 0.0018931026570498943 + ], + [ + "uk", + 0.001883664052002132 + ], + [ + "hi", + 0.0017830500146374106 + ], + [ + "id", + 0.0017218312714248896 + ], + [ + "th", + 0.0016264189034700394 + ], + [ + "ro", + 0.0016007105587050319 + ], + [ + "mi", + 0.001287355669774115 + ], + [ + "gl", + 0.0009323647827841341 + ], + [ + "tl", + 0.0008865129784680903 + ], + [ + "cs", + 0.0008816801710054278 + ], + [ + "ml", + 0.0008646623464301229 + ], + [ + "he", + 0.0008049929747357965 + ], + [ + "ur", + 0.0007774599362164736 + ], + [ + "no", + 0.0007416324806399643 + ], + [ + "bg", + 0.0006987852975726128 + ], + [ + "ta", + 0.0006921759340912104 + ], + [ + "km", + 0.0005918823881074786 + ], + [ + "eu", + 0.0005695742438547313 + ], + [ + "bn", + 0.0005263357306830585 + ], + [ + "da", + 0.0004909778945147991 + ], + [ + "ca", + 0.00044265686301514506 + ], + [ + "mn", + 0.0004419540928211063 + ], + [ + "sn", + 0.0003312236804049462 + ], + [ + "bs", + 0.0003276210627518594 + ], + [ + "fo", + 0.00030943361343815923 + ], + [ + "fa", + 0.00030567432986572385 + ], + [ + "sl", + 0.0002744648954831064 + ], + [ + "yo", + 0.00026633613742887974 + ], + [ + "hr", + 0.00025839084992185235 + ], + [ + "oc", + 0.00024790645693428814 + ], + [ + "sk", + 0.00024523813044652343 + ], + [ + "te", + 0.0002360738581046462 + ], + [ + "sa", + 0.0002153849636670202 + ], + [ + "ht", + 0.00017466516874264926 + ], + [ + "si", + 0.00016840934404172003 + ], + [ + "et", + 0.00015254245954565704 + ], + [ + "ne", + 0.00015035398246254772 + ], + [ + "my", + 0.00014237570576369762 + ], + [ + "lt", + 0.00013660606055054814 + ], + [ + "is", + 0.00013516019680537283 + ], + [ + "bo", + 0.00011880997044499964 + ], + [ + "sd", + 0.0001166374422609806 + ], + [ + "sr", + 0.00011378010094631463 + ], + [ + "az", + 0.0001137428916990757 + ], + [ + "lv", + 0.00010423151252325624 + ], + [ + "yi", + 9.866827167570591e-05 + ], + [ + "af", + 9.182556823361665e-05 + ], + [ + "mr", + 8.575600804761052e-05 + ], + [ + "hy", + 8.489808533340693e-05 + ], + [ + "be", + 8.107295434456319e-05 + ], + [ + "kn", + 6.670861330348998e-05 + ], + [ + "sw", + 6.008188211126253e-05 + ], + [ + "ka", + 5.256141230347566e-05 + ], + [ + "sq", + 4.322655877331272e-05 + ], + [ + "pa", + 3.9258553442778066e-05 + ], + [ + "gu", + 3.1651990866521373e-05 + ], + [ + "mk", + 2.82938690361334e-05 + ], + [ + "kk", + 2.5134293537121266e-05 + ], + [ + "ln", + 2.4052482331171632e-05 + ], + [ + "as", + 2.212878825957887e-05 + ], + [ + "mt", + 2.0021916498080827e-05 + ], + [ + "ps", + 1.5601564882672392e-05 + ], + [ + "am", + 1.2714222066279035e-05 + ], + [ + "lo", + 1.180485742224846e-05 + ], + [ + "so", + 5.36604102308047e-06 + ], + [ + "tg", + 6.787650477235729e-07 + ], + [ + "lb", + 5.378560103963537e-07 + ], + [ + "tt", + 3.324554995742801e-07 + ], + [ + "su", + 1.394218998029828e-07 + ], + [ + "tk", + 7.062937612545284e-08 + ], + [ + "mg", + 6.728463119998196e-08 + ], + [ + "ba", + 6.125172546944668e-08 + ], + [ + "ha", + 4.273148945799221e-08 + ], + [ + "uz", + 6.1873790535571516e-09 + ] + ], + "transcription_options": { + "beam_size": 5, + "best_of": 5, + "patience": 1, + "length_penalty": 1, + "repetition_penalty": 1, + "no_repeat_ngram_size": 0, + "log_prob_threshold": -1.0, + "no_speech_threshold": 0.6, + "compression_ratio_threshold": 2.4, + "condition_on_previous_text": true, + "prompt_reset_on_temperature": 0.5, + "temperatures": [ + 0.0, + 0.2, + 0.4, + 0.6, + 0.8, + 1.0 + ], + "initial_prompt": null, + "prefix": null, + "suppress_blank": true, + "suppress_tokens": [ + 1, + 2, + 7, + 8, + 9, + 10, + 14, + 25, + 26, + 27, + 28, + 29, + 31, + 58, + 59, + 60, + 61, + 62, + 63, + 90, + 91, + 92, + 93, + 359, + 503, + 522, + 542, + 873, + 893, + 902, + 918, + 922, + 931, + 1350, + 1853, + 1982, + 2460, + 2627, + 3246, + 3253, + 3268, + 3536, + 3846, + 3961, + 4183, + 4667, + 6585, + 6647, + 7273, + 9061, + 9383, + 10428, + 10929, + 11938, + 12033, + 12331, + 12562, + 13793, + 14157, + 14635, + 15265, + 15618, + 16553, + 16604, + 18362, + 18956, + 20075, + 21675, + 22520, + 26130, + 26161, + 26435, + 28279, + 29464, + 31650, + 32302, + 32470, + 36865, + 42863, + 47425, + 49870, + 50254, + 50258, + 50358, + 50359, + 50360, + 50361, + 50362 + ], + "without_timestamps": false, + "max_initial_timestamp": 1.0, + "word_timestamps": false, + "prepend_punctuations": "\"'“¿([{-", + "append_punctuations": "\"'.。,,!!??::”)]}、", + "multilingual": false, + "max_new_tokens": null, + "clip_timestamps": [ + 0.0 + ], + "hallucination_silence_threshold": null, + "hotwords": null + }, + "vad_options": null + } + }, + { + "environmentId": "theater", + "file": "public/ambience/theater.wav", + "sha256": "2d6a444fb7874cdf6b2d8a741a69175299b112eb66834912c025437d8277d635", + "bytes": 576044, + "durationSeconds": 12.0, + "selectedSegmentStartSeconds": 45, + "sourceSha256": "05c3ece7c088f34700b7610f791c0ad848a24c77be2c32fd1503a78356739a43", + "language": "en", + "languageProbability": 0.25658440589904785, + "segments": [ + { + "id": 1, + "seek": 0, + "start": 0.0, + "end": 7.0, + "text": " Thank you for watching.", + "tokens": [ + 50364, + 1044, + 291, + 337, + 1976, + 13, + 50714 + ], + "avg_logprob": -1.1992912590503693, + "compression_ratio": 0.7419354838709677, + "no_speech_prob": 0.30440080165863037, + "words": null, + "temperature": 1.0 + } + ], + "text": " Thank you for watching.", + "info": { + "language": "en", + "language_probability": 0.25658440589904785, + "duration": 12.0, + "duration_after_vad": 12.0, + "all_language_probs": [ + [ + "en", + 0.25658440589904785 + ], + [ + "ja", + 0.23184935748577118 + ], + [ + "ko", + 0.09546845406293869 + ], + [ + "nn", + 0.08174467086791992 + ], + [ + "jw", + 0.0703263208270073 + ], + [ + "zh", + 0.04401009902358055 + ], + [ + "ru", + 0.038175057619810104 + ], + [ + "pt", + 0.01649031788110733 + ], + [ + "de", + 0.01647750660777092 + ], + [ + "ms", + 0.011080930940806866 + ], + [ + "nl", + 0.010125449858605862 + ], + [ + "uk", + 0.009597202762961388 + ], + [ + "fr", + 0.009521645493805408 + ], + [ + "pl", + 0.009438506327569485 + ], + [ + "es", + 0.008012594655156136 + ], + [ + "cy", + 0.007730530574917793 + ], + [ + "id", + 0.007728775963187218 + ], + [ + "vi", + 0.007016035262495279 + ], + [ + "tr", + 0.005587395746260881 + ], + [ + "mi", + 0.004987203981727362 + ], + [ + "sv", + 0.004844923038035631 + ], + [ + "it", + 0.004436506424099207 + ], + [ + "haw", + 0.0040049199014902115 + ], + [ + "fi", + 0.003751539858058095 + ], + [ + "th", + 0.003548419801518321 + ], + [ + "ar", + 0.003016221337020397 + ], + [ + "tl", + 0.0030112003441900015 + ], + [ + "la", + 0.0029862569645047188 + ], + [ + "km", + 0.002937627723440528 + ], + [ + "hu", + 0.001824148464947939 + ], + [ + "el", + 0.0016183037078008056 + ], + [ + "ta", + 0.0016079534543678164 + ], + [ + "ro", + 0.0016029407270252705 + ], + [ + "br", + 0.0013944837264716625 + ], + [ + "no", + 0.0012173464056104422 + ], + [ + "hi", + 0.0012170689878985286 + ], + [ + "ml", + 0.0011766506358981133 + ], + [ + "ur", + 0.0011379546485841274 + ], + [ + "gl", + 0.000845160917378962 + ], + [ + "ca", + 0.0008344284142367542 + ], + [ + "bg", + 0.0008042094414122403 + ], + [ + "bn", + 0.0007770298980176449 + ], + [ + "da", + 0.0007242404390126467 + ], + [ + "cs", + 0.0006454521208070219 + ], + [ + "he", + 0.0005184219335205853 + ], + [ + "eu", + 0.0005049262545071542 + ], + [ + "sn", + 0.00044171643094159663 + ], + [ + "sa", + 0.00043918981100432575 + ], + [ + "fo", + 0.0004253097577020526 + ], + [ + "mn", + 0.00041701211011968553 + ], + [ + "sl", + 0.00032301811734214425 + ], + [ + "ne", + 0.0003220700891688466 + ], + [ + "te", + 0.00030137671274133027 + ], + [ + "is", + 0.00026753998827189207 + ], + [ + "yo", + 0.00025998425553552806 + ], + [ + "be", + 0.00024122752074617893 + ], + [ + "bo", + 0.00022840149176772684 + ], + [ + "si", + 0.00022692228958476335 + ], + [ + "bs", + 0.0002250628749607131 + ], + [ + "hr", + 0.0002109643683070317 + ], + [ + "fa", + 0.00020420261716935784 + ], + [ + "my", + 0.00018192057905253023 + ], + [ + "et", + 0.0001797510776668787 + ], + [ + "mr", + 0.00017272122204303741 + ], + [ + "az", + 0.00016600842354819179 + ], + [ + "hy", + 0.0001651565544307232 + ], + [ + "oc", + 0.00016470340779051185 + ], + [ + "yi", + 0.00016019893519114703 + ], + [ + "lt", + 0.00012619022163562477 + ], + [ + "sk", + 0.00012606913514900953 + ], + [ + "sd", + 0.00011918327072635293 + ], + [ + "ht", + 0.00011089287727372721 + ], + [ + "lv", + 0.0001014478038996458 + ], + [ + "sr", + 9.155579027719796e-05 + ], + [ + "af", + 7.459888729499653e-05 + ], + [ + "kk", + 7.042823563097045e-05 + ], + [ + "sw", + 6.69257715344429e-05 + ], + [ + "kn", + 6.0597471019718796e-05 + ], + [ + "sq", + 4.746643753605895e-05 + ], + [ + "ka", + 4.628757596947253e-05 + ], + [ + "pa", + 4.3485764763318e-05 + ], + [ + "gu", + 4.154017733526416e-05 + ], + [ + "mk", + 3.943002229789272e-05 + ], + [ + "as", + 3.73153634427581e-05 + ], + [ + "ps", + 3.4734672226477414e-05 + ], + [ + "mt", + 2.6269663067068905e-05 + ], + [ + "lo", + 2.2949066988076083e-05 + ], + [ + "ln", + 1.9508688637870364e-05 + ], + [ + "am", + 1.8636617824085988e-05 + ], + [ + "so", + 6.972647497605067e-06 + ], + [ + "tg", + 8.662918844493106e-07 + ], + [ + "lb", + 4.17871575564277e-07 + ], + [ + "tt", + 4.16549028159352e-07 + ], + [ + "su", + 3.2217803891398944e-07 + ], + [ + "ha", + 9.557776081692282e-08 + ], + [ + "mg", + 9.28918311160487e-08 + ], + [ + "tk", + 8.901650261350369e-08 + ], + [ + "ba", + 8.200404266744954e-08 + ], + [ + "uz", + 1.0368610858790817e-08 + ] + ], + "transcription_options": { + "beam_size": 5, + "best_of": 5, + "patience": 1, + "length_penalty": 1, + "repetition_penalty": 1, + "no_repeat_ngram_size": 0, + "log_prob_threshold": -1.0, + "no_speech_threshold": 0.6, + "compression_ratio_threshold": 2.4, + "condition_on_previous_text": true, + "prompt_reset_on_temperature": 0.5, + "temperatures": [ + 0.0, + 0.2, + 0.4, + 0.6, + 0.8, + 1.0 + ], + "initial_prompt": null, + "prefix": null, + "suppress_blank": true, + "suppress_tokens": [ + 1, + 2, + 7, + 8, + 9, + 10, + 14, + 25, + 26, + 27, + 28, + 29, + 31, + 58, + 59, + 60, + 61, + 62, + 63, + 90, + 91, + 92, + 93, + 359, + 503, + 522, + 542, + 873, + 893, + 902, + 918, + 922, + 931, + 1350, + 1853, + 1982, + 2460, + 2627, + 3246, + 3253, + 3268, + 3536, + 3846, + 3961, + 4183, + 4667, + 6585, + 6647, + 7273, + 9061, + 9383, + 10428, + 10929, + 11938, + 12033, + 12331, + 12562, + 13793, + 14157, + 14635, + 15265, + 15618, + 16553, + 16604, + 18362, + 18956, + 20075, + 21675, + 22520, + 26130, + 26161, + 26435, + 28279, + 29464, + 31650, + 32302, + 32470, + 36865, + 42863, + 47425, + 49870, + 50254, + 50258, + 50358, + 50359, + 50360, + 50361, + 50362 + ], + "without_timestamps": false, + "max_initial_timestamp": 1.0, + "word_timestamps": false, + "prepend_punctuations": "\"'“¿([{-", + "append_punctuations": "\"'.。,,!!??::”)]}、", + "multilingual": false, + "max_new_tokens": null, + "clip_timestamps": [ + 0.0 + ], + "hallucination_silence_threshold": null, + "hotwords": null + }, + "vad_options": null + } + }, + { + "environmentId": "department", + "file": "public/ambience/department.wav", + "sha256": "aa43f3d1d3e7c2b1f8ace24ecbda45d0ea3a031db941c39506dc6c1665b8efa7", + "bytes": 576044, + "durationSeconds": 12.0, + "selectedSegmentStartSeconds": 90, + "sourceSha256": "261fda28722fba623483a90b32e7a2ec388c59887f56a5247156b53f1ffb6ccd", + "language": "en", + "languageProbability": 0.29920145869255066, + "segments": [ + { + "id": 1, + "seek": 0, + "start": 0.0, + "end": 12.0, + "text": " Thank you for watching!", + "tokens": [ + 50364, + 1044, + 291, + 337, + 1976, + 0, + 50964 + ], + "avg_logprob": -1.3012538105249405, + "compression_ratio": 0.7419354838709677, + "no_speech_prob": 0.3079261779785156, + "words": null, + "temperature": 1.0 + } + ], + "text": " Thank you for watching!", + "info": { + "language": "en", + "language_probability": 0.29920145869255066, + "duration": 12.0, + "duration_after_vad": 12.0, + "all_language_probs": [ + [ + "en", + 0.29920145869255066 + ], + [ + "ko", + 0.13077178597450256 + ], + [ + "ja", + 0.08216732740402222 + ], + [ + "nn", + 0.05335356295108795 + ], + [ + "haw", + 0.05278017371892929 + ], + [ + "jw", + 0.05180064216256142 + ], + [ + "zh", + 0.03412758931517601 + ], + [ + "la", + 0.031167756766080856 + ], + [ + "cy", + 0.030520116910338402 + ], + [ + "ru", + 0.029879210516810417 + ], + [ + "pt", + 0.025679297745227814 + ], + [ + "fr", + 0.016433652490377426 + ], + [ + "nl", + 0.01522440928965807 + ], + [ + "mi", + 0.014679675921797752 + ], + [ + "br", + 0.013814248144626617 + ], + [ + "es", + 0.007651722524315119 + ], + [ + "pl", + 0.007551968097686768 + ], + [ + "it", + 0.006900260224938393 + ], + [ + "tr", + 0.006672652903944254 + ], + [ + "de", + 0.0063318898901343346 + ], + [ + "uk", + 0.005810707341879606 + ], + [ + "sv", + 0.005656195338815451 + ], + [ + "vi", + 0.004295499064028263 + ], + [ + "id", + 0.0041047632694244385 + ], + [ + "fi", + 0.0040479558520019054 + ], + [ + "el", + 0.003759220475330949 + ], + [ + "ta", + 0.003565498162060976 + ], + [ + "ms", + 0.0034342403523623943 + ], + [ + "ar", + 0.0030276787001639605 + ], + [ + "km", + 0.0029730794485658407 + ], + [ + "gl", + 0.0025620260275900364 + ], + [ + "hu", + 0.002382095670327544 + ], + [ + "th", + 0.0023046790156513453 + ], + [ + "ca", + 0.002283673267811537 + ], + [ + "hi", + 0.002234259620308876 + ], + [ + "sn", + 0.0020846931729465723 + ], + [ + "bg", + 0.001775069860741496 + ], + [ + "ro", + 0.0017373685259371996 + ], + [ + "eu", + 0.0015633192379027605 + ], + [ + "tl", + 0.001451939926482737 + ], + [ + "da", + 0.0013117047492414713 + ], + [ + "no", + 0.0012505694758147001 + ], + [ + "ml", + 0.0012334388447925448 + ], + [ + "cs", + 0.0012045778566971421 + ], + [ + "bs", + 0.0011189855867996812 + ], + [ + "he", + 0.001106909243389964 + ], + [ + "yo", + 0.0010252654319629073 + ], + [ + "be", + 0.0009590881527401507 + ], + [ + "sa", + 0.0009540633764117956 + ], + [ + "te", + 0.000939254998229444 + ], + [ + "ur", + 0.0008043444831855595 + ], + [ + "hr", + 0.0006379004917107522 + ], + [ + "bn", + 0.000623481348156929 + ], + [ + "yi", + 0.0005946899182163179 + ], + [ + "si", + 0.0005925304722040892 + ], + [ + "mn", + 0.0004781913885381073 + ], + [ + "sl", + 0.0004579683591146022 + ], + [ + "oc", + 0.0004500890790950507 + ], + [ + "fo", + 0.00043965334771201015 + ], + [ + "is", + 0.0004292931407690048 + ], + [ + "fa", + 0.00040210550650954247 + ], + [ + "sr", + 0.00040090319816954434 + ], + [ + "ht", + 0.0003952806582674384 + ], + [ + "az", + 0.0003518332086969167 + ], + [ + "my", + 0.00034088798565790057 + ], + [ + "sd", + 0.00032111845212057233 + ], + [ + "ne", + 0.00031109474366530776 + ], + [ + "bo", + 0.0002920033875852823 + ], + [ + "lv", + 0.00024331724853254855 + ], + [ + "af", + 0.00023626428446732461 + ], + [ + "et", + 0.00022913435532245785 + ], + [ + "hy", + 0.00022630962484981865 + ], + [ + "lt", + 0.00020122549904044718 + ], + [ + "pa", + 0.00018300843657925725 + ], + [ + "kk", + 0.0001793812116375193 + ], + [ + "sk", + 0.00016666867304593325 + ], + [ + "sw", + 0.00016268905892502517 + ], + [ + "gu", + 0.00015051703667268157 + ], + [ + "ka", + 0.00013314718671608716 + ], + [ + "mk", + 0.00011886131687788293 + ], + [ + "sq", + 0.00010333908721804619 + ], + [ + "ps", + 0.00010103143722517416 + ], + [ + "kn", + 9.907769708661363e-05 + ], + [ + "mr", + 8.715104922885075e-05 + ], + [ + "as", + 5.379655340220779e-05 + ], + [ + "ln", + 3.995518636656925e-05 + ], + [ + "mt", + 3.835763345705345e-05 + ], + [ + "lo", + 1.858499672380276e-05 + ], + [ + "am", + 1.763097861839924e-05 + ], + [ + "so", + 1.4705210560350679e-05 + ], + [ + "tg", + 1.7199388366861967e-06 + ], + [ + "tt", + 1.2082668945367914e-06 + ], + [ + "su", + 7.245001825140207e-07 + ], + [ + "lb", + 6.479691023741907e-07 + ], + [ + "ha", + 3.4815778349184257e-07 + ], + [ + "mg", + 2.493364092970296e-07 + ], + [ + "tk", + 1.8413479097034724e-07 + ], + [ + "ba", + 1.617330838143971e-07 + ], + [ + "uz", + 1.495402202067453e-08 + ] + ], + "transcription_options": { + "beam_size": 5, + "best_of": 5, + "patience": 1, + "length_penalty": 1, + "repetition_penalty": 1, + "no_repeat_ngram_size": 0, + "log_prob_threshold": -1.0, + "no_speech_threshold": 0.6, + "compression_ratio_threshold": 2.4, + "condition_on_previous_text": true, + "prompt_reset_on_temperature": 0.5, + "temperatures": [ + 0.0, + 0.2, + 0.4, + 0.6, + 0.8, + 1.0 + ], + "initial_prompt": null, + "prefix": null, + "suppress_blank": true, + "suppress_tokens": [ + 1, + 2, + 7, + 8, + 9, + 10, + 14, + 25, + 26, + 27, + 28, + 29, + 31, + 58, + 59, + 60, + 61, + 62, + 63, + 90, + 91, + 92, + 93, + 359, + 503, + 522, + 542, + 873, + 893, + 902, + 918, + 922, + 931, + 1350, + 1853, + 1982, + 2460, + 2627, + 3246, + 3253, + 3268, + 3536, + 3846, + 3961, + 4183, + 4667, + 6585, + 6647, + 7273, + 9061, + 9383, + 10428, + 10929, + 11938, + 12033, + 12331, + 12562, + 13793, + 14157, + 14635, + 15265, + 15618, + 16553, + 16604, + 18362, + 18956, + 20075, + 21675, + 22520, + 26130, + 26161, + 26435, + 28279, + 29464, + 31650, + 32302, + 32470, + 36865, + 42863, + 47425, + 49870, + 50254, + 50258, + 50358, + 50359, + 50360, + 50361, + 50362 + ], + "without_timestamps": false, + "max_initial_timestamp": 1.0, + "word_timestamps": false, + "prepend_punctuations": "\"'“¿([{-", + "append_punctuations": "\"'.。,,!!??::”)]}、", + "multilingual": false, + "max_new_tokens": null, + "clip_timestamps": [ + 0.0 + ], + "hallucination_silence_threshold": null, + "hotwords": null + }, + "vad_options": null + } + }, + { + "environmentId": "market", + "file": "public/ambience/market.wav", + "sha256": "7a7a980845a4aade2a7e8a108eae746220a4688e92792ee93d3deb76b2a762f6", + "bytes": 576044, + "durationSeconds": 12.0, + "selectedSegmentStartSeconds": 60, + "sourceSha256": "fc0075dce8ad05b56460c9f18754c27b2021f21f1c780a595ccda648d33c941d", + "language": "ja", + "languageProbability": 0.15124011039733887, + "segments": [ + { + "id": 1, + "seek": 0, + "start": 0.0, + "end": 12.0, + "text": "ご視聴ありがとうございました", + "tokens": [ + 50364, + 9991, + 27333, + 8171, + 112, + 38538, + 50964 + ], + "avg_logprob": -1.0916412025690079, + "compression_ratio": 0.8571428571428571, + "no_speech_prob": 0.4130496084690094, + "words": null, + "temperature": 1.0 + } + ], + "text": "ご視聴ありがとうございました", + "info": { + "language": "ja", + "language_probability": 0.15124011039733887, + "duration": 12.0, + "duration_after_vad": 12.0, + "all_language_probs": [ + [ + "ja", + 0.15124011039733887 + ], + [ + "nn", + 0.13070914149284363 + ], + [ + "en", + 0.11620879173278809 + ], + [ + "jw", + 0.11289668828248978 + ], + [ + "ko", + 0.09580211341381073 + ], + [ + "zh", + 0.04083317145705223 + ], + [ + "ru", + 0.03127654641866684 + ], + [ + "fi", + 0.021822286769747734 + ], + [ + "pt", + 0.021365273743867874 + ], + [ + "fr", + 0.01927967555820942 + ], + [ + "cy", + 0.01737522892653942 + ], + [ + "vi", + 0.01640322618186474 + ], + [ + "it", + 0.015666015446186066 + ], + [ + "es", + 0.014876625500619411 + ], + [ + "de", + 0.014002110809087753 + ], + [ + "pl", + 0.01348754670470953 + ], + [ + "haw", + 0.01290903426706791 + ], + [ + "nl", + 0.012659870088100433 + ], + [ + "sv", + 0.01201621349900961 + ], + [ + "la", + 0.010100001469254494 + ], + [ + "id", + 0.010013015009462833 + ], + [ + "ms", + 0.007854966446757317 + ], + [ + "tr", + 0.0070586539804935455 + ], + [ + "ar", + 0.006666849367320538 + ], + [ + "km", + 0.006551101803779602 + ], + [ + "hu", + 0.0063847885467112064 + ], + [ + "th", + 0.006031486671417952 + ], + [ + "uk", + 0.005842127371579409 + ], + [ + "tl", + 0.005200542509555817 + ], + [ + "mi", + 0.004365543834865093 + ], + [ + "hi", + 0.0037120836786925793 + ], + [ + "br", + 0.003678116714581847 + ], + [ + "ta", + 0.003176128026098013 + ], + [ + "el", + 0.0028096726164221764 + ], + [ + "ml", + 0.002742454409599304 + ], + [ + "ro", + 0.0026684049516916275 + ], + [ + "gl", + 0.0024123424664139748 + ], + [ + "ur", + 0.0023023190442472696 + ], + [ + "te", + 0.0018027938203886151 + ], + [ + "no", + 0.001716580125503242 + ], + [ + "ne", + 0.0016587411519140005 + ], + [ + "sn", + 0.0014760340563952923 + ], + [ + "fo", + 0.00137498346157372 + ], + [ + "mn", + 0.0013414076529443264 + ], + [ + "sa", + 0.0012950410600751638 + ], + [ + "cs", + 0.00122535799164325 + ], + [ + "bg", + 0.0011755574960261583 + ], + [ + "ca", + 0.0011516399681568146 + ], + [ + "bs", + 0.001053916639648378 + ], + [ + "bn", + 0.0010007816599681973 + ], + [ + "hr", + 0.0009785117581486702 + ], + [ + "eu", + 0.0008765786769799888 + ], + [ + "fa", + 0.0007921901997178793 + ], + [ + "et", + 0.0007305101025849581 + ], + [ + "sl", + 0.0007276523974724114 + ], + [ + "da", + 0.000695452035870403 + ], + [ + "si", + 0.0006407470209524035 + ], + [ + "he", + 0.0005937076057307422 + ], + [ + "sd", + 0.0005933340871706605 + ], + [ + "yo", + 0.0005284252692945302 + ], + [ + "bo", + 0.0005179877043701708 + ], + [ + "is", + 0.0004880581982433796 + ], + [ + "my", + 0.00047765023191459477 + ], + [ + "lt", + 0.00037075637374073267 + ], + [ + "ht", + 0.0003670670266728848 + ], + [ + "oc", + 0.0003156816528644413 + ], + [ + "be", + 0.00031381953158415854 + ], + [ + "lv", + 0.0002926933520939201 + ], + [ + "sr", + 0.0002914203505497426 + ], + [ + "mr", + 0.0002775697212200612 + ], + [ + "yi", + 0.00024965734337456524 + ], + [ + "az", + 0.00021990398818161339 + ], + [ + "sw", + 0.00021845825540367514 + ], + [ + "sk", + 0.00021347928850445896 + ], + [ + "gu", + 0.00018636215827427804 + ], + [ + "pa", + 0.00018254252790939063 + ], + [ + "hy", + 0.00017403163656126708 + ], + [ + "af", + 0.00015788109158165753 + ], + [ + "kn", + 0.00014060130342841148 + ], + [ + "ka", + 0.00012093139230273664 + ], + [ + "sq", + 9.019481512950733e-05 + ], + [ + "mk", + 8.083099237410352e-05 + ], + [ + "kk", + 8.047294249990955e-05 + ], + [ + "as", + 6.985951768001541e-05 + ], + [ + "ps", + 5.751569551648572e-05 + ], + [ + "mt", + 5.6755830883048475e-05 + ], + [ + "lo", + 5.058529495727271e-05 + ], + [ + "ln", + 4.556696876534261e-05 + ], + [ + "am", + 3.88264270441141e-05 + ], + [ + "so", + 1.8411701603326946e-05 + ], + [ + "tg", + 1.45881188018393e-06 + ], + [ + "tt", + 8.214946660700662e-07 + ], + [ + "su", + 8.056078399931721e-07 + ], + [ + "lb", + 4.6446947976619413e-07 + ], + [ + "ha", + 2.509659395855124e-07 + ], + [ + "mg", + 2.0448656812277477e-07 + ], + [ + "tk", + 1.6693353188657056e-07 + ], + [ + "ba", + 1.3689005129435827e-07 + ], + [ + "uz", + 1.826842677132845e-08 + ] + ], + "transcription_options": { + "beam_size": 5, + "best_of": 5, + "patience": 1, + "length_penalty": 1, + "repetition_penalty": 1, + "no_repeat_ngram_size": 0, + "log_prob_threshold": -1.0, + "no_speech_threshold": 0.6, + "compression_ratio_threshold": 2.4, + "condition_on_previous_text": true, + "prompt_reset_on_temperature": 0.5, + "temperatures": [ + 0.0, + 0.2, + 0.4, + 0.6, + 0.8, + 1.0 + ], + "initial_prompt": null, + "prefix": null, + "suppress_blank": true, + "suppress_tokens": [ + 1, + 2, + 7, + 8, + 9, + 10, + 14, + 25, + 26, + 27, + 28, + 29, + 31, + 58, + 59, + 60, + 61, + 62, + 63, + 90, + 91, + 92, + 93, + 359, + 503, + 522, + 542, + 873, + 893, + 902, + 918, + 922, + 931, + 1350, + 1853, + 1982, + 2460, + 2627, + 3246, + 3253, + 3268, + 3536, + 3846, + 3961, + 4183, + 4667, + 6585, + 6647, + 7273, + 9061, + 9383, + 10428, + 10929, + 11938, + 12033, + 12331, + 12562, + 13793, + 14157, + 14635, + 15265, + 15618, + 16553, + 16604, + 18362, + 18956, + 20075, + 21675, + 22520, + 26130, + 26161, + 26435, + 28279, + 29464, + 31650, + 32302, + 32470, + 36865, + 42863, + 47425, + 49870, + 50254, + 50258, + 50358, + 50359, + 50360, + 50361, + 50362 + ], + "without_timestamps": false, + "max_initial_timestamp": 1.0, + "word_timestamps": false, + "prepend_punctuations": "\"'“¿([{-", + "append_punctuations": "\"'.。,,!!??::”)]}、", + "multilingual": false, + "max_new_tokens": null, + "clip_timestamps": [ + 0.0 + ], + "hallucination_silence_threshold": null, + "hotwords": null + }, + "vad_options": null + } + }, + { + "environmentId": "subway", + "file": "public/ambience/subway.wav", + "sha256": "9faf70b68617d267b367a0f3692ed90015458543ab4b0844f6c704e6a724728f", + "bytes": 576044, + "durationSeconds": 12.0, + "selectedSegmentStartSeconds": 65, + "sourceSha256": "41fcf064cde53cef1528fe98721347851e60c070d8ff9f213f354025cf272d4c", + "language": "en", + "languageProbability": 0.28915584087371826, + "segments": [ + { + "id": 1, + "seek": 0, + "start": 0.0, + "end": 7.0, + "text": " Thank you for watching.", + "tokens": [ + 50364, + 1044, + 291, + 337, + 1976, + 13, + 50714 + ], + "avg_logprob": -1.1550373882055283, + "compression_ratio": 0.7419354838709677, + "no_speech_prob": 0.5948910713195801, + "words": null, + "temperature": 1.0 + } + ], + "text": " Thank you for watching.", + "info": { + "language": "en", + "language_probability": 0.28915584087371826, + "duration": 12.0, + "duration_after_vad": 12.0, + "all_language_probs": [ + [ + "en", + 0.28915584087371826 + ], + [ + "nn", + 0.1693631410598755 + ], + [ + "ja", + 0.11803476512432098 + ], + [ + "jw", + 0.05933638662099838 + ], + [ + "ko", + 0.03362409397959709 + ], + [ + "ru", + 0.03096536174416542 + ], + [ + "zh", + 0.030727406963706017 + ], + [ + "cy", + 0.022334739565849304 + ], + [ + "de", + 0.021087361499667168 + ], + [ + "pt", + 0.01779017224907875 + ], + [ + "es", + 0.01759237051010132 + ], + [ + "fr", + 0.015626264736056328 + ], + [ + "la", + 0.015205309726297855 + ], + [ + "pl", + 0.014201360754668713 + ], + [ + "uk", + 0.010455281473696232 + ], + [ + "nl", + 0.01011310052126646 + ], + [ + "vi", + 0.008710349909961224 + ], + [ + "ms", + 0.007713954895734787 + ], + [ + "km", + 0.007671126630157232 + ], + [ + "mi", + 0.007628215476870537 + ], + [ + "ar", + 0.007582304533571005 + ], + [ + "ro", + 0.007096337620168924 + ], + [ + "it", + 0.00608866149559617 + ], + [ + "tr", + 0.005928776226937771 + ], + [ + "haw", + 0.00468703918159008 + ], + [ + "id", + 0.004124944563955069 + ], + [ + "th", + 0.004044169560074806 + ], + [ + "hu", + 0.003919548820704222 + ], + [ + "fi", + 0.0034936442971229553 + ], + [ + "sv", + 0.0034291110932826996 + ], + [ + "tl", + 0.0030384904239326715 + ], + [ + "gl", + 0.002831952413544059 + ], + [ + "br", + 0.0024798137601464987 + ], + [ + "el", + 0.002284045098349452 + ], + [ + "mn", + 0.0019520550267770886 + ], + [ + "cs", + 0.0019138115458190441 + ], + [ + "ur", + 0.0018359908135607839 + ], + [ + "ml", + 0.001799243618734181 + ], + [ + "hi", + 0.0016817081486806273 + ], + [ + "sn", + 0.0016395524144172668 + ], + [ + "he", + 0.0015351868933066726 + ], + [ + "fo", + 0.0012798592215403914 + ], + [ + "bn", + 0.0011803082888945937 + ], + [ + "bg", + 0.0011647996725514531 + ], + [ + "sa", + 0.0010189915774390101 + ], + [ + "ca", + 0.0009957606671378016 + ], + [ + "ta", + 0.0009402522700838745 + ], + [ + "no", + 0.0007946531404741108 + ], + [ + "fa", + 0.0007732976810075343 + ], + [ + "da", + 0.0006840363494120538 + ], + [ + "sl", + 0.0006514036795124412 + ], + [ + "eu", + 0.0006392901414074004 + ], + [ + "ne", + 0.0006373554933816195 + ], + [ + "te", + 0.0005383870447985828 + ], + [ + "yo", + 0.0005277472082525492 + ], + [ + "mr", + 0.00044607152813114226 + ], + [ + "yi", + 0.00043996257591061294 + ], + [ + "my", + 0.0004386372456792742 + ], + [ + "hr", + 0.0004154419293627143 + ], + [ + "sd", + 0.0004072552255820483 + ], + [ + "bo", + 0.00040412391535937786 + ], + [ + "be", + 0.00039997833664529026 + ], + [ + "ht", + 0.0003732247569132596 + ], + [ + "bs", + 0.0003598557668738067 + ], + [ + "oc", + 0.0003569869149941951 + ], + [ + "hy", + 0.0003474977856967598 + ], + [ + "si", + 0.0002904074499383569 + ], + [ + "af", + 0.0002772034495137632 + ], + [ + "az", + 0.00027386227156966925 + ], + [ + "ka", + 0.00022625118435826153 + ], + [ + "is", + 0.00021034516976214945 + ], + [ + "sk", + 0.00020800353377126157 + ], + [ + "sw", + 0.00020667693752329797 + ], + [ + "et", + 0.00016407888324465603 + ], + [ + "lv", + 0.00014712949632667005 + ], + [ + "sr", + 0.00012570350372698158 + ], + [ + "lt", + 0.0001211818671436049 + ], + [ + "ps", + 0.00010412423580419272 + ], + [ + "kk", + 8.892994810594246e-05 + ], + [ + "pa", + 7.666285091545433e-05 + ], + [ + "gu", + 7.527173147536814e-05 + ], + [ + "sq", + 7.081842340994626e-05 + ], + [ + "mt", + 6.48959685349837e-05 + ], + [ + "kn", + 5.677832814399153e-05 + ], + [ + "as", + 5.6724744354141876e-05 + ], + [ + "mk", + 5.6454689911333844e-05 + ], + [ + "ln", + 4.989469744032249e-05 + ], + [ + "lo", + 4.770006489707157e-05 + ], + [ + "am", + 4.289328717277385e-05 + ], + [ + "so", + 1.4930556972103659e-05 + ], + [ + "tg", + 1.655060032135225e-06 + ], + [ + "lb", + 1.020634613269067e-06 + ], + [ + "tt", + 7.866203759476775e-07 + ], + [ + "su", + 5.193603556108428e-07 + ], + [ + "ha", + 3.4847025176532043e-07 + ], + [ + "mg", + 1.8038738858194847e-07 + ], + [ + "tk", + 1.423035058678579e-07 + ], + [ + "ba", + 1.1261751353686122e-07 + ], + [ + "uz", + 2.322839343094074e-08 + ] + ], + "transcription_options": { + "beam_size": 5, + "best_of": 5, + "patience": 1, + "length_penalty": 1, + "repetition_penalty": 1, + "no_repeat_ngram_size": 0, + "log_prob_threshold": -1.0, + "no_speech_threshold": 0.6, + "compression_ratio_threshold": 2.4, + "condition_on_previous_text": true, + "prompt_reset_on_temperature": 0.5, + "temperatures": [ + 0.0, + 0.2, + 0.4, + 0.6, + 0.8, + 1.0 + ], + "initial_prompt": null, + "prefix": null, + "suppress_blank": true, + "suppress_tokens": [ + 1, + 2, + 7, + 8, + 9, + 10, + 14, + 25, + 26, + 27, + 28, + 29, + 31, + 58, + 59, + 60, + 61, + 62, + 63, + 90, + 91, + 92, + 93, + 359, + 503, + 522, + 542, + 873, + 893, + 902, + 918, + 922, + 931, + 1350, + 1853, + 1982, + 2460, + 2627, + 3246, + 3253, + 3268, + 3536, + 3846, + 3961, + 4183, + 4667, + 6585, + 6647, + 7273, + 9061, + 9383, + 10428, + 10929, + 11938, + 12033, + 12331, + 12562, + 13793, + 14157, + 14635, + 15265, + 15618, + 16553, + 16604, + 18362, + 18956, + 20075, + 21675, + 22520, + 26130, + 26161, + 26435, + 28279, + 29464, + 31650, + 32302, + 32470, + 36865, + 42863, + 47425, + 49870, + 50254, + 50258, + 50358, + 50359, + 50360, + 50361, + 50362 + ], + "without_timestamps": false, + "max_initial_timestamp": 1.0, + "word_timestamps": false, + "prepend_punctuations": "\"'“¿([{-", + "append_punctuations": "\"'.。,,!!??::”)]}、", + "multilingual": false, + "max_new_tokens": null, + "clip_timestamps": [ + 0.0 + ], + "hallucination_silence_threshold": null, + "hotwords": null + }, + "vad_options": null + } + }, + { + "environmentId": "cafe", + "file": "public/ambience/cafe.wav", + "sha256": "802a956e91b85a2fdd0e1f161d75bfada7a53499bcb57ba7f578411480ded216", + "bytes": 576044, + "durationSeconds": 12.0, + "selectedSegmentStartSeconds": 180, + "sourceSha256": "6360791fdcee1f64638f0fc9abd6d2c7a1aa75fd3d2b80033170a02d025099dc", + "language": "en", + "languageProbability": 0.25277179479599, + "segments": [ + { + "id": 1, + "seek": 0, + "start": 0.0, + "end": 12.0, + "text": " Thank you for watching.", + "tokens": [ + 50364, + 1044, + 291, + 337, + 1976, + 13, + 50964 + ], + "avg_logprob": -1.174854263663292, + "compression_ratio": 0.7419354838709677, + "no_speech_prob": 0.46528390049934387, + "words": null, + "temperature": 1.0 + } + ], + "text": " Thank you for watching.", + "info": { + "language": "en", + "language_probability": 0.25277179479599, + "duration": 12.0, + "duration_after_vad": 12.0, + "all_language_probs": [ + [ + "en", + 0.25277179479599 + ], + [ + "ja", + 0.1837129145860672 + ], + [ + "nn", + 0.08806584030389786 + ], + [ + "ko", + 0.06835765391588211 + ], + [ + "jw", + 0.06396833807229996 + ], + [ + "zh", + 0.04461584985256195 + ], + [ + "ru", + 0.043603695929050446 + ], + [ + "pt", + 0.02162773907184601 + ], + [ + "de", + 0.016684655100107193 + ], + [ + "pl", + 0.01636171154677868 + ], + [ + "fr", + 0.01596103236079216 + ], + [ + "la", + 0.01374192163348198 + ], + [ + "nl", + 0.012101612985134125 + ], + [ + "cy", + 0.01083532627671957 + ], + [ + "uk", + 0.008698850870132446 + ], + [ + "it", + 0.008505879901349545 + ], + [ + "vi", + 0.007539062760770321 + ], + [ + "km", + 0.00729911495000124 + ], + [ + "ro", + 0.006897915620356798 + ], + [ + "ms", + 0.0065629007294774055 + ], + [ + "es", + 0.006429711356759071 + ], + [ + "th", + 0.00632438575848937 + ], + [ + "haw", + 0.00609162263572216 + ], + [ + "br", + 0.006054451689124107 + ], + [ + "tr", + 0.005411623511463404 + ], + [ + "sv", + 0.0047093648463487625 + ], + [ + "id", + 0.004478011280298233 + ], + [ + "ar", + 0.004346380475908518 + ], + [ + "hi", + 0.004210968967527151 + ], + [ + "el", + 0.0036163439508527517 + ], + [ + "ta", + 0.0036158128641545773 + ], + [ + "mi", + 0.00321488780900836 + ], + [ + "sn", + 0.0030714115127921104 + ], + [ + "bg", + 0.002895898884162307 + ], + [ + "fi", + 0.002685027662664652 + ], + [ + "hu", + 0.002524691866710782 + ], + [ + "he", + 0.0019229239551350474 + ], + [ + "ur", + 0.0018139759777113795 + ], + [ + "ml", + 0.0018090730300173163 + ], + [ + "sa", + 0.0017924869898706675 + ], + [ + "cs", + 0.0017915265634655952 + ], + [ + "tl", + 0.0017146705649793148 + ], + [ + "bn", + 0.0015494510298594832 + ], + [ + "gl", + 0.0014434319455176592 + ], + [ + "te", + 0.0013925954699516296 + ], + [ + "mn", + 0.0012634304584935308 + ], + [ + "yo", + 0.0011347881518304348 + ], + [ + "ca", + 0.0009590118424966931 + ], + [ + "fo", + 0.0009055256959982216 + ], + [ + "hr", + 0.0006694837938994169 + ], + [ + "fa", + 0.0006535256979987025 + ], + [ + "eu", + 0.0006242599920369685 + ], + [ + "sl", + 0.0006145315710455179 + ], + [ + "yi", + 0.0006012419471517205 + ], + [ + "oc", + 0.0005972378421574831 + ], + [ + "no", + 0.0005867576692253351 + ], + [ + "bo", + 0.000586249225307256 + ], + [ + "hy", + 0.0005702449707314372 + ], + [ + "ne", + 0.0005623158649541438 + ], + [ + "bs", + 0.000536212872248143 + ], + [ + "sd", + 0.000528552511241287 + ], + [ + "my", + 0.0005036703660152853 + ], + [ + "be", + 0.00047387342783622444 + ], + [ + "da", + 0.00043586918036453426 + ], + [ + "ht", + 0.0003941136528737843 + ], + [ + "mr", + 0.00039173997356556356 + ], + [ + "si", + 0.0003665560798253864 + ], + [ + "sr", + 0.0002610220399219543 + ], + [ + "az", + 0.0002525894669815898 + ], + [ + "sw", + 0.0002367393026361242 + ], + [ + "sk", + 0.00023118137323763222 + ], + [ + "gu", + 0.0001958012580871582 + ], + [ + "lv", + 0.00019452799460850656 + ], + [ + "af", + 0.0001830396067816764 + ], + [ + "lt", + 0.00017543336434755474 + ], + [ + "ka", + 0.0001753017568262294 + ], + [ + "et", + 0.00016050174599513412 + ], + [ + "is", + 0.00015617643657606095 + ], + [ + "kn", + 0.0001334395637968555 + ], + [ + "pa", + 0.00011736652959370986 + ], + [ + "ps", + 0.00011018916848115623 + ], + [ + "kk", + 0.00010950383875751868 + ], + [ + "sq", + 0.00010514975292608142 + ], + [ + "mk", + 9.644175588618964e-05 + ], + [ + "as", + 9.391592175234109e-05 + ], + [ + "lo", + 7.69794060033746e-05 + ], + [ + "mt", + 6.017489795340225e-05 + ], + [ + "ln", + 4.337861901149154e-05 + ], + [ + "am", + 3.270348679507151e-05 + ], + [ + "so", + 1.0643788300512824e-05 + ], + [ + "tg", + 1.5167303217822337e-06 + ], + [ + "tt", + 7.135560622373305e-07 + ], + [ + "lb", + 5.991132070448657e-07 + ], + [ + "su", + 5.15013482527138e-07 + ], + [ + "ha", + 2.236176754877306e-07 + ], + [ + "mg", + 1.6373378741718625e-07 + ], + [ + "tk", + 1.588871754165666e-07 + ], + [ + "ba", + 1.38831097729053e-07 + ], + [ + "uz", + 1.7030190591071914e-08 + ] + ], + "transcription_options": { + "beam_size": 5, + "best_of": 5, + "patience": 1, + "length_penalty": 1, + "repetition_penalty": 1, + "no_repeat_ngram_size": 0, + "log_prob_threshold": -1.0, + "no_speech_threshold": 0.6, + "compression_ratio_threshold": 2.4, + "condition_on_previous_text": true, + "prompt_reset_on_temperature": 0.5, + "temperatures": [ + 0.0, + 0.2, + 0.4, + 0.6, + 0.8, + 1.0 + ], + "initial_prompt": null, + "prefix": null, + "suppress_blank": true, + "suppress_tokens": [ + 1, + 2, + 7, + 8, + 9, + 10, + 14, + 25, + 26, + 27, + 28, + 29, + 31, + 58, + 59, + 60, + 61, + 62, + 63, + 90, + 91, + 92, + 93, + 359, + 503, + 522, + 542, + 873, + 893, + 902, + 918, + 922, + 931, + 1350, + 1853, + 1982, + 2460, + 2627, + 3246, + 3253, + 3268, + 3536, + 3846, + 3961, + 4183, + 4667, + 6585, + 6647, + 7273, + 9061, + 9383, + 10428, + 10929, + 11938, + 12033, + 12331, + 12562, + 13793, + 14157, + 14635, + 15265, + 15618, + 16553, + 16604, + 18362, + 18956, + 20075, + 21675, + 22520, + 26130, + 26161, + 26435, + 28279, + 29464, + 31650, + 32302, + 32470, + 36865, + 42863, + 47425, + 49870, + 50254, + 50258, + 50358, + 50359, + 50360, + 50361, + 50362 + ], + "without_timestamps": false, + "max_initial_timestamp": 1.0, + "word_timestamps": false, + "prepend_punctuations": "\"'“¿([{-", + "append_punctuations": "\"'.。,,!!??::”)]}、", + "multilingual": false, + "max_new_tokens": null, + "clip_timestamps": [ + 0.0 + ], + "hallucination_silence_threshold": null, + "hotwords": null + }, + "vad_options": null + } + }, + { + "environmentId": "rain", + "file": "public/ambience/rain.wav", + "sha256": "f4315084e820f742b0709de5bb0d1abd3d5af1730620e08c2948b70347356dd9", + "bytes": 576044, + "durationSeconds": 12.0, + "selectedSegmentStartSeconds": 180, + "sourceSha256": "ef0511593b1bb0ba47d5c5dafd83eb07ba854b5a65fd5d41b8c76a1b3ff2c22a", + "language": "nn", + "languageProbability": 0.5633389949798584, + "segments": [ + { + "id": 1, + "seek": 0, + "start": 0.0, + "end": 2.0, + "text": " Let's go!", + "tokens": [ + 50364, + 961, + 311, + 352, + 0, + 50464 + ], + "avg_logprob": -1.2815486363002233, + "compression_ratio": 0.5294117647058824, + "no_speech_prob": 0.4753601849079132, + "words": null, + "temperature": 1.0 + } + ], + "text": " Let's go!", + "info": { + "language": "nn", + "language_probability": 0.5633389949798584, + "duration": 12.0, + "duration_after_vad": 12.0, + "all_language_probs": [ + [ + "nn", + 0.5633389949798584 + ], + [ + "en", + 0.19288070499897003 + ], + [ + "ja", + 0.061488956212997437 + ], + [ + "ru", + 0.043278153985738754 + ], + [ + "zh", + 0.019148217514157295 + ], + [ + "fr", + 0.016931571066379547 + ], + [ + "ko", + 0.014599142596125603 + ], + [ + "cy", + 0.012626229785382748 + ], + [ + "de", + 0.011386370286345482 + ], + [ + "pl", + 0.00954439491033554 + ], + [ + "la", + 0.008334594778716564 + ], + [ + "nl", + 0.006606897339224815 + ], + [ + "pt", + 0.005276457406580448 + ], + [ + "it", + 0.004949106834828854 + ], + [ + "es", + 0.004673764109611511 + ], + [ + "haw", + 0.002406542655080557 + ], + [ + "sv", + 0.002192482352256775 + ], + [ + "jw", + 0.0021281337831169367 + ], + [ + "tr", + 0.0020784807857125998 + ], + [ + "ar", + 0.0020567572209984064 + ], + [ + "ms", + 0.0015225106617435813 + ], + [ + "fi", + 0.0011349720880389214 + ], + [ + "br", + 0.001013672212138772 + ], + [ + "th", + 0.0008699038298800588 + ], + [ + "ro", + 0.000826466828584671 + ], + [ + "hu", + 0.0007259942358359694 + ], + [ + "uk", + 0.0006152127170935273 + ], + [ + "hi", + 0.0005684337229467928 + ], + [ + "el", + 0.0004689405905082822 + ], + [ + "vi", + 0.00042304364615119994 + ], + [ + "bg", + 0.0003978074819315225 + ], + [ + "ml", + 0.00034311338094994426 + ], + [ + "id", + 0.00032494988408870995 + ], + [ + "gl", + 0.0003136785817332566 + ], + [ + "cs", + 0.00030518416315317154 + ], + [ + "km", + 0.0002988689229823649 + ], + [ + "fo", + 0.00029011329752393067 + ], + [ + "mi", + 0.0002769167476799339 + ], + [ + "he", + 0.00026465015253052115 + ], + [ + "mn", + 0.0001690880162641406 + ], + [ + "bn", + 0.00015718871145509183 + ], + [ + "sn", + 0.00015648781845811754 + ], + [ + "ta", + 0.00015420574345625937 + ], + [ + "no", + 0.00015255316975526512 + ], + [ + "ur", + 0.00013181152462493628 + ], + [ + "ca", + 0.0001280055003007874 + ], + [ + "sa", + 0.00012102258915547282 + ], + [ + "sk", + 0.00011742245260393247 + ], + [ + "oc", + 0.00011698463640641421 + ], + [ + "da", + 0.00010923911759164184 + ], + [ + "sl", + 0.00010754060349427164 + ], + [ + "hr", + 9.633848094381392e-05 + ], + [ + "tl", + 9.61712357820943e-05 + ], + [ + "fa", + 9.236453479388729e-05 + ], + [ + "eu", + 9.038725693244487e-05 + ], + [ + "yo", + 8.429165609413758e-05 + ], + [ + "te", + 7.94818697613664e-05 + ], + [ + "af", + 7.879852637415752e-05 + ], + [ + "bo", + 7.65777804190293e-05 + ], + [ + "bs", + 6.30081704002805e-05 + ], + [ + "lv", + 5.4819400247652084e-05 + ], + [ + "yi", + 5.301545752445236e-05 + ], + [ + "lt", + 4.902454747934826e-05 + ], + [ + "my", + 4.7195757360896096e-05 + ], + [ + "be", + 4.419935430632904e-05 + ], + [ + "si", + 4.3933672714047134e-05 + ], + [ + "ne", + 4.141459794482216e-05 + ], + [ + "is", + 4.0472477849107236e-05 + ], + [ + "ht", + 3.84630766347982e-05 + ], + [ + "et", + 3.508515146677382e-05 + ], + [ + "sw", + 2.6730247554951347e-05 + ], + [ + "az", + 2.4934372049756348e-05 + ], + [ + "mr", + 2.473204949637875e-05 + ], + [ + "sd", + 2.317014877917245e-05 + ], + [ + "sq", + 2.260103792650625e-05 + ], + [ + "sr", + 2.11072874662932e-05 + ], + [ + "hy", + 1.8475568140274845e-05 + ], + [ + "ka", + 1.3406631296675187e-05 + ], + [ + "pa", + 1.2741802493110299e-05 + ], + [ + "mk", + 1.2546652214950882e-05 + ], + [ + "kk", + 1.1858737707370892e-05 + ], + [ + "mt", + 1.1552896467037499e-05 + ], + [ + "kn", + 1.030369912768947e-05 + ], + [ + "lo", + 5.989861165289767e-06 + ], + [ + "am", + 4.996818915969925e-06 + ], + [ + "as", + 4.2156239032919984e-06 + ], + [ + "ps", + 4.1910830077540595e-06 + ], + [ + "gu", + 3.876265964208869e-06 + ], + [ + "ln", + 3.7434938349178992e-06 + ], + [ + "so", + 1.2643891977859312e-06 + ], + [ + "tg", + 1.9545284146715858e-07 + ], + [ + "lb", + 1.6405122948981443e-07 + ], + [ + "tt", + 1.3962724665361748e-07 + ], + [ + "su", + 1.825249285047903e-08 + ], + [ + "tk", + 1.807128668929181e-08 + ], + [ + "mg", + 1.5554581622723163e-08 + ], + [ + "ba", + 1.3870384840686256e-08 + ], + [ + "ha", + 7.379866051593353e-09 + ], + [ + "uz", + 2.0299140146562422e-09 + ] + ], + "transcription_options": { + "beam_size": 5, + "best_of": 5, + "patience": 1, + "length_penalty": 1, + "repetition_penalty": 1, + "no_repeat_ngram_size": 0, + "log_prob_threshold": -1.0, + "no_speech_threshold": 0.6, + "compression_ratio_threshold": 2.4, + "condition_on_previous_text": true, + "prompt_reset_on_temperature": 0.5, + "temperatures": [ + 0.0, + 0.2, + 0.4, + 0.6, + 0.8, + 1.0 + ], + "initial_prompt": null, + "prefix": null, + "suppress_blank": true, + "suppress_tokens": [ + 1, + 2, + 7, + 8, + 9, + 10, + 14, + 25, + 26, + 27, + 28, + 29, + 31, + 58, + 59, + 60, + 61, + 62, + 63, + 90, + 91, + 92, + 93, + 359, + 503, + 522, + 542, + 873, + 893, + 902, + 918, + 922, + 931, + 1350, + 1853, + 1982, + 2460, + 2627, + 3246, + 3253, + 3268, + 3536, + 3846, + 3961, + 4183, + 4667, + 6585, + 6647, + 7273, + 9061, + 9383, + 10428, + 10929, + 11938, + 12033, + 12331, + 12562, + 13793, + 14157, + 14635, + 15265, + 15618, + 16553, + 16604, + 18362, + 18956, + 20075, + 21675, + 22520, + 26130, + 26161, + 26435, + 28279, + 29464, + 31650, + 32302, + 32470, + 36865, + 42863, + 47425, + 49870, + 50254, + 50258, + 50358, + 50359, + 50360, + 50361, + 50362 + ], + "without_timestamps": false, + "max_initial_timestamp": 1.0, + "word_timestamps": false, + "prepend_punctuations": "\"'“¿([{-", + "append_punctuations": "\"'.。,,!!??::”)]}、", + "multilingual": false, + "max_new_tokens": null, + "clip_timestamps": [ + 0.0 + ], + "hallucination_silence_threshold": null, + "hotwords": null + }, + "vad_options": null + } + } + ] +} diff --git a/.agent/evidence-v0.2.3/privacy-screening/npm-audit.json b/.agent/evidence-v0.2.3/privacy-screening/npm-audit.json new file mode 100644 index 0000000..c046bc2 --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/npm-audit.json @@ -0,0 +1,22 @@ +{ + "auditReportVersion": 2, + "vulnerabilities": {}, + "metadata": { + "vulnerabilities": { + "info": 0, + "low": 0, + "moderate": 0, + "high": 0, + "critical": 0, + "total": 0 + }, + "dependencies": { + "prod": 4, + "dev": 260, + "optional": 27, + "peer": 8, + "peerOptional": 0, + "total": 263 + } + } +} diff --git a/.agent/evidence-v0.2.3/privacy-screening/preservation.json b/.agent/evidence-v0.2.3/privacy-screening/preservation.json new file mode 100644 index 0000000..1780d5c --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/preservation.json @@ -0,0 +1,3268 @@ +{ + "verifiedAtUtc": "2026-10-14T09:23:08.802618+00:00", + "unchangedVoiceWavs": 101, + "unchangedAmbienceWavs": 5, + "changedAmbienceWavs": [ + "public/ambience/cafe.wav", + "public/ambience/mall.wav", + "public/ambience/market.wav" + ], + "historicalAgentFilesUnchanged": 397, + "trackedHistoricalAgentFilesMatchHead": 180, + "priorAgentFiles": [ + { + "file": ".agent/ACCEPTANCE-v0.1.1.md", + "beforeSha256": "7e9d5aa5c608d3d86c0c30a51a8322713a2c5d072e57002ac5af9b63127c68a5", + "afterSha256": "7e9d5aa5c608d3d86c0c30a51a8322713a2c5d072e57002ac5af9b63127c68a5" + }, + { + "file": ".agent/ACCEPTANCE-v0.2.3.md", + "beforeSha256": "4698a24cf492562c0f10b243c06a0ed2f930a9f0828f3ac08e0507d7a1cf7267", + "afterSha256": "4698a24cf492562c0f10b243c06a0ed2f930a9f0828f3ac08e0507d7a1cf7267" + }, + { + "file": ".agent/ACCEPTANCE.md", + "beforeSha256": "57598e4c5c37a658ce5fe366826983987178ed9c565355413ab3669c839eec78", + "afterSha256": "57598e4c5c37a658ce5fe366826983987178ed9c565355413ab3669c839eec78" + }, + { + "file": ".agent/CONTEXT.md", + "beforeSha256": "712bd056cfc8d0254d6c96e7a604d364779d3734d14899111792e7f343e6819b", + "afterSha256": "712bd056cfc8d0254d6c96e7a604d364779d3734d14899111792e7f343e6819b" + }, + { + "file": ".agent/RESULT-v0.1.1.md", + "beforeSha256": "d5d7077d4977d70a89086801dd8e7d5ae04e16a8e8009e41f3216008b743ac5b", + "afterSha256": "d5d7077d4977d70a89086801dd8e7d5ae04e16a8e8009e41f3216008b743ac5b" + }, + { + "file": ".agent/RESULT.md", + "beforeSha256": "eef6d73a67a8a7e90cd7b4747debc5976cc51571bc268328634413f698d0e311", + "afterSha256": "eef6d73a67a8a7e90cd7b4747debc5976cc51571bc268328634413f698d0e311" + }, + { + "file": ".agent/TASK-v0.1.1.md", + "beforeSha256": "4e4a81c02cf16ae8a2a6b53da8501de512b6a6387d7d4eaf932833c63ada4aa7", + "afterSha256": "4e4a81c02cf16ae8a2a6b53da8501de512b6a6387d7d4eaf932833c63ada4aa7" + }, + { + "file": ".agent/TASK-v0.2.3.md", + "beforeSha256": "46ae8118506c756b97e29424e580843d0557c2f663f069e9ae71c04904fafb18", + "afterSha256": "46ae8118506c756b97e29424e580843d0557c2f663f069e9ae71c04904fafb18" + }, + { + "file": ".agent/TASK.md", + "beforeSha256": "7e52739d5de3161aa60004ca8e65b5a5041d62c1b6a0e50c6c72ad8f6b183d61", + "afterSha256": "7e52739d5de3161aa60004ca8e65b5a5041d62c1b6a0e50c6c72ad8f6b183d61" + }, + { + "file": ".agent/evidence/01-content-green.log", + "beforeSha256": "5585acd257b49225218835acd69a1d240c7737d12dba62949f31a5b7c1c9ed2a", + "afterSha256": "5585acd257b49225218835acd69a1d240c7737d12dba62949f31a5b7c1c9ed2a" + }, + { + "file": ".agent/evidence/01-content-red.log", + "beforeSha256": "0f28fe2ae2c4669a52ba2fc15bfa6285e4922474dc2b2571098b522679948e12", + "afterSha256": "0f28fe2ae2c4669a52ba2fc15bfa6285e4922474dc2b2571098b522679948e12" + }, + { + "file": ".agent/evidence/02-game-green.log", + "beforeSha256": "5ca5895f8a09f4e9de7a846bf9ab37fb3715623e8e7654dab095505c097fc0c7", + "afterSha256": "5ca5895f8a09f4e9de7a846bf9ab37fb3715623e8e7654dab095505c097fc0c7" + }, + { + "file": ".agent/evidence/02-game-red.log", + "beforeSha256": "78468ee5c25c1685f3613926f636b6fb4569227533feda3547afc6b8123d6452", + "afterSha256": "78468ee5c25c1685f3613926f636b6fb4569227533feda3547afc6b8123d6452" + }, + { + "file": ".agent/evidence/03-dsp-green.log", + "beforeSha256": "d3d08683a1426b845a2e987572861b82b3ac978b8c352991950c0f32a473d3de", + "afterSha256": "d3d08683a1426b845a2e987572861b82b3ac978b8c352991950c0f32a473d3de" + }, + { + "file": ".agent/evidence/03-dsp-intermediate.log", + "beforeSha256": "084a52294f718718256eb1516048a672d045a5f7dcb5d11c646092d29efbab58", + "afterSha256": "084a52294f718718256eb1516048a672d045a5f7dcb5d11c646092d29efbab58" + }, + { + "file": ".agent/evidence/03-dsp-red.log", + "beforeSha256": "bacf42e5c808d32702b9bcd30523d1fcf17d5ff75b281233d9e84f33b6e42589", + "afterSha256": "bacf42e5c808d32702b9bcd30523d1fcf17d5ff75b281233d9e84f33b6e42589" + }, + { + "file": ".agent/evidence/04-audio-green.log", + "beforeSha256": "d48c93fa7d32315ed4f719dee19222e7398bc4c4bceb8cf345e0e221a9ac89d8", + "afterSha256": "d48c93fa7d32315ed4f719dee19222e7398bc4c4bceb8cf345e0e221a9ac89d8" + }, + { + "file": ".agent/evidence/04-audio-red.log", + "beforeSha256": "58bbf8eae572f83e408dd101eac738a5f6963550e21c8265f42a7eeba18be7a7", + "afterSha256": "58bbf8eae572f83e408dd101eac738a5f6963550e21c8265f42a7eeba18be7a7" + }, + { + "file": ".agent/evidence/05-assets-red.log", + "beforeSha256": "04388acb098f7dabe9a35783b496075ee7c39757d3fde5361c9ac080188ac371", + "afterSha256": "04388acb098f7dabe9a35783b496075ee7c39757d3fde5361c9ac080188ac371" + }, + { + "file": ".agent/evidence/06-ui-05-assets-green.log", + "beforeSha256": "ced2ad738cda673b24308dcb9d99d59e3ae918709eeb32de359d6ab1022133e2", + "afterSha256": "ced2ad738cda673b24308dcb9d99d59e3ae918709eeb32de359d6ab1022133e2" + }, + { + "file": ".agent/evidence/06-ui-intermediate.log", + "beforeSha256": "3295b3ae691dadb8feb7f0aaf604a1aa56cbfae27b5dbdd486cb5645f5edabe9", + "afterSha256": "3295b3ae691dadb8feb7f0aaf604a1aa56cbfae27b5dbdd486cb5645f5edabe9" + }, + { + "file": ".agent/evidence/06-ui-red.log", + "beforeSha256": "1f1ed6bd440af22f5abf59e4be194f969bee1d115d436a155d879d8cffddb747", + "afterSha256": "1f1ed6bd440af22f5abf59e4be194f969bee1d115d436a155d879d8cffddb747" + }, + { + "file": ".agent/evidence/07-build-green.log", + "beforeSha256": "ec98087d20a68c5b81c6c23406316f1e5f19c6124498e1fc005d04bb78894a57", + "afterSha256": "ec98087d20a68c5b81c6c23406316f1e5f19c6124498e1fc005d04bb78894a57" + }, + { + "file": ".agent/evidence/07-build-red.log", + "beforeSha256": "138802de7bc67c1535668efe7a915424a70d5d7994acb7f366a139e89c1da77f", + "afterSha256": "138802de7bc67c1535668efe7a915424a70d5d7994acb7f366a139e89c1da77f" + }, + { + "file": ".agent/evidence/08-rule-green.log", + "beforeSha256": "91b7ce3fda181fbe51cbe4e6debb61dd44dd55226dcfa81ed73559ba76811f3f", + "afterSha256": "91b7ce3fda181fbe51cbe4e6debb61dd44dd55226dcfa81ed73559ba76811f3f" + }, + { + "file": ".agent/evidence/08-rule-red.log", + "beforeSha256": "2cc1854cf6a4b9e8d53a7a36b1dde1fb6c6970b89f841b9e8f404e6e42bb929e", + "afterSha256": "2cc1854cf6a4b9e8d53a7a36b1dde1fb6c6970b89f841b9e8f404e6e42bb929e" + }, + { + "file": ".agent/evidence/09-ime-green.log", + "beforeSha256": "e5d5d1cfa2b6db724ded97d5f3309a517bcf637d9b2b417e9110dc9da0a48d72", + "afterSha256": "e5d5d1cfa2b6db724ded97d5f3309a517bcf637d9b2b417e9110dc9da0a48d72" + }, + { + "file": ".agent/evidence/09-ime-red.log", + "beforeSha256": "10e5f9f99609044c768cd338df0d574a06a7442e0debe0e61ca16a6b5873adf3", + "afterSha256": "10e5f9f99609044c768cd338df0d574a06a7442e0debe0e61ca16a6b5873adf3" + }, + { + "file": ".agent/evidence/10-ime-reset-green.log", + "beforeSha256": "e12761b3a2814a79d1448e7452474a086bf371921287718eb72dd9b0f6b8fc82", + "afterSha256": "e12761b3a2814a79d1448e7452474a086bf371921287718eb72dd9b0f6b8fc82" + }, + { + "file": ".agent/evidence/10-ime-reset-red.log", + "beforeSha256": "f6cb7c1724b8f9c410385e9970051577c03527fb7e719f43a77c967ca08ef18f", + "afterSha256": "f6cb7c1724b8f9c410385e9970051577c03527fb7e719f43a77c967ca08ef18f" + }, + { + "file": ".agent/evidence/11-provenance-green.log", + "beforeSha256": "54dcc417b97f82422c5c3e0ae11caa1f15a60412853ea1dc0152d15031bcd935", + "afterSha256": "54dcc417b97f82422c5c3e0ae11caa1f15a60412853ea1dc0152d15031bcd935" + }, + { + "file": ".agent/evidence/11-provenance-red.log", + "beforeSha256": "e69fa7989223e659c16b8030f8668e562ad5b0daa060fbb1c9eff41a37fd56fd", + "afterSha256": "e69fa7989223e659c16b8030f8668e562ad5b0daa060fbb1c9eff41a37fd56fd" + }, + { + "file": ".agent/evidence/12-ime-replay-green.log", + "beforeSha256": "a93d9f16c7d81ed5e9a7c0b70ffee1e393d2943ddf3149a5bb115c5517327c44", + "afterSha256": "a93d9f16c7d81ed5e9a7c0b70ffee1e393d2943ddf3149a5bb115c5517327c44" + }, + { + "file": ".agent/evidence/12-ime-replay-red.log", + "beforeSha256": "8cf5dab06d93cc544c21276ee633829f8b137b4b6d7c5fe47aadcad6fc2afb71", + "afterSha256": "8cf5dab06d93cc544c21276ee633829f8b137b4b6d7c5fe47aadcad6fc2afb71" + }, + { + "file": ".agent/evidence/13-heading-build-after.log", + "beforeSha256": "19829ac264f97aa023baf7d5e1fd429343272f3bd952e8b6dfb9eec0f594b453", + "afterSha256": "19829ac264f97aa023baf7d5e1fd429343272f3bd952e8b6dfb9eec0f594b453" + }, + { + "file": ".agent/evidence/13-heading-build-before.log", + "beforeSha256": "646d197d2ef93c19fec4719e20297de1b22eff54f3e6155ba2125fd3dd372c46", + "afterSha256": "646d197d2ef93c19fec4719e20297de1b22eff54f3e6155ba2125fd3dd372c46" + }, + { + "file": ".agent/evidence/13-heading-green.log", + "beforeSha256": "d59fa8546083e9d371c7a552287f27bf3acd572bd0cce3da8eba860da5c05880", + "afterSha256": "d59fa8546083e9d371c7a552287f27bf3acd572bd0cce3da8eba860da5c05880" + }, + { + "file": ".agent/evidence/13-heading-red.log", + "beforeSha256": "33acc2838786a87b8ecc170a1ac0a9d7521daf8e5b9aed2195e76e45ea327f76", + "afterSha256": "33acc2838786a87b8ecc170a1ac0a9d7521daf8e5b9aed2195e76e45ea327f76" + }, + { + "file": ".agent/evidence/14-snr-browser-green.log", + "beforeSha256": "fcb82296e9af4b96112fae0bbb77c6ba41230c117021243e85916ae1130a462d", + "afterSha256": "fcb82296e9af4b96112fae0bbb77c6ba41230c117021243e85916ae1130a462d" + }, + { + "file": ".agent/evidence/14-snr-browser-red.log", + "beforeSha256": "36298e5bb1f45a69b0ca75e5cbce85ee1455c4485759670268fbbcf55bacd4d4", + "afterSha256": "36298e5bb1f45a69b0ca75e5cbce85ee1455c4485759670268fbbcf55bacd4d4" + }, + { + "file": ".agent/evidence/14-snr-build.log", + "beforeSha256": "1e9ce36a48904a58195f9d1c2d9ca6cf2895fcb8bd0b5ab9b72f76e92c6b2585", + "afterSha256": "1e9ce36a48904a58195f9d1c2d9ca6cf2895fcb8bd0b5ab9b72f76e92c6b2585" + }, + { + "file": ".agent/evidence/14-snr-green.log", + "beforeSha256": "ae74e57cea20841299a8c1ee5eaf60efad34bda697339f45527cdec83578e6df", + "afterSha256": "ae74e57cea20841299a8c1ee5eaf60efad34bda697339f45527cdec83578e6df" + }, + { + "file": ".agent/evidence/14-snr-red.log", + "beforeSha256": "b39bdbd8815d0d9cfcedc41c61124afece2011ea6c6c250b0ee0139eae7e9edd", + "afterSha256": "b39bdbd8815d0d9cfcedc41c61124afece2011ea6c6c250b0ee0139eae7e9edd" + }, + { + "file": ".agent/evidence/15-volume-browser-green.log", + "beforeSha256": "aeccd5f13eb9db4062cbf2c70eee332d0c39540d580e113d0a79a899b2ef02de", + "afterSha256": "aeccd5f13eb9db4062cbf2c70eee332d0c39540d580e113d0a79a899b2ef02de" + }, + { + "file": ".agent/evidence/15-volume-browser-red.log", + "beforeSha256": "84954280c1729703f9e9c2680c8933c3b0752b19fb9c3562e7dbf2ea1b4a548c", + "afterSha256": "84954280c1729703f9e9c2680c8933c3b0752b19fb9c3562e7dbf2ea1b4a548c" + }, + { + "file": ".agent/evidence/15-volume-build.log", + "beforeSha256": "2767b794124804b3447f529eef025e2530975fcc506e1cbe8994acf8243e6ba8", + "afterSha256": "2767b794124804b3447f529eef025e2530975fcc506e1cbe8994acf8243e6ba8" + }, + { + "file": ".agent/evidence/15-volume-green.log", + "beforeSha256": "0f9a90923f4fdc477c8f2436653eb2bf0e4b251bcb52e795701309ba14f23c7d", + "afterSha256": "0f9a90923f4fdc477c8f2436653eb2bf0e4b251bcb52e795701309ba14f23c7d" + }, + { + "file": ".agent/evidence/15-volume-red.log", + "beforeSha256": "9beae6305080cd0d869bf3fd2093beb6e2e25e5424223aa7e4ad4db96954f37e", + "afterSha256": "9beae6305080cd0d869bf3fd2093beb6e2e25e5424223aa7e4ad4db96954f37e" + }, + { + "file": ".agent/evidence/16-copy-green.log", + "beforeSha256": "dacbdbab5d4af2b6e19eb4e0502a70720aac9fb6cf3b9d6dfdc73a5bf7edabfe", + "afterSha256": "dacbdbab5d4af2b6e19eb4e0502a70720aac9fb6cf3b9d6dfdc73a5bf7edabfe" + }, + { + "file": ".agent/evidence/16-copy-red.log", + "beforeSha256": "ebe3d7c86938d33d7f1a4818b18c7e94ab8feb18bee099fcb535a93d8083861b", + "afterSha256": "ebe3d7c86938d33d7f1a4818b18c7e94ab8feb18bee099fcb535a93d8083861b" + }, + { + "file": ".agent/evidence/17-spacing-green.log", + "beforeSha256": "8ab85362ceadcdfecf4f7b1e95abfb4237e15018692e14f937be90265c351b11", + "afterSha256": "8ab85362ceadcdfecf4f7b1e95abfb4237e15018692e14f937be90265c351b11" + }, + { + "file": ".agent/evidence/17-spacing-red.log", + "beforeSha256": "12db8083cd8627a81a52cd32358780a3c2257cb3bd702350b190b39226f6550f", + "afterSha256": "12db8083cd8627a81a52cd32358780a3c2257cb3bd702350b190b39226f6550f" + }, + { + "file": ".agent/evidence/18-literal-green.log", + "beforeSha256": "878a8d788a8cedbf652fe0e819fe482099249a52ae7b5cc3d8826e64b32c6377", + "afterSha256": "878a8d788a8cedbf652fe0e819fe482099249a52ae7b5cc3d8826e64b32c6377" + }, + { + "file": ".agent/evidence/18-literal-red.log", + "beforeSha256": "ad23ae7be3d9aab83907c12849012a01f9d1b12e5a174c3acede89817a74d2d2", + "afterSha256": "ad23ae7be3d9aab83907c12849012a01f9d1b12e5a174c3acede89817a74d2d2" + }, + { + "file": ".agent/evidence/19-notices-green.log", + "beforeSha256": "efc51aca0738f3cb5264ec3c3ad0d17bb150d685f5fdb5e200bc1eedc0e3c02b", + "afterSha256": "efc51aca0738f3cb5264ec3c3ad0d17bb150d685f5fdb5e200bc1eedc0e3c02b" + }, + { + "file": ".agent/evidence/19-notices-red.log", + "beforeSha256": "8f34c583cb8563803828d72fe56622d84bcf59a9541d983d6c0b705225955794", + "afterSha256": "8f34c583cb8563803828d72fe56622d84bcf59a9541d983d6c0b705225955794" + }, + { + "file": ".agent/evidence/20-audio-generate.log", + "beforeSha256": "f864fc266f7ca50c600457399f198a77949e9ee1601b0d2fc19b64942a2030cb", + "afterSha256": "f864fc266f7ca50c600457399f198a77949e9ee1601b0d2fc19b64942a2030cb" + }, + { + "file": ".agent/evidence/20-audio-green.log", + "beforeSha256": "edb9b9f0aa1af11835960eee9bb6e8c013341aa528d2857bac0b89ac38457528", + "afterSha256": "edb9b9f0aa1af11835960eee9bb6e8c013341aa528d2857bac0b89ac38457528" + }, + { + "file": ".agent/evidence/20-audio-red.log", + "beforeSha256": "c1cbd5b585e8a70e23b88bfcee0c6479f85fdec0d1e06d13c81c689a140c0ac0", + "afterSha256": "c1cbd5b585e8a70e23b88bfcee0c6479f85fdec0d1e06d13c81c689a140c0ac0" + }, + { + "file": ".agent/evidence/20-mechanics-green.log", + "beforeSha256": "9776c68143f668e35df8b2e19884b25d2369e4800b4c264e635d0c260818c5f1", + "afterSha256": "9776c68143f668e35df8b2e19884b25d2369e4800b4c264e635d0c260818c5f1" + }, + { + "file": ".agent/evidence/20-mechanics-red.log", + "beforeSha256": "d25a1c844366e14fe1db9bb7c243fe0adb6857ee5b4548cf2865de96589af647", + "afterSha256": "d25a1c844366e14fe1db9bb7c243fe0adb6857ee5b4548cf2865de96589af647" + }, + { + "file": ".agent/evidence/21-node-green.log", + "beforeSha256": "3c36e9e45b6844ae2c184f943b61195482d9de53ceab06221093c8281d210d73", + "afterSha256": "3c36e9e45b6844ae2c184f943b61195482d9de53ceab06221093c8281d210d73" + }, + { + "file": ".agent/evidence/21-node-red.log", + "beforeSha256": "ee25556037bdbd6b099dbb087a522284e8df00bd573dfcf0e42c734e31e09e84", + "afterSha256": "ee25556037bdbd6b099dbb087a522284e8df00bd573dfcf0e42c734e31e09e84" + }, + { + "file": ".agent/evidence/22-sandbox-green.log", + "beforeSha256": "e8a1a17e49c22dea81d7f85111c744473427466791ddeda75047cd0082e7faba", + "afterSha256": "e8a1a17e49c22dea81d7f85111c744473427466791ddeda75047cd0082e7faba" + }, + { + "file": ".agent/evidence/22-sandbox-red.log", + "beforeSha256": "c8a97270f0f68367d6edb3e5ee10f34bbda1127f8dae2c5639afd482198e7bcd", + "afterSha256": "c8a97270f0f68367d6edb3e5ee10f34bbda1127f8dae2c5639afd482198e7bcd" + }, + { + "file": ".agent/evidence/23-delivery-browser-red.log", + "beforeSha256": "180a61bbacf85db9e52f721b50da683103b719bc350454cc99d4c8954b2ae86e", + "afterSha256": "180a61bbacf85db9e52f721b50da683103b719bc350454cc99d4c8954b2ae86e" + }, + { + "file": ".agent/evidence/24-retry-audio-budget.log", + "beforeSha256": "b9241872b4ecd80265df4c6c2be90b31e9de4d0754772655e50b7fb4f05e2d3b", + "afterSha256": "b9241872b4ecd80265df4c6c2be90b31e9de4d0754772655e50b7fb4f05e2d3b" + }, + { + "file": ".agent/evidence/24-retry-final-browser.log", + "beforeSha256": "68029aae89adf86fd60ee56a20a1e2f769cb4f894f27ae23963ca5b5b58c62c4", + "afterSha256": "68029aae89adf86fd60ee56a20a1e2f769cb4f894f27ae23963ca5b5b58c62c4" + }, + { + "file": ".agent/evidence/24-retry-final-build.log", + "beforeSha256": "702c20554872e437137097ca59a80d911188477f018bc48c4b49a770b73d5a84", + "afterSha256": "702c20554872e437137097ca59a80d911188477f018bc48c4b49a770b73d5a84" + }, + { + "file": ".agent/evidence/24-retry-final-lint.log", + "beforeSha256": "8682ca1f55e3ec58f13321cc339c8647ef72c1934d74ea9b980aee717e528819", + "afterSha256": "8682ca1f55e3ec58f13321cc339c8647ef72c1934d74ea9b980aee717e528819" + }, + { + "file": ".agent/evidence/24-retry-final-test.log", + "beforeSha256": "b71bb1375a039bcc3d7b3c5070da85ece3551f32ae1b8bb3a2abc5ef1edd57b8", + "afterSha256": "b71bb1375a039bcc3d7b3c5070da85ece3551f32ae1b8bb3a2abc5ef1edd57b8" + }, + { + "file": ".agent/evidence/24-retry-integrity.log", + "beforeSha256": "a188fe54dce05f6caa868b3d9f2c22a852f6a8cdc462355673316578be623a08", + "afterSha256": "a188fe54dce05f6caa868b3d9f2c22a852f6a8cdc462355673316578be623a08" + }, + { + "file": ".agent/evidence/24-retry-targeted-green.log", + "beforeSha256": "4e53f2de988040540f5075b2e4a483ca53b671486c35e864fbc3c2c9c5361c61", + "afterSha256": "4e53f2de988040540f5075b2e4a483ca53b671486c35e864fbc3c2c9c5361c61" + }, + { + "file": ".agent/evidence/audio-reproduce.log", + "beforeSha256": "5f5726f3ed6845882c7a6d6f9a8d898c2b73bf61fa6328e8bbafd25f61ed4268", + "afterSha256": "5f5726f3ed6845882c7a6d6f9a8d898c2b73bf61fa6328e8bbafd25f61ed4268" + }, + { + "file": ".agent/evidence/browser-final.log", + "beforeSha256": "9273c91613160e239027452894b3735f9657ccad97a52412eb889290aebd5adf", + "afterSha256": "9273c91613160e239027452894b3735f9657ccad97a52412eb889290aebd5adf" + }, + { + "file": ".agent/evidence/browser-first.log", + "beforeSha256": "f3087028d76aae36d61d7a14da488bd809079a9e121a2d8fb01fa034f99d4f05", + "afterSha256": "f3087028d76aae36d61d7a14da488bd809079a9e121a2d8fb01fa034f99d4f05" + }, + { + "file": ".agent/evidence/browser-second.log", + "beforeSha256": "2ff1d16f51b9384cf431d5923ad87d773510fe4b89bdf62f09cbda2efae20e3b", + "afterSha256": "2ff1d16f51b9384cf431d5923ad87d773510fe4b89bdf62f09cbda2efae20e3b" + }, + { + "file": ".agent/evidence/browser-third.log", + "beforeSha256": "1b6c264930da8934e7f1c8da6c998543f35e68b1c3159dad722cfe23a8e5244c", + "afterSha256": "1b6c264930da8934e7f1c8da6c998543f35e68b1c3159dad722cfe23a8e5244c" + }, + { + "file": ".agent/evidence/changed-files.txt", + "beforeSha256": "2b609231e5c7becd581f79413a4f7443312e71f0099ac6a51b2c5f0dfdee576f", + "afterSha256": "2b609231e5c7becd581f79413a4f7443312e71f0099ac6a51b2c5f0dfdee576f" + }, + { + "file": ".agent/evidence/desktop-game.png", + "beforeSha256": "42702e89264357257db8bf54c2b3743e3212e62cfd3476a8c25bad83fb59ff81", + "afterSha256": "42702e89264357257db8bf54c2b3743e3212e62cfd3476a8c25bad83fb59ff81" + }, + { + "file": ".agent/evidence/desktop-home.png", + "beforeSha256": "bf2f515fcd483cd5ca9a3b408f484d3556b75b1be0bb70360b7fd5f7c3404993", + "afterSha256": "bf2f515fcd483cd5ca9a3b408f484d3556b75b1be0bb70360b7fd5f7c3404993" + }, + { + "file": ".agent/evidence/desktop-results.png", + "beforeSha256": "003df3aeb08ce66618775377d9b2003809d696629f61cf54b7b86e7a0ed63593", + "afterSha256": "003df3aeb08ce66618775377d9b2003809d696629f61cf54b7b86e7a0ed63593" + }, + { + "file": ".agent/evidence/final-audit.log", + "beforeSha256": "6d8c5c8f3d7684adb070417bd608d01ae90aa3dc26a65af03ffda4955f38d9a3", + "afterSha256": "6d8c5c8f3d7684adb070417bd608d01ae90aa3dc26a65af03ffda4955f38d9a3" + }, + { + "file": ".agent/evidence/final-browser.log", + "beforeSha256": "5855691def462b23667a9d658338a0458a53d984b5b5f7e11b45f9a63092abcd", + "afterSha256": "5855691def462b23667a9d658338a0458a53d984b5b5f7e11b45f9a63092abcd" + }, + { + "file": ".agent/evidence/final-build.log", + "beforeSha256": "565a95a51a10f78bc08f256755afce5ef183440dcdea5e75b3aefde8d7c5b837", + "afterSha256": "565a95a51a10f78bc08f256755afce5ef183440dcdea5e75b3aefde8d7c5b837" + }, + { + "file": ".agent/evidence/final-lint.log", + "beforeSha256": "d2354c241320f11f07890cbf32f99a5d88f1c7f4f236d860e2cd26db739badd8", + "afterSha256": "d2354c241320f11f07890cbf32f99a5d88f1c7f4f236d860e2cd26db739badd8" + }, + { + "file": ".agent/evidence/final-security.log", + "beforeSha256": "c585566624a4596e97327fb1864b1ac2a3189c0794b1e25a9d6ff1abb86046cb", + "afterSha256": "c585566624a4596e97327fb1864b1ac2a3189c0794b1e25a9d6ff1abb86046cb" + }, + { + "file": ".agent/evidence/final-test.log", + "beforeSha256": "af03027cb22a090ecd107c10e3fc7e2f9ceb394122b0b73caa7d362310504170", + "afterSha256": "af03027cb22a090ecd107c10e3fc7e2f9ceb394122b0b73caa7d362310504170" + }, + { + "file": ".agent/evidence/mobile-game.png", + "beforeSha256": "20a3f02f70a28b2faae1b33d0d4d6fea10b77caa426e4bf9faa5ef6d4474a846", + "afterSha256": "20a3f02f70a28b2faae1b33d0d4d6fea10b77caa426e4bf9faa5ef6d4474a846" + }, + { + "file": ".agent/evidence/mobile-home.png", + "beforeSha256": "7f84bd54183fcdd03fe136b41145146ddfb323041c96a8b9e6b670c9a923033a", + "afterSha256": "7f84bd54183fcdd03fe136b41145146ddfb323041c96a8b9e6b670c9a923033a" + }, + { + "file": ".agent/evidence/mobile-results.png", + "beforeSha256": "ec2938c03ac03da8e33e25f043522b317b60c16be1c29f9dd325a81ae84513a8", + "afterSha256": "ec2938c03ac03da8e33e25f043522b317b60c16be1c29f9dd325a81ae84513a8" + }, + { + "file": ".agent/evidence/neo-before-spacing-browser.log", + "beforeSha256": "e5c214f14bd93ef1bb731f87ecfd3a02d299c9f9e5a788233f6eda5eb8946b4f", + "afterSha256": "e5c214f14bd93ef1bb731f87ecfd3a02d299c9f9e5a788233f6eda5eb8946b4f" + }, + { + "file": ".agent/evidence/neo-desktop-game.png", + "beforeSha256": "f5966688ba46f14fab5125452f935e55f6e6dc4355c876416729866129daea70", + "afterSha256": "f5966688ba46f14fab5125452f935e55f6e6dc4355c876416729866129daea70" + }, + { + "file": ".agent/evidence/neo-desktop-heading.png", + "beforeSha256": "db609f2f54af0e6b1bb96bce9bf839454403d6e2787e6520a2928fad31beb021", + "afterSha256": "db609f2f54af0e6b1bb96bce9bf839454403d6e2787e6520a2928fad31beb021" + }, + { + "file": ".agent/evidence/neo-desktop-home.png", + "beforeSha256": "826c5da794c4ea3c15bd6c13e81d1c021fbeb8a902fc4908b78f9c457f091c0f", + "afterSha256": "826c5da794c4ea3c15bd6c13e81d1c021fbeb8a902fc4908b78f9c457f091c0f" + }, + { + "file": ".agent/evidence/neo-desktop-results.png", + "beforeSha256": "98a68ca050a4e66c17dcc3f1bd5f0e86bfc88c2ebe9a75284766d17e10426632", + "afterSha256": "98a68ca050a4e66c17dcc3f1bd5f0e86bfc88c2ebe9a75284766d17e10426632" + }, + { + "file": ".agent/evidence/neo-final-browser.log", + "beforeSha256": "582e7cbb643201e4b197b566b021322448abaae0b383967ad0e816d0c351e96b", + "afterSha256": "582e7cbb643201e4b197b566b021322448abaae0b383967ad0e816d0c351e96b" + }, + { + "file": ".agent/evidence/neo-final-build.log", + "beforeSha256": "f30138e53b8c12e70e80e2cd5f4bdfcf8d1f6a095216a4f9ade6687bca1f0488", + "afterSha256": "f30138e53b8c12e70e80e2cd5f4bdfcf8d1f6a095216a4f9ade6687bca1f0488" + }, + { + "file": ".agent/evidence/neo-final-lint.log", + "beforeSha256": "d2354c241320f11f07890cbf32f99a5d88f1c7f4f236d860e2cd26db739badd8", + "afterSha256": "d2354c241320f11f07890cbf32f99a5d88f1c7f4f236d860e2cd26db739badd8" + }, + { + "file": ".agent/evidence/neo-final-test.log", + "beforeSha256": "f718e2acda255fcba67b272c7fa625af450714b384bb67a72f09328bf6964f0b", + "afterSha256": "f718e2acda255fcba67b272c7fa625af450714b384bb67a72f09328bf6964f0b" + }, + { + "file": ".agent/evidence/neo-intermediate-build.log", + "beforeSha256": "9d8a1f0586d58196e03e45330b6e8ff5522fdd3c27870aae2fb052199f8cf5cb", + "afterSha256": "9d8a1f0586d58196e03e45330b6e8ff5522fdd3c27870aae2fb052199f8cf5cb" + }, + { + "file": ".agent/evidence/neo-intermediate-lint.log", + "beforeSha256": "5e94ea847c3a092f4ff8e97ac5b61ebef805b3c859ad38461f4a437045d1b5b9", + "afterSha256": "5e94ea847c3a092f4ff8e97ac5b61ebef805b3c859ad38461f4a437045d1b5b9" + }, + { + "file": ".agent/evidence/neo-mobile-game.png", + "beforeSha256": "1a6733a3293204e4841ec8722a1ffe37033943097c691bcfadbcd907fde024ef", + "afterSha256": "1a6733a3293204e4841ec8722a1ffe37033943097c691bcfadbcd907fde024ef" + }, + { + "file": ".agent/evidence/neo-mobile-heading.png", + "beforeSha256": "ae07d0a1cb6f835525c7e0ef31655a543eaa9e10183596c2d409dead6faccf15", + "afterSha256": "ae07d0a1cb6f835525c7e0ef31655a543eaa9e10183596c2d409dead6faccf15" + }, + { + "file": ".agent/evidence/neo-mobile-home.png", + "beforeSha256": "9b3ba8b0a9f7b321882429e31ac4a0472fcc13a998dfadfc930c273bc37558d4", + "afterSha256": "9b3ba8b0a9f7b321882429e31ac4a0472fcc13a998dfadfc930c273bc37558d4" + }, + { + "file": ".agent/evidence/neo-mobile-results.png", + "beforeSha256": "d49fdf6ae9566d7a2003db3f252d84ed88ac4d73a0390ce404b47e7bab9c60df", + "afterSha256": "d49fdf6ae9566d7a2003db3f252d84ed88ac4d73a0390ce404b47e7bab9c60df" + }, + { + "file": ".agent/evidence/release-desktop-game.png", + "beforeSha256": "7300a06a507f651a587ed3deb36cc5bb728f4a36c30b7b1cf409a3b209ba564c", + "afterSha256": "7300a06a507f651a587ed3deb36cc5bb728f4a36c30b7b1cf409a3b209ba564c" + }, + { + "file": ".agent/evidence/release-desktop-heading.png", + "beforeSha256": "de454d77e29737e23c573646404489d5682004521deabfa01b439d607faa32ca", + "afterSha256": "de454d77e29737e23c573646404489d5682004521deabfa01b439d607faa32ca" + }, + { + "file": ".agent/evidence/release-desktop-home.png", + "beforeSha256": "f28f744e11b66373ee8db6eda2f7bdc384da4f7e763fbb467a4cda30090e869b", + "afterSha256": "f28f744e11b66373ee8db6eda2f7bdc384da4f7e763fbb467a4cda30090e869b" + }, + { + "file": ".agent/evidence/release-desktop-results.png", + "beforeSha256": "2ebb4056d0ecdadea8a3469500801065ae158c17cd2db27817e813e53adc71f3", + "afterSha256": "2ebb4056d0ecdadea8a3469500801065ae158c17cd2db27817e813e53adc71f3" + }, + { + "file": ".agent/evidence/release-docs-final.log", + "beforeSha256": "3529acce5befee536ec7d8e9d22cbbf27182297bb07408ab6e31551aaee76ed3", + "afterSha256": "3529acce5befee536ec7d8e9d22cbbf27182297bb07408ab6e31551aaee76ed3" + }, + { + "file": ".agent/evidence/release-final-audit.log", + "beforeSha256": "6d8c5c8f3d7684adb070417bd608d01ae90aa3dc26a65af03ffda4955f38d9a3", + "afterSha256": "6d8c5c8f3d7684adb070417bd608d01ae90aa3dc26a65af03ffda4955f38d9a3" + }, + { + "file": ".agent/evidence/release-final-browser.log", + "beforeSha256": "2a9881cef8c379f41abf5d69dd5ad21881988f78c0579c95e463121dc37f6e09", + "afterSha256": "2a9881cef8c379f41abf5d69dd5ad21881988f78c0579c95e463121dc37f6e09" + }, + { + "file": ".agent/evidence/release-final-build.log", + "beforeSha256": "3fba8356382341db9c562d985ca2229fd0b81969532746b0146bc489d54c321e", + "afterSha256": "3fba8356382341db9c562d985ca2229fd0b81969532746b0146bc489d54c321e" + }, + { + "file": ".agent/evidence/release-final-lint.log", + "beforeSha256": "d2354c241320f11f07890cbf32f99a5d88f1c7f4f236d860e2cd26db739badd8", + "afterSha256": "d2354c241320f11f07890cbf32f99a5d88f1c7f4f236d860e2cd26db739badd8" + }, + { + "file": ".agent/evidence/release-final-test.log", + "beforeSha256": "46d5d0fc0180adc00a734b64db4acb4cbaa37d12567d0224836306312213870c", + "afterSha256": "46d5d0fc0180adc00a734b64db4acb4cbaa37d12567d0224836306312213870c" + }, + { + "file": ".agent/evidence/release-format.log", + "beforeSha256": "57658c36cb3161b53cdf934017e4b7a733a273509ace184e0a2a6eaa046c742b", + "afterSha256": "57658c36cb3161b53cdf934017e4b7a733a273509ace184e0a2a6eaa046c742b" + }, + { + "file": ".agent/evidence/release-integrity.log", + "beforeSha256": "cc77121b43a6b24a358999cf1a3bbf701d467fcee9730095f318303c2e80602b", + "afterSha256": "cc77121b43a6b24a358999cf1a3bbf701d467fcee9730095f318303c2e80602b" + }, + { + "file": ".agent/evidence/release-intermediate-lint.log", + "beforeSha256": "ee597e984ebdf11ea247c8cb1551cda446580cbd7a3dc708f85fa78bb72700ad", + "afterSha256": "ee597e984ebdf11ea247c8cb1551cda446580cbd7a3dc708f85fa78bb72700ad" + }, + { + "file": ".agent/evidence/release-mobile-game.png", + "beforeSha256": "83a918e5ff2142e540cd12b85806b3e69a71bc66df5d241f4b2f5abdaf493f82", + "afterSha256": "83a918e5ff2142e540cd12b85806b3e69a71bc66df5d241f4b2f5abdaf493f82" + }, + { + "file": ".agent/evidence/release-mobile-heading.png", + "beforeSha256": "d5c92a3b62f749d5f064af12efa5a1a2ad13b177270ec01dd10a549a8437899d", + "afterSha256": "d5c92a3b62f749d5f064af12efa5a1a2ad13b177270ec01dd10a549a8437899d" + }, + { + "file": ".agent/evidence/release-mobile-home.png", + "beforeSha256": "c7fc37a247bbadba60de9dff3c8d87930a2e6ebb868f687a4135b3fd035ed1c3", + "afterSha256": "c7fc37a247bbadba60de9dff3c8d87930a2e6ebb868f687a4135b3fd035ed1c3" + }, + { + "file": ".agent/evidence/release-mobile-results.png", + "beforeSha256": "587956c9ad5eca054e4bb4b44748a2c637655e407427ba5b4c6ad7bf5a74539a", + "afterSha256": "587956c9ad5eca054e4bb4b44748a2c637655e407427ba5b4c6ad7bf5a74539a" + }, + { + "file": ".agent/evidence-v0.1.1/00-audio-venv.log", + "beforeSha256": "365f1b3cf48e7f6de9c24d28e4326a245d3a54eb329af4b41a9441ec546dabdc", + "afterSha256": "365f1b3cf48e7f6de9c24d28e4326a245d3a54eb329af4b41a9441ec546dabdc" + }, + { + "file": ".agent/evidence-v0.1.1/00-npm-ci.log", + "beforeSha256": "14a6e676c84fa9b2cc39a251aef0c593cda9903f9e5f2d9581bc4153c9f69e09", + "afterSha256": "14a6e676c84fa9b2cc39a251aef0c593cda9903f9e5f2d9581bc4153c9f69e09" + }, + { + "file": ".agent/evidence-v0.1.1/01-version-docs-red.log", + "beforeSha256": "edb26b949d0dc28340989601e781df3582cf784220235d19c16a46aeee97d302", + "afterSha256": "edb26b949d0dc28340989601e781df3582cf784220235d19c16a46aeee97d302" + }, + { + "file": ".agent/evidence-v0.1.1/02-assets-red.log", + "beforeSha256": "ccb8a354e2975c944fb2bde24492fe06a6c1b71add6ce65259d840c66836a1db", + "afterSha256": "ccb8a354e2975c944fb2bde24492fe06a6c1b71add6ce65259d840c66836a1db" + }, + { + "file": ".agent/evidence-v0.1.1/03-generator-red.log", + "beforeSha256": "d78b7c9237c18ba8a87a77a116ea7561ae79af6e88718f9c087c1d8e2c70b1f1", + "afterSha256": "d78b7c9237c18ba8a87a77a116ea7561ae79af6e88718f9c087c1d8e2c70b1f1" + }, + { + "file": ".agent/evidence-v0.1.1/04-generator-additional-red.log", + "beforeSha256": "9a519598915fbdd98108ee1b364f634905e29a5a01bfdd7ffec22a8b359e9217", + "afterSha256": "9a519598915fbdd98108ee1b364f634905e29a5a01bfdd7ffec22a8b359e9217" + }, + { + "file": ".agent/evidence-v0.1.1/05-generator-green.log", + "beforeSha256": "414464526a325b424e5c5305e3066b79c55527fb67b11a3b9eb3bb33dcecea93", + "afterSha256": "414464526a325b424e5c5305e3066b79c55527fb67b11a3b9eb3bb33dcecea93" + }, + { + "file": ".agent/evidence-v0.1.1/06-audio-generate.log", + "beforeSha256": "7b605184e89fd033378e6869236553a3d6e040087de23e8ae165f1e304f3b067", + "afterSha256": "7b605184e89fd033378e6869236553a3d6e040087de23e8ae165f1e304f3b067" + }, + { + "file": ".agent/evidence-v0.1.1/07-format.log", + "beforeSha256": "ce1a102d13a7dfd78130216cea192e3230efa3612e999cb8a6bfd55e8eb6d471", + "afterSha256": "ce1a102d13a7dfd78130216cea192e3230efa3612e999cb8a6bfd55e8eb6d471" + }, + { + "file": ".agent/evidence-v0.1.1/08-version-docs-green.log", + "beforeSha256": "671c2889a69c83ad24293d8e92d0076255bd00c5100c2a9eb764a570e1344edd", + "afterSha256": "671c2889a69c83ad24293d8e92d0076255bd00c5100c2a9eb764a570e1344edd" + }, + { + "file": ".agent/evidence-v0.1.1/09-lint.log", + "beforeSha256": "43d5238bc8e59b93cf3a9bc0f444f0165697b5584078973bd92efce056136c1e", + "afterSha256": "43d5238bc8e59b93cf3a9bc0f444f0165697b5584078973bd92efce056136c1e" + }, + { + "file": ".agent/evidence-v0.1.1/10-audit.log", + "beforeSha256": "6d8c5c8f3d7684adb070417bd608d01ae90aa3dc26a65af03ffda4955f38d9a3", + "afterSha256": "6d8c5c8f3d7684adb070417bd608d01ae90aa3dc26a65af03ffda4955f38d9a3" + }, + { + "file": ".agent/evidence-v0.1.1/11-full-test.log", + "beforeSha256": "65721fcf2b03f153274c9cc1da13c6a1f265ab6f084be8b5921a898fbfd6b40b", + "afterSha256": "65721fcf2b03f153274c9cc1da13c6a1f265ab6f084be8b5921a898fbfd6b40b" + }, + { + "file": ".agent/evidence-v0.1.1/12-independent-audio.log", + "beforeSha256": "5ffd6173941d75deb028741cdba549705b652218f418c6d40ceb7f4b216f2d9d", + "afterSha256": "5ffd6173941d75deb028741cdba549705b652218f418c6d40ceb7f4b216f2d9d" + }, + { + "file": ".agent/evidence-v0.1.1/13-build.log", + "beforeSha256": "42ac41188359699f5f24c7f86de9d7ca6503d714a7be9e277ac2fd01be21614c", + "afterSha256": "42ac41188359699f5f24c7f86de9d7ca6503d714a7be9e277ac2fd01be21614c" + }, + { + "file": ".agent/evidence-v0.1.1/14-browser.log", + "beforeSha256": "657ddc9f60ffa35684110766b2e459842cd1ab10a90b0002256a945f227a16b7", + "afterSha256": "657ddc9f60ffa35684110766b2e459842cd1ab10a90b0002256a945f227a16b7" + }, + { + "file": ".agent/evidence-v0.1.1/15-browser-audio.log", + "beforeSha256": "cb16ec7009a88f911632d0bef64692066873d81372e65fea8dac800d59304214", + "afterSha256": "cb16ec7009a88f911632d0bef64692066873d81372e65fea8dac800d59304214" + }, + { + "file": ".agent/evidence-v0.1.1/16-final-lint.log", + "beforeSha256": "43d5238bc8e59b93cf3a9bc0f444f0165697b5584078973bd92efce056136c1e", + "afterSha256": "43d5238bc8e59b93cf3a9bc0f444f0165697b5584078973bd92efce056136c1e" + }, + { + "file": ".agent/evidence-v0.1.1/17-security-history.json", + "beforeSha256": "5ba66683c3ae29e01f25cfae2ed832e33b07f866bfccd0e1d331a8f102d3d3c7", + "afterSha256": "5ba66683c3ae29e01f25cfae2ed832e33b07f866bfccd0e1d331a8f102d3d3c7" + }, + { + "file": ".agent/evidence-v0.1.1/18-environment.log", + "beforeSha256": "19a1da4298ba5a51f8dce5e6669205987bb48438e5c98f3ddcbc347ce0f91e46", + "afterSha256": "19a1da4298ba5a51f8dce5e6669205987bb48438e5c98f3ddcbc347ce0f91e46" + }, + { + "file": ".agent/evidence-v0.1.1/19-final-integrity.json", + "beforeSha256": "38f5af8927d95e9dae780decf146eb3d5feb610629202ef9ee67bf223647132f", + "afterSha256": "38f5af8927d95e9dae780decf146eb3d5feb610629202ef9ee67bf223647132f" + }, + { + "file": ".agent/evidence-v0.1.1/audio-integrity.json", + "beforeSha256": "d82b192602b1f054fce5f61479832666f237d7da2698afe84b09186dac90f321", + "afterSha256": "d82b192602b1f054fce5f61479832666f237d7da2698afe84b09186dac90f321" + }, + { + "file": ".agent/evidence-v0.1.1/baseline.json", + "beforeSha256": "085be97acb81dcc83477ebc5f42dd2fd5729d9f5821cbc659df9c00b648ceb34", + "afterSha256": "085be97acb81dcc83477ebc5f42dd2fd5729d9f5821cbc659df9c00b648ceb34" + }, + { + "file": ".agent/evidence-v0.1.1/browser-audio-integrity.json", + "beforeSha256": "2c0f59ed178285c0d338171328232351aab2b55e22371b3652453afa34849b65", + "afterSha256": "2c0f59ed178285c0d338171328232351aab2b55e22371b3652453afa34849b65" + }, + { + "file": ".agent/evidence-v0.1.1/cache-regression/00-baseline.json", + "beforeSha256": "66afb3cfa4b4ba46b24d08d046066b27e7bf7d7af382f3776339b41d15b41f3c", + "afterSha256": "66afb3cfa4b4ba46b24d08d046066b27e7bf7d7af382f3776339b41d15b41f3c" + }, + { + "file": ".agent/evidence-v0.1.1/cache-regression/01-unit-red.log", + "beforeSha256": "cfbe949c8b24cb2b1c699a2d456529ac017caa1df2307b0c8d05f1dc4e7d22cf", + "afterSha256": "cfbe949c8b24cb2b1c699a2d456529ac017caa1df2307b0c8d05f1dc4e7d22cf" + }, + { + "file": ".agent/evidence-v0.1.1/cache-regression/02-build-before-fix.log", + "beforeSha256": "2c2775dafb756ff1389b1c979c051b880929bf63b6286109c6ddc66d4ed75c6c", + "afterSha256": "2c2775dafb756ff1389b1c979c051b880929bf63b6286109c6ddc66d4ed75c6c" + }, + { + "file": ".agent/evidence-v0.1.1/cache-regression/03-browser-red.log", + "beforeSha256": "3af050a469281666912d91fc4c747b0135c636fbacc3094d8d823f96376509ed", + "afterSha256": "3af050a469281666912d91fc4c747b0135c636fbacc3094d8d823f96376509ed" + }, + { + "file": ".agent/evidence-v0.1.1/cache-regression/04-red-state.json", + "beforeSha256": "fd6eaad1aa47e8463bb020eb0de894a98871c4772ded56f370426c1903c20d3b", + "afterSha256": "fd6eaad1aa47e8463bb020eb0de894a98871c4772ded56f370426c1903c20d3b" + }, + { + "file": ".agent/evidence-v0.1.1/cache-regression/05-unit-green.log", + "beforeSha256": "0ecd4924f62abbb6a619faf3cabc6bfa02c020e83cb37af79449ffce88486428", + "afterSha256": "0ecd4924f62abbb6a619faf3cabc6bfa02c020e83cb37af79449ffce88486428" + }, + { + "file": ".agent/evidence-v0.1.1/cache-regression/06-lint.log", + "beforeSha256": "c85ee435a4f57d13173d4f4db27bdc9edbe6845a08d7d0b47de15c69ef715b71", + "afterSha256": "c85ee435a4f57d13173d4f4db27bdc9edbe6845a08d7d0b47de15c69ef715b71" + }, + { + "file": ".agent/evidence-v0.1.1/cache-regression/07-full-test.log", + "beforeSha256": "c8524e4c5e47a35a99d9cd2b23cf093e91d9fe1d557a78bfc7e4797fea659ba9", + "afterSha256": "c8524e4c5e47a35a99d9cd2b23cf093e91d9fe1d557a78bfc7e4797fea659ba9" + }, + { + "file": ".agent/evidence-v0.1.1/cache-regression/08-build.log", + "beforeSha256": "e01eb47b14d5e14a49afe5cd750daa9cf86fd3ba389c6ece366e667efa1a282f", + "afterSha256": "e01eb47b14d5e14a49afe5cd750daa9cf86fd3ba389c6ece366e667efa1a282f" + }, + { + "file": ".agent/evidence-v0.1.1/cache-regression/09-browser-green.log", + "beforeSha256": "1f422035d506da11683299cd31a7cdf48284d285623e846f8f3785ab3412be9d", + "afterSha256": "1f422035d506da11683299cd31a7cdf48284d285623e846f8f3785ab3412be9d" + }, + { + "file": ".agent/evidence-v0.1.1/cache-regression/10-sandbox.log", + "beforeSha256": "1ce93b0a638b60fd26d46a5f0fe2c124bc198d3e852ab4b6f94e9b3cf2f8cfb9", + "afterSha256": "1ce93b0a638b60fd26d46a5f0fe2c124bc198d3e852ab4b6f94e9b3cf2f8cfb9" + }, + { + "file": ".agent/evidence-v0.1.1/cache-regression/11-sandbox-green.log", + "beforeSha256": "f75b42f1b7e8570d8fc3845c1837bdef0d8e4d8977c192df786e91ec5c15f5f7", + "afterSha256": "f75b42f1b7e8570d8fc3845c1837bdef0d8e4d8977c192df786e91ec5c15f5f7" + }, + { + "file": ".agent/evidence-v0.1.1/cache-regression/12-cache-regression-result.log", + "beforeSha256": "65e37c6d39f77f2ffb3765a6508a8469a69d1443b304fe3082474d041105a840", + "afterSha256": "65e37c6d39f77f2ffb3765a6508a8469a69d1443b304fe3082474d041105a840" + }, + { + "file": ".agent/evidence-v0.1.1/cache-regression/13-final-integrity.json", + "beforeSha256": "60c8aa79c7c4d4a6cc42e71c6fc2e7af8f07473c69517da60481aa14b8d7cd0b", + "afterSha256": "60c8aa79c7c4d4a6cc42e71c6fc2e7af8f07473c69517da60481aa14b8d7cd0b" + }, + { + "file": ".agent/evidence-v0.1.1/cache-regression/artifacts/desktop-browser-audio-integrity.json", + "beforeSha256": "3aa78dfd8a3acb45a445306dae6d7517b16f32744b6f468e7e2a32a91a4ac9e0", + "afterSha256": "3aa78dfd8a3acb45a445306dae6d7517b16f32744b6f468e7e2a32a91a4ac9e0" + }, + { + "file": ".agent/evidence-v0.1.1/cache-regression/artifacts/desktop-game.png", + "beforeSha256": "d3ccf902a6865a781edd88da2df3ea5ae2cc30f79b32a574194a5e65c1b4bc10", + "afterSha256": "d3ccf902a6865a781edd88da2df3ea5ae2cc30f79b32a574194a5e65c1b4bc10" + }, + { + "file": ".agent/evidence-v0.1.1/cache-regression/artifacts/desktop-heading.png", + "beforeSha256": "a21b7af15a73f66589df7dacff7ce7424177a735969a39afff92b90fd51278b5", + "afterSha256": "a21b7af15a73f66589df7dacff7ce7424177a735969a39afff92b90fd51278b5" + }, + { + "file": ".agent/evidence-v0.1.1/cache-regression/artifacts/desktop-home.png", + "beforeSha256": "cec5a0a94df0c6896cfe7cc89e49bb6ac0eddadae598833b19ed158958e96beb", + "afterSha256": "cec5a0a94df0c6896cfe7cc89e49bb6ac0eddadae598833b19ed158958e96beb" + }, + { + "file": ".agent/evidence-v0.1.1/cache-regression/artifacts/desktop-results.png", + "beforeSha256": "fd3208180016a30b682d80cb73580aa3a9cf2d5a6f8f426958c409222adcf251", + "afterSha256": "fd3208180016a30b682d80cb73580aa3a9cf2d5a6f8f426958c409222adcf251" + }, + { + "file": ".agent/evidence-v0.1.1/cache-regression/artifacts/mobile-browser-audio-integrity.json", + "beforeSha256": "3aa78dfd8a3acb45a445306dae6d7517b16f32744b6f468e7e2a32a91a4ac9e0", + "afterSha256": "3aa78dfd8a3acb45a445306dae6d7517b16f32744b6f468e7e2a32a91a4ac9e0" + }, + { + "file": ".agent/evidence-v0.1.1/cache-regression/artifacts/mobile-game.png", + "beforeSha256": "c5d885f3cd8f51e3e0519459e3fd2bca801f2ac9703e15b11bb2d73628869e25", + "afterSha256": "c5d885f3cd8f51e3e0519459e3fd2bca801f2ac9703e15b11bb2d73628869e25" + }, + { + "file": ".agent/evidence-v0.1.1/cache-regression/artifacts/mobile-heading.png", + "beforeSha256": "4c8b1c4652dd3aff3703ee273695544d4948d39fa6b5c0b1df9313db47e1d537", + "afterSha256": "4c8b1c4652dd3aff3703ee273695544d4948d39fa6b5c0b1df9313db47e1d537" + }, + { + "file": ".agent/evidence-v0.1.1/cache-regression/artifacts/mobile-home.png", + "beforeSha256": "6a5b776c6111929c20a4800904c160c6c983b442f9ec9f8395061e9142c20d64", + "afterSha256": "6a5b776c6111929c20a4800904c160c6c983b442f9ec9f8395061e9142c20d64" + }, + { + "file": ".agent/evidence-v0.1.1/cache-regression/artifacts/mobile-results.png", + "beforeSha256": "a5bce60459ba2147fe080cba6666c1e39b6a97ade6f244a7b955f5371cb594e3", + "afterSha256": "a5bce60459ba2147fe080cba6666c1e39b6a97ade6f244a7b955f5371cb594e3" + }, + { + "file": ".agent/evidence-v0.1.1/changed-files.txt", + "beforeSha256": "4877f3d1003372868b5a9f72326ccf0870b22daf35a71b60b67dc761342fa50f", + "afterSha256": "4877f3d1003372868b5a9f72326ccf0870b22daf35a71b60b67dc761342fa50f" + }, + { + "file": ".agent/evidence-v0.1.1/desktop-game.png", + "beforeSha256": "02c59fa37c4d4f19e5c74e56fc889105b4d280a0a4cf2c14c1838947859a3a8b", + "afterSha256": "02c59fa37c4d4f19e5c74e56fc889105b4d280a0a4cf2c14c1838947859a3a8b" + }, + { + "file": ".agent/evidence-v0.1.1/desktop-heading.png", + "beforeSha256": "920d3d998d93f463be9ac6a682c1f7d5d9ac36944b52b715345c865ae46f566d", + "afterSha256": "920d3d998d93f463be9ac6a682c1f7d5d9ac36944b52b715345c865ae46f566d" + }, + { + "file": ".agent/evidence-v0.1.1/desktop-home.png", + "beforeSha256": "9c6f92b67db249b2a1d3e752052678d7ae0af6be426d976d12237d84c105bf76", + "afterSha256": "9c6f92b67db249b2a1d3e752052678d7ae0af6be426d976d12237d84c105bf76" + }, + { + "file": ".agent/evidence-v0.1.1/desktop-results.png", + "beforeSha256": "3811eae6f5827760499c9c64053a2cb2ecbb1d87ed2ddf11b757eb44e56c64bd", + "afterSha256": "3811eae6f5827760499c9c64053a2cb2ecbb1d87ed2ddf11b757eb44e56c64bd" + }, + { + "file": ".agent/evidence-v0.1.1/mobile-game.png", + "beforeSha256": "bb0dec7ec2c99b55caafd729e2f9c9c01875e3b6dd577cc377a76bbfd5c95a7e", + "afterSha256": "bb0dec7ec2c99b55caafd729e2f9c9c01875e3b6dd577cc377a76bbfd5c95a7e" + }, + { + "file": ".agent/evidence-v0.1.1/mobile-heading.png", + "beforeSha256": "d61f2d1b01c654a5cfe841e49e244af4e232b5fc9c899e77523b336411e99316", + "afterSha256": "d61f2d1b01c654a5cfe841e49e244af4e232b5fc9c899e77523b336411e99316" + }, + { + "file": ".agent/evidence-v0.1.1/mobile-home.png", + "beforeSha256": "7c4a4643a5222f45c6492ebf78780a317e26d423bf244fc16ea24a186a76f506", + "afterSha256": "7c4a4643a5222f45c6492ebf78780a317e26d423bf244fc16ea24a186a76f506" + }, + { + "file": ".agent/evidence-v0.1.1/mobile-results.png", + "beforeSha256": "f2a095ab1d2a3a95a1a275b652fcd31275a5803a926e01b5fcd1e9a9e127cfb9", + "afterSha256": "f2a095ab1d2a3a95a1a275b652fcd31275a5803a926e01b5fcd1e9a9e127cfb9" + }, + { + "file": ".agent/evidence-v0.1.1/verify_audio.py", + "beforeSha256": "7751c03b83dbbd3b222f6d5a68eb1d78dac2bbf82c0fd79345ccca86a15fcb69", + "afterSha256": "7751c03b83dbbd3b222f6d5a68eb1d78dac2bbf82c0fd79345ccca86a15fcb69" + }, + { + "file": ".agent/evidence-v0.1.1/verify_browser.mjs", + "beforeSha256": "53f0f6317274a91017a4f508ef9237e022f7d333ef4243f324720f8d7f85abeb", + "afterSha256": "53f0f6317274a91017a4f508ef9237e022f7d333ef4243f324720f8d7f85abeb" + }, + { + "file": ".agent/evidence-v0.2.3/01-round-GREEN.log", + "beforeSha256": "80beec689bea21086449b7edc9c61414af289722584478463fdd5deac9cba39d", + "afterSha256": "80beec689bea21086449b7edc9c61414af289722584478463fdd5deac9cba39d" + }, + { + "file": ".agent/evidence-v0.2.3/01-round-RED.log", + "beforeSha256": "986a49e5522b1c7dbadf97e0c308af87de589d7a9524ec85c4ba891deb603d3f", + "afterSha256": "986a49e5522b1c7dbadf97e0c308af87de589d7a9524ec85c4ba891deb603d3f" + }, + { + "file": ".agent/evidence-v0.2.3/01-round-sampling-regression.log", + "beforeSha256": "e71f6e853a00941decac3df722369f3bba38f177b8d4ceb7be326522326604f5", + "afterSha256": "e71f6e853a00941decac3df722369f3bba38f177b8d4ceb7be326522326604f5" + }, + { + "file": ".agent/evidence-v0.2.3/02-snr-exit-GREEN.log", + "beforeSha256": "6bbf48b3aef1b15de7576a8c4ee5608c382aa5cc92c95a844aca32d705208e23", + "afterSha256": "6bbf48b3aef1b15de7576a8c4ee5608c382aa5cc92c95a844aca32d705208e23" + }, + { + "file": ".agent/evidence-v0.2.3/02-snr-exit-RED.log", + "beforeSha256": "ac7bc8813ca67a1413678e97c36d05e03bd1f3d9c99656671e3a81bac38c89ac", + "afterSha256": "ac7bc8813ca67a1413678e97c36d05e03bd1f3d9c99656671e3a81bac38c89ac" + }, + { + "file": ".agent/evidence-v0.2.3/03-screen-GREEN.log", + "beforeSha256": "39564011526efb4ff5a277774394d26ae8e8d241e233d53a950cd258ed26c001", + "afterSha256": "39564011526efb4ff5a277774394d26ae8e8d241e233d53a950cd258ed26c001" + }, + { + "file": ".agent/evidence-v0.2.3/03-screen-RED.log", + "beforeSha256": "98e50844d757b9dee2426f93ed89ab6d158b30116212908fd098eda68f4b848b", + "afterSha256": "98e50844d757b9dee2426f93ed89ab6d158b30116212908fd098eda68f4b848b" + }, + { + "file": ".agent/evidence-v0.2.3/03-screen-duplicate-description-RED.log", + "beforeSha256": "186940b7e422c6096fdc3c3cf4280661a75d4f02d3b97e3015a070f5d8ff0323", + "afterSha256": "186940b7e422c6096fdc3c3cf4280661a75d4f02d3b97e3015a070f5d8ff0323" + }, + { + "file": ".agent/evidence-v0.2.3/04-recorded-mix-GREEN.log", + "beforeSha256": "323468e46e58b9f51340f63ecc41fc0bfd9fcd4a9e91e409550d484c49ff6b6e", + "afterSha256": "323468e46e58b9f51340f63ecc41fc0bfd9fcd4a9e91e409550d484c49ff6b6e" + }, + { + "file": ".agent/evidence-v0.2.3/04-recorded-mix-RED.log", + "beforeSha256": "b74bfd906276af2211ccbc8a6da10ebf86146fda613622c20e4a939ae45dd55f", + "afterSha256": "b74bfd906276af2211ccbc8a6da10ebf86146fda613622c20e4a939ae45dd55f" + }, + { + "file": ".agent/evidence-v0.2.3/05-playback-GREEN.log", + "beforeSha256": "4d43b75d4671d9aaffaa5db4d32299260a440978a3699c92d384443ba4766bea", + "afterSha256": "4d43b75d4671d9aaffaa5db4d32299260a440978a3699c92d384443ba4766bea" + }, + { + "file": ".agent/evidence-v0.2.3/05-playback-RED.log", + "beforeSha256": "02aa8f0a48af5b6f157451029963aa90664c5fedd89491e174e9b2d7bce1d159", + "afterSha256": "02aa8f0a48af5b6f157451029963aa90664c5fedd89491e174e9b2d7bce1d159" + }, + { + "file": ".agent/evidence-v0.2.3/05-playback-fixture-regression.log", + "beforeSha256": "925f6be228ab0eb568c27d79fb1b477a8737cfd94be34d0f7d79d1d7e4989bfa", + "afterSha256": "925f6be228ab0eb568c27d79fb1b477a8737cfd94be34d0f7d79d1d7e4989bfa" + }, + { + "file": ".agent/evidence-v0.2.3/06-node-import-GREEN.log", + "beforeSha256": "0bceb35eedea301af580ec093349973e9230d37921d5c4476587ee335e28554d", + "afterSha256": "0bceb35eedea301af580ec093349973e9230d37921d5c4476587ee335e28554d" + }, + { + "file": ".agent/evidence-v0.2.3/06-node-import-RED.log", + "beforeSha256": "9b7ed2c611e2e36041f8a34e3295ad2ff506f0feb427e4a51978ce9efc252cf1", + "afterSha256": "9b7ed2c611e2e36041f8a34e3295ad2ff506f0feb427e4a51978ce9efc252cf1" + }, + { + "file": ".agent/evidence-v0.2.3/07-asset-conversion.log", + "beforeSha256": "ce2e395db0bfce47953cd7c9ff3311a733376d8109941f7f04a919659f0d95f8", + "afterSha256": "ce2e395db0bfce47953cd7c9ff3311a733376d8109941f7f04a919659f0d95f8" + }, + { + "file": ".agent/evidence-v0.2.3/07-assets-GREEN.log", + "beforeSha256": "f04418ee6b67f14c62e17c53027e7ea1bde58d38a7cdc54f0edee15e1643847e", + "afterSha256": "f04418ee6b67f14c62e17c53027e7ea1bde58d38a7cdc54f0edee15e1643847e" + }, + { + "file": ".agent/evidence-v0.2.3/07-assets-RED.log", + "beforeSha256": "5c173b8b2c64b4c661cb58ab22788216b0d90799378a3fcf234087182f3b1d78", + "afterSha256": "5c173b8b2c64b4c661cb58ab22788216b0d90799378a3fcf234087182f3b1d78" + }, + { + "file": ".agent/evidence-v0.2.3/07-converter-GREEN.log", + "beforeSha256": "53a049e86064db709a80d1487a099fe154f99fb6a9821639a24390f88aacbf5a", + "afterSha256": "53a049e86064db709a80d1487a099fe154f99fb6a9821639a24390f88aacbf5a" + }, + { + "file": ".agent/evidence-v0.2.3/07-converter-RED.log", + "beforeSha256": "53cefcd04c8ac4354b5e891a4e65810c21ece90503a3f2ed3392c046feaeb9c9", + "afterSha256": "53cefcd04c8ac4354b5e891a4e65810c21ece90503a3f2ed3392c046feaeb9c9" + }, + { + "file": ".agent/evidence-v0.2.3/08-heard-snr-GREEN.log", + "beforeSha256": "347cdd6ceffa01e0227a17b5af604e96e8081aeaadfc95cf33155ab0af0f813b", + "afterSha256": "347cdd6ceffa01e0227a17b5af604e96e8081aeaadfc95cf33155ab0af0f813b" + }, + { + "file": ".agent/evidence-v0.2.3/08-heard-snr-RED.log", + "beforeSha256": "82b0d04bfd2e99ad36b59325581b5527fa1fa8ae8953db3ed402fb381356fd90", + "afterSha256": "82b0d04bfd2e99ad36b59325581b5527fa1fa8ae8953db3ed402fb381356fd90" + }, + { + "file": ".agent/evidence-v0.2.3/09-version-docs-GREEN.log", + "beforeSha256": "8ac6c86e13de85121607e93da4316c2220ad0edb95ac091048767a903f65152c", + "afterSha256": "8ac6c86e13de85121607e93da4316c2220ad0edb95ac091048767a903f65152c" + }, + { + "file": ".agent/evidence-v0.2.3/09-version-docs-RED.log", + "beforeSha256": "21733781658b1d6525746f6a3dd59337774990c53689f7883e7ff8ddc7c65398", + "afterSha256": "21733781658b1d6525746f6a3dd59337774990c53689f7883e7ff8ddc7c65398" + }, + { + "file": ".agent/evidence-v0.2.3/10-environment-rotation-GREEN.log", + "beforeSha256": "5dc34db413e4ed7918dad60a49ae97532d701aa52d10b49459e77f75c925231d", + "afterSha256": "5dc34db413e4ed7918dad60a49ae97532d701aa52d10b49459e77f75c925231d" + }, + { + "file": ".agent/evidence-v0.2.3/10-environment-rotation-RED.log", + "beforeSha256": "ae7914b7fca896a77478e36ea79bfc51d3a13f976e0f722c7c1615daf6e6837e", + "afterSha256": "ae7914b7fca896a77478e36ea79bfc51d3a13f976e0f722c7c1615daf6e6837e" + }, + { + "file": ".agent/evidence-v0.2.3/11-bundle-notice-GREEN.log", + "beforeSha256": "d6ba07866a02eab665c215f1ce6588e4f5a9157baf4be6e9befba0f945e379bd", + "afterSha256": "d6ba07866a02eab665c215f1ce6588e4f5a9157baf4be6e9befba0f945e379bd" + }, + { + "file": ".agent/evidence-v0.2.3/11-bundle-notice-RED.log", + "beforeSha256": "82d52d3905b35948abbaf7e912de5480a959780731fd04be4110674cf2d6ec63", + "afterSha256": "82d52d3905b35948abbaf7e912de5480a959780731fd04be4110674cf2d6ec63" + }, + { + "file": ".agent/evidence-v0.2.3/12-build-initial.log", + "beforeSha256": "508b0f60d2378679873fbd17784725323fe7ccc267fb3b8b180a7bd59b861176", + "afterSha256": "508b0f60d2378679873fbd17784725323fe7ccc267fb3b8b180a7bd59b861176" + }, + { + "file": ".agent/evidence-v0.2.3/12-lint-followup.log", + "beforeSha256": "058127eb4022e13fe809a0c56c3d3a43177b6088f284811e926452185772de6b", + "afterSha256": "058127eb4022e13fe809a0c56c3d3a43177b6088f284811e926452185772de6b" + }, + { + "file": ".agent/evidence-v0.2.3/12-lint-initial.log", + "beforeSha256": "7a5fdab53449ff945e4f8694164cbb1792f01a19d3d97c151590df5bdfb1506e", + "afterSha256": "7a5fdab53449ff945e4f8694164cbb1792f01a19d3d97c151590df5bdfb1506e" + }, + { + "file": ".agent/evidence-v0.2.3/13-static-404-GREEN.log", + "beforeSha256": "dee59b03d1eb3e0a59828d4f50ea372c78c231000cdd1c77965fcdf42864042b", + "afterSha256": "dee59b03d1eb3e0a59828d4f50ea372c78c231000cdd1c77965fcdf42864042b" + }, + { + "file": ".agent/evidence-v0.2.3/13-static-404-RED.log", + "beforeSha256": "7b4822f9d121f963dbab27155aaf0627fbbfbadd855adf4da4224388e35b230c", + "afterSha256": "7b4822f9d121f963dbab27155aaf0627fbbfbadd855adf4da4224388e35b230c" + }, + { + "file": ".agent/evidence-v0.2.3/14-browser-initial.log", + "beforeSha256": "d2178d18a7e1b2f84e4a430a884ca442070b1a455217f6f594ed4c5f160b426e", + "afterSha256": "d2178d18a7e1b2f84e4a430a884ca442070b1a455217f6f594ed4c5f160b426e" + }, + { + "file": ".agent/evidence-v0.2.3/14-full-test-initial.log", + "beforeSha256": "08a7d3bb30acbc04f9b63e49a0ba5a34628e00613a97660cfb6f467c74854aee", + "afterSha256": "08a7d3bb30acbc04f9b63e49a0ba5a34628e00613a97660cfb6f467c74854aee" + }, + { + "file": ".agent/evidence-v0.2.3/14-npm-audit.json", + "beforeSha256": "ea7bab3cc606a95eecdf538b0d02d3cf928bf0f3a1cfb1d2c8ddbe02846d5658", + "afterSha256": "ea7bab3cc606a95eecdf538b0d02d3cf928bf0f3a1cfb1d2c8ddbe02846d5658" + }, + { + "file": ".agent/evidence-v0.2.3/15-results-anchor-GREEN.log", + "beforeSha256": "48c5b15b6b2dc661a0410af2cfe501d9efafac55d085c29ab74f44ea76e7e8a3", + "afterSha256": "48c5b15b6b2dc661a0410af2cfe501d9efafac55d085c29ab74f44ea76e7e8a3" + }, + { + "file": ".agent/evidence-v0.2.3/15-results-anchor-RED.log", + "beforeSha256": "cb113c8ceeeb48d7573b1de0b9d8263e25e4f7a28dd811404a057d5d6c623157", + "afterSha256": "cb113c8ceeeb48d7573b1de0b9d8263e25e4f7a28dd811404a057d5d6c623157" + }, + { + "file": ".agent/evidence-v0.2.3/16-controls-build.log", + "beforeSha256": "ae8849619608d58763d2ce301bcdba420054bd29174b1bc8dca86790b82fc5e7", + "afterSha256": "ae8849619608d58763d2ce301bcdba420054bd29174b1bc8dca86790b82fc5e7" + }, + { + "file": ".agent/evidence-v0.2.3/16-controls-layout-GREEN.log", + "beforeSha256": "7be2b42602a98167b83c12bce3af7b0856ccd10be68d477e5dba39db99991c03", + "afterSha256": "7be2b42602a98167b83c12bce3af7b0856ccd10be68d477e5dba39db99991c03" + }, + { + "file": ".agent/evidence-v0.2.3/16-controls-layout-RED.log", + "beforeSha256": "9060a0e1d36a15a35b3b189f5b210fdab9fe9579b06e6b19f645bfe8f2914603", + "afterSha256": "9060a0e1d36a15a35b3b189f5b210fdab9fe9579b06e6b19f645bfe8f2914603" + }, + { + "file": ".agent/evidence-v0.2.3/17-bonus-copy-GREEN.log", + "beforeSha256": "f988cf9fda0bc4dd4b7818dde11094f6fb75b9540ccfcb9f964acec003ff3de7", + "afterSha256": "f988cf9fda0bc4dd4b7818dde11094f6fb75b9540ccfcb9f964acec003ff3de7" + }, + { + "file": ".agent/evidence-v0.2.3/17-bonus-copy-RED.log", + "beforeSha256": "fd11d5b64c06cfa28c839cdddb7e2f2ac2406f8c1101f1fb9e262ae9cfaf6b85", + "afterSha256": "fd11d5b64c06cfa28c839cdddb7e2f2ac2406f8c1101f1fb9e262ae9cfaf6b85" + }, + { + "file": ".agent/evidence-v0.2.3/18-browser.log", + "beforeSha256": "a92ba8db852111170403932bb8b4dbd49345936156fbbc3ef61f5c612609a55e", + "afterSha256": "a92ba8db852111170403932bb8b4dbd49345936156fbbc3ef61f5c612609a55e" + }, + { + "file": ".agent/evidence-v0.2.3/18-build.log", + "beforeSha256": "3f0bd258866ed4f29f8a8ab5d88fc7db68f67abe9bc51fed22563d51200d9f72", + "afterSha256": "3f0bd258866ed4f29f8a8ab5d88fc7db68f67abe9bc51fed22563d51200d9f72" + }, + { + "file": ".agent/evidence-v0.2.3/18-format.log", + "beforeSha256": "d78946d25140238f764ccf3fca989a0aa42b25162cfba7d92dbb10256db45401", + "afterSha256": "d78946d25140238f764ccf3fca989a0aa42b25162cfba7d92dbb10256db45401" + }, + { + "file": ".agent/evidence-v0.2.3/18-full-test.log", + "beforeSha256": "bf358255a30c2d18b82af8f8c5942d0b9ee7c100c40114fe8666e7f564829d79", + "afterSha256": "bf358255a30c2d18b82af8f8c5942d0b9ee7c100c40114fe8666e7f564829d79" + }, + { + "file": ".agent/evidence-v0.2.3/18-lint.log", + "beforeSha256": "058127eb4022e13fe809a0c56c3d3a43177b6088f284811e926452185772de6b", + "afterSha256": "058127eb4022e13fe809a0c56c3d3a43177b6088f284811e926452185772de6b" + }, + { + "file": ".agent/evidence-v0.2.3/18-python.log", + "beforeSha256": "911637068f7c09de38cd38b9d13cdb23b365812521ed8b1f75328b1960b085bf", + "afterSha256": "911637068f7c09de38cd38b9d13cdb23b365812521ed8b1f75328b1960b085bf" + }, + { + "file": ".agent/evidence-v0.2.3/19-favicon-GREEN.log", + "beforeSha256": "34fd3cd00d40ae5766b2364cef81fe90accc8f8ec03788959680d118ecbf9b13", + "afterSha256": "34fd3cd00d40ae5766b2364cef81fe90accc8f8ec03788959680d118ecbf9b13" + }, + { + "file": ".agent/evidence-v0.2.3/19-favicon-RED.log", + "beforeSha256": "49fc230ab2adeceb6613e6b9019f31f12b2dd3764096a85f391f91e83479e6cb", + "afterSha256": "49fc230ab2adeceb6613e6b9019f31f12b2dd3764096a85f391f91e83479e6cb" + }, + { + "file": ".agent/evidence-v0.2.3/20-browser.log", + "beforeSha256": "cfc61835f7061d6301b54ce07e8f1c1aaba5c3a29d7df85d767eb1cf898217a6", + "afterSha256": "cfc61835f7061d6301b54ce07e8f1c1aaba5c3a29d7df85d767eb1cf898217a6" + }, + { + "file": ".agent/evidence-v0.2.3/20-build.log", + "beforeSha256": "77a52828d2b1d1d46efa6a3f5b4ded7ca12da6db5896b1ee9a2fefebf50bcb85", + "afterSha256": "77a52828d2b1d1d46efa6a3f5b4ded7ca12da6db5896b1ee9a2fefebf50bcb85" + }, + { + "file": ".agent/evidence-v0.2.3/20-full-test.log", + "beforeSha256": "10c46b00ad407161154f57c060599dca379effef2c5c80e0d24edd366c08817a", + "afterSha256": "10c46b00ad407161154f57c060599dca379effef2c5c80e0d24edd366c08817a" + }, + { + "file": ".agent/evidence-v0.2.3/20-lint.log", + "beforeSha256": "058127eb4022e13fe809a0c56c3d3a43177b6088f284811e926452185772de6b", + "afterSha256": "058127eb4022e13fe809a0c56c3d3a43177b6088f284811e926452185772de6b" + }, + { + "file": ".agent/evidence-v0.2.3/21-format.log", + "beforeSha256": "48a148bd43ecea64bd7604be2431e2072fe390bbc578a71d65df4d1c0a369412", + "afterSha256": "48a148bd43ecea64bd7604be2431e2072fe390bbc578a71d65df4d1c0a369412" + }, + { + "file": ".agent/evidence-v0.2.3/21-select-label-GREEN.log", + "beforeSha256": "2ce474d915736281c05591c4753e23d555eda186b13c85a2ae96f8481cf35d86", + "afterSha256": "2ce474d915736281c05591c4753e23d555eda186b13c85a2ae96f8481cf35d86" + }, + { + "file": ".agent/evidence-v0.2.3/21-select-label-RED.log", + "beforeSha256": "149ee8ca004c8f63765d642305cf9e6b0ad3de5986bf0dcefaf656844c22a73d", + "afterSha256": "149ee8ca004c8f63765d642305cf9e6b0ad3de5986bf0dcefaf656844c22a73d" + }, + { + "file": ".agent/evidence-v0.2.3/22-browser.log", + "beforeSha256": "b2e4e82e78376042ea1297c930403889b22e8a275e226736c232b8cbaa74fadd", + "afterSha256": "b2e4e82e78376042ea1297c930403889b22e8a275e226736c232b8cbaa74fadd" + }, + { + "file": ".agent/evidence-v0.2.3/22-build.log", + "beforeSha256": "ed77e72c527fa7ab9d9c5c2447cd1bff34824ee6eac384bd18a50303607cbca9", + "afterSha256": "ed77e72c527fa7ab9d9c5c2447cd1bff34824ee6eac384bd18a50303607cbca9" + }, + { + "file": ".agent/evidence-v0.2.3/22-full-test.log", + "beforeSha256": "c3f38be3d6e00dc983e29a3cbfb632192a0fe64c151f06edcd8b35188edcde5c", + "afterSha256": "c3f38be3d6e00dc983e29a3cbfb632192a0fe64c151f06edcd8b35188edcde5c" + }, + { + "file": ".agent/evidence-v0.2.3/22-lint.log", + "beforeSha256": "058127eb4022e13fe809a0c56c3d3a43177b6088f284811e926452185772de6b", + "afterSha256": "058127eb4022e13fe809a0c56c3d3a43177b6088f284811e926452185772de6b" + }, + { + "file": ".agent/evidence-v0.2.3/browser/desktop-audio-integrity.json", + "beforeSha256": "3d6defdb7ad3b8d4d7949ffe476f4ebf685e5dcc1ad0868b98bb4e639b6dcadb", + "afterSha256": "3d6defdb7ad3b8d4d7949ffe476f4ebf685e5dcc1ad0868b98bb4e639b6dcadb" + }, + { + "file": ".agent/evidence-v0.2.3/browser/desktop-early-exit.png", + "beforeSha256": "a6a68bcc871939cd945f0b7a96dddd7c3b371b069efa7171fa6d3fe39e352d5f", + "afterSha256": "a6a68bcc871939cd945f0b7a96dddd7c3b371b069efa7171fa6d3fe39e352d5f" + }, + { + "file": ".agent/evidence-v0.2.3/browser/desktop-game.png", + "beforeSha256": "c7c5a04608075edf836718e6479cc776773fa22d2cd8fe3aa230bdf3ec82ccc1", + "afterSha256": "c7c5a04608075edf836718e6479cc776773fa22d2cd8fe3aa230bdf3ec82ccc1" + }, + { + "file": ".agent/evidence-v0.2.3/browser/desktop-normal-results.png", + "beforeSha256": "cf98d5168a96fac8a87718bd5a771d81e8e02dc4d46c93904556319033fe2bc0", + "afterSha256": "cf98d5168a96fac8a87718bd5a771d81e8e02dc4d46c93904556319033fe2bc0" + }, + { + "file": ".agent/evidence-v0.2.3/browser/desktop-runtime-audit.json", + "beforeSha256": "afdf38d83cf77e91b478bc806f4da007860c5db6e6146995d5d405883de8bc13", + "afterSha256": "afdf38d83cf77e91b478bc806f4da007860c5db6e6146995d5d405883de8bc13" + }, + { + "file": ".agent/evidence-v0.2.3/browser/desktop-start.png", + "beforeSha256": "911b923e3a68e8deb0063efd88ed43eb1ed6c597c14bd5b9ee71f6b5161b6d7b", + "afterSha256": "911b923e3a68e8deb0063efd88ed43eb1ed6c597c14bd5b9ee71f6b5161b6d7b" + }, + { + "file": ".agent/evidence-v0.2.3/browser/mobile-audio-integrity.json", + "beforeSha256": "3d6defdb7ad3b8d4d7949ffe476f4ebf685e5dcc1ad0868b98bb4e639b6dcadb", + "afterSha256": "3d6defdb7ad3b8d4d7949ffe476f4ebf685e5dcc1ad0868b98bb4e639b6dcadb" + }, + { + "file": ".agent/evidence-v0.2.3/browser/mobile-early-exit.png", + "beforeSha256": "5e2ef07c6c3b7672e0aa82f248a5a245d60a10f86633fab2b2dd45ecff81d7fa", + "afterSha256": "5e2ef07c6c3b7672e0aa82f248a5a245d60a10f86633fab2b2dd45ecff81d7fa" + }, + { + "file": ".agent/evidence-v0.2.3/browser/mobile-game.png", + "beforeSha256": "f4890f7d61b87c102c68f285108584ac58182186b685f73ea05f64bf51a64a0c", + "afterSha256": "f4890f7d61b87c102c68f285108584ac58182186b685f73ea05f64bf51a64a0c" + }, + { + "file": ".agent/evidence-v0.2.3/browser/mobile-normal-results.png", + "beforeSha256": "5eccd53853c27a7c1385f1219b0a9bb7af60070fbdd1469ef3265e40377f3eaa", + "afterSha256": "5eccd53853c27a7c1385f1219b0a9bb7af60070fbdd1469ef3265e40377f3eaa" + }, + { + "file": ".agent/evidence-v0.2.3/browser/mobile-runtime-audit.json", + "beforeSha256": "949c6829af7030728c7382c0ac8bde8a8cd8e3b46cf5a5919f5a6d281d4ba657", + "afterSha256": "949c6829af7030728c7382c0ac8bde8a8cd8e3b46cf5a5919f5a6d281d4ba657" + }, + { + "file": ".agent/evidence-v0.2.3/browser/mobile-start.png", + "beforeSha256": "c04abd43e93e46fde7e1591bde24a3073d584226e93ba5661bac1b5cd78a4695", + "afterSha256": "c04abd43e93e46fde7e1591bde24a3073d584226e93ba5661bac1b5cd78a4695" + }, + { + "file": ".agent/evidence-v0.2.3/browser-favicon-RED.json", + "beforeSha256": "036a734efcdff9481b3d10f1b07159ef6ca056d9245cffa469c5b1c8fe87f2bb", + "afterSha256": "036a734efcdff9481b3d10f1b07159ef6ca056d9245cffa469c5b1c8fe87f2bb" + }, + { + "file": ".agent/evidence-v0.2.3/browser-results.json", + "beforeSha256": "060d18bd74f7179884205117c6c853dc783ec7a818bdfcc8a490ef1a679c77f6", + "afterSha256": "060d18bd74f7179884205117c6c853dc783ec7a818bdfcc8a490ef1a679c77f6" + }, + { + "file": ".agent/evidence-v0.2.3/chrome-sandbox.json", + "beforeSha256": "0e0d0d3a4618e4c607a6cccd1ff04d9fdc9dcc70ff76e909e614e90b6607cae8", + "afterSha256": "0e0d0d3a4618e4c607a6cccd1ff04d9fdc9dcc70ff76e909e614e90b6607cae8" + }, + { + "file": ".agent/evidence-v0.2.3/commons-license-audit.json", + "beforeSha256": "2a36e3ac168d223849a2f171457ebd87b236301a65c8e13f5061f484c18e31d6", + "afterSha256": "2a36e3ac168d223849a2f171457ebd87b236301a65c8e13f5061f484c18e31d6" + }, + { + "file": ".agent/evidence-v0.2.3/environment.json", + "beforeSha256": "9e1c233d564982ef3b9712c2bcb5c85aef32d2276d0c3b6f5e02a009db76796e", + "afterSha256": "9e1c233d564982ef3b9712c2bcb5c85aef32d2276d0c3b6f5e02a009db76796e" + }, + { + "file": ".agent/evidence-v0.2.3/final-review.log", + "beforeSha256": "1692e79cc7e03cd3a71e10f4497914df13931aa08e1c5a66a84545ce318b5ea4", + "afterSha256": "1692e79cc7e03cd3a71e10f4497914df13931aa08e1c5a66a84545ce318b5ea4" + }, + { + "file": ".agent/evidence-v0.2.3/preservation.json", + "beforeSha256": "a938ce612b594f99e4bbd2457f3a2c665af4aeb6a465ca4c459d74c5375eb4ff", + "afterSha256": "a938ce612b594f99e4bbd2457f3a2c665af4aeb6a465ca4c459d74c5375eb4ff" + }, + { + "file": ".agent/evidence-v0.2.3/primary-page-verification.json", + "beforeSha256": "2b4a6fcaf55b51a10d378a888a634e7aeac8591d3dd5fa537f4a70806c536fd0", + "afterSha256": "2b4a6fcaf55b51a10d378a888a634e7aeac8591d3dd5fa537f4a70806c536fd0" + }, + { + "file": ".agent/evidence-v0.2.3/rain-download.log", + "beforeSha256": "701d47a1c31b5232d682641f05d71c01dc908b03b58ed1bc270a27ba9b32fea0", + "afterSha256": "701d47a1c31b5232d682641f05d71c01dc908b03b58ed1bc270a27ba9b32fea0" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/01-ui-GREEN-02.log", + "beforeSha256": "b64774bcb477aa04981b81d7764760202d0d3be110eeaa557623c3e519f9f157", + "afterSha256": "b64774bcb477aa04981b81d7764760202d0d3be110eeaa557623c3e519f9f157" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/01-ui-GREEN.log", + "beforeSha256": "ea5aff1ded1cd2dbea86f7d9e7aa7b0d69770706c98f3786722709d99aa9b5ee", + "afterSha256": "ea5aff1ded1cd2dbea86f7d9e7aa7b0d69770706c98f3786722709d99aa9b5ee" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/01-ui-RED.log", + "beforeSha256": "b0323edc4c9c13fcfd373185bd09f469b2d182fe0f4fb57cb504c228fca575b2", + "afterSha256": "b0323edc4c9c13fcfd373185bd09f469b2d182fe0f4fb57cb504c228fca575b2" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/02-browser-GREEN.log", + "beforeSha256": "1ae7f17b05363b418f42199c27d940cd5441a7e933ea6b069ee7932b89145662", + "afterSha256": "1ae7f17b05363b418f42199c27d940cd5441a7e933ea6b069ee7932b89145662" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/02-browser-RED.log", + "beforeSha256": "f8a13650707bfe2b40458eb315f481cd61a3e5289f4b7aa0a4c59a3fbcebaabe", + "afterSha256": "f8a13650707bfe2b40458eb315f481cd61a3e5289f4b7aa0a4c59a3fbcebaabe" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/02-progress-pixels-GREEN.log", + "beforeSha256": "66a53270ec9e2a28a07ba3883156085399c1a55959c3e8bb0b4a9c26648e1f46", + "afterSha256": "66a53270ec9e2a28a07ba3883156085399c1a55959c3e8bb0b4a9c26648e1f46" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/02-progress-pixels-RED.log", + "beforeSha256": "f6b7cec9c22947edc85b438ea6852884a6a6851f40c0fbd53371839942bc97e9", + "afterSha256": "f6b7cec9c22947edc85b438ea6852884a6a6851f40c0fbd53371839942bc97e9" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/02-ui-build.log", + "beforeSha256": "f147abc7cc99e466f4fb5d7414db343e8d3bb032c14ed85b8f4e85e98b83146c", + "afterSha256": "f147abc7cc99e466f4fb5d7414db343e8d3bb032c14ed85b8f4e85e98b83146c" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/03-voice-inventory-GREEN.log", + "beforeSha256": "e37b30669c6e20a575cca867cdb5e0526e1152b256a8d6e63c37c6186da48e49", + "afterSha256": "e37b30669c6e20a575cca867cdb5e0526e1152b256a8d6e63c37c6186da48e49" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/03-voice-inventory-RED.log", + "beforeSha256": "dad1ecd96671351fc95b481609a1eb2b124e377875813839e26da87cb781be60", + "afterSha256": "dad1ecd96671351fc95b481609a1eb2b124e377875813839e26da87cb781be60" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/04-source-plan-GREEN.log", + "beforeSha256": "f0186fee755ec5a6de817f1624ce3bc183c5869e052340980e0015baeef06951", + "afterSha256": "f0186fee755ec5a6de817f1624ce3bc183c5869e052340980e0015baeef06951" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/04-source-plan-RED.log", + "beforeSha256": "24e5cc322d42d76c16e203527ef26e8b7b3da527da6f474078cd6ca23e8cb49a", + "afterSha256": "24e5cc322d42d76c16e203527ef26e8b7b3da527da6f474078cd6ca23e8cb49a" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/05-source-guard-GREEN.log", + "beforeSha256": "02c54871fb1cfb26ea95314dfdc4fe8fa6faaaf6a7e19a2c0fb67a75ee0dd204", + "afterSha256": "02c54871fb1cfb26ea95314dfdc4fe8fa6faaaf6a7e19a2c0fb67a75ee0dd204" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/05-source-guard-RED.log", + "beforeSha256": "d0be14c43c6dbf4227b31721f6cb5ac66483759e4bd8da59f01b1df14b08d30f", + "afterSha256": "d0be14c43c6dbf4227b31721f6cb5ac66483759e4bd8da59f01b1df14b08d30f" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/06-atomic-GREEN.log", + "beforeSha256": "26c5dd649f0c0f479b42ba74f0e9cce2fb859f7e6b5823b4a02771fb7074d12f", + "afterSha256": "26c5dd649f0c0f479b42ba74f0e9cce2fb859f7e6b5823b4a02771fb7074d12f" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/06-atomic-RED.log", + "beforeSha256": "991397dd9a5f32440286f2bb6a3700b9c58668ebfecceffab0caa7164f69dc38", + "afterSha256": "991397dd9a5f32440286f2bb6a3700b9c58668ebfecceffab0caa7164f69dc38" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/07-notice-path-GREEN.log", + "beforeSha256": "fcd49f3a5c9808120843e11fcb229ff7fbb12c7280e27ef6a0632357ea05dd34", + "afterSha256": "fcd49f3a5c9808120843e11fcb229ff7fbb12c7280e27ef6a0632357ea05dd34" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/07-notice-path-RED.log", + "beforeSha256": "183bc30494bd1469cc06715835bff326b7032c6c9fb66ed737d7442acf07ac78", + "afterSha256": "183bc30494bd1469cc06715835bff326b7032c6c9fb66ed737d7442acf07ac78" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/08-09-build-GREEN.log", + "beforeSha256": "1a5db16769387ebbc54c55f62a78b28b5fd29cfdbcc4d480468386b0e11cac87", + "afterSha256": "1a5db16769387ebbc54c55f62a78b28b5fd29cfdbcc4d480468386b0e11cac87" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/08-notice-verifier-RED.log", + "beforeSha256": "854524d46b7eb1c21e9ca71b60e6521c81f8cc5f9d88fef3c3d5c43a0a4f7604", + "afterSha256": "854524d46b7eb1c21e9ca71b60e6521c81f8cc5f9d88fef3c3d5c43a0a4f7604" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/09-build-plan-RED.log", + "beforeSha256": "90c91a0fbe5e1e94ea6d0038e5e4a8d03b9a3d6b1351732b5fdc57e136560166", + "afterSha256": "90c91a0fbe5e1e94ea6d0038e5e4a8d03b9a3d6b1351732b5fdc57e136560166" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/10-atomic-additional.log", + "beforeSha256": "111dc0d42b1ce8bc943e8f703e299dfab403dd404a052b71d2f98135c0bdda4f", + "afterSha256": "111dc0d42b1ce8bc943e8f703e299dfab403dd404a052b71d2f98135c0bdda4f" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/11-audit.log", + "beforeSha256": "a04f4ab13e5181be11c7873e3049d1261dd797289ac0fcb1d91717a851eb51dd", + "afterSha256": "a04f4ab13e5181be11c7873e3049d1261dd797289ac0fcb1d91717a851eb51dd" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/11-build.log", + "beforeSha256": "eb8475c95e82d05326e49e21a456a55a8a696614a51a42df069f483fdadbc834", + "afterSha256": "eb8475c95e82d05326e49e21a456a55a8a696614a51a42df069f483fdadbc834" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/11-lint.log", + "beforeSha256": "72a25d6d1240a619ca103674b65757f4932f3001927ffd196789a6485045a947", + "afterSha256": "72a25d6d1240a619ca103674b65757f4932f3001927ffd196789a6485045a947" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/11-python.log", + "beforeSha256": "e8e018fc7a14b6eeece5f2b88da0b36bbdd6d351fcced327acbf06e1b0e11e6c", + "afterSha256": "e8e018fc7a14b6eeece5f2b88da0b36bbdd6d351fcced327acbf06e1b0e11e6c" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/11-unit.log", + "beforeSha256": "dcbfe3302e8e45b1b3a1a5c1e5edf107349427ac57fb0292a78cb217142eaaa8", + "afterSha256": "dcbfe3302e8e45b1b3a1a5c1e5edf107349427ac57fb0292a78cb217142eaaa8" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/12-browser.log", + "beforeSha256": "67f709fec8bab3b19fcbba0f04f919cf784cbb4fd1ac508f4f704835787c1481", + "afterSha256": "67f709fec8bab3b19fcbba0f04f919cf784cbb4fd1ac508f4f704835787c1481" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/13-diff-check.log", + "beforeSha256": "c39401a8c3e072c068daf658cbf95a8518a8186cb92da02cc6ac067de4ee0b6c", + "afterSha256": "c39401a8c3e072c068daf658cbf95a8518a8186cb92da02cc6ac067de4ee0b6c" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/14-final-review.log", + "beforeSha256": "0f2c5d1943a3a8c3d3cc02d2cd5d8c70c2d3b2ef080ec81fb839edadb47b6b82", + "afterSha256": "0f2c5d1943a3a8c3d3cc02d2cd5d8c70c2d3b2ef080ec81fb839edadb47b6b82" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/baseline-sha256.json", + "beforeSha256": "3e59389b32cdeafc2dcec3cb846a1d141d13935e09ea23c49a8fa119c1444704", + "afterSha256": "3e59389b32cdeafc2dcec3cb846a1d141d13935e09ea23c49a8fa119c1444704" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/browser-final/.last-run.json", + "beforeSha256": "91d1c43004802cd49950d78eb11c8fa7d05da8ffffe219a8b13b2f561bc00903", + "afterSha256": "91d1c43004802cd49950d78eb11c8fa7d05da8ffffe219a8b13b2f561bc00903" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/browser-final/audio-\uc74c\uc131\u00b7\ud604\uc7a5\uc74c-109\uac1c-versioned-WAV\ub97c-\uc2e4\uc81c-Chrome\uc5d0\uc11c-\ud574\uc2dc\u00b7\ub514\ucf54\ub4dc-\uac80\uc99d\ud55c\ub2e4-desktop/attachments/109-versioned-WAV-integrity-7406877c173ee35afff758c9c5f1645f0dc02fa5.json", + "beforeSha256": "3d6defdb7ad3b8d4d7949ffe476f4ebf685e5dcc1ad0868b98bb4e639b6dcadb", + "afterSha256": "3d6defdb7ad3b8d4d7949ffe476f4ebf685e5dcc1ad0868b98bb4e639b6dcadb" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/browser-final/audio-\uc74c\uc131\u00b7\ud604\uc7a5\uc74c-109\uac1c-versioned-WAV\ub97c-\uc2e4\uc81c-Chrome\uc5d0\uc11c-\ud574\uc2dc\u00b7\ub514\ucf54\ub4dc-\uac80\uc99d\ud55c\ub2e4-desktop/browser-audio-integrity.json", + "beforeSha256": "3d6defdb7ad3b8d4d7949ffe476f4ebf685e5dcc1ad0868b98bb4e639b6dcadb", + "afterSha256": "3d6defdb7ad3b8d4d7949ffe476f4ebf685e5dcc1ad0868b98bb4e639b6dcadb" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/browser-final/audio-\uc74c\uc131\u00b7\ud604\uc7a5\uc74c-109\uac1c-versioned-WAV\ub97c-\uc2e4\uc81c-Chrome\uc5d0\uc11c-\ud574\uc2dc\u00b7\ub514\ucf54\ub4dc-\uac80\uc99d\ud55c\ub2e4-mobile/attachments/109-versioned-WAV-integrity-9b9f8223b6524087ac395eb7a96ac0d386fbcb95.json", + "beforeSha256": "3d6defdb7ad3b8d4d7949ffe476f4ebf685e5dcc1ad0868b98bb4e639b6dcadb", + "afterSha256": "3d6defdb7ad3b8d4d7949ffe476f4ebf685e5dcc1ad0868b98bb4e639b6dcadb" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/browser-final/audio-\uc74c\uc131\u00b7\ud604\uc7a5\uc74c-109\uac1c-versioned-WAV\ub97c-\uc2e4\uc81c-Chrome\uc5d0\uc11c-\ud574\uc2dc\u00b7\ub514\ucf54\ub4dc-\uac80\uc99d\ud55c\ub2e4-mobile/browser-audio-integrity.json", + "beforeSha256": "3d6defdb7ad3b8d4d7949ffe476f4ebf685e5dcc1ad0868b98bb4e639b6dcadb", + "afterSha256": "3d6defdb7ad3b8d4d7949ffe476f4ebf685e5dcc1ad0868b98bb4e639b6dcadb" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/browser-final/game-\uc2e4\uc81c-\uc624\ub514\uc624\ub85c-\ud63c\ud569-\ubaa8\ub4dc-\uc644\uc8fc\u00b7\ub808\uc774\uc544\uc6c3\u00b7\uc811\uadfc\uc131\u00b7\uc678\ubd80-\uc694\uccad-\uc5c6\uc74c-desktop/game.png", + "beforeSha256": "17c22581f74ddcd78770ebfbb75f0041298baab336c17cd5b37ff5e29b8b6a7d", + "afterSha256": "17c22581f74ddcd78770ebfbb75f0041298baab336c17cd5b37ff5e29b8b6a7d" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/browser-final/game-\uc2e4\uc81c-\uc624\ub514\uc624\ub85c-\ud63c\ud569-\ubaa8\ub4dc-\uc644\uc8fc\u00b7\ub808\uc774\uc544\uc6c3\u00b7\uc811\uadfc\uc131\u00b7\uc678\ubd80-\uc694\uccad-\uc5c6\uc74c-desktop/home.png", + "beforeSha256": "911b923e3a68e8deb0063efd88ed43eb1ed6c597c14bd5b9ee71f6b5161b6d7b", + "afterSha256": "911b923e3a68e8deb0063efd88ed43eb1ed6c597c14bd5b9ee71f6b5161b6d7b" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/browser-final/game-\uc2e4\uc81c-\uc624\ub514\uc624\ub85c-\ud63c\ud569-\ubaa8\ub4dc-\uc644\uc8fc\u00b7\ub808\uc774\uc544\uc6c3\u00b7\uc811\uadfc\uc131\u00b7\uc678\ubd80-\uc694\uccad-\uc5c6\uc74c-desktop/results.png", + "beforeSha256": "51d34a4717075e8b516b2f334d6a30affecea776568052cc9ccb9d7518ecbebf", + "afterSha256": "51d34a4717075e8b516b2f334d6a30affecea776568052cc9ccb9d7518ecbebf" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/browser-final/game-\uc2e4\uc81c-\uc624\ub514\uc624\ub85c-\ud63c\ud569-\ubaa8\ub4dc-\uc644\uc8fc\u00b7\ub808\uc774\uc544\uc6c3\u00b7\uc811\uadfc\uc131\u00b7\uc678\ubd80-\uc694\uccad-\uc5c6\uc74c-mobile/game.png", + "beforeSha256": "13291f8ba632d1962611e25c99f73fa3d7732f7b8ef3a9222a5ddd5082576353", + "afterSha256": "13291f8ba632d1962611e25c99f73fa3d7732f7b8ef3a9222a5ddd5082576353" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/browser-final/game-\uc2e4\uc81c-\uc624\ub514\uc624\ub85c-\ud63c\ud569-\ubaa8\ub4dc-\uc644\uc8fc\u00b7\ub808\uc774\uc544\uc6c3\u00b7\uc811\uadfc\uc131\u00b7\uc678\ubd80-\uc694\uccad-\uc5c6\uc74c-mobile/home.png", + "beforeSha256": "a17b7cad00be132583d28f91a938a83f69663365575e1a91d17013e6d7369002", + "afterSha256": "a17b7cad00be132583d28f91a938a83f69663365575e1a91d17013e6d7369002" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/browser-final/game-\uc2e4\uc81c-\uc624\ub514\uc624\ub85c-\ud63c\ud569-\ubaa8\ub4dc-\uc644\uc8fc\u00b7\ub808\uc774\uc544\uc6c3\u00b7\uc811\uadfc\uc131\u00b7\uc678\ubd80-\uc694\uccad-\uc5c6\uc74c-mobile/results.png", + "beforeSha256": "2f973a00b336f2373cac53c79ae56eb7760cf4eeaff019bde949a86b7e92665a", + "afterSha256": "2f973a00b336f2373cac53c79ae56eb7760cf4eeaff019bde949a86b7e92665a" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/browser-final/review-fixes-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-desktop/normal-results.png", + "beforeSha256": "85e8b066ac128239de765f001c3542e6905018f5deaec7abac4a985006fb03b5", + "afterSha256": "85e8b066ac128239de765f001c3542e6905018f5deaec7abac4a985006fb03b5" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/browser-final/review-fixes-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-desktop/progress-1.png", + "beforeSha256": "4d130e9ea43bdfcd7b35e300224d1b54f2875aa8c24d5551c6627b7abd8ce1fc", + "afterSha256": "4d130e9ea43bdfcd7b35e300224d1b54f2875aa8c24d5551c6627b7abd8ce1fc" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/browser-final/review-fixes-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-desktop/progress-2.png", + "beforeSha256": "4508a9c9e5c7533e9bf8afe6653fb4e1cd111de71141f0fb5404ab4c4b168ac9", + "afterSha256": "4508a9c9e5c7533e9bf8afe6653fb4e1cd111de71141f0fb5404ab4c4b168ac9" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/browser-final/review-fixes-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-desktop/progress-3.png", + "beforeSha256": "fde834aa2f803612ef9cc7a68cea0c8d5a225289a82321ba0a59063d151e66a0", + "afterSha256": "fde834aa2f803612ef9cc7a68cea0c8d5a225289a82321ba0a59063d151e66a0" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/browser-final/review-fixes-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-mobile/normal-results.png", + "beforeSha256": "2f973a00b336f2373cac53c79ae56eb7760cf4eeaff019bde949a86b7e92665a", + "afterSha256": "2f973a00b336f2373cac53c79ae56eb7760cf4eeaff019bde949a86b7e92665a" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/browser-final/review-fixes-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-mobile/progress-1.png", + "beforeSha256": "f46672f555b73c705f838e6d1e1c3d25fe2f9ff29ad629903b85c9b129b83b3b", + "afterSha256": "f46672f555b73c705f838e6d1e1c3d25fe2f9ff29ad629903b85c9b129b83b3b" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/browser-final/review-fixes-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-mobile/progress-2.png", + "beforeSha256": "c39155a3c4d4ae096cb73a892e8e86b40a2d4129c670a7b44d4b24daf8030983", + "afterSha256": "c39155a3c4d4ae096cb73a892e8e86b40a2d4129c670a7b44d4b24daf8030983" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/browser-final/review-fixes-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-mobile/progress-3.png", + "beforeSha256": "9d198c8b07ea84e9f3d9ebad03831ffd61b98672a9e637e7ee9e9eead959cf28", + "afterSha256": "9d198c8b07ea84e9f3d9ebad03831ffd61b98672a9e637e7ee9e9eead959cf28" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/browser-final/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-desktop/copy-320-home.png", + "beforeSha256": "872c362713d2013c7021770e3c222458f56ba0ee2ea2d21cf28bd28df8a6d613", + "afterSha256": "872c362713d2013c7021770e3c222458f56ba0ee2ea2d21cf28bd28df8a6d613" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/browser-final/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-desktop/copy-320-results.png", + "beforeSha256": "fdf263c2c84c64beab026e2899b4b93a7b71b4fcf28b796e5782bb5bc17c2c78", + "afterSha256": "fdf263c2c84c64beab026e2899b4b93a7b71b4fcf28b796e5782bb5bc17c2c78" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/browser-final/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-desktop/copy-360-home.png", + "beforeSha256": "a17b7cad00be132583d28f91a938a83f69663365575e1a91d17013e6d7369002", + "afterSha256": "a17b7cad00be132583d28f91a938a83f69663365575e1a91d17013e6d7369002" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/browser-final/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-desktop/copy-360-results.png", + "beforeSha256": "b838f6bbb4392ef8aa941c66dec5bef6bb27f06acada06b67272be926db9d576", + "afterSha256": "b838f6bbb4392ef8aa941c66dec5bef6bb27f06acada06b67272be926db9d576" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/browser-final/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-mobile/copy-320-home.png", + "beforeSha256": "872c362713d2013c7021770e3c222458f56ba0ee2ea2d21cf28bd28df8a6d613", + "afterSha256": "872c362713d2013c7021770e3c222458f56ba0ee2ea2d21cf28bd28df8a6d613" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/browser-final/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-mobile/copy-320-results.png", + "beforeSha256": "fdf263c2c84c64beab026e2899b4b93a7b71b4fcf28b796e5782bb5bc17c2c78", + "afterSha256": "fdf263c2c84c64beab026e2899b4b93a7b71b4fcf28b796e5782bb5bc17c2c78" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/browser-final/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-mobile/copy-360-home.png", + "beforeSha256": "a17b7cad00be132583d28f91a938a83f69663365575e1a91d17013e6d7369002", + "afterSha256": "a17b7cad00be132583d28f91a938a83f69663365575e1a91d17013e6d7369002" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/browser-final/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-mobile/copy-360-results.png", + "beforeSha256": "b838f6bbb4392ef8aa941c66dec5bef6bb27f06acada06b67272be926db9d576", + "afterSha256": "b838f6bbb4392ef8aa941c66dec5bef6bb27f06acada06b67272be926db9d576" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/browser-final/rounds-\uc2dc\uc791-\ub2e8\uacc4\u00b7SNR\u00b73\ubb38\ud56d-\uc644\ub8cc\u2192\ub2e4\uc74c-\ub2e8\uacc4\u00b7\uc7ac\uc0dd-\uc911-\uc885\ub8cc\u00b7\uc751\ub2f5-\ud6c4-\uc885\ub8cc\u00b7\ud648-\ucd08\uae30\ud654-desktop/early-exit.png", + "beforeSha256": "47cf4429695d65ddad8d353aaa14dd5edcea3ef4c09c16b537d6a72c3e256533", + "afterSha256": "47cf4429695d65ddad8d353aaa14dd5edcea3ef4c09c16b537d6a72c3e256533" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/browser-final/rounds-\uc2dc\uc791-\ub2e8\uacc4\u00b7SNR\u00b73\ubb38\ud56d-\uc644\ub8cc\u2192\ub2e4\uc74c-\ub2e8\uacc4\u00b7\uc7ac\uc0dd-\uc911-\uc885\ub8cc\u00b7\uc751\ub2f5-\ud6c4-\uc885\ub8cc\u00b7\ud648-\ucd08\uae30\ud654-mobile/early-exit.png", + "beforeSha256": "b838f6bbb4392ef8aa941c66dec5bef6bb27f06acada06b67272be926db9d576", + "afterSha256": "b838f6bbb4392ef8aa941c66dec5bef6bb27f06acada06b67272be926db9d576" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/browser-final/ui-\ud55c\uad6d\uc5b4-\uc81c\ubaa9\uc740-\ub2e8\uc5b4-\uc911\uac04\uc5d0\uc11c-\uc904\ubc14\uafc8\ud558\uc9c0-\uc54a\ub294\ub2e4-desktop/heading.png", + "beforeSha256": "56fa16aa968018bcc3252168a0c9e7fd3b30d352cb831b29caed75329c96dac7", + "afterSha256": "56fa16aa968018bcc3252168a0c9e7fd3b30d352cb831b29caed75329c96dac7" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/browser-final/ui-\ud55c\uad6d\uc5b4-\uc81c\ubaa9\uc740-\ub2e8\uc5b4-\uc911\uac04\uc5d0\uc11c-\uc904\ubc14\uafc8\ud558\uc9c0-\uc54a\ub294\ub2e4-mobile/heading.png", + "beforeSha256": "8ae22f403cacecc1d4e59bfeb1faec5b1be1038f87e1bbd564a9e8b5065c693e", + "afterSha256": "8ae22f403cacecc1d4e59bfeb1faec5b1be1038f87e1bbd564a9e8b5065c693e" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/browser-green/.last-run.json", + "beforeSha256": "91d1c43004802cd49950d78eb11c8fa7d05da8ffffe219a8b13b2f561bc00903", + "afterSha256": "91d1c43004802cd49950d78eb11c8fa7d05da8ffffe219a8b13b2f561bc00903" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/browser-green/review-fixes-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-desktop/normal-results.png", + "beforeSha256": "85e8b066ac128239de765f001c3542e6905018f5deaec7abac4a985006fb03b5", + "afterSha256": "85e8b066ac128239de765f001c3542e6905018f5deaec7abac4a985006fb03b5" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/browser-green/review-fixes-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-desktop/progress-1.png", + "beforeSha256": "4d130e9ea43bdfcd7b35e300224d1b54f2875aa8c24d5551c6627b7abd8ce1fc", + "afterSha256": "4d130e9ea43bdfcd7b35e300224d1b54f2875aa8c24d5551c6627b7abd8ce1fc" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/browser-green/review-fixes-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-desktop/progress-2.png", + "beforeSha256": "4508a9c9e5c7533e9bf8afe6653fb4e1cd111de71141f0fb5404ab4c4b168ac9", + "afterSha256": "4508a9c9e5c7533e9bf8afe6653fb4e1cd111de71141f0fb5404ab4c4b168ac9" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/browser-green/review-fixes-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-desktop/progress-3.png", + "beforeSha256": "fde834aa2f803612ef9cc7a68cea0c8d5a225289a82321ba0a59063d151e66a0", + "afterSha256": "fde834aa2f803612ef9cc7a68cea0c8d5a225289a82321ba0a59063d151e66a0" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/browser-green/review-fixes-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-mobile/normal-results.png", + "beforeSha256": "2f973a00b336f2373cac53c79ae56eb7760cf4eeaff019bde949a86b7e92665a", + "afterSha256": "2f973a00b336f2373cac53c79ae56eb7760cf4eeaff019bde949a86b7e92665a" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/browser-green/review-fixes-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-mobile/progress-1.png", + "beforeSha256": "f46672f555b73c705f838e6d1e1c3d25fe2f9ff29ad629903b85c9b129b83b3b", + "afterSha256": "f46672f555b73c705f838e6d1e1c3d25fe2f9ff29ad629903b85c9b129b83b3b" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/browser-green/review-fixes-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-mobile/progress-2.png", + "beforeSha256": "c39155a3c4d4ae096cb73a892e8e86b40a2d4129c670a7b44d4b24daf8030983", + "afterSha256": "c39155a3c4d4ae096cb73a892e8e86b40a2d4129c670a7b44d4b24daf8030983" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/browser-green/review-fixes-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-mobile/progress-3.png", + "beforeSha256": "9d198c8b07ea84e9f3d9ebad03831ffd61b98672a9e637e7ee9e9eead959cf28", + "afterSha256": "9d198c8b07ea84e9f3d9ebad03831ffd61b98672a9e637e7ee9e9eead959cf28" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/browser-green/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-desktop/copy-320-home.png", + "beforeSha256": "872c362713d2013c7021770e3c222458f56ba0ee2ea2d21cf28bd28df8a6d613", + "afterSha256": "872c362713d2013c7021770e3c222458f56ba0ee2ea2d21cf28bd28df8a6d613" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/browser-green/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-desktop/copy-320-results.png", + "beforeSha256": "fdf263c2c84c64beab026e2899b4b93a7b71b4fcf28b796e5782bb5bc17c2c78", + "afterSha256": "fdf263c2c84c64beab026e2899b4b93a7b71b4fcf28b796e5782bb5bc17c2c78" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/browser-green/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-desktop/copy-360-home.png", + "beforeSha256": "a17b7cad00be132583d28f91a938a83f69663365575e1a91d17013e6d7369002", + "afterSha256": "a17b7cad00be132583d28f91a938a83f69663365575e1a91d17013e6d7369002" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/browser-green/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-desktop/copy-360-results.png", + "beforeSha256": "b838f6bbb4392ef8aa941c66dec5bef6bb27f06acada06b67272be926db9d576", + "afterSha256": "b838f6bbb4392ef8aa941c66dec5bef6bb27f06acada06b67272be926db9d576" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/browser-green/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-mobile/copy-320-home.png", + "beforeSha256": "872c362713d2013c7021770e3c222458f56ba0ee2ea2d21cf28bd28df8a6d613", + "afterSha256": "872c362713d2013c7021770e3c222458f56ba0ee2ea2d21cf28bd28df8a6d613" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/browser-green/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-mobile/copy-320-results.png", + "beforeSha256": "fdf263c2c84c64beab026e2899b4b93a7b71b4fcf28b796e5782bb5bc17c2c78", + "afterSha256": "fdf263c2c84c64beab026e2899b4b93a7b71b4fcf28b796e5782bb5bc17c2c78" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/browser-green/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-mobile/copy-360-home.png", + "beforeSha256": "a17b7cad00be132583d28f91a938a83f69663365575e1a91d17013e6d7369002", + "afterSha256": "a17b7cad00be132583d28f91a938a83f69663365575e1a91d17013e6d7369002" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/browser-green/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-mobile/copy-360-results.png", + "beforeSha256": "b838f6bbb4392ef8aa941c66dec5bef6bb27f06acada06b67272be926db9d576", + "afterSha256": "b838f6bbb4392ef8aa941c66dec5bef6bb27f06acada06b67272be926db9d576" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/browser-red/.last-run.json", + "beforeSha256": "78fe937fdabae861b58404e69d2faec459c97fbe435f74222101037f0b9a3315", + "afterSha256": "78fe937fdabae861b58404e69d2faec459c97fbe435f74222101037f0b9a3315" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-desktop/error-context.md", + "beforeSha256": "fa4b05c6fb8ec98c57ff96e2f0d568aeb7ed027d8763712e767e50e13b25b31c", + "afterSha256": "fa4b05c6fb8ec98c57ff96e2f0d568aeb7ed027d8763712e767e50e13b25b31c" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-desktop/normal-results.png", + "beforeSha256": "d3caf1e2d8625d6020e1e9061143b38843fa5698e7316b65a73569cce6026b73", + "afterSha256": "d3caf1e2d8625d6020e1e9061143b38843fa5698e7316b65a73569cce6026b73" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-desktop/progress-1.png", + "beforeSha256": "e4f413e3dd1379a913a1d94ec5f084f607a80fe375382eb74cee2ac515aa8590", + "afterSha256": "e4f413e3dd1379a913a1d94ec5f084f607a80fe375382eb74cee2ac515aa8590" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-desktop/progress-2.png", + "beforeSha256": "4d130e9ea43bdfcd7b35e300224d1b54f2875aa8c24d5551c6627b7abd8ce1fc", + "afterSha256": "4d130e9ea43bdfcd7b35e300224d1b54f2875aa8c24d5551c6627b7abd8ce1fc" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-desktop/progress-3.png", + "beforeSha256": "4508a9c9e5c7533e9bf8afe6653fb4e1cd111de71141f0fb5404ab4c4b168ac9", + "afterSha256": "4508a9c9e5c7533e9bf8afe6653fb4e1cd111de71141f0fb5404ab4c4b168ac9" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-desktop/trace.zip", + "beforeSha256": "f415eaae383b21d1fd059b3f99b2a1ec962a34facd2959406985e08710bf7a54", + "afterSha256": "f415eaae383b21d1fd059b3f99b2a1ec962a34facd2959406985e08710bf7a54" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-mobile/error-context.md", + "beforeSha256": "1a289b42d134b84701446f0bfe2f1e462121412930595617023c1cf93e2e0c40", + "afterSha256": "1a289b42d134b84701446f0bfe2f1e462121412930595617023c1cf93e2e0c40" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-mobile/normal-results.png", + "beforeSha256": "5eccd53853c27a7c1385f1219b0a9bb7af60070fbdd1469ef3265e40377f3eaa", + "afterSha256": "5eccd53853c27a7c1385f1219b0a9bb7af60070fbdd1469ef3265e40377f3eaa" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-mobile/progress-1.png", + "beforeSha256": "3597007bfc13a2a9dcb9477ce836b68cccb78f55957f1f460431b67fe90e0f13", + "afterSha256": "3597007bfc13a2a9dcb9477ce836b68cccb78f55957f1f460431b67fe90e0f13" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-mobile/progress-2.png", + "beforeSha256": "f46672f555b73c705f838e6d1e1c3d25fe2f9ff29ad629903b85c9b129b83b3b", + "afterSha256": "f46672f555b73c705f838e6d1e1c3d25fe2f9ff29ad629903b85c9b129b83b3b" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-mobile/progress-3.png", + "beforeSha256": "c39155a3c4d4ae096cb73a892e8e86b40a2d4129c670a7b44d4b24daf8030983", + "afterSha256": "c39155a3c4d4ae096cb73a892e8e86b40a2d4129c670a7b44d4b24daf8030983" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-mobile/trace.zip", + "beforeSha256": "022a0078453d25254bb6bb4af59fbd3696abd5acaaee750343adea3cd9b8aa0d", + "afterSha256": "022a0078453d25254bb6bb4af59fbd3696abd5acaaee750343adea3cd9b8aa0d" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-desktop/copy-320-home.png", + "beforeSha256": "872c362713d2013c7021770e3c222458f56ba0ee2ea2d21cf28bd28df8a6d613", + "afterSha256": "872c362713d2013c7021770e3c222458f56ba0ee2ea2d21cf28bd28df8a6d613" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-desktop/copy-320-results.png", + "beforeSha256": "b1dae69c908b9911d536d3e41553447bc71908a035f28bbc1f885d1def337b92", + "afterSha256": "b1dae69c908b9911d536d3e41553447bc71908a035f28bbc1f885d1def337b92" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-desktop/copy-360-home.png", + "beforeSha256": "c04abd43e93e46fde7e1591bde24a3073d584226e93ba5661bac1b5cd78a4695", + "afterSha256": "c04abd43e93e46fde7e1591bde24a3073d584226e93ba5661bac1b5cd78a4695" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-desktop/copy-360-results.png", + "beforeSha256": "5e2ef07c6c3b7672e0aa82f248a5a245d60a10f86633fab2b2dd45ecff81d7fa", + "afterSha256": "5e2ef07c6c3b7672e0aa82f248a5a245d60a10f86633fab2b2dd45ecff81d7fa" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-desktop/error-context.md", + "beforeSha256": "d186519b7904a6ef3096e49c18e5e410528df127a7de409e237e7571d8a89f1b", + "afterSha256": "d186519b7904a6ef3096e49c18e5e410528df127a7de409e237e7571d8a89f1b" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-desktop/trace.zip", + "beforeSha256": "6d2abede66a4b0784accca9a0fea36ea71cabb138855e84343a2cb7f64cdab71", + "afterSha256": "6d2abede66a4b0784accca9a0fea36ea71cabb138855e84343a2cb7f64cdab71" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-mobile/copy-320-home.png", + "beforeSha256": "872c362713d2013c7021770e3c222458f56ba0ee2ea2d21cf28bd28df8a6d613", + "afterSha256": "872c362713d2013c7021770e3c222458f56ba0ee2ea2d21cf28bd28df8a6d613" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-mobile/copy-320-results.png", + "beforeSha256": "b1dae69c908b9911d536d3e41553447bc71908a035f28bbc1f885d1def337b92", + "afterSha256": "b1dae69c908b9911d536d3e41553447bc71908a035f28bbc1f885d1def337b92" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-mobile/copy-360-home.png", + "beforeSha256": "c04abd43e93e46fde7e1591bde24a3073d584226e93ba5661bac1b5cd78a4695", + "afterSha256": "c04abd43e93e46fde7e1591bde24a3073d584226e93ba5661bac1b5cd78a4695" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-mobile/copy-360-results.png", + "beforeSha256": "5e2ef07c6c3b7672e0aa82f248a5a245d60a10f86633fab2b2dd45ecff81d7fa", + "afterSha256": "5e2ef07c6c3b7672e0aa82f248a5a245d60a10f86633fab2b2dd45ecff81d7fa" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-mobile/error-context.md", + "beforeSha256": "d186519b7904a6ef3096e49c18e5e410528df127a7de409e237e7571d8a89f1b", + "afterSha256": "d186519b7904a6ef3096e49c18e5e410528df127a7de409e237e7571d8a89f1b" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-mobile/trace.zip", + "beforeSha256": "8ced8d12bbceb962456728ce1e2fe7c687503594ab0e14774f13368705b3ac6f", + "afterSha256": "8ced8d12bbceb962456728ce1e2fe7c687503594ab0e14774f13368705b3ac6f" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/browser-results.json", + "beforeSha256": "81cb42ae097d36878f0263e41f3a9e4fb2f5f2394d4331332517818b434ba521", + "afterSha256": "81cb42ae097d36878f0263e41f3a9e4fb2f5f2394d4331332517818b434ba521" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/chrome-sandbox.json", + "beforeSha256": "915067209786cb6fe2c83e90fb8f9d9d9b3f7af876786819a9a54ee6a96aab6d", + "afterSha256": "915067209786cb6fe2c83e90fb8f9d9d9b3f7af876786819a9a54ee6a96aab6d" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/desktop-audio-integrity.json", + "beforeSha256": "3d6defdb7ad3b8d4d7949ffe476f4ebf685e5dcc1ad0868b98bb4e639b6dcadb", + "afterSha256": "3d6defdb7ad3b8d4d7949ffe476f4ebf685e5dcc1ad0868b98bb4e639b6dcadb" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/desktop-runtime-audit.json", + "beforeSha256": "61b9c48518a9cad75f53b8084ddf18910d6e028b2c8696cdda338a37f5bc283c", + "afterSha256": "61b9c48518a9cad75f53b8084ddf18910d6e028b2c8696cdda338a37f5bc283c" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/environment.json", + "beforeSha256": "924a9c62b6f0da242b09c9374f6e9f5ef75b09a5f7c0eb8776ad1e701b31436e", + "afterSha256": "924a9c62b6f0da242b09c9374f6e9f5ef75b09a5f7c0eb8776ad1e701b31436e" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/mobile-audio-integrity.json", + "beforeSha256": "3d6defdb7ad3b8d4d7949ffe476f4ebf685e5dcc1ad0868b98bb4e639b6dcadb", + "afterSha256": "3d6defdb7ad3b8d4d7949ffe476f4ebf685e5dcc1ad0868b98bb4e639b6dcadb" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/mobile-runtime-audit.json", + "beforeSha256": "9059b42becd1dc1a3923053a5792c83ca9574f185b9a82c1cf1f6aa48296a055", + "afterSha256": "9059b42becd1dc1a3923053a5792c83ca9574f185b9a82c1cf1f6aa48296a055" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/npm-audit.json", + "beforeSha256": "ea7bab3cc606a95eecdf538b0d02d3cf928bf0f3a1cfb1d2c8ddbe02846d5658", + "afterSha256": "ea7bab3cc606a95eecdf538b0d02d3cf928bf0f3a1cfb1d2c8ddbe02846d5658" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/preservation.json", + "beforeSha256": "5057edde3be25fb79d8dcbcaf54eaee315f40b4852064fc6509814da2e70b7bf", + "afterSha256": "5057edde3be25fb79d8dcbcaf54eaee315f40b4852064fc6509814da2e70b7bf" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/screenshots/desktop-early-exit.png", + "beforeSha256": "47cf4429695d65ddad8d353aaa14dd5edcea3ef4c09c16b537d6a72c3e256533", + "afterSha256": "47cf4429695d65ddad8d353aaa14dd5edcea3ef4c09c16b537d6a72c3e256533" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/screenshots/desktop-game.png", + "beforeSha256": "17c22581f74ddcd78770ebfbb75f0041298baab336c17cd5b37ff5e29b8b6a7d", + "afterSha256": "17c22581f74ddcd78770ebfbb75f0041298baab336c17cd5b37ff5e29b8b6a7d" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/screenshots/desktop-normal-results.png", + "beforeSha256": "85e8b066ac128239de765f001c3542e6905018f5deaec7abac4a985006fb03b5", + "afterSha256": "85e8b066ac128239de765f001c3542e6905018f5deaec7abac4a985006fb03b5" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/screenshots/desktop-progress-1.png", + "beforeSha256": "4d130e9ea43bdfcd7b35e300224d1b54f2875aa8c24d5551c6627b7abd8ce1fc", + "afterSha256": "4d130e9ea43bdfcd7b35e300224d1b54f2875aa8c24d5551c6627b7abd8ce1fc" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/screenshots/desktop-progress-2.png", + "beforeSha256": "4508a9c9e5c7533e9bf8afe6653fb4e1cd111de71141f0fb5404ab4c4b168ac9", + "afterSha256": "4508a9c9e5c7533e9bf8afe6653fb4e1cd111de71141f0fb5404ab4c4b168ac9" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/screenshots/desktop-progress-3.png", + "beforeSha256": "fde834aa2f803612ef9cc7a68cea0c8d5a225289a82321ba0a59063d151e66a0", + "afterSha256": "fde834aa2f803612ef9cc7a68cea0c8d5a225289a82321ba0a59063d151e66a0" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/screenshots/desktop-start.png", + "beforeSha256": "911b923e3a68e8deb0063efd88ed43eb1ed6c597c14bd5b9ee71f6b5161b6d7b", + "afterSha256": "911b923e3a68e8deb0063efd88ed43eb1ed6c597c14bd5b9ee71f6b5161b6d7b" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/screenshots/mobile-early-exit.png", + "beforeSha256": "b838f6bbb4392ef8aa941c66dec5bef6bb27f06acada06b67272be926db9d576", + "afterSha256": "b838f6bbb4392ef8aa941c66dec5bef6bb27f06acada06b67272be926db9d576" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/screenshots/mobile-game.png", + "beforeSha256": "13291f8ba632d1962611e25c99f73fa3d7732f7b8ef3a9222a5ddd5082576353", + "afterSha256": "13291f8ba632d1962611e25c99f73fa3d7732f7b8ef3a9222a5ddd5082576353" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/screenshots/mobile-normal-results.png", + "beforeSha256": "2f973a00b336f2373cac53c79ae56eb7760cf4eeaff019bde949a86b7e92665a", + "afterSha256": "2f973a00b336f2373cac53c79ae56eb7760cf4eeaff019bde949a86b7e92665a" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/screenshots/mobile-progress-1.png", + "beforeSha256": "f46672f555b73c705f838e6d1e1c3d25fe2f9ff29ad629903b85c9b129b83b3b", + "afterSha256": "f46672f555b73c705f838e6d1e1c3d25fe2f9ff29ad629903b85c9b129b83b3b" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/screenshots/mobile-progress-2.png", + "beforeSha256": "c39155a3c4d4ae096cb73a892e8e86b40a2d4129c670a7b44d4b24daf8030983", + "afterSha256": "c39155a3c4d4ae096cb73a892e8e86b40a2d4129c670a7b44d4b24daf8030983" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/screenshots/mobile-progress-3.png", + "beforeSha256": "9d198c8b07ea84e9f3d9ebad03831ffd61b98672a9e637e7ee9e9eead959cf28", + "afterSha256": "9d198c8b07ea84e9f3d9ebad03831ffd61b98672a9e637e7ee9e9eead959cf28" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/screenshots/mobile-start.png", + "beforeSha256": "a17b7cad00be132583d28f91a938a83f69663365575e1a91d17013e6d7369002", + "afterSha256": "a17b7cad00be132583d28f91a938a83f69663365575e1a91d17013e6d7369002" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/source-reverification.json", + "beforeSha256": "f92d3d9a6d613eb7432b59c5587f39be4c23090566ae0f01bd0bd2fe2d25feaa", + "afterSha256": "f92d3d9a6d613eb7432b59c5587f39be4c23090566ae0f01bd0bd2fe2d25feaa" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/verified-code-sha256.json", + "beforeSha256": "3002de6366d74baa493d28fa1009b04c09926d379d67da44e077cee3f6ec93cd", + "afterSha256": "3002de6366d74baa493d28fa1009b04c09926d379d67da44e077cee3f6ec93cd" + }, + { + "file": ".agent/evidence-v0.2.3/secret-scan.json", + "beforeSha256": "8928209f4e2bef083901f845ae3fd8e949c0a266cefa15ff4563eef337a008d2", + "afterSha256": "8928209f4e2bef083901f845ae3fd8e949c0a266cefa15ff4563eef337a008d2" + }, + { + "file": ".agent/evidence-v0.2.3/source-downloads.log", + "beforeSha256": "c49692acca2fddc1cdbea155ef0ae6191a9f7eeee3508d3bf608a71bec349e46", + "afterSha256": "c49692acca2fddc1cdbea155ef0ae6191a9f7eeee3508d3bf608a71bec349e46" + }, + { + "file": ".agent/evidence-v0.2.3/source-integrity.json", + "beforeSha256": "61c080d80081a3fdc9b2c78a4183805df6293184add2bca9534aee8d82bd5b96", + "afterSha256": "61c080d80081a3fdc9b2c78a4183805df6293184add2bca9534aee8d82bd5b96" + } + ], + "wavFiles": [ + { + "file": "public/audio/correction-apple.wav", + "beforeSha256": "ccd7327a3fb54d3320d049ffdced3bc17595861cee69429c0ee97182d454195b", + "afterSha256": "ccd7327a3fb54d3320d049ffdced3bc17595861cee69429c0ee97182d454195b" + }, + { + "file": "public/audio/correction-furniture.wav", + "beforeSha256": "5c004a7b2f5a4a918c9f689f1a2dcb219a620ed14313f40a9655b36dbf64948d", + "afterSha256": "5c004a7b2f5a4a918c9f689f1a2dcb219a620ed14313f40a9655b36dbf64948d" + }, + { + "file": "public/audio/correction-hat.wav", + "beforeSha256": "f9f98c91cfbcfcb106eef7d5d3795a9cf3c3aab7e19a60f13d7dffe284d19f86", + "afterSha256": "f9f98c91cfbcfcb106eef7d5d3795a9cf3c3aab7e19a60f13d7dffe284d19f86" + }, + { + "file": "public/audio/correction-market.wav", + "beforeSha256": "b8d25b867497adcd0fe7c8b6a8a8d2e7a52965956738a83e53f58735708773f9", + "afterSha256": "b8d25b867497adcd0fe7c8b6a8a8d2e7a52965956738a83e53f58735708773f9" + }, + { + "file": "public/audio/correction-meat.wav", + "beforeSha256": "48e91b3932d3798e852041a854b3ee08c72127e092c62083a47af6b99adff241", + "afterSha256": "48e91b3932d3798e852041a854b3ee08c72127e092c62083a47af6b99adff241" + }, + { + "file": "public/audio/correction-oil.wav", + "beforeSha256": "f6eff0cdddcad9790351491e60c53cb2a70d222033a583652f2de0b8cd6abcc7", + "afterSha256": "f6eff0cdddcad9790351491e60c53cb2a70d222033a583652f2de0b8cd6abcc7" + }, + { + "file": "public/audio/correction-sea.wav", + "beforeSha256": "9233431d78ab4b144e3c33ad0cf0d49fc0fb91b29514343230ba32987b794bb3", + "afterSha256": "9233431d78ab4b144e3c33ad0cf0d49fc0fb91b29514343230ba32987b794bb3" + }, + { + "file": "public/audio/correction-sound.wav", + "beforeSha256": "5a603bc69979603afddcaeb6edf500a7c540b72405daeb33f5335d746b327da1", + "afterSha256": "5a603bc69979603afddcaeb6edf500a7c540b72405daeb33f5335d746b327da1" + }, + { + "file": "public/audio/correction-tree.wav", + "beforeSha256": "b8e8bbe6b8b14727efd953fae9d4aed2caeb004055d52f611c6378322847edbe", + "afterSha256": "b8e8bbe6b8b14727efd953fae9d4aed2caeb004055d52f611c6378322847edbe" + }, + { + "file": "public/audio/correction-umbrella.wav", + "beforeSha256": "92b54f04884ab915783945077efd8f3bd443849a1720f72168b6348cae1f8e85", + "afterSha256": "92b54f04884ab915783945077efd8f3bd443849a1720f72168b6348cae1f8e85" + }, + { + "file": "public/audio/first-apple.wav", + "beforeSha256": "7c1dbcb3082055df2b8f087f7e906ec867c92f679de0894c34740c05e61a4bc1", + "afterSha256": "7c1dbcb3082055df2b8f087f7e906ec867c92f679de0894c34740c05e61a4bc1" + }, + { + "file": "public/audio/first-furniture.wav", + "beforeSha256": "29f007b385b7182db1d8aeccad4fc3c260df5e66e14e52a46b0ef0fcd0ff3a0a", + "afterSha256": "29f007b385b7182db1d8aeccad4fc3c260df5e66e14e52a46b0ef0fcd0ff3a0a" + }, + { + "file": "public/audio/first-hat.wav", + "beforeSha256": "17c8cde90567e7574b0c0702663bd70713054089ee920241b5444d9b7869eef5", + "afterSha256": "17c8cde90567e7574b0c0702663bd70713054089ee920241b5444d9b7869eef5" + }, + { + "file": "public/audio/first-market.wav", + "beforeSha256": "1e00b8f70a796cdebb0feb00c605fece7488b06915e6e036f54206f05e201e0c", + "afterSha256": "1e00b8f70a796cdebb0feb00c605fece7488b06915e6e036f54206f05e201e0c" + }, + { + "file": "public/audio/first-meat.wav", + "beforeSha256": "f51a37c1722fef581f7d642a4dcae7fcb9953b3c318dce971bf616cd1a81fecc", + "afterSha256": "f51a37c1722fef581f7d642a4dcae7fcb9953b3c318dce971bf616cd1a81fecc" + }, + { + "file": "public/audio/first-oil.wav", + "beforeSha256": "f415195e0cfc7ee711d09de7519e88eab62cc8b58d70772c83c3f5c27c267819", + "afterSha256": "f415195e0cfc7ee711d09de7519e88eab62cc8b58d70772c83c3f5c27c267819" + }, + { + "file": "public/audio/first-sea.wav", + "beforeSha256": "0f0b39314c5f7d7168d4854003c0c284e7bc3438cdc4d1d1c5adab7cb5ed30e5", + "afterSha256": "0f0b39314c5f7d7168d4854003c0c284e7bc3438cdc4d1d1c5adab7cb5ed30e5" + }, + { + "file": "public/audio/first-sound.wav", + "beforeSha256": "46f6adeed928a16af0700f1e8626cf8049f124632a04a5d10604426fb06f9596", + "afterSha256": "46f6adeed928a16af0700f1e8626cf8049f124632a04a5d10604426fb06f9596" + }, + { + "file": "public/audio/first-tree.wav", + "beforeSha256": "3178230fd5850b6277a2153b438ec5289720e3db7ac929914cc213964f004bd5", + "afterSha256": "3178230fd5850b6277a2153b438ec5289720e3db7ac929914cc213964f004bd5" + }, + { + "file": "public/audio/first-umbrella.wav", + "beforeSha256": "878e0bd2e6e4105f175aef51a028f6b141f3a2072be20f783193f3ba897a3ee0", + "afterSha256": "878e0bd2e6e4105f175aef51a028f6b141f3a2072be20f783193f3ba897a3ee0" + }, + { + "file": "public/audio/intro.wav", + "beforeSha256": "90d9f46e6e3f9c8a0c1a781096df54d7809ef4ad38b289508ef7b8c0411465ce", + "afterSha256": "90d9f46e6e3f9c8a0c1a781096df54d7809ef4ad38b289508ef7b8c0411465ce" + }, + { + "file": "public/audio/last-apple.wav", + "beforeSha256": "4cb2a8579fa3a7b91bb36363826ce8ca0d6d86e96e16a479e226a2802edd82f7", + "afterSha256": "4cb2a8579fa3a7b91bb36363826ce8ca0d6d86e96e16a479e226a2802edd82f7" + }, + { + "file": "public/audio/last-furniture.wav", + "beforeSha256": "5ad4f776e35439d408abed0e66567d6b5cdc80fc54d579165472e474f1238776", + "afterSha256": "5ad4f776e35439d408abed0e66567d6b5cdc80fc54d579165472e474f1238776" + }, + { + "file": "public/audio/last-hat.wav", + "beforeSha256": "bdaf8fbc54df8061e9e58aa8c14b3044a6e863dc54973ee3ee6ae2c5ae1a28f1", + "afterSha256": "bdaf8fbc54df8061e9e58aa8c14b3044a6e863dc54973ee3ee6ae2c5ae1a28f1" + }, + { + "file": "public/audio/last-market.wav", + "beforeSha256": "7857e87e9dbfe8fe849cc0b18c1d45b60916cb337328099c7a87a42c82e2821e", + "afterSha256": "7857e87e9dbfe8fe849cc0b18c1d45b60916cb337328099c7a87a42c82e2821e" + }, + { + "file": "public/audio/last-meat.wav", + "beforeSha256": "10f8ad4259ed8945c9da831e80b3902303c09caef96d400298599168fb1efed4", + "afterSha256": "10f8ad4259ed8945c9da831e80b3902303c09caef96d400298599168fb1efed4" + }, + { + "file": "public/audio/last-oil.wav", + "beforeSha256": "b5ce34950b8b31b1baf6ce55410797f0d8aa5478a670d6eace87cf76d134d6d3", + "afterSha256": "b5ce34950b8b31b1baf6ce55410797f0d8aa5478a670d6eace87cf76d134d6d3" + }, + { + "file": "public/audio/last-sea.wav", + "beforeSha256": "f755452e1da44674aa1df7d12edffa988091b89a394e7eb6d4a00eb721f07cbf", + "afterSha256": "f755452e1da44674aa1df7d12edffa988091b89a394e7eb6d4a00eb721f07cbf" + }, + { + "file": "public/audio/last-sound.wav", + "beforeSha256": "ec9c49802aebeb6a8b898a1c0d8ad1daa127d2d64c905c197ed49a8e0c4eb64a", + "afterSha256": "ec9c49802aebeb6a8b898a1c0d8ad1daa127d2d64c905c197ed49a8e0c4eb64a" + }, + { + "file": "public/audio/last-tree.wav", + "beforeSha256": "589e56d940a3c9e80ec02ae0b2dd93463fdc85ef019a753fcd0fded0752055f9", + "afterSha256": "589e56d940a3c9e80ec02ae0b2dd93463fdc85ef019a753fcd0fded0752055f9" + }, + { + "file": "public/audio/last-umbrella.wav", + "beforeSha256": "c801293a34013a8d93d3289a2cc87cd3eed83f97ba4647f5060efa00b117a9ad", + "afterSha256": "c801293a34013a8d93d3289a2cc87cd3eed83f97ba4647f5060efa00b117a9ad" + }, + { + "file": "public/audio/luck-apple.wav", + "beforeSha256": "7c8f413f4b7e164f090e508ba090448f1376c6012649bbb6a917d45851313883", + "afterSha256": "7c8f413f4b7e164f090e508ba090448f1376c6012649bbb6a917d45851313883" + }, + { + "file": "public/audio/luck-furniture.wav", + "beforeSha256": "52cb92cdb8ee92b6f581c9d68dbc346f180c470564809ba57185429c9eb84127", + "afterSha256": "52cb92cdb8ee92b6f581c9d68dbc346f180c470564809ba57185429c9eb84127" + }, + { + "file": "public/audio/luck-hat.wav", + "beforeSha256": "4ff43dd042f4b5451e9fdeb3edd59f1e389a7d1dd488094587a3a9fc7dfffa44", + "afterSha256": "4ff43dd042f4b5451e9fdeb3edd59f1e389a7d1dd488094587a3a9fc7dfffa44" + }, + { + "file": "public/audio/luck-market.wav", + "beforeSha256": "356af25332bf2000ed349671f3ff39767929e1f4599af622c021f907d11fb7bf", + "afterSha256": "356af25332bf2000ed349671f3ff39767929e1f4599af622c021f907d11fb7bf" + }, + { + "file": "public/audio/luck-meat.wav", + "beforeSha256": "d36dfc395a5c53fbfa4abe9980db7bb59adfdac59e40318c4aca365365e3f2ab", + "afterSha256": "d36dfc395a5c53fbfa4abe9980db7bb59adfdac59e40318c4aca365365e3f2ab" + }, + { + "file": "public/audio/luck-oil.wav", + "beforeSha256": "3fa1e662a3af8f2726b17b2baa5bec2934406e6595ebc243c8380dd16e190977", + "afterSha256": "3fa1e662a3af8f2726b17b2baa5bec2934406e6595ebc243c8380dd16e190977" + }, + { + "file": "public/audio/luck-sea.wav", + "beforeSha256": "47aa31d757c9fb49c9b53a1c052d90a5ced4be57549d649850d9b48f8864045b", + "afterSha256": "47aa31d757c9fb49c9b53a1c052d90a5ced4be57549d649850d9b48f8864045b" + }, + { + "file": "public/audio/luck-sound.wav", + "beforeSha256": "34e4d9758d2ed448646fda364610e34779c84794403d9051ab3d8c1d33e2c80c", + "afterSha256": "34e4d9758d2ed448646fda364610e34779c84794403d9051ab3d8c1d33e2c80c" + }, + { + "file": "public/audio/luck-tree.wav", + "beforeSha256": "122f496834fb16d6da47f801e50e46e272e4e934af959467d1db4e490f79be7a", + "afterSha256": "122f496834fb16d6da47f801e50e46e272e4e934af959467d1db4e490f79be7a" + }, + { + "file": "public/audio/luck-umbrella.wav", + "beforeSha256": "8d3e8e8bc97e5fe3f3362184c4abb12f01a882a1f1174d2644f0f70aac677c0a", + "afterSha256": "8d3e8e8bc97e5fe3f3362184c4abb12f01a882a1f1174d2644f0f70aac677c0a" + }, + { + "file": "public/audio/message-apple.wav", + "beforeSha256": "d85e6f47d871369f00de2274139e5ad6b4b5686b5e20e248df0ed6b9a320d942", + "afterSha256": "d85e6f47d871369f00de2274139e5ad6b4b5686b5e20e248df0ed6b9a320d942" + }, + { + "file": "public/audio/message-furniture.wav", + "beforeSha256": "26c331b7e12311236f4bb48f88918dfbf53cccd2f50b55741ea6ff4473e71dd8", + "afterSha256": "26c331b7e12311236f4bb48f88918dfbf53cccd2f50b55741ea6ff4473e71dd8" + }, + { + "file": "public/audio/message-hat.wav", + "beforeSha256": "5a713a8522b231bb8276805c014b385b9150b79f58ff2618446607e2b442495e", + "afterSha256": "5a713a8522b231bb8276805c014b385b9150b79f58ff2618446607e2b442495e" + }, + { + "file": "public/audio/message-market.wav", + "beforeSha256": "9242d4cd6e0030e6b073e4d2360f84aa8a454d1749711cdb2d64c14f28a7ea20", + "afterSha256": "9242d4cd6e0030e6b073e4d2360f84aa8a454d1749711cdb2d64c14f28a7ea20" + }, + { + "file": "public/audio/message-meat.wav", + "beforeSha256": "ce19735df079b54c171e775b6b365385a80160b9033442abab95b2b9c8505e1a", + "afterSha256": "ce19735df079b54c171e775b6b365385a80160b9033442abab95b2b9c8505e1a" + }, + { + "file": "public/audio/message-oil.wav", + "beforeSha256": "a2a71a7e5e07c81871a25c6cb7540c39aa0b32fc44f78cda66b5f34ace98d805", + "afterSha256": "a2a71a7e5e07c81871a25c6cb7540c39aa0b32fc44f78cda66b5f34ace98d805" + }, + { + "file": "public/audio/message-sea.wav", + "beforeSha256": "28a461fbe03bffe2560030dea8b60715f7c0fe262dcf85b5b7f7daf483836382", + "afterSha256": "28a461fbe03bffe2560030dea8b60715f7c0fe262dcf85b5b7f7daf483836382" + }, + { + "file": "public/audio/message-sound.wav", + "beforeSha256": "1e682147dae8026ba78dc8f256c7f24acb3a6743bfd88a0fcc86096930eef078", + "afterSha256": "1e682147dae8026ba78dc8f256c7f24acb3a6743bfd88a0fcc86096930eef078" + }, + { + "file": "public/audio/message-tree.wav", + "beforeSha256": "5d684aa710a63d36ed8dcc2a8bfbdd5c71b0b1c63dad2a324adecb76591e85b8", + "afterSha256": "5d684aa710a63d36ed8dcc2a8bfbdd5c71b0b1c63dad2a324adecb76591e85b8" + }, + { + "file": "public/audio/message-umbrella.wav", + "beforeSha256": "41d5866dae66600df4694a8312b531571d44cece6dba0e423e7c43d09d184819", + "afterSha256": "41d5866dae66600df4694a8312b531571d44cece6dba0e423e7c43d09d184819" + }, + { + "file": "public/audio/middle-apple.wav", + "beforeSha256": "8832f1b793ab3eedbe663875ea8dbeabb122c329bd5879437c71230b0418c3c8", + "afterSha256": "8832f1b793ab3eedbe663875ea8dbeabb122c329bd5879437c71230b0418c3c8" + }, + { + "file": "public/audio/middle-furniture.wav", + "beforeSha256": "b45b1afc8d9b534ff3e0a2a2ecb99efc1f4e40d41f89f55c4ed8ba94ad6d76d4", + "afterSha256": "b45b1afc8d9b534ff3e0a2a2ecb99efc1f4e40d41f89f55c4ed8ba94ad6d76d4" + }, + { + "file": "public/audio/middle-hat.wav", + "beforeSha256": "b01ef9762ac84e3eb757243bc9286c62f7d45444a821ae35ac36a8b095e1598a", + "afterSha256": "b01ef9762ac84e3eb757243bc9286c62f7d45444a821ae35ac36a8b095e1598a" + }, + { + "file": "public/audio/middle-market.wav", + "beforeSha256": "c855b449e0d4ace74681bfe68e5e7f0b063568827ae872017234dbe8ae119e4c", + "afterSha256": "c855b449e0d4ace74681bfe68e5e7f0b063568827ae872017234dbe8ae119e4c" + }, + { + "file": "public/audio/middle-meat.wav", + "beforeSha256": "d416107cc05e7c5b92ca27100a10a8a9689de913346179945d5542de4a6bac0c", + "afterSha256": "d416107cc05e7c5b92ca27100a10a8a9689de913346179945d5542de4a6bac0c" + }, + { + "file": "public/audio/middle-oil.wav", + "beforeSha256": "7a6b122b11c07da86c95fb78e2db2a70681b5219c63d6441fe56da1979ac1dc3", + "afterSha256": "7a6b122b11c07da86c95fb78e2db2a70681b5219c63d6441fe56da1979ac1dc3" + }, + { + "file": "public/audio/middle-sea.wav", + "beforeSha256": "b6dbe0af143ea775f05bd59a3d6af348bcc770ab378ac91ea75a56e06c326edf", + "afterSha256": "b6dbe0af143ea775f05bd59a3d6af348bcc770ab378ac91ea75a56e06c326edf" + }, + { + "file": "public/audio/middle-sound.wav", + "beforeSha256": "4d00aa6114327f450a00dacbc7e7b572ebf1de4ce9dc2fe4b5505766cca71ce9", + "afterSha256": "4d00aa6114327f450a00dacbc7e7b572ebf1de4ce9dc2fe4b5505766cca71ce9" + }, + { + "file": "public/audio/middle-tree.wav", + "beforeSha256": "341888c75275c13eb31058f53a1d4276be0daa0a1b5a3a45522036928b83b0c1", + "afterSha256": "341888c75275c13eb31058f53a1d4276be0daa0a1b5a3a45522036928b83b0c1" + }, + { + "file": "public/audio/middle-umbrella.wav", + "beforeSha256": "399ea2f681f755918f1117c8baba42739ceca64b307b999342f457a9235050b6", + "afterSha256": "399ea2f681f755918f1117c8baba42739ceca64b307b999342f457a9235050b6" + }, + { + "file": "public/audio/mission-apple.wav", + "beforeSha256": "3ef42e276ff3500c3e197d149f29f79d6a0c1d5516ed1d5a2c57210333fded9c", + "afterSha256": "3ef42e276ff3500c3e197d149f29f79d6a0c1d5516ed1d5a2c57210333fded9c" + }, + { + "file": "public/audio/mission-furniture.wav", + "beforeSha256": "af82e03b686635c3356e706fe5b05c1231aeaaeab33f275aa5b8714988c65d43", + "afterSha256": "af82e03b686635c3356e706fe5b05c1231aeaaeab33f275aa5b8714988c65d43" + }, + { + "file": "public/audio/mission-hat.wav", + "beforeSha256": "308278ec2bd27d4224976a55632d1f7fa1edabb0792126d9d858a699c287aee4", + "afterSha256": "308278ec2bd27d4224976a55632d1f7fa1edabb0792126d9d858a699c287aee4" + }, + { + "file": "public/audio/mission-market.wav", + "beforeSha256": "cefa0e95649ea6bd1df4c8dfccd2b74b4f4c028714420ce1087b61db2f2a8d47", + "afterSha256": "cefa0e95649ea6bd1df4c8dfccd2b74b4f4c028714420ce1087b61db2f2a8d47" + }, + { + "file": "public/audio/mission-meat.wav", + "beforeSha256": "94f8a4f9e116a787e5ed052661d6de9ecf3ad8629db476661dd59ad03014b0c9", + "afterSha256": "94f8a4f9e116a787e5ed052661d6de9ecf3ad8629db476661dd59ad03014b0c9" + }, + { + "file": "public/audio/mission-oil.wav", + "beforeSha256": "5fb63e04520c312aa6b7b48b70c2f7c140b5ab480e5c6992edbc2ba85b9a06e7", + "afterSha256": "5fb63e04520c312aa6b7b48b70c2f7c140b5ab480e5c6992edbc2ba85b9a06e7" + }, + { + "file": "public/audio/mission-sea.wav", + "beforeSha256": "8838d6a1ee8a790427dc5aa761e70b3d8872af62086efeed743297ff7f8b8a06", + "afterSha256": "8838d6a1ee8a790427dc5aa761e70b3d8872af62086efeed743297ff7f8b8a06" + }, + { + "file": "public/audio/mission-sound.wav", + "beforeSha256": "659eb0e2b06e6b165b46744769743e032e2282519f8486c57bc45e0f7d07a069", + "afterSha256": "659eb0e2b06e6b165b46744769743e032e2282519f8486c57bc45e0f7d07a069" + }, + { + "file": "public/audio/mission-tree.wav", + "beforeSha256": "00d8e77ec0371971d632724d91f8cf8d947bfb83c582a513b6421be4c457a1da", + "afterSha256": "00d8e77ec0371971d632724d91f8cf8d947bfb83c582a513b6421be4c457a1da" + }, + { + "file": "public/audio/mission-umbrella.wav", + "beforeSha256": "4b4c858a25659540f9dbc524664496fc6de61ab8c1627f3cfee8c9c744e11d5b", + "afterSha256": "4b4c858a25659540f9dbc524664496fc6de61ab8c1627f3cfee8c9c744e11d5b" + }, + { + "file": "public/audio/password-apple.wav", + "beforeSha256": "b6f5de3fe571fe3a7fdb722fe49250bcfeedef49475271e0ec76a7630907edd5", + "afterSha256": "b6f5de3fe571fe3a7fdb722fe49250bcfeedef49475271e0ec76a7630907edd5" + }, + { + "file": "public/audio/password-furniture.wav", + "beforeSha256": "fb2b631dd4e12120d08a84cce6450f9cd9cd68105d13d7001d808e7deaa1df4a", + "afterSha256": "fb2b631dd4e12120d08a84cce6450f9cd9cd68105d13d7001d808e7deaa1df4a" + }, + { + "file": "public/audio/password-hat.wav", + "beforeSha256": "e91bfc97df90a1675b6cd856880ac15c54de32cfc3b23603bdd1c2c5ac3ce6b8", + "afterSha256": "e91bfc97df90a1675b6cd856880ac15c54de32cfc3b23603bdd1c2c5ac3ce6b8" + }, + { + "file": "public/audio/password-market.wav", + "beforeSha256": "02e325fb753ef7a3ee585a03d2ca2aa3f1fbc58523b062222ae1136eeed7a95c", + "afterSha256": "02e325fb753ef7a3ee585a03d2ca2aa3f1fbc58523b062222ae1136eeed7a95c" + }, + { + "file": "public/audio/password-meat.wav", + "beforeSha256": "b009caadd56350d6a641ff17f0973e2b2724c183e1f45ae0bf3c483e237fa99e", + "afterSha256": "b009caadd56350d6a641ff17f0973e2b2724c183e1f45ae0bf3c483e237fa99e" + }, + { + "file": "public/audio/password-oil.wav", + "beforeSha256": "b472957b27ff98ea7b8894fa1ff12653f7e9f66f77870faa9e52a1c1bf116c41", + "afterSha256": "b472957b27ff98ea7b8894fa1ff12653f7e9f66f77870faa9e52a1c1bf116c41" + }, + { + "file": "public/audio/password-sea.wav", + "beforeSha256": "03f45b8cb5b3dc72faf5c6e3d0e2a10cea6b60301ea400d0a4453596d2f0b337", + "afterSha256": "03f45b8cb5b3dc72faf5c6e3d0e2a10cea6b60301ea400d0a4453596d2f0b337" + }, + { + "file": "public/audio/password-sound.wav", + "beforeSha256": "044aafff08a19e39f21e58b963644715a987cd155896998769ef8e9ce6449628", + "afterSha256": "044aafff08a19e39f21e58b963644715a987cd155896998769ef8e9ce6449628" + }, + { + "file": "public/audio/password-tree.wav", + "beforeSha256": "67da8147296e35134ec254bc82b58317630061b2c64d2d63c4be197ce8692d50", + "afterSha256": "67da8147296e35134ec254bc82b58317630061b2c64d2d63c4be197ce8692d50" + }, + { + "file": "public/audio/password-umbrella.wav", + "beforeSha256": "ab3ca6398c879971dc793eb25b472fcc0db72d76e386f11ef4d32c639f37c69d", + "afterSha256": "ab3ca6398c879971dc793eb25b472fcc0db72d76e386f11ef4d32c639f37c69d" + }, + { + "file": "public/audio/remember-apple.wav", + "beforeSha256": "1bf2aef9a9f030af1a8fd7dee8f44aa420a397b3ba99b575feeb3dc7a63ec191", + "afterSha256": "1bf2aef9a9f030af1a8fd7dee8f44aa420a397b3ba99b575feeb3dc7a63ec191" + }, + { + "file": "public/audio/remember-furniture.wav", + "beforeSha256": "442bdcb956f120c270e1f321feae0415c897de0183e468980fcc119b898b2a67", + "afterSha256": "442bdcb956f120c270e1f321feae0415c897de0183e468980fcc119b898b2a67" + }, + { + "file": "public/audio/remember-hat.wav", + "beforeSha256": "31a6a4270bf368cda419094d87a303ac3cd5c22539786cb165f8044b0b8e9d6e", + "afterSha256": "31a6a4270bf368cda419094d87a303ac3cd5c22539786cb165f8044b0b8e9d6e" + }, + { + "file": "public/audio/remember-market.wav", + "beforeSha256": "d89792da51c83ac49d27e55aa6d822a338899a5ee487b34b552748201e1522f6", + "afterSha256": "d89792da51c83ac49d27e55aa6d822a338899a5ee487b34b552748201e1522f6" + }, + { + "file": "public/audio/remember-meat.wav", + "beforeSha256": "9183ef90b64f5ceaf3bb0178c689231ff3e9981d6ce889124a15f2a6e2b7a344", + "afterSha256": "9183ef90b64f5ceaf3bb0178c689231ff3e9981d6ce889124a15f2a6e2b7a344" + }, + { + "file": "public/audio/remember-oil.wav", + "beforeSha256": "3ca98682ff06d1d6b8af02c0fd5b2124f42266ac989884223eff4a9bbde1287a", + "afterSha256": "3ca98682ff06d1d6b8af02c0fd5b2124f42266ac989884223eff4a9bbde1287a" + }, + { + "file": "public/audio/remember-sea.wav", + "beforeSha256": "5c91a36496e274d2be9c6fa8d9b506cd04f2a1b7ceb05ed1b7bb03fe7fca99d9", + "afterSha256": "5c91a36496e274d2be9c6fa8d9b506cd04f2a1b7ceb05ed1b7bb03fe7fca99d9" + }, + { + "file": "public/audio/remember-sound.wav", + "beforeSha256": "98387ccc7aab566f6487d4c250b2128082cc527e013a6f7b7bc4d0266ac295df", + "afterSha256": "98387ccc7aab566f6487d4c250b2128082cc527e013a6f7b7bc4d0266ac295df" + }, + { + "file": "public/audio/remember-tree.wav", + "beforeSha256": "bc8e54f5407e8866bf1ca1ddfd4f6c63d85fee29bd9e430c7dd33e87974fc5b8", + "afterSha256": "bc8e54f5407e8866bf1ca1ddfd4f6c63d85fee29bd9e430c7dd33e87974fc5b8" + }, + { + "file": "public/audio/remember-umbrella.wav", + "beforeSha256": "c8988e604ba05d52597e561389541e8f9cda86e052279f1862bbf8399ead314e", + "afterSha256": "c8988e604ba05d52597e561389541e8f9cda86e052279f1862bbf8399ead314e" + }, + { + "file": "public/audio/repeat-apple.wav", + "beforeSha256": "cb7da4e9a1288cac64d168b241f27d7d2bc2dfecace58744f9bbf2792dfad04e", + "afterSha256": "cb7da4e9a1288cac64d168b241f27d7d2bc2dfecace58744f9bbf2792dfad04e" + }, + { + "file": "public/audio/repeat-furniture.wav", + "beforeSha256": "bf84dc6cff1f227924a3a62158d2fc18769fb0ca40b91418fa19e534dbf92f00", + "afterSha256": "bf84dc6cff1f227924a3a62158d2fc18769fb0ca40b91418fa19e534dbf92f00" + }, + { + "file": "public/audio/repeat-hat.wav", + "beforeSha256": "6e089a42fd7e65e82eec7186d369c926fb7fdac794365b2bd7658822fd92437c", + "afterSha256": "6e089a42fd7e65e82eec7186d369c926fb7fdac794365b2bd7658822fd92437c" + }, + { + "file": "public/audio/repeat-market.wav", + "beforeSha256": "68a5b899115a66ab225d610ec47b4de56cc8793657362bc38f533c06f741e4cc", + "afterSha256": "68a5b899115a66ab225d610ec47b4de56cc8793657362bc38f533c06f741e4cc" + }, + { + "file": "public/audio/repeat-meat.wav", + "beforeSha256": "6599d2fac73ea616a793151b4ce6f51af673988d630bac6219a77e78ae6cb34e", + "afterSha256": "6599d2fac73ea616a793151b4ce6f51af673988d630bac6219a77e78ae6cb34e" + }, + { + "file": "public/audio/repeat-oil.wav", + "beforeSha256": "55b2c7d6aa8bbce04edf8661882c9781da81c57f56217f99b80457a3bb895da0", + "afterSha256": "55b2c7d6aa8bbce04edf8661882c9781da81c57f56217f99b80457a3bb895da0" + }, + { + "file": "public/audio/repeat-sea.wav", + "beforeSha256": "db2f235bee26ac804b5362e8e013b8f40c8da24fd3a34e0fb3b43c6d264feb36", + "afterSha256": "db2f235bee26ac804b5362e8e013b8f40c8da24fd3a34e0fb3b43c6d264feb36" + }, + { + "file": "public/audio/repeat-sound.wav", + "beforeSha256": "e9d636ff7f4777f38b1ff15bebdcec6fbde95b4b4b05625a7415b4cfa0025b59", + "afterSha256": "e9d636ff7f4777f38b1ff15bebdcec6fbde95b4b4b05625a7415b4cfa0025b59" + }, + { + "file": "public/audio/repeat-tree.wav", + "beforeSha256": "8735c3d9672561ca237fa87317beec2878492eb9063d6048d5b214423561acc1", + "afterSha256": "8735c3d9672561ca237fa87317beec2878492eb9063d6048d5b214423561acc1" + }, + { + "file": "public/audio/repeat-umbrella.wav", + "beforeSha256": "5e59ef39113c3d5e106862356d715f4cef2862ef8ee02654a97e532675c1ac6d", + "afterSha256": "5e59ef39113c3d5e106862356d715f4cef2862ef8ee02654a97e532675c1ac6d" + }, + { + "file": "public/ambience/cafe.wav", + "beforeSha256": "8db06f3f09bbd8409573ba4874c7ccdd1e7e825c8a61989a4efe66206a66c2d2", + "afterSha256": "802a956e91b85a2fdd0e1f161d75bfada7a53499bcb57ba7f578411480ded216" + }, + { + "file": "public/ambience/department.wav", + "beforeSha256": "aa43f3d1d3e7c2b1f8ace24ecbda45d0ea3a031db941c39506dc6c1665b8efa7", + "afterSha256": "aa43f3d1d3e7c2b1f8ace24ecbda45d0ea3a031db941c39506dc6c1665b8efa7" + }, + { + "file": "public/ambience/mall.wav", + "beforeSha256": "6e9171f549cacadfaeedd57a41c8e2a76b0e789f5c9a97af029a8d3558c9f145", + "afterSha256": "680a769940c08f0d12c6c954c08366598dd8b5745e276f39c82b10d1a88261a1" + }, + { + "file": "public/ambience/market.wav", + "beforeSha256": "4287e971a12767f70da714e0c1aff30125268f9c3faf07ebfbcc0d2904f4a312", + "afterSha256": "7a7a980845a4aade2a7e8a108eae746220a4688e92792ee93d3deb76b2a762f6" + }, + { + "file": "public/ambience/rain.wav", + "beforeSha256": "f4315084e820f742b0709de5bb0d1abd3d5af1730620e08c2948b70347356dd9", + "afterSha256": "f4315084e820f742b0709de5bb0d1abd3d5af1730620e08c2948b70347356dd9" + }, + { + "file": "public/ambience/street.wav", + "beforeSha256": "a8bffa201b174618955bc51b860167169125304811aabe2086b0bb35b06c3ae1", + "afterSha256": "a8bffa201b174618955bc51b860167169125304811aabe2086b0bb35b06c3ae1" + }, + { + "file": "public/ambience/subway.wav", + "beforeSha256": "9faf70b68617d267b367a0f3692ed90015458543ab4b0844f6c704e6a724728f", + "afterSha256": "9faf70b68617d267b367a0f3692ed90015458543ab4b0844f6c704e6a724728f" + }, + { + "file": "public/ambience/theater.wav", + "beforeSha256": "2d6a444fb7874cdf6b2d8a741a69175299b112eb66834912c025437d8277d635", + "afterSha256": "2d6a444fb7874cdf6b2d8a741a69175299b112eb66834912c025437d8277d635" + } + ], + "trackedAgentFiles": [ + { + "file": ".agent/ACCEPTANCE-v0.1.1.md", + "gitBlobSha1": "a5489ca9f4dc5ce13adc11d1437fd4aa88d6044a" + }, + { + "file": ".agent/ACCEPTANCE.md", + "gitBlobSha1": "675f45de09fc8448aece19aebfd969cbf207f9a2" + }, + { + "file": ".agent/CONTEXT.md", + "gitBlobSha1": "8d5600bb1023fadac0e9c2b30cb16115d8d54baf" + }, + { + "file": ".agent/RESULT-v0.1.1.md", + "gitBlobSha1": "e61a8e1c74aa6b3c158bb3aa7a572a02b41c9fc4" + }, + { + "file": ".agent/RESULT.md", + "gitBlobSha1": "2629084567fa71484f415309fc892329ffc7319c" + }, + { + "file": ".agent/TASK-v0.1.1.md", + "gitBlobSha1": "abaf78a0d1c5d300af4bd341de329705baa3d2b8" + }, + { + "file": ".agent/TASK.md", + "gitBlobSha1": "cd2e40d10bbe9feaff94123a54ebec9b9d747ab0" + }, + { + "file": ".agent/evidence-v0.1.1/00-audio-venv.log", + "gitBlobSha1": "2a0294dbbbc9cf8b395badc21f7e0c4eb456b5c3" + }, + { + "file": ".agent/evidence-v0.1.1/00-npm-ci.log", + "gitBlobSha1": "d06cb331f6acdb6bd14fc4712ad4b9b311d7fc07" + }, + { + "file": ".agent/evidence-v0.1.1/01-version-docs-red.log", + "gitBlobSha1": "6a344e74758db58220587290638ec0ad72804360" + }, + { + "file": ".agent/evidence-v0.1.1/02-assets-red.log", + "gitBlobSha1": "d38c28f1aefad423c2ec6f53f5e5e57116bd5477" + }, + { + "file": ".agent/evidence-v0.1.1/03-generator-red.log", + "gitBlobSha1": "69c7c86152ddbc28a2a41cebb7920835a8e76abc" + }, + { + "file": ".agent/evidence-v0.1.1/04-generator-additional-red.log", + "gitBlobSha1": "97c9f9296036298e8e421ff4b0b6aa865927e10a" + }, + { + "file": ".agent/evidence-v0.1.1/05-generator-green.log", + "gitBlobSha1": "6e24b5be563c9f832a5811c3aedc72a91de71b44" + }, + { + "file": ".agent/evidence-v0.1.1/06-audio-generate.log", + "gitBlobSha1": "75cca1fbd07344006300929e1aa26bbaa62c9c85" + }, + { + "file": ".agent/evidence-v0.1.1/07-format.log", + "gitBlobSha1": "d29ca142e1c8a6fd42b7b3454681941754416510" + }, + { + "file": ".agent/evidence-v0.1.1/08-version-docs-green.log", + "gitBlobSha1": "46f874caf20b36321fb79fb306bb126c94ea284f" + }, + { + "file": ".agent/evidence-v0.1.1/09-lint.log", + "gitBlobSha1": "bc96f272b289798d0fd1183c945c21b85cb7aef9" + }, + { + "file": ".agent/evidence-v0.1.1/10-audit.log", + "gitBlobSha1": "f372dee584a34135b0868d2d419ac8b2ce1c2314" + }, + { + "file": ".agent/evidence-v0.1.1/11-full-test.log", + "gitBlobSha1": "be3ea27ff3f151459e4cbbd7477831f4e1e387c7" + }, + { + "file": ".agent/evidence-v0.1.1/12-independent-audio.log", + "gitBlobSha1": "4663f25f6caa227a54c3df688ef6572052e4c5f2" + }, + { + "file": ".agent/evidence-v0.1.1/13-build.log", + "gitBlobSha1": "1b6ace525238ff63d5ad774551ff01ba9005aea5" + }, + { + "file": ".agent/evidence-v0.1.1/14-browser.log", + "gitBlobSha1": "c3bb779a9d6207af262661e7b52ee31ed8ca615a" + }, + { + "file": ".agent/evidence-v0.1.1/15-browser-audio.log", + "gitBlobSha1": "c8c957ffa508f8fb4026e087d6f8d793ccfaebdb" + }, + { + "file": ".agent/evidence-v0.1.1/16-final-lint.log", + "gitBlobSha1": "bc96f272b289798d0fd1183c945c21b85cb7aef9" + }, + { + "file": ".agent/evidence-v0.1.1/17-security-history.json", + "gitBlobSha1": "2a85598da0005f3e5db6a9d4d8f470d1d82344b1" + }, + { + "file": ".agent/evidence-v0.1.1/18-environment.log", + "gitBlobSha1": "38f72eaf1c8d37ec6c51424be5fc6b9bcb5f8dd2" + }, + { + "file": ".agent/evidence-v0.1.1/19-final-integrity.json", + "gitBlobSha1": "f830465ba39d1988e87ef1340612effd3e82f12f" + }, + { + "file": ".agent/evidence-v0.1.1/audio-integrity.json", + "gitBlobSha1": "3c680d139b826ff209bbc2110426e66e9615f90c" + }, + { + "file": ".agent/evidence-v0.1.1/baseline.json", + "gitBlobSha1": "d938817ac184df4faa6114b3ed8ca6ed84724ab5" + }, + { + "file": ".agent/evidence-v0.1.1/browser-audio-integrity.json", + "gitBlobSha1": "91f85378d1465d7ec2e391c74d08b6400c488ce2" + }, + { + "file": ".agent/evidence-v0.1.1/cache-regression/00-baseline.json", + "gitBlobSha1": "a28b5f3751dedcc6c92ca0f85ab3a5a531c361b8" + }, + { + "file": ".agent/evidence-v0.1.1/cache-regression/01-unit-red.log", + "gitBlobSha1": "d90a57f8802368bf6fe1e1ec053b778e91aed3e1" + }, + { + "file": ".agent/evidence-v0.1.1/cache-regression/02-build-before-fix.log", + "gitBlobSha1": "0dbc9efc1ad5444eb1af5ca106febc94ae987b23" + }, + { + "file": ".agent/evidence-v0.1.1/cache-regression/03-browser-red.log", + "gitBlobSha1": "5feccd6209a6df184ae3869925e21509aacef776" + }, + { + "file": ".agent/evidence-v0.1.1/cache-regression/04-red-state.json", + "gitBlobSha1": "cfb525d54c96113da1ae2fcfac45fd885920fb6e" + }, + { + "file": ".agent/evidence-v0.1.1/cache-regression/05-unit-green.log", + "gitBlobSha1": "121ca896d9d5dd4b0eee7d7396f61ca632bb1f5f" + }, + { + "file": ".agent/evidence-v0.1.1/cache-regression/06-lint.log", + "gitBlobSha1": "4406964c3981f77b29348da50090b21cb22b1311" + }, + { + "file": ".agent/evidence-v0.1.1/cache-regression/07-full-test.log", + "gitBlobSha1": "ae05c4ef08617b8f481b861e802b80d58939b281" + }, + { + "file": ".agent/evidence-v0.1.1/cache-regression/08-build.log", + "gitBlobSha1": "2d2a7ff7c5d3388d08bb7ffa7b2d637c35bf464c" + }, + { + "file": ".agent/evidence-v0.1.1/cache-regression/09-browser-green.log", + "gitBlobSha1": "14af53dfedbaf1c334841493baf22e631c0a2e07" + }, + { + "file": ".agent/evidence-v0.1.1/cache-regression/10-sandbox.log", + "gitBlobSha1": "e0b3c4244724d1892e20866a04d0a3268f4b67f3" + }, + { + "file": ".agent/evidence-v0.1.1/cache-regression/11-sandbox-green.log", + "gitBlobSha1": "8c34b24ed48ee27011a6501c6e9934f26e73d8f4" + }, + { + "file": ".agent/evidence-v0.1.1/cache-regression/12-cache-regression-result.log", + "gitBlobSha1": "d3661dfcd77840e5d925c7e280cfafd32236c9a0" + }, + { + "file": ".agent/evidence-v0.1.1/cache-regression/13-final-integrity.json", + "gitBlobSha1": "97431f3413f72719f4fbb31e79b2c50ff75b641a" + }, + { + "file": ".agent/evidence-v0.1.1/cache-regression/artifacts/desktop-browser-audio-integrity.json", + "gitBlobSha1": "0673089ec0b8286422bb0946bfe1bc48f2bdcc76" + }, + { + "file": ".agent/evidence-v0.1.1/cache-regression/artifacts/desktop-game.png", + "gitBlobSha1": "0d2f171d46f4ed39ef5b966a851b612eec4439ba" + }, + { + "file": ".agent/evidence-v0.1.1/cache-regression/artifacts/desktop-heading.png", + "gitBlobSha1": "62cf90b8c281472dcfebea616e1617feb2a9ef15" + }, + { + "file": ".agent/evidence-v0.1.1/cache-regression/artifacts/desktop-home.png", + "gitBlobSha1": "386bb2be76419e3386844842fdebe7af64e7e6b4" + }, + { + "file": ".agent/evidence-v0.1.1/cache-regression/artifacts/desktop-results.png", + "gitBlobSha1": "22468d877b3ea4710e55eb4c96dc44d53eac24cf" + }, + { + "file": ".agent/evidence-v0.1.1/cache-regression/artifacts/mobile-browser-audio-integrity.json", + "gitBlobSha1": "0673089ec0b8286422bb0946bfe1bc48f2bdcc76" + }, + { + "file": ".agent/evidence-v0.1.1/cache-regression/artifacts/mobile-game.png", + "gitBlobSha1": "2b54a6bca03c7763388e021214acd72e35cad13f" + }, + { + "file": ".agent/evidence-v0.1.1/cache-regression/artifacts/mobile-heading.png", + "gitBlobSha1": "ef1f38b2eb07ed76251ab7e83e19c9cae6a2e4f8" + }, + { + "file": ".agent/evidence-v0.1.1/cache-regression/artifacts/mobile-home.png", + "gitBlobSha1": "fda5ab600274a88e40813d6b8f189edc5de35f7d" + }, + { + "file": ".agent/evidence-v0.1.1/cache-regression/artifacts/mobile-results.png", + "gitBlobSha1": "8dce46afec66692bd61e135765f721b9f7ffd298" + }, + { + "file": ".agent/evidence-v0.1.1/changed-files.txt", + "gitBlobSha1": "2f43313a60bdcf5e61c8d7401a3487d20d704743" + }, + { + "file": ".agent/evidence-v0.1.1/desktop-game.png", + "gitBlobSha1": "7c319c62954b3e889f0bdcf833d74c628ff29210" + }, + { + "file": ".agent/evidence-v0.1.1/desktop-heading.png", + "gitBlobSha1": "c60a60a28b5986d5d43dee33312e9f8932c12969" + }, + { + "file": ".agent/evidence-v0.1.1/desktop-home.png", + "gitBlobSha1": "1b6d36d99ac20e257bd82fc4037756eb6ab05cd3" + }, + { + "file": ".agent/evidence-v0.1.1/desktop-results.png", + "gitBlobSha1": "d91fe665dec9f7a65d574e852127d47792a80a81" + }, + { + "file": ".agent/evidence-v0.1.1/mobile-game.png", + "gitBlobSha1": "c033b1d229ef1353f2967d9025677a8bfc789746" + }, + { + "file": ".agent/evidence-v0.1.1/mobile-heading.png", + "gitBlobSha1": "423961b71e7d47c58bbd1263d8e81dfd7e968ff4" + }, + { + "file": ".agent/evidence-v0.1.1/mobile-home.png", + "gitBlobSha1": "1347e17c3b55fb42f858099b1351b49aca841209" + }, + { + "file": ".agent/evidence-v0.1.1/mobile-results.png", + "gitBlobSha1": "917dd912fd90b042e95e4ea6622fa644886f2d5e" + }, + { + "file": ".agent/evidence-v0.1.1/verify_audio.py", + "gitBlobSha1": "135e6204fb447255a45d354d395e8942a5b8631c" + }, + { + "file": ".agent/evidence-v0.1.1/verify_browser.mjs", + "gitBlobSha1": "1a020fc8d4bd2b79f58e0ee64b8e6ab2d6a6582f" + }, + { + "file": ".agent/evidence/01-content-green.log", + "gitBlobSha1": "4f9c11700ff7103980808422a57833efd39d9503" + }, + { + "file": ".agent/evidence/01-content-red.log", + "gitBlobSha1": "a9c8fc8de3014bc42dd039d274f261a02c880b96" + }, + { + "file": ".agent/evidence/02-game-green.log", + "gitBlobSha1": "b387310be2ac183396dbb9dbad4cc6641eb18055" + }, + { + "file": ".agent/evidence/02-game-red.log", + "gitBlobSha1": "dbf070178094e828a8805aa3a0230c0e55fc7a14" + }, + { + "file": ".agent/evidence/03-dsp-green.log", + "gitBlobSha1": "799d98f6628ea1719d7962b9dfc30b6e58154a81" + }, + { + "file": ".agent/evidence/03-dsp-intermediate.log", + "gitBlobSha1": "ff73efa8a064e2b737349be0014ea1e2c43e7cd5" + }, + { + "file": ".agent/evidence/03-dsp-red.log", + "gitBlobSha1": "7f8fb140b3bda7c4206e162be1c31e0489c23fa7" + }, + { + "file": ".agent/evidence/04-audio-green.log", + "gitBlobSha1": "bb8fc6a046dd4726250bfda2d85ed9598a509d05" + }, + { + "file": ".agent/evidence/04-audio-red.log", + "gitBlobSha1": "e2287b223d13c69a10e9bea668d0074f5eeb2be5" + }, + { + "file": ".agent/evidence/05-assets-red.log", + "gitBlobSha1": "1b6b8cb21f981f2d5508de7c5f34dd34c620e6d2" + }, + { + "file": ".agent/evidence/06-ui-05-assets-green.log", + "gitBlobSha1": "358dd512751f012ccf0890fa89885bd8b301d3ba" + }, + { + "file": ".agent/evidence/06-ui-intermediate.log", + "gitBlobSha1": "c50c8da5b83cbc807a3c67fa5aad67e711ad190b" + }, + { + "file": ".agent/evidence/06-ui-red.log", + "gitBlobSha1": "d7e3ac9f9e3231f00ca59222a86ad9767600fdcb" + }, + { + "file": ".agent/evidence/07-build-green.log", + "gitBlobSha1": "8168d3df85e7bd27be58a9af5ca137c083451e4c" + }, + { + "file": ".agent/evidence/07-build-red.log", + "gitBlobSha1": "751fe55d26e43f63e67a6d5a8db306b94001f8bf" + }, + { + "file": ".agent/evidence/08-rule-green.log", + "gitBlobSha1": "b3821fb0dd6a732d882cef24cc9ffe2897295f5c" + }, + { + "file": ".agent/evidence/08-rule-red.log", + "gitBlobSha1": "eda458878a5bf08b128bbb5043f58be8d0361b40" + }, + { + "file": ".agent/evidence/09-ime-green.log", + "gitBlobSha1": "1fd648a1046eddc4c8967e71615c2c2c003cb255" + }, + { + "file": ".agent/evidence/09-ime-red.log", + "gitBlobSha1": "ef374dcfe5f021da608cf17749df63e10a7c8740" + }, + { + "file": ".agent/evidence/10-ime-reset-green.log", + "gitBlobSha1": "c02446ef230769b53cedc9ccad03ff580e0e7c95" + }, + { + "file": ".agent/evidence/10-ime-reset-red.log", + "gitBlobSha1": "4d813e07f9b80c8ef7428ec03f5fec8e1e80e733" + }, + { + "file": ".agent/evidence/11-provenance-green.log", + "gitBlobSha1": "7e2af894633746b50b7dae3e3db4cd2f484561b7" + }, + { + "file": ".agent/evidence/11-provenance-red.log", + "gitBlobSha1": "cbbe1d5a2beecd22c03c57ebd478c3e5b193ca22" + }, + { + "file": ".agent/evidence/12-ime-replay-green.log", + "gitBlobSha1": "f3fc60f7d5a8207923f19e663fcf810f90d0593a" + }, + { + "file": ".agent/evidence/12-ime-replay-red.log", + "gitBlobSha1": "4601ffa7b6376194b5a613a6a36a54f1696e1803" + }, + { + "file": ".agent/evidence/13-heading-build-after.log", + "gitBlobSha1": "995fabff013e6788faa5f12e54376210d6cc9b4e" + }, + { + "file": ".agent/evidence/13-heading-build-before.log", + "gitBlobSha1": "eb058eff9867ff52c49ddaeeeeb18876e501b05d" + }, + { + "file": ".agent/evidence/13-heading-green.log", + "gitBlobSha1": "7657bff6d169167d5aec9f8951ad1d0d2a6c87f6" + }, + { + "file": ".agent/evidence/13-heading-red.log", + "gitBlobSha1": "311485a53063adfec66e09cd42213051081680b7" + }, + { + "file": ".agent/evidence/14-snr-browser-green.log", + "gitBlobSha1": "5324883d79ed3547d1a1ded26d2db1509bb7e4f8" + }, + { + "file": ".agent/evidence/14-snr-browser-red.log", + "gitBlobSha1": "c9534cd4617b3a3105a0635d7a4948f609a4868e" + }, + { + "file": ".agent/evidence/14-snr-build.log", + "gitBlobSha1": "e08f04bc433bb2df1e506b3a945f0b221c3cdee6" + }, + { + "file": ".agent/evidence/14-snr-green.log", + "gitBlobSha1": "70c13b8cb5e6dc203d56a79cfb538c58db45e615" + }, + { + "file": ".agent/evidence/14-snr-red.log", + "gitBlobSha1": "4b9ace1ab081e88dd01e3b3c2acc41377460c512" + }, + { + "file": ".agent/evidence/15-volume-browser-green.log", + "gitBlobSha1": "7fb864c0ce3bab04338b14a3d4fec58934e08287" + }, + { + "file": ".agent/evidence/15-volume-browser-red.log", + "gitBlobSha1": "a3d0905076736da54b86f1c9464f42fe833ed9d2" + }, + { + "file": ".agent/evidence/15-volume-build.log", + "gitBlobSha1": "558552af1033ba40c99de1687fcaa2093dbb5b4f" + }, + { + "file": ".agent/evidence/15-volume-green.log", + "gitBlobSha1": "36bda275dfc54b122c3604a3f6010b62558b5998" + }, + { + "file": ".agent/evidence/15-volume-red.log", + "gitBlobSha1": "c14834ef57704d057de019e52df87eb44e99a94b" + }, + { + "file": ".agent/evidence/16-copy-green.log", + "gitBlobSha1": "88b925b2febf52d764d7d93699caf6a16e0292ea" + }, + { + "file": ".agent/evidence/16-copy-red.log", + "gitBlobSha1": "141efbc0e8af8f45b829fb656c375a59f4a1307e" + }, + { + "file": ".agent/evidence/17-spacing-green.log", + "gitBlobSha1": "ba570e87ed4e48f72f26e1c6525003d7fd6b093e" + }, + { + "file": ".agent/evidence/17-spacing-red.log", + "gitBlobSha1": "8b18570dcd38144b94f201226e633ea0bfa78002" + }, + { + "file": ".agent/evidence/18-literal-green.log", + "gitBlobSha1": "7047c8324ceb982bd8a33133b07f7bd15422846e" + }, + { + "file": ".agent/evidence/18-literal-red.log", + "gitBlobSha1": "69668062c9825e82fed2fb63103cb74f51537f76" + }, + { + "file": ".agent/evidence/19-notices-green.log", + "gitBlobSha1": "69f428572682fc30a83a28bd802aa0c7b479793d" + }, + { + "file": ".agent/evidence/19-notices-red.log", + "gitBlobSha1": "c30222de64929395b5da9c6f9ef4728beec23aeb" + }, + { + "file": ".agent/evidence/20-audio-generate.log", + "gitBlobSha1": "f01b4f019667ed5396bc22fa9bc2961b0f050e69" + }, + { + "file": ".agent/evidence/20-audio-green.log", + "gitBlobSha1": "e4bf2be0f2cbfafe1e393ca6413a8f72762af4aa" + }, + { + "file": ".agent/evidence/20-audio-red.log", + "gitBlobSha1": "54ad5ad0cd803cd2d668c6dfacdc21f9795c0ade" + }, + { + "file": ".agent/evidence/20-mechanics-green.log", + "gitBlobSha1": "7dedf46b2c76b8c3c477579ddba56ce644a982e6" + }, + { + "file": ".agent/evidence/20-mechanics-red.log", + "gitBlobSha1": "be3c196b8337546988d31effe415ddf1a0f5d9fd" + }, + { + "file": ".agent/evidence/21-node-green.log", + "gitBlobSha1": "ccc7721c15b7134697e200c3875cd85ee8c77880" + }, + { + "file": ".agent/evidence/21-node-red.log", + "gitBlobSha1": "3226a36dad4019db219e3d7bd085d0e03630041c" + }, + { + "file": ".agent/evidence/22-sandbox-green.log", + "gitBlobSha1": "302939cbde4f3c5eacf1b85f1d44f202e8d5e085" + }, + { + "file": ".agent/evidence/22-sandbox-red.log", + "gitBlobSha1": "7c1a4704e85cf5b534ea6a0ec3cdddaa14fb64b2" + }, + { + "file": ".agent/evidence/23-delivery-browser-red.log", + "gitBlobSha1": "2059849234696a2a5bb125151d652fb7e3530302" + }, + { + "file": ".agent/evidence/24-retry-audio-budget.log", + "gitBlobSha1": "6d06ab7b134fcbe6e9a1b175f71550a5fbaf786e" + }, + { + "file": ".agent/evidence/24-retry-final-browser.log", + "gitBlobSha1": "e4082022f3240b6b9470d1b2d07916c4b77518ca" + }, + { + "file": ".agent/evidence/24-retry-final-build.log", + "gitBlobSha1": "4bac01044b8195a62d0c507c7ea24148dde31e08" + }, + { + "file": ".agent/evidence/24-retry-final-lint.log", + "gitBlobSha1": "2db7661f79c49af33f25e8e86708e36e830bc921" + }, + { + "file": ".agent/evidence/24-retry-final-test.log", + "gitBlobSha1": "892698fd134159742a19a354c74838c1f077b87b" + }, + { + "file": ".agent/evidence/24-retry-integrity.log", + "gitBlobSha1": "bdd370b0edcaf1b79f089c259583b03dd82ba7e4" + }, + { + "file": ".agent/evidence/24-retry-targeted-green.log", + "gitBlobSha1": "40d6ffc9f655c337b1296fe48c926c0f736ea437" + }, + { + "file": ".agent/evidence/audio-reproduce.log", + "gitBlobSha1": "ad7cf97e5bdbf10a90bb7ee78849c416df7e7a6a" + }, + { + "file": ".agent/evidence/browser-final.log", + "gitBlobSha1": "00e9641898f254833f31cb46ea4a69e3fc27984e" + }, + { + "file": ".agent/evidence/browser-first.log", + "gitBlobSha1": "29e9f5ec4fc2779b8eaa503a9ff02525cad05fd9" + }, + { + "file": ".agent/evidence/browser-second.log", + "gitBlobSha1": "8088ec25b84ec17b8b215d52cc886285caec8ce9" + }, + { + "file": ".agent/evidence/browser-third.log", + "gitBlobSha1": "631309ed650696c6ab3b90bd721388378c5444d7" + }, + { + "file": ".agent/evidence/changed-files.txt", + "gitBlobSha1": "3b8e739d5ae343908decac4d79ec8a2d1891182e" + }, + { + "file": ".agent/evidence/desktop-game.png", + "gitBlobSha1": "f13175613bd70dd4a8ab48c3f8f63c7f2de3d8d2" + }, + { + "file": ".agent/evidence/desktop-home.png", + "gitBlobSha1": "6b7235e489650bf9f0a55ef7bed79a45f7942564" + }, + { + "file": ".agent/evidence/desktop-results.png", + "gitBlobSha1": "3e992f640307f8fd9e497acd63d4c5d239988135" + }, + { + "file": ".agent/evidence/final-audit.log", + "gitBlobSha1": "f372dee584a34135b0868d2d419ac8b2ce1c2314" + }, + { + "file": ".agent/evidence/final-browser.log", + "gitBlobSha1": "da9eb709f94c480935aa2c53e4bb5cd3c92795e2" + }, + { + "file": ".agent/evidence/final-build.log", + "gitBlobSha1": "d476e9757f4bc75b415fc49c11ea61db2a98556e" + }, + { + "file": ".agent/evidence/final-lint.log", + "gitBlobSha1": "6551b952e4b58e47af8471746f80c8a6f4a8a6d5" + }, + { + "file": ".agent/evidence/final-security.log", + "gitBlobSha1": "bccb5c1c0416e8cd2d8b03a83566903f6b5f57a7" + }, + { + "file": ".agent/evidence/final-test.log", + "gitBlobSha1": "22a17cf4d259666a1b5799256ad383695c1f21ea" + }, + { + "file": ".agent/evidence/mobile-game.png", + "gitBlobSha1": "149c5e95d939bbb16f04b64fede3fdb016a7e7df" + }, + { + "file": ".agent/evidence/mobile-home.png", + "gitBlobSha1": "66b1c1d0408ef44133d3a25ccef9f7f845502287" + }, + { + "file": ".agent/evidence/mobile-results.png", + "gitBlobSha1": "176c4680366fffd8542c980864382422e46303c5" + }, + { + "file": ".agent/evidence/neo-before-spacing-browser.log", + "gitBlobSha1": "fe693ce1aec1ab3cddc8c31e197de8f3d873e2d7" + }, + { + "file": ".agent/evidence/neo-desktop-game.png", + "gitBlobSha1": "21eb85afb33f52c3ee21c78991f256ed478a511d" + }, + { + "file": ".agent/evidence/neo-desktop-heading.png", + "gitBlobSha1": "0a478294f883536b3628f5ebe1740a3da366c7ac" + }, + { + "file": ".agent/evidence/neo-desktop-home.png", + "gitBlobSha1": "f9ea85a17002ff1cf36d57c552810fa6ed37b776" + }, + { + "file": ".agent/evidence/neo-desktop-results.png", + "gitBlobSha1": "e0e97a319876b46e3df9358124f9e0304f623508" + }, + { + "file": ".agent/evidence/neo-final-browser.log", + "gitBlobSha1": "a27437c2b86ad9ba3cf50746490319dea537f46d" + }, + { + "file": ".agent/evidence/neo-final-build.log", + "gitBlobSha1": "2c6c350e78dac4dfbcdfe6784073155ff8d6ed35" + }, + { + "file": ".agent/evidence/neo-final-lint.log", + "gitBlobSha1": "6551b952e4b58e47af8471746f80c8a6f4a8a6d5" + }, + { + "file": ".agent/evidence/neo-final-test.log", + "gitBlobSha1": "8036a925d0a63b6e470666b68546e0588a390877" + }, + { + "file": ".agent/evidence/neo-intermediate-build.log", + "gitBlobSha1": "47ee7305375d52bf0efda8b65fd410514002c6f0" + }, + { + "file": ".agent/evidence/neo-intermediate-lint.log", + "gitBlobSha1": "2f8a51786275fe49e4f0452c1f532a464a72be0e" + }, + { + "file": ".agent/evidence/neo-mobile-game.png", + "gitBlobSha1": "ea5c59b06f5c1571c46d634ec0c0c425cf4bddde" + }, + { + "file": ".agent/evidence/neo-mobile-heading.png", + "gitBlobSha1": "b082c661921a019c47026a6b3c67e023732db3d8" + }, + { + "file": ".agent/evidence/neo-mobile-home.png", + "gitBlobSha1": "a06de9c1374aeb670f3da567871e5fb74f12e9de" + }, + { + "file": ".agent/evidence/neo-mobile-results.png", + "gitBlobSha1": "d600346b74ef20023a6582230a066d0229ea7426" + }, + { + "file": ".agent/evidence/release-desktop-game.png", + "gitBlobSha1": "56c8d0194a550ca965e80568e10568fe9c3b01c1" + }, + { + "file": ".agent/evidence/release-desktop-heading.png", + "gitBlobSha1": "44fb51ed18c6095696ce3ceac716f5819c994df8" + }, + { + "file": ".agent/evidence/release-desktop-home.png", + "gitBlobSha1": "f357ab168267a71f5abc02a5417a4073ea0e7549" + }, + { + "file": ".agent/evidence/release-desktop-results.png", + "gitBlobSha1": "d537dd35d05d647cc1d9fd0b15c883695d8e7227" + }, + { + "file": ".agent/evidence/release-docs-final.log", + "gitBlobSha1": "b362a8a88e87eb78df6de9fc7467079fba046ad7" + }, + { + "file": ".agent/evidence/release-final-audit.log", + "gitBlobSha1": "f372dee584a34135b0868d2d419ac8b2ce1c2314" + }, + { + "file": ".agent/evidence/release-final-browser.log", + "gitBlobSha1": "d990bad61aa6979a81d48d8e3d90c9b76b1dd868" + }, + { + "file": ".agent/evidence/release-final-build.log", + "gitBlobSha1": "c3e94dc3ccf89c06c5f4918a8ead2a538042eefc" + }, + { + "file": ".agent/evidence/release-final-lint.log", + "gitBlobSha1": "6551b952e4b58e47af8471746f80c8a6f4a8a6d5" + }, + { + "file": ".agent/evidence/release-final-test.log", + "gitBlobSha1": "d14839db8e70ad23892362f4c6f25fc1dad4d33f" + }, + { + "file": ".agent/evidence/release-format.log", + "gitBlobSha1": "04f107ae1552b247133b0d0f01a2b2c4fb96fa4c" + }, + { + "file": ".agent/evidence/release-integrity.log", + "gitBlobSha1": "1aa8751fba85e49d1d341c688f89baefd9e1a395" + }, + { + "file": ".agent/evidence/release-intermediate-lint.log", + "gitBlobSha1": "ac298f24b0a1e8378a33a3c454b62d6abdeb020e" + }, + { + "file": ".agent/evidence/release-mobile-game.png", + "gitBlobSha1": "0772d6a7f6025a213e721442144547926c164034" + }, + { + "file": ".agent/evidence/release-mobile-heading.png", + "gitBlobSha1": "d6a246bbc95e7b8679a5c05cee1e31240ed5ff6d" + }, + { + "file": ".agent/evidence/release-mobile-home.png", + "gitBlobSha1": "0d4f76b8c17bff4df191e060609795221917815a" + }, + { + "file": ".agent/evidence/release-mobile-results.png", + "gitBlobSha1": "7c9baa85bca07d0cd2c0fe2db6ca1b530619ef56" + } + ] +} diff --git a/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/01-provenance-RED.log b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/01-provenance-RED.log new file mode 100644 index 0000000..0074213 --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/01-provenance-RED.log @@ -0,0 +1,72 @@ +$ npx vitest run tests/ambience.test.ts tests/build.test.ts +Started UTC: 2026-10-14T09:08:40.941366+00:00 + + RUN v5.0.4 /home/hermes/worktrees/find-word-v0.2.3 + + ❯ tests/ambience.test.ts (3 tests | 1 failed) 484ms + × 선택 구간은 승인 계획의 불변 provenance이며 manifest와 고지에 동일하게 남는다 12ms + ❯ tests/build.test.ts (30 tests | 3 failed) 18875ms + × 현장음 manifest 사본을 함께 바꿔도 승인 selectedSegmentStartSeconds 계약 위반을 거부한다 449ms + × 현장음 manifest 사본을 함께 바꿔도 승인 startSeconds 계약 위반을 거부한다 436ms + × 현장음 manifest 사본을 함께 바꿔도 승인 durationSeconds 계약 위반을 거부한다 443ms + +⎯⎯⎯⎯⎯⎯⎯ Failed Tests 4 ⎯⎯⎯⎯⎯⎯⎯ + + FAIL tests/ambience.test.ts > 선택 구간은 승인 계획의 불변 provenance이며 manifest와 고지에 동일하게 남는다 +AssertionError: expected { street: undefined, …(7) } to deeply equal { street: 35, mall: 36, …(6) } + +- Expected ++ Received + + { +- "cafe": 180, +- "department": 90, +- "mall": 36, +- "market": 60, +- "rain": 180, +- "street": 35, +- "subway": 65, +- "theater": 45, ++ "cafe": undefined, ++ "department": undefined, ++ "mall": undefined, ++ "market": undefined, ++ "rain": undefined, ++ "street": undefined, ++ "subway": undefined, ++ "theater": undefined, + } + + ❯ tests/ambience.test.ts:141:65 + 139| market: 60, subway: 65, cafe: 180, rain: 180 }; + 140| expect(Object.fromEntries(plan.assets.map((asset: { environmentId: s… + 141| [asset.environmentId, asset.selectedSegmentStartSeconds]))).toEqua… + | ^ + 142| for (const asset of plan.assets) { + 143| const start = asset.selectedSegmentStartSeconds; + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[1/4]⎯ + + FAIL tests/build.test.ts > 현장음 manifest 사본을 함께 바꿔도 승인 selectedSegmentStartSeconds 계약 위반을 거부한다 + FAIL tests/build.test.ts > 현장음 manifest 사본을 함께 바꿔도 승인 startSeconds 계약 위반을 거부한다 + FAIL tests/build.test.ts > 현장음 manifest 사본을 함께 바꿔도 승인 durationSeconds 계약 위반을 거부한다 +AssertionError: expected [Function verify] to throw an error + ❯ tests/build.test.ts:316:22 + 314| JSON.stringify(manifest), + 315| ); + 316| expect(verify).toThrow(); + | ^ + 317| } finally { + 318| rmSync(temporary, { recursive: true, force: true }); + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[2/4]⎯ + + + Test Files 2 failed (2) + Tests 4 failed | 29 passed (33) + Start at 09:08:41 + Duration 19.25s (tests 98%, setup 2%) + + +Exit code: 1 +Finished UTC: 2026-10-14T09:09:00.972768+00:00 diff --git a/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/02-generator-GREEN.log b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/02-generator-GREEN.log new file mode 100644 index 0000000..c70a9a0 --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/02-generator-GREEN.log @@ -0,0 +1,29 @@ +$ python3 -m unittest discover -s tests/python -p test_ambience_audio.py -v +Started UTC: 2026-10-14T09:10:26.182138+00:00 +test_convert_format_fade_normalization_and_reproducibility (test_ambience_audio.AmbienceConversion.test_convert_format_fade_normalization_and_reproducibility) +스테레오 48kHz 입력을 실제로 내려 섞고 길이·양끝·안전 피크를 확인한다. ... ok +test_silence_fails_before_publishing (test_ambience_audio.AmbienceConversion.test_silence_fails_before_publishing) +무음을 정상 현장 녹음으로 포장하지 않는다. ... 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_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 + +---------------------------------------------------------------------- +Ran 17 tests in 6.237s + +OK + +Exit code: 0 +Finished UTC: 2026-10-14T09:10:32.496266+00:00 diff --git a/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/02-generator-RED.log b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/02-generator-RED.log new file mode 100644 index 0000000..43c360b --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/02-generator-RED.log @@ -0,0 +1,317 @@ +$ python3 -m unittest discover -s tests/python -p test_ambience_audio.py -v +Started UTC: 2026-10-14T09:08:40.965664+00:00 +test_convert_format_fade_normalization_and_reproducibility (test_ambience_audio.AmbienceConversion.test_convert_format_fade_normalization_and_reproducibility) +스테레오 48kHz 입력을 실제로 내려 섞고 길이·양끝·안전 피크를 확인한다. ... ok +test_silence_fails_before_publishing (test_ambience_audio.AmbienceConversion.test_silence_fails_before_publishing) +무음을 정상 현장 녹음으로 포장하지 않는다. ... 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) ... FAIL +test_readers_observe_whole_directory_during_real_exchange (test_ambience_audio.AtomicPublication.test_readers_observe_whole_directory_during_real_exchange) ... 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) ... + test_invalid_segment_plan_fails_before_any_conversion_without_mutation (test_ambience_audio.SourceGuard.test_invalid_segment_plan_fails_before_any_conversion_without_mutation) (key='selectedSegmentStartSeconds', value=None) ... FAIL + test_invalid_segment_plan_fails_before_any_conversion_without_mutation (test_ambience_audio.SourceGuard.test_invalid_segment_plan_fails_before_any_conversion_without_mutation) (key='selectedSegmentStartSeconds', value=-1) ... FAIL + test_invalid_segment_plan_fails_before_any_conversion_without_mutation (test_ambience_audio.SourceGuard.test_invalid_segment_plan_fails_before_any_conversion_without_mutation) (key='selectedSegmentStartSeconds', value=True) ... FAIL + test_invalid_segment_plan_fails_before_any_conversion_without_mutation (test_ambience_audio.SourceGuard.test_invalid_segment_plan_fails_before_any_conversion_without_mutation) (key='selectedSegmentStartSeconds', value='36') ... FAIL + test_invalid_segment_plan_fails_before_any_conversion_without_mutation (test_ambience_audio.SourceGuard.test_invalid_segment_plan_fails_before_any_conversion_without_mutation) (key='selectedSegmentStartSeconds', value=nan) ... FAIL + test_invalid_segment_plan_fails_before_any_conversion_without_mutation (test_ambience_audio.SourceGuard.test_invalid_segment_plan_fails_before_any_conversion_without_mutation) (key='selectedSegmentStartSeconds', value=inf) ... FAIL + test_invalid_segment_plan_fails_before_any_conversion_without_mutation (test_ambience_audio.SourceGuard.test_invalid_segment_plan_fails_before_any_conversion_without_mutation) (key='selectedSegmentStartSeconds', value=1788.001) ... FAIL + test_invalid_segment_plan_fails_before_any_conversion_without_mutation (test_ambience_audio.SourceGuard.test_invalid_segment_plan_fails_before_any_conversion_without_mutation) (key='directMediaDurationSeconds', value=None) ... FAIL + test_invalid_segment_plan_fails_before_any_conversion_without_mutation (test_ambience_audio.SourceGuard.test_invalid_segment_plan_fails_before_any_conversion_without_mutation) (key='directMediaDurationSeconds', value=0) ... FAIL + test_invalid_segment_plan_fails_before_any_conversion_without_mutation (test_ambience_audio.SourceGuard.test_invalid_segment_plan_fails_before_any_conversion_without_mutation) (key='directMediaDurationSeconds', value=True) ... FAIL + test_invalid_segment_plan_fails_before_any_conversion_without_mutation (test_ambience_audio.SourceGuard.test_invalid_segment_plan_fails_before_any_conversion_without_mutation) (key='directMediaDurationSeconds', value='1800') ... FAIL + test_invalid_segment_plan_fails_before_any_conversion_without_mutation (test_ambience_audio.SourceGuard.test_invalid_segment_plan_fails_before_any_conversion_without_mutation) (key='directMediaDurationSeconds', value=nan) ... FAIL + test_invalid_segment_plan_fails_before_any_conversion_without_mutation (test_ambience_audio.SourceGuard.test_invalid_segment_plan_fails_before_any_conversion_without_mutation) (key='directMediaDurationSeconds', value=inf) ... FAIL + test_invalid_segment_plan_fails_before_any_conversion_without_mutation (test_ambience_audio.SourceGuard.test_invalid_segment_plan_fails_before_any_conversion_without_mutation) (key='directMediaDurationSeconds', value=191.999) ... FAIL + +====================================================================== +FAIL: 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) +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/home/hermes/worktrees/find-word-v0.2.3/tests/python/test_ambience_audio.py", line 184, in test_plan_alone_controls_selection_and_is_preserved_in_manifest_and_notice + self.assertEqual(call.args[2], start) +AssertionError: 35 != 1.25 + +====================================================================== +FAIL: test_invalid_segment_plan_fails_before_any_conversion_without_mutation (test_ambience_audio.SourceGuard.test_invalid_segment_plan_fails_before_any_conversion_without_mutation) (key='selectedSegmentStartSeconds', value=None) +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/home/hermes/worktrees/find-word-v0.2.3/tests/python/test_ambience_audio.py", line 106, in test_invalid_segment_plan_fails_before_any_conversion_without_mutation + audio.generate(plan, self.sources, self.output, converter=self.converter) + File "/home/hermes/worktrees/find-word-v0.2.3/scripts/ambience_audio.py", line 205, in generate + info = converter(source_path(source_directory, environment), ready / name, SEGMENTS[environment]) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/hermes/.local/share/uv/python/cpython-3.11.16-linux-x86_64-gnu/lib/python3.11/unittest/mock.py", line 1124, in __call__ + return self._mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/hermes/.local/share/uv/python/cpython-3.11.16-linux-x86_64-gnu/lib/python3.11/unittest/mock.py", line 1128, in _mock_call + return self._execute_mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/hermes/.local/share/uv/python/cpython-3.11.16-linux-x86_64-gnu/lib/python3.11/unittest/mock.py", line 1183, in _execute_mock_call + raise effect +AssertionError: conversion must not begin + +====================================================================== +FAIL: test_invalid_segment_plan_fails_before_any_conversion_without_mutation (test_ambience_audio.SourceGuard.test_invalid_segment_plan_fails_before_any_conversion_without_mutation) (key='selectedSegmentStartSeconds', value=-1) +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/home/hermes/worktrees/find-word-v0.2.3/tests/python/test_ambience_audio.py", line 106, in test_invalid_segment_plan_fails_before_any_conversion_without_mutation + audio.generate(plan, self.sources, self.output, converter=self.converter) + File "/home/hermes/worktrees/find-word-v0.2.3/scripts/ambience_audio.py", line 205, in generate + info = converter(source_path(source_directory, environment), ready / name, SEGMENTS[environment]) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/hermes/.local/share/uv/python/cpython-3.11.16-linux-x86_64-gnu/lib/python3.11/unittest/mock.py", line 1124, in __call__ + return self._mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/hermes/.local/share/uv/python/cpython-3.11.16-linux-x86_64-gnu/lib/python3.11/unittest/mock.py", line 1128, in _mock_call + return self._execute_mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/hermes/.local/share/uv/python/cpython-3.11.16-linux-x86_64-gnu/lib/python3.11/unittest/mock.py", line 1183, in _execute_mock_call + raise effect +AssertionError: conversion must not begin + +====================================================================== +FAIL: test_invalid_segment_plan_fails_before_any_conversion_without_mutation (test_ambience_audio.SourceGuard.test_invalid_segment_plan_fails_before_any_conversion_without_mutation) (key='selectedSegmentStartSeconds', value=True) +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/home/hermes/worktrees/find-word-v0.2.3/tests/python/test_ambience_audio.py", line 106, in test_invalid_segment_plan_fails_before_any_conversion_without_mutation + audio.generate(plan, self.sources, self.output, converter=self.converter) + File "/home/hermes/worktrees/find-word-v0.2.3/scripts/ambience_audio.py", line 205, in generate + info = converter(source_path(source_directory, environment), ready / name, SEGMENTS[environment]) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/hermes/.local/share/uv/python/cpython-3.11.16-linux-x86_64-gnu/lib/python3.11/unittest/mock.py", line 1124, in __call__ + return self._mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/hermes/.local/share/uv/python/cpython-3.11.16-linux-x86_64-gnu/lib/python3.11/unittest/mock.py", line 1128, in _mock_call + return self._execute_mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/hermes/.local/share/uv/python/cpython-3.11.16-linux-x86_64-gnu/lib/python3.11/unittest/mock.py", line 1183, in _execute_mock_call + raise effect +AssertionError: conversion must not begin + +====================================================================== +FAIL: test_invalid_segment_plan_fails_before_any_conversion_without_mutation (test_ambience_audio.SourceGuard.test_invalid_segment_plan_fails_before_any_conversion_without_mutation) (key='selectedSegmentStartSeconds', value='36') +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/home/hermes/worktrees/find-word-v0.2.3/tests/python/test_ambience_audio.py", line 106, in test_invalid_segment_plan_fails_before_any_conversion_without_mutation + audio.generate(plan, self.sources, self.output, converter=self.converter) + File "/home/hermes/worktrees/find-word-v0.2.3/scripts/ambience_audio.py", line 205, in generate + info = converter(source_path(source_directory, environment), ready / name, SEGMENTS[environment]) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/hermes/.local/share/uv/python/cpython-3.11.16-linux-x86_64-gnu/lib/python3.11/unittest/mock.py", line 1124, in __call__ + return self._mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/hermes/.local/share/uv/python/cpython-3.11.16-linux-x86_64-gnu/lib/python3.11/unittest/mock.py", line 1128, in _mock_call + return self._execute_mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/hermes/.local/share/uv/python/cpython-3.11.16-linux-x86_64-gnu/lib/python3.11/unittest/mock.py", line 1183, in _execute_mock_call + raise effect +AssertionError: conversion must not begin + +====================================================================== +FAIL: test_invalid_segment_plan_fails_before_any_conversion_without_mutation (test_ambience_audio.SourceGuard.test_invalid_segment_plan_fails_before_any_conversion_without_mutation) (key='selectedSegmentStartSeconds', value=nan) +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/home/hermes/worktrees/find-word-v0.2.3/tests/python/test_ambience_audio.py", line 106, in test_invalid_segment_plan_fails_before_any_conversion_without_mutation + audio.generate(plan, self.sources, self.output, converter=self.converter) + File "/home/hermes/worktrees/find-word-v0.2.3/scripts/ambience_audio.py", line 205, in generate + info = converter(source_path(source_directory, environment), ready / name, SEGMENTS[environment]) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/hermes/.local/share/uv/python/cpython-3.11.16-linux-x86_64-gnu/lib/python3.11/unittest/mock.py", line 1124, in __call__ + return self._mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/hermes/.local/share/uv/python/cpython-3.11.16-linux-x86_64-gnu/lib/python3.11/unittest/mock.py", line 1128, in _mock_call + return self._execute_mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/hermes/.local/share/uv/python/cpython-3.11.16-linux-x86_64-gnu/lib/python3.11/unittest/mock.py", line 1183, in _execute_mock_call + raise effect +AssertionError: conversion must not begin + +====================================================================== +FAIL: test_invalid_segment_plan_fails_before_any_conversion_without_mutation (test_ambience_audio.SourceGuard.test_invalid_segment_plan_fails_before_any_conversion_without_mutation) (key='selectedSegmentStartSeconds', value=inf) +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/home/hermes/worktrees/find-word-v0.2.3/tests/python/test_ambience_audio.py", line 106, in test_invalid_segment_plan_fails_before_any_conversion_without_mutation + audio.generate(plan, self.sources, self.output, converter=self.converter) + File "/home/hermes/worktrees/find-word-v0.2.3/scripts/ambience_audio.py", line 205, in generate + info = converter(source_path(source_directory, environment), ready / name, SEGMENTS[environment]) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/hermes/.local/share/uv/python/cpython-3.11.16-linux-x86_64-gnu/lib/python3.11/unittest/mock.py", line 1124, in __call__ + return self._mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/hermes/.local/share/uv/python/cpython-3.11.16-linux-x86_64-gnu/lib/python3.11/unittest/mock.py", line 1128, in _mock_call + return self._execute_mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/hermes/.local/share/uv/python/cpython-3.11.16-linux-x86_64-gnu/lib/python3.11/unittest/mock.py", line 1183, in _execute_mock_call + raise effect +AssertionError: conversion must not begin + +====================================================================== +FAIL: test_invalid_segment_plan_fails_before_any_conversion_without_mutation (test_ambience_audio.SourceGuard.test_invalid_segment_plan_fails_before_any_conversion_without_mutation) (key='selectedSegmentStartSeconds', value=1788.001) +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/home/hermes/worktrees/find-word-v0.2.3/tests/python/test_ambience_audio.py", line 106, in test_invalid_segment_plan_fails_before_any_conversion_without_mutation + audio.generate(plan, self.sources, self.output, converter=self.converter) + File "/home/hermes/worktrees/find-word-v0.2.3/scripts/ambience_audio.py", line 205, in generate + info = converter(source_path(source_directory, environment), ready / name, SEGMENTS[environment]) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/hermes/.local/share/uv/python/cpython-3.11.16-linux-x86_64-gnu/lib/python3.11/unittest/mock.py", line 1124, in __call__ + return self._mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/hermes/.local/share/uv/python/cpython-3.11.16-linux-x86_64-gnu/lib/python3.11/unittest/mock.py", line 1128, in _mock_call + return self._execute_mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/hermes/.local/share/uv/python/cpython-3.11.16-linux-x86_64-gnu/lib/python3.11/unittest/mock.py", line 1183, in _execute_mock_call + raise effect +AssertionError: conversion must not begin + +====================================================================== +FAIL: test_invalid_segment_plan_fails_before_any_conversion_without_mutation (test_ambience_audio.SourceGuard.test_invalid_segment_plan_fails_before_any_conversion_without_mutation) (key='directMediaDurationSeconds', value=None) +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/home/hermes/worktrees/find-word-v0.2.3/tests/python/test_ambience_audio.py", line 106, in test_invalid_segment_plan_fails_before_any_conversion_without_mutation + audio.generate(plan, self.sources, self.output, converter=self.converter) + File "/home/hermes/worktrees/find-word-v0.2.3/scripts/ambience_audio.py", line 205, in generate + info = converter(source_path(source_directory, environment), ready / name, SEGMENTS[environment]) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/hermes/.local/share/uv/python/cpython-3.11.16-linux-x86_64-gnu/lib/python3.11/unittest/mock.py", line 1124, in __call__ + return self._mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/hermes/.local/share/uv/python/cpython-3.11.16-linux-x86_64-gnu/lib/python3.11/unittest/mock.py", line 1128, in _mock_call + return self._execute_mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/hermes/.local/share/uv/python/cpython-3.11.16-linux-x86_64-gnu/lib/python3.11/unittest/mock.py", line 1183, in _execute_mock_call + raise effect +AssertionError: conversion must not begin + +====================================================================== +FAIL: test_invalid_segment_plan_fails_before_any_conversion_without_mutation (test_ambience_audio.SourceGuard.test_invalid_segment_plan_fails_before_any_conversion_without_mutation) (key='directMediaDurationSeconds', value=0) +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/home/hermes/worktrees/find-word-v0.2.3/tests/python/test_ambience_audio.py", line 106, in test_invalid_segment_plan_fails_before_any_conversion_without_mutation + audio.generate(plan, self.sources, self.output, converter=self.converter) + File "/home/hermes/worktrees/find-word-v0.2.3/scripts/ambience_audio.py", line 205, in generate + info = converter(source_path(source_directory, environment), ready / name, SEGMENTS[environment]) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/hermes/.local/share/uv/python/cpython-3.11.16-linux-x86_64-gnu/lib/python3.11/unittest/mock.py", line 1124, in __call__ + return self._mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/hermes/.local/share/uv/python/cpython-3.11.16-linux-x86_64-gnu/lib/python3.11/unittest/mock.py", line 1128, in _mock_call + return self._execute_mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/hermes/.local/share/uv/python/cpython-3.11.16-linux-x86_64-gnu/lib/python3.11/unittest/mock.py", line 1183, in _execute_mock_call + raise effect +AssertionError: conversion must not begin + +====================================================================== +FAIL: test_invalid_segment_plan_fails_before_any_conversion_without_mutation (test_ambience_audio.SourceGuard.test_invalid_segment_plan_fails_before_any_conversion_without_mutation) (key='directMediaDurationSeconds', value=True) +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/home/hermes/worktrees/find-word-v0.2.3/tests/python/test_ambience_audio.py", line 106, in test_invalid_segment_plan_fails_before_any_conversion_without_mutation + audio.generate(plan, self.sources, self.output, converter=self.converter) + File "/home/hermes/worktrees/find-word-v0.2.3/scripts/ambience_audio.py", line 205, in generate + info = converter(source_path(source_directory, environment), ready / name, SEGMENTS[environment]) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/hermes/.local/share/uv/python/cpython-3.11.16-linux-x86_64-gnu/lib/python3.11/unittest/mock.py", line 1124, in __call__ + return self._mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/hermes/.local/share/uv/python/cpython-3.11.16-linux-x86_64-gnu/lib/python3.11/unittest/mock.py", line 1128, in _mock_call + return self._execute_mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/hermes/.local/share/uv/python/cpython-3.11.16-linux-x86_64-gnu/lib/python3.11/unittest/mock.py", line 1183, in _execute_mock_call + raise effect +AssertionError: conversion must not begin + +====================================================================== +FAIL: test_invalid_segment_plan_fails_before_any_conversion_without_mutation (test_ambience_audio.SourceGuard.test_invalid_segment_plan_fails_before_any_conversion_without_mutation) (key='directMediaDurationSeconds', value='1800') +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/home/hermes/worktrees/find-word-v0.2.3/tests/python/test_ambience_audio.py", line 106, in test_invalid_segment_plan_fails_before_any_conversion_without_mutation + audio.generate(plan, self.sources, self.output, converter=self.converter) + File "/home/hermes/worktrees/find-word-v0.2.3/scripts/ambience_audio.py", line 205, in generate + info = converter(source_path(source_directory, environment), ready / name, SEGMENTS[environment]) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/hermes/.local/share/uv/python/cpython-3.11.16-linux-x86_64-gnu/lib/python3.11/unittest/mock.py", line 1124, in __call__ + return self._mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/hermes/.local/share/uv/python/cpython-3.11.16-linux-x86_64-gnu/lib/python3.11/unittest/mock.py", line 1128, in _mock_call + return self._execute_mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/hermes/.local/share/uv/python/cpython-3.11.16-linux-x86_64-gnu/lib/python3.11/unittest/mock.py", line 1183, in _execute_mock_call + raise effect +AssertionError: conversion must not begin + +====================================================================== +FAIL: test_invalid_segment_plan_fails_before_any_conversion_without_mutation (test_ambience_audio.SourceGuard.test_invalid_segment_plan_fails_before_any_conversion_without_mutation) (key='directMediaDurationSeconds', value=nan) +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/home/hermes/worktrees/find-word-v0.2.3/tests/python/test_ambience_audio.py", line 106, in test_invalid_segment_plan_fails_before_any_conversion_without_mutation + audio.generate(plan, self.sources, self.output, converter=self.converter) + File "/home/hermes/worktrees/find-word-v0.2.3/scripts/ambience_audio.py", line 205, in generate + info = converter(source_path(source_directory, environment), ready / name, SEGMENTS[environment]) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/hermes/.local/share/uv/python/cpython-3.11.16-linux-x86_64-gnu/lib/python3.11/unittest/mock.py", line 1124, in __call__ + return self._mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/hermes/.local/share/uv/python/cpython-3.11.16-linux-x86_64-gnu/lib/python3.11/unittest/mock.py", line 1128, in _mock_call + return self._execute_mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/hermes/.local/share/uv/python/cpython-3.11.16-linux-x86_64-gnu/lib/python3.11/unittest/mock.py", line 1183, in _execute_mock_call + raise effect +AssertionError: conversion must not begin + +====================================================================== +FAIL: test_invalid_segment_plan_fails_before_any_conversion_without_mutation (test_ambience_audio.SourceGuard.test_invalid_segment_plan_fails_before_any_conversion_without_mutation) (key='directMediaDurationSeconds', value=inf) +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/home/hermes/worktrees/find-word-v0.2.3/tests/python/test_ambience_audio.py", line 106, in test_invalid_segment_plan_fails_before_any_conversion_without_mutation + audio.generate(plan, self.sources, self.output, converter=self.converter) + File "/home/hermes/worktrees/find-word-v0.2.3/scripts/ambience_audio.py", line 205, in generate + info = converter(source_path(source_directory, environment), ready / name, SEGMENTS[environment]) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/hermes/.local/share/uv/python/cpython-3.11.16-linux-x86_64-gnu/lib/python3.11/unittest/mock.py", line 1124, in __call__ + return self._mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/hermes/.local/share/uv/python/cpython-3.11.16-linux-x86_64-gnu/lib/python3.11/unittest/mock.py", line 1128, in _mock_call + return self._execute_mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/hermes/.local/share/uv/python/cpython-3.11.16-linux-x86_64-gnu/lib/python3.11/unittest/mock.py", line 1183, in _execute_mock_call + raise effect +AssertionError: conversion must not begin + +====================================================================== +FAIL: test_invalid_segment_plan_fails_before_any_conversion_without_mutation (test_ambience_audio.SourceGuard.test_invalid_segment_plan_fails_before_any_conversion_without_mutation) (key='directMediaDurationSeconds', value=191.999) +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/home/hermes/worktrees/find-word-v0.2.3/tests/python/test_ambience_audio.py", line 106, in test_invalid_segment_plan_fails_before_any_conversion_without_mutation + audio.generate(plan, self.sources, self.output, converter=self.converter) + File "/home/hermes/worktrees/find-word-v0.2.3/scripts/ambience_audio.py", line 205, in generate + info = converter(source_path(source_directory, environment), ready / name, SEGMENTS[environment]) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/hermes/.local/share/uv/python/cpython-3.11.16-linux-x86_64-gnu/lib/python3.11/unittest/mock.py", line 1124, in __call__ + return self._mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/hermes/.local/share/uv/python/cpython-3.11.16-linux-x86_64-gnu/lib/python3.11/unittest/mock.py", line 1128, in _mock_call + return self._execute_mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/hermes/.local/share/uv/python/cpython-3.11.16-linux-x86_64-gnu/lib/python3.11/unittest/mock.py", line 1183, in _execute_mock_call + raise effect +AssertionError: conversion must not begin + +---------------------------------------------------------------------- +Ran 17 tests in 7.982s + +FAILED (failures=15) + +Exit code: 1 +Finished UTC: 2026-10-14T09:08:49.067756+00:00 diff --git a/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/03-browser-RED.log b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/03-browser-RED.log new file mode 100644 index 0000000..f21a493 --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/03-browser-RED.log @@ -0,0 +1,78 @@ +$ env CHROME_PATH=/usr/bin/google-chrome PLAYWRIGHT_NO_SANDBOX=0 npx playwright test tests/browser/audio.spec.ts --reporter=line --output=.agent/evidence-v0.2.3/privacy-screening/browser-red +Started UTC: 2026-10-14T09:09:12.510065+00:00 +[WebServer] (node:1044973) 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 2 tests using 2 workers + +(node:1044995) 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:1044996) 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/2] [desktop] › tests/browser/audio.spec.ts:7:1 › 음성·현장음 109개 versioned WAV를 실제 Chrome에서 해시·디코드 검증한다 +[2/2] [mobile] › tests/browser/audio.spec.ts:7:1 › 음성·현장음 109개 versioned WAV를 실제 Chrome에서 해시·디코드 검증한다 + 1) [desktop] › tests/browser/audio.spec.ts:7:1 › 음성·현장음 109개 versioned WAV를 실제 Chrome에서 해시·디코드 검증한다 + + Error: expect(received).toBe(expected) // Object.is equality + + Expected: true + Received: false + + 35 | for (const asset of plan.assets) { + 36 | const start = asset.selectedSegmentStartSeconds; + > 37 | expect(Number.isFinite(start)).toBe(true); + | ^ + 38 | expect(start).toBeGreaterThanOrEqual(0); + 39 | expect(start + 12).toBeLessThanOrEqual(asset.directMediaDurationSeconds); + 40 | const entry = published.manifest.files.find((e: { environmentId: string }) => e.environmentId === asset.environmentId); + at /home/hermes/worktrees/find-word-v0.2.3/tests/browser/audio.spec.ts:37:36 + + Error Context: .agent/evidence-v0.2.3/privacy-screening/browser-red/audio-음성·현장음-109개-versioned-WAV를-실제-Chrome에서-해시·디코드-검증한다-desktop/error-context.md + + attachment #2: trace (application/zip) ───────────────────────────────────────────────────────── + .agent/evidence-v0.2.3/privacy-screening/browser-red/audio-음성·현장음-109개-versioned-WAV를-실제-Chrome에서-해시·디코드-검증한다-desktop/trace.zip + Usage: + + npx playwright show-trace .agent/evidence-v0.2.3/privacy-screening/browser-red/audio-음성·현장음-109개-versioned-WAV를-실제-Chrome에서-해시·디코드-검증한다-desktop/trace.zip + + ──────────────────────────────────────────────────────────────────────────────────────────────── + + + 2) [mobile] › tests/browser/audio.spec.ts:7:1 › 음성·현장음 109개 versioned WAV를 실제 Chrome에서 해시·디코드 검증한다 + + Error: expect(received).toBe(expected) // Object.is equality + + Expected: true + Received: false + + 35 | for (const asset of plan.assets) { + 36 | const start = asset.selectedSegmentStartSeconds; + > 37 | expect(Number.isFinite(start)).toBe(true); + | ^ + 38 | expect(start).toBeGreaterThanOrEqual(0); + 39 | expect(start + 12).toBeLessThanOrEqual(asset.directMediaDurationSeconds); + 40 | const entry = published.manifest.files.find((e: { environmentId: string }) => e.environmentId === asset.environmentId); + at /home/hermes/worktrees/find-word-v0.2.3/tests/browser/audio.spec.ts:37:36 + + Error Context: .agent/evidence-v0.2.3/privacy-screening/browser-red/audio-음성·현장음-109개-versioned-WAV를-실제-Chrome에서-해시·디코드-검증한다-mobile/error-context.md + + attachment #2: trace (application/zip) ───────────────────────────────────────────────────────── + .agent/evidence-v0.2.3/privacy-screening/browser-red/audio-음성·현장음-109개-versioned-WAV를-실제-Chrome에서-해시·디코드-검증한다-mobile/trace.zip + Usage: + + npx playwright show-trace .agent/evidence-v0.2.3/privacy-screening/browser-red/audio-음성·현장음-109개-versioned-WAV를-실제-Chrome에서-해시·디코드-검증한다-mobile/trace.zip + + ──────────────────────────────────────────────────────────────────────────────────────────────── + + + 2 failed + [desktop] › tests/browser/audio.spec.ts:7:1 › 음성·현장음 109개 versioned WAV를 실제 Chrome에서 해시·디코드 검증한다 + [mobile] › tests/browser/audio.spec.ts:7:1 › 음성·현장음 109개 versioned WAV를 실제 Chrome에서 해시·디코드 검증한다 + +Exit code: 1 +Finished UTC: 2026-10-14T09:09:15.754298+00:00 diff --git a/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/04-screening-RED.log b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/04-screening-RED.log new file mode 100644 index 0000000..6bf7afd --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/04-screening-RED.log @@ -0,0 +1,44 @@ +$ npx vitest run tests/ambience.test.ts -t '최종 ASR|101개 음성' +Started UTC: 2026-10-14T09:09:47.813802+00:00 + + RUN v5.0.4 /home/hermes/worktrees/find-word-v0.2.3 + + ❯ tests/ambience.test.ts (5 tests | 2 failed | 3 skipped) 103ms + × 최종 ASR 증거는 정확한 WAV와 연결되며 청취·법적 인수로 주장하지 않는다 6ms + × 101개 음성·다섯 현장음 및 이전 evidence 바이트를 보존한다 96ms + +⎯⎯⎯⎯⎯⎯⎯ Failed Tests 2 ⎯⎯⎯⎯⎯⎯⎯ + + FAIL tests/ambience.test.ts > 최종 ASR 증거는 정확한 WAV와 연결되며 청취·법적 인수로 주장하지 않는다 +Error: ENOENT: no such file or directory, open '.agent/evidence-v0.2.3/privacy-screening/final-asr.json' + ❯ tests/ambience.test.ts:158:32 + 156| it("최종 ASR 증거는 정확한 WAV와 연결되며 청취·법적 인수로 주장하지 않는다", () => { + 157| const directory = ".agent/evidence-v0.2.3/privacy-screening"; + 158| const screening = JSON.parse(readFileSync(`${directory}/final-asr.js… + | ^ + 159| const manifest = JSON.parse(readFileSync("public/ambience/manifest.j… + 160| expect(screening.tool).toMatchObject({ name: "faster-whisper", versi… + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[1/2]⎯ + + FAIL tests/ambience.test.ts > 101개 음성·다섯 현장음 및 이전 evidence 바이트를 보존한다 +AssertionError: expected '8db06f3f09bbd8409573ba4874c7ccdd1e7e8…' not to be '8db06f3f09bbd8409573ba4874c7ccdd1e7e8…' // Object.is equality + ❯ tests/ambience.test.ts:192:26 + 190| const actual = createHash("sha256").update(readFileSync(path)).dig… + 191| if (/public\/ambience\/(mall|market|cafe)\.wav$/.test(path)) { + 192| expect(actual).not.toBe(before); + | ^ + 193| changedAmbience++; + 194| } else { + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[2/2]⎯ + + + Test Files 1 failed (1) + Tests 2 failed | 3 skipped (5) + Start at 09:09:48 + Duration 400ms (tests 39%, setup 39%, transform 17%, import 4%, worker 2%) + + +Exit code: 1 +Finished UTC: 2026-10-14T09:09:48.821996+00:00 diff --git a/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/05-regeneration.log b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/05-regeneration.log new file mode 100644 index 0000000..0b0da12 --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/05-regeneration.log @@ -0,0 +1,16 @@ +$ python3 .agent/evidence-v0.2.3/privacy-screening/regenerate.py +Started UTC: 2026-10-14T09:10:56.998337+00:00 +All eight source SHA-256, byte counts and direct-media durations match before conversion. +Traceback (most recent call last): + File "/home/hermes/worktrees/find-word-v0.2.3/.agent/evidence-v0.2.3/privacy-screening/regenerate.py", line 28, in + manifest = audio.generate(plan, source_directory, ROOT / 'public/ambience') + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/hermes/worktrees/find-word-v0.2.3/scripts/ambience_audio.py", line 218, in generate + info = converter(source_path(source_directory, environment), ready / name, asset["selectedSegmentStartSeconds"]) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/hermes/worktrees/find-word-v0.2.3/scripts/ambience_audio.py", line 51, in convert + raise ValueError("원본 구간이 잘렸거나 PCM이 올바르지 않습니다.") +ValueError: 원본 구간이 잘렸거나 PCM이 올바르지 않습니다. + +Exit code: 1 +Finished UTC: 2026-10-14T09:10:59.192835+00:00 diff --git a/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/06-seek-GREEN.log b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/06-seek-GREEN.log new file mode 100644 index 0000000..5be64c0 --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/06-seek-GREEN.log @@ -0,0 +1,11 @@ +$ python3 -m unittest discover -s tests/python -p test_ambience_audio.py -k short_input_seek -v +Started UTC: 2026-10-14T09:12:50.105600+00:00 +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 + +---------------------------------------------------------------------- +Ran 1 test in 0.870s + +OK + +Exit code: 0 +Finished UTC: 2026-10-14T09:12:51.044884+00:00 diff --git a/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/06-seek-RED.log b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/06-seek-RED.log new file mode 100644 index 0000000..b1c1cac --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/06-seek-RED.log @@ -0,0 +1,22 @@ +$ python3 -m unittest discover -s tests/python -p test_ambience_audio.py -k short_input_seek -v +Started UTC: 2026-10-14T09:12:09.721189+00:00 +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 + +====================================================================== +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.3/tests/python/test_ambience_audio.py", line 69, in test_short_input_seek_retries_full_decode_without_padding_or_truncating + actual = audio.convert(source, target, 1) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/hermes/worktrees/find-word-v0.2.3/scripts/ambience_audio.py", line 51, in convert + raise ValueError("원본 구간이 잘렸거나 PCM이 올바르지 않습니다.") +ValueError: 원본 구간이 잘렸거나 PCM이 올바르지 않습니다. + +---------------------------------------------------------------------- +Ran 1 test in 0.428s + +FAILED (errors=1) + +Exit code: 1 +Finished UTC: 2026-10-14T09:12:10.217535+00:00 diff --git a/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/06-seek-provenance-RED.log b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/06-seek-provenance-RED.log new file mode 100644 index 0000000..40ab05b --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/06-seek-provenance-RED.log @@ -0,0 +1,22 @@ +$ python3 -m unittest discover -s tests/python -p test_ambience_audio.py -k short_input_seek -v +Started UTC: 2026-10-14T09:12:26.719654+00:00 +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 + +====================================================================== +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.3/tests/python/test_ambience_audio.py", line 69, in test_short_input_seek_retries_full_decode_without_padding_or_truncating + actual = audio.convert(source, target, 1) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/hermes/worktrees/find-word-v0.2.3/scripts/ambience_audio.py", line 51, in convert + raise ValueError("원본 구간이 잘렸거나 PCM이 올바르지 않습니다.") +ValueError: 원본 구간이 잘렸거나 PCM이 올바르지 않습니다. + +---------------------------------------------------------------------- +Ran 1 test in 0.452s + +FAILED (errors=1) + +Exit code: 1 +Finished UTC: 2026-10-14T09:12:27.241604+00:00 diff --git a/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/07-regeneration.log b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/07-regeneration.log new file mode 100644 index 0000000..7132344 --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/07-regeneration.log @@ -0,0 +1,16 @@ +$ python3 .agent/evidence-v0.2.3/privacy-screening/regenerate.py +Started UTC: 2026-10-14T09:13:03.668086+00:00 +All eight source SHA-256, byte counts and direct-media durations match before conversion. +Traceback (most recent call last): + File "/home/hermes/worktrees/find-word-v0.2.3/.agent/evidence-v0.2.3/privacy-screening/regenerate.py", line 28, in + manifest = audio.generate(plan, source_directory, ROOT / 'public/ambience') + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/hermes/worktrees/find-word-v0.2.3/scripts/ambience_audio.py", line 227, in generate + info = converter(source_path(source_directory, environment), ready / name, asset["selectedSegmentStartSeconds"]) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/hermes/worktrees/find-word-v0.2.3/scripts/ambience_audio.py", line 59, in convert + raise ValueError("원본 구간이 잘렸거나 PCM이 올바르지 않습니다.") +ValueError: 원본 구간이 잘렸거나 PCM이 올바르지 않습니다. + +Exit code: 1 +Finished UTC: 2026-10-14T09:13:06.976084+00:00 diff --git a/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/08-sample-trim-GREEN.log b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/08-sample-trim-GREEN.log new file mode 100644 index 0000000..1e66b37 --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/08-sample-trim-GREEN.log @@ -0,0 +1,11 @@ +$ python3 -m unittest discover -s tests/python -p test_ambience_audio.py -k short_input_seek -v +Started UTC: 2026-10-14T09:16:00.065794+00:00 +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 + +---------------------------------------------------------------------- +Ran 1 test in 0.813s + +OK + +Exit code: 0 +Finished UTC: 2026-10-14T09:16:00.949585+00:00 diff --git a/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/08-sample-trim-RED.log b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/08-sample-trim-RED.log new file mode 100644 index 0000000..1d6ac06 --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/08-sample-trim-RED.log @@ -0,0 +1,22 @@ +$ python3 -m unittest discover -s tests/python -p test_ambience_audio.py -k short_input_seek -v +Started UTC: 2026-10-14T09:15:41.642570+00:00 +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) ... FAIL + +====================================================================== +FAIL: 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.3/tests/python/test_ambience_audio.py", line 71, in test_short_input_seek_retries_full_decode_without_padding_or_truncating + self.assertEqual(actual["conversion"]["seekMethod"], "full decode then sample trim") +AssertionError: 'full decode then output seek' != 'full decode then sample trim' +- full decode then output seek ++ full decode then sample trim + + +---------------------------------------------------------------------- +Ran 1 test in 0.697s + +FAILED (failures=1) + +Exit code: 1 +Finished UTC: 2026-10-14T09:15:42.409368+00:00 diff --git a/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/09-regeneration.log b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/09-regeneration.log new file mode 100644 index 0000000..f544c42 --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/09-regeneration.log @@ -0,0 +1,260 @@ +$ python3 .agent/evidence-v0.2.3/privacy-screening/regenerate.py +Started UTC: 2026-10-14T09:16:15.875217+00:00 +All eight source SHA-256, byte counts and direct-media durations match before conversion. +{ + "completedAtUtc": "2026-10-14T09:16:20.220194+00:00", + "method": "ambience_audio.generate: source preflight, full staged bundle validation, atomic directory exchange", + "allSourcesMatchedBeforeConversion": true, + "planUnmodified": true, + "sources": [ + { + "environmentId": "street", + "sha256": "0ddb0be7eb3427f781c8268bcbc74b8ad7e1fbf75b9f6966e65274dbe85f3d9d", + "bytes": 3414104, + "directMediaDurationSeconds": 264.254694, + "selectedSegmentStartSeconds": 35 + }, + { + "environmentId": "mall", + "sha256": "bb066e130e5d665db57cb5f88e820d053c724d8f777b275213998d2074c6529a", + "bytes": 1666896, + "directMediaDurationSeconds": 60.05551, + "selectedSegmentStartSeconds": 36 + }, + { + "environmentId": "theater", + "sha256": "05c3ece7c088f34700b7610f791c0ad848a24c77be2c32fd1503a78356739a43", + "bytes": 1485015, + "directMediaDurationSeconds": 176.901224, + "selectedSegmentStartSeconds": 45 + }, + { + "environmentId": "department", + "sha256": "261fda28722fba623483a90b32e7a2ec388c59887f56a5247156b53f1ffb6ccd", + "bytes": 2445024, + "directMediaDurationSeconds": 292.872, + "selectedSegmentStartSeconds": 90 + }, + { + "environmentId": "market", + "sha256": "fc0075dce8ad05b56460c9f18754c27b2021f21f1c780a595ccda648d33c941d", + "bytes": 622200, + "directMediaDurationSeconds": 76.696961, + "selectedSegmentStartSeconds": 60 + }, + { + "environmentId": "subway", + "sha256": "41fcf064cde53cef1528fe98721347851e60c070d8ff9f213f354025cf272d4c", + "bytes": 3343901, + "directMediaDurationSeconds": 425.024, + "selectedSegmentStartSeconds": 65 + }, + { + "environmentId": "cafe", + "sha256": "6360791fdcee1f64638f0fc9abd6d2c7a1aa75fd3d2b80033170a02d025099dc", + "bytes": 19947952, + "directMediaDurationSeconds": 1200.000998, + "selectedSegmentStartSeconds": 180 + }, + { + "environmentId": "rain", + "sha256": "ef0511593b1bb0ba47d5c5dafd83eb07ba854b5a65fd5d41b8c76a1b3ff2c22a", + "bytes": 91187572, + "directMediaDurationSeconds": 1800.0, + "selectedSegmentStartSeconds": 180 + } + ], + "manifestSha256": "4f21df1c046e545553319889218c29b3efe0da0d49d45d3e09a36fb7759a617c", + "toolVersions": { + "ffmpeg": "ffmpeg version 6.1.1-3ubuntu5 Copyright (c) 2000-2023 the FFmpeg developers" + }, + "outputs": [ + { + "environmentId": "street", + "selectedSegmentStartSeconds": 35, + "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", + "selectedSegmentStartSeconds": 36, + "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", + "selectedSegmentStartSeconds": 45, + "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", + "selectedSegmentStartSeconds": 90, + "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", + "selectedSegmentStartSeconds": 60, + "sha256": "7a7a980845a4aade2a7e8a108eae746220a4688e92792ee93d3deb76b2a762f6", + "bytes": 576044, + "duration": 12.0, + "rms": 0.07999755668792045, + "peak": 0.507232666015625, + "conversion": { + "startSeconds": 60, + "durationSeconds": 12, + "seekMethod": "full decode then sample trim", + "fadeSeconds": 0.05, + "sampleRate": 24000, + "channels": 1, + "encoding": "PCM16 little-endian", + "linearGain": 1.6103277706340973, + "targetRms": 0.08, + "peakLimit": 0.85, + "maxGain": 4, + "operations": "excerpt, downmix, resample, linear end fades, bounded linear normalization, WAV encoding" + } + }, + { + "environmentId": "subway", + "selectedSegmentStartSeconds": 65, + "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", + "selectedSegmentStartSeconds": 180, + "sha256": "802a956e91b85a2fdd0e1f161d75bfada7a53499bcb57ba7f578411480ded216", + "bytes": 576044, + "duration": 12.0, + "rms": 0.07999756802463229, + "peak": 0.44708251953125, + "conversion": { + "startSeconds": 180, + "durationSeconds": 12, + "seekMethod": "full decode then sample trim", + "fadeSeconds": 0.05, + "sampleRate": 24000, + "channels": 1, + "encoding": "PCM16 little-endian", + "linearGain": 0.6696615304282213, + "targetRms": 0.08, + "peakLimit": 0.85, + "maxGain": 4, + "operations": "excerpt, downmix, resample, linear end fades, bounded linear normalization, WAV encoding" + } + }, + { + "environmentId": "rain", + "selectedSegmentStartSeconds": 180, + "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" + } + } + ] +} + +Exit code: 0 +Finished UTC: 2026-10-14T09:16:20.228871+00:00 diff --git a/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/10-final-asr.log b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/10-final-asr.log new file mode 100644 index 0000000..0b0ba90 --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/10-final-asr.log @@ -0,0 +1,14 @@ +$ /tmp/findword-asr-venv/bin/python .agent/evidence-v0.2.3/privacy-screening/screen-final.py +Started UTC: 2026-10-14T09:16:47.940443+00:00 +{"environmentId": "street", "sha256": "a8bffa201b174618955bc51b860167169125304811aabe2086b0bb35b06c3ae1", "language": "en", "languageProbability": 0.3898167014122009, "segments": [], "text": ""} +{"environmentId": "mall", "sha256": "680a769940c08f0d12c6c954c08366598dd8b5745e276f39c82b10d1a88261a1", "language": "en", "languageProbability": 0.21966177225112915, "segments": [{"id": 1, "seek": 0, "start": 0.0, "end": 12.0, "text": " It's so beautiful, it's so beautiful, it's so beautiful.", "tokens": [50364, 467, 311, 370, 2238, 11, 309, 311, 370, 2238, 11, 309, 311, 370, 2238, 13, 50964], "avg_logprob": -0.93099288476838, "compression_ratio": 1.8064516129032258, "no_speech_prob": 0.33958810567855835, "words": null, "temperature": 0.0}], "text": " It's so beautiful, it's so beautiful, it's so beautiful."} +{"environmentId": "theater", "sha256": "2d6a444fb7874cdf6b2d8a741a69175299b112eb66834912c025437d8277d635", "language": "en", "languageProbability": 0.25658440589904785, "segments": [{"id": 1, "seek": 0, "start": 0.0, "end": 7.0, "text": " Thank you for watching.", "tokens": [50364, 1044, 291, 337, 1976, 13, 50714], "avg_logprob": -1.1992912590503693, "compression_ratio": 0.7419354838709677, "no_speech_prob": 0.30440080165863037, "words": null, "temperature": 1.0}], "text": " Thank you for watching."} +{"environmentId": "department", "sha256": "aa43f3d1d3e7c2b1f8ace24ecbda45d0ea3a031db941c39506dc6c1665b8efa7", "language": "en", "languageProbability": 0.29920145869255066, "segments": [{"id": 1, "seek": 0, "start": 0.0, "end": 12.0, "text": " Thank you for watching!", "tokens": [50364, 1044, 291, 337, 1976, 0, 50964], "avg_logprob": -1.3012538105249405, "compression_ratio": 0.7419354838709677, "no_speech_prob": 0.3079261779785156, "words": null, "temperature": 1.0}], "text": " Thank you for watching!"} +{"environmentId": "market", "sha256": "7a7a980845a4aade2a7e8a108eae746220a4688e92792ee93d3deb76b2a762f6", "language": "ja", "languageProbability": 0.15124011039733887, "segments": [{"id": 1, "seek": 0, "start": 0.0, "end": 12.0, "text": "ご視聴ありがとうございました", "tokens": [50364, 9991, 27333, 8171, 112, 38538, 50964], "avg_logprob": -1.0916412025690079, "compression_ratio": 0.8571428571428571, "no_speech_prob": 0.4130496084690094, "words": null, "temperature": 1.0}], "text": "ご視聴ありがとうございました"} +{"environmentId": "subway", "sha256": "9faf70b68617d267b367a0f3692ed90015458543ab4b0844f6c704e6a724728f", "language": "en", "languageProbability": 0.28915584087371826, "segments": [{"id": 1, "seek": 0, "start": 0.0, "end": 7.0, "text": " Thank you for watching.", "tokens": [50364, 1044, 291, 337, 1976, 13, 50714], "avg_logprob": -1.1550373882055283, "compression_ratio": 0.7419354838709677, "no_speech_prob": 0.5948910713195801, "words": null, "temperature": 1.0}], "text": " Thank you for watching."} +{"environmentId": "cafe", "sha256": "802a956e91b85a2fdd0e1f161d75bfada7a53499bcb57ba7f578411480ded216", "language": "en", "languageProbability": 0.25277179479599, "segments": [{"id": 1, "seek": 0, "start": 0.0, "end": 12.0, "text": " Thank you for watching.", "tokens": [50364, 1044, 291, 337, 1976, 13, 50964], "avg_logprob": -1.174854263663292, "compression_ratio": 0.7419354838709677, "no_speech_prob": 0.46528390049934387, "words": null, "temperature": 1.0}], "text": " Thank you for watching."} +{"environmentId": "rain", "sha256": "f4315084e820f742b0709de5bb0d1abd3d5af1730620e08c2948b70347356dd9", "language": "nn", "languageProbability": 0.5633389949798584, "segments": [{"id": 1, "seek": 0, "start": 0.0, "end": 2.0, "text": " Let's go!", "tokens": [50364, 961, 311, 352, 0, 50464], "avg_logprob": -1.2815486363002233, "compression_ratio": 0.5294117647058824, "no_speech_prob": 0.4753601849079132, "words": null, "temperature": 1.0}], "text": " Let's go!"} +Required changed excerpts produced ASR segments; screening criterion failed. + +Exit code: 1 +Finished UTC: 2026-10-14T09:17:06.762347+00:00 diff --git a/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/11-provenance-GREEN.log b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/11-provenance-GREEN.log new file mode 100644 index 0000000..e5b6d33 --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/11-provenance-GREEN.log @@ -0,0 +1,14 @@ +$ npx vitest run tests/ambience.test.ts tests/build.test.ts -t '선택 구간|101개 음성|현장음 manifest|현장음 .* 손상|고지는 각 항목' +Started UTC: 2026-10-14T09:17:53.364228+00:00 + + RUN v5.0.4 /home/hermes/worktrees/find-word-v0.2.3 + + + Test Files 2 passed (2) + Tests 24 passed | 11 skipped (35) + Start at 09:17:54 + Duration 22.57s (tests 96%, setup 3%, transform 1%) + + +Exit code: 0 +Finished UTC: 2026-10-14T09:18:17.137511+00:00 diff --git a/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/12-build.log b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/12-build.log new file mode 100644 index 0000000..89f88dc --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/12-build.log @@ -0,0 +1,20 @@ +$ npm run build +Started UTC: 2026-10-14T09:17:53.387660+00:00 + +> find-word@0.2.3 build +> tsc --noEmit && vite build && node scripts/check-build.mjs + +vite v8.3.4 building client environment for production... +transforming... +✓ 21 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-BChkBncw.js 247.95 kB │ gzip: 78.07 kB + +✓ built in 435ms +빌드 음성 자산 101개 + 현장음 8개 및 런타임/현장음 notice 확인 + +Exit code: 0 +Finished UTC: 2026-10-14T09:18:02.496827+00:00 diff --git a/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/12-lint.log b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/12-lint.log new file mode 100644 index 0000000..8eab424 --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/12-lint.log @@ -0,0 +1,9 @@ +$ npm run lint +Started UTC: 2026-10-14T09:17:53.361817+00:00 + +> find-word@0.2.3 lint +> eslint . && tsc --noEmit + + +Exit code: 0 +Finished UTC: 2026-10-14T09:18:05.370273+00:00 diff --git a/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/12-python.log b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/12-python.log new file mode 100644 index 0000000..978d922 --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/12-python.log @@ -0,0 +1,457 @@ +$ python3 -m unittest discover -s tests/python -v +Started UTC: 2026-10-14T09:17:53.337776+00:00 +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_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_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_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 36 tests in 15.946s + +OK + +Exit code: 0 +Finished UTC: 2026-10-14T09:18:09.473315+00:00 diff --git a/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/13-screening-criterion-RED.log b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/13-screening-criterion-RED.log new file mode 100644 index 0000000..5f8b122 --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/13-screening-criterion-RED.log @@ -0,0 +1,70 @@ +$ npx vitest run tests/ambience.test.ts -t '최종 ASR' +Started UTC: 2026-10-14T09:19:17.358762+00:00 + + RUN v5.0.4 /home/hermes/worktrees/find-word-v0.2.3 + + ❯ tests/ambience.test.ts (5 tests | 1 failed | 4 skipped) 15ms + × 최종 ASR 증거는 정확한 WAV와 연결되며 청취·법적 인수로 주장하지 않는다 14ms + +⎯⎯⎯⎯⎯⎯⎯ Failed Tests 1 ⎯⎯⎯⎯⎯⎯⎯ + + FAIL tests/ambience.test.ts > 최종 ASR 증거는 정확한 WAV와 연결되며 청취·법적 인수로 주장하지 않는다 +AssertionError: expected [ Array(1) ] to deeply equal [] + +- Expected ++ Received + +- [] ++ [ ++ { ++ "avg_logprob": -0.93099288476838, ++ "compression_ratio": 1.8064516129032258, ++ "end": 12, ++ "id": 1, ++ "no_speech_prob": 0.33958810567855835, ++ "seek": 0, ++ "start": 0, ++ "temperature": 0, ++ "text": " It's so beautiful, it's so beautiful, it's so beautiful.", ++ "tokens": [ ++ 50364, ++ 467, ++ 311, ++ 370, ++ 2238, ++ 11, ++ 309, ++ 311, ++ 370, ++ 2238, ++ 11, ++ 309, ++ 311, ++ 370, ++ 2238, ++ 13, ++ 50964, ++ ], ++ "words": null, ++ }, ++ ] + + ❯ tests/ambience.test.ts:224:31 + 222| expect(Array.isArray(result.segments)).toBe(true); + 223| if (["mall", "market", "cafe"].includes(entry.environmentId)) { + 224| expect(result.segments).toEqual([]); + | ^ + 225| expect(result.text).toBe(""); + 226| } + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[1/1]⎯ + + + Test Files 1 failed (1) + Tests 1 failed | 4 skipped (5) + Start at 09:19:17 + Duration 298ms (setup 60%, transform 24%, tests 9%, import 5%, worker 2%) + + +Exit code: 1 +Finished UTC: 2026-10-14T09:19:18.258550+00:00 diff --git a/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/14-final-asr-vad.log b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/14-final-asr-vad.log new file mode 100644 index 0000000..6da1926 --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/14-final-asr-vad.log @@ -0,0 +1,39 @@ +$ /tmp/findword-asr-venv/bin/python .agent/evidence-v0.2.3/privacy-screening/screen-with-vad.py +Started UTC: 2026-10-14T09:19:18.333544+00:00 +{"environmentId": "street", "sha256": "a8bffa201b174618955bc51b860167169125304811aabe2086b0bb35b06c3ae1", "language": "en", "languageProbability": 0.3020564913749695, "segments": [], "text": ""} +{"environmentId": "mall", "sha256": "680a769940c08f0d12c6c954c08366598dd8b5745e276f39c82b10d1a88261a1", "language": "en", "languageProbability": 0.3020564913749695, "segments": [], "text": ""} +{"environmentId": "theater", "sha256": "2d6a444fb7874cdf6b2d8a741a69175299b112eb66834912c025437d8277d635", "language": "en", "languageProbability": 0.3020564913749695, "segments": [], "text": ""} +{"environmentId": "department", "sha256": "aa43f3d1d3e7c2b1f8ace24ecbda45d0ea3a031db941c39506dc6c1665b8efa7", "language": "en", "languageProbability": 0.3020564913749695, "segments": [], "text": ""} +{"environmentId": "market", "sha256": "7a7a980845a4aade2a7e8a108eae746220a4688e92792ee93d3deb76b2a762f6", "language": "en", "languageProbability": 0.1462402045726776, "segments": [{"id": 1, "seek": 0, "start": 0.43, "end": 2.43, "text": " I'm going to take a picture of you.", "tokens": [50364, 286, 478, 516, 281, 747, 257, 3036, 295, 291, 13, 50464], "avg_logprob": -0.7898735548998859, "compression_ratio": 2.276595744680851, "no_speech_prob": 0.4569862484931946, "words": null, "temperature": 0.2}, {"id": 2, "seek": 0, "start": 2.43, "end": 4.43, "text": " I'm going to take a picture of you.", "tokens": [50464, 286, 478, 516, 281, 747, 257, 3036, 295, 291, 13, 50564], "avg_logprob": -0.7898735548998859, "compression_ratio": 2.276595744680851, "no_speech_prob": 0.4569862484931946, "words": null, "temperature": 0.2}, {"id": 3, "seek": 0, "start": 4.43, "end": 6.43, "text": " I'm going to take a picture of you.", "tokens": [50564, 286, 478, 516, 281, 747, 257, 3036, 295, 291, 13, 50664], "avg_logprob": -0.7898735548998859, "compression_ratio": 2.276595744680851, "no_speech_prob": 0.4569862484931946, "words": null, "temperature": 0.2}], "text": " I'm going to take a picture of you. I'm going to take a picture of you. I'm going to take a picture of you."} +{"environmentId": "subway", "sha256": "9faf70b68617d267b367a0f3692ed90015458543ab4b0844f6c704e6a724728f", "language": "en", "languageProbability": 0.3020564913749695, "segments": [], "text": ""} +{"environmentId": "cafe", "sha256": "802a956e91b85a2fdd0e1f161d75bfada7a53499bcb57ba7f578411480ded216", "language": "en", "languageProbability": 0.23059327900409698, "segments": [{"id": 1, "seek": 0, "start": 3.02, "end": 4.02, "text": " Thank you.", "tokens": [50364, 1044, 291, 13, 50414], "avg_logprob": -0.8587487538655599, "compression_ratio": 0.5555555555555556, "no_speech_prob": 0.7639055252075195, "words": null, "temperature": 0.0}], "text": " Thank you."} +{"environmentId": "rain", "sha256": "f4315084e820f742b0709de5bb0d1abd3d5af1730620e08c2948b70347356dd9", "language": "en", "languageProbability": 0.3020564913749695, "segments": [], "text": ""} +Traceback (most recent call last): + File "/home/hermes/worktrees/find-word-v0.2.3/.agent/evidence-v0.2.3/privacy-screening/screen-with-vad.py", line 66, in + stream.write(json.dumps(report, ensure_ascii=False, indent=2, allow_nan=False) + '\n') + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/hermes/.local/share/uv/python/cpython-3.11.16-linux-x86_64-gnu/lib/python3.11/json/__init__.py", line 238, in dumps + **kw).encode(obj) + ^^^^^^^^^^^ + File "/home/hermes/.local/share/uv/python/cpython-3.11.16-linux-x86_64-gnu/lib/python3.11/json/encoder.py", line 202, in encode + chunks = list(chunks) + ^^^^^^^^^^^^ + File "/home/hermes/.local/share/uv/python/cpython-3.11.16-linux-x86_64-gnu/lib/python3.11/json/encoder.py", line 432, in _iterencode + yield from _iterencode_dict(o, _current_indent_level) + File "/home/hermes/.local/share/uv/python/cpython-3.11.16-linux-x86_64-gnu/lib/python3.11/json/encoder.py", line 406, in _iterencode_dict + yield from chunks + File "/home/hermes/.local/share/uv/python/cpython-3.11.16-linux-x86_64-gnu/lib/python3.11/json/encoder.py", line 326, in _iterencode_list + yield from chunks + File "/home/hermes/.local/share/uv/python/cpython-3.11.16-linux-x86_64-gnu/lib/python3.11/json/encoder.py", line 406, in _iterencode_dict + yield from chunks + File "/home/hermes/.local/share/uv/python/cpython-3.11.16-linux-x86_64-gnu/lib/python3.11/json/encoder.py", line 406, in _iterencode_dict + yield from chunks + File "/home/hermes/.local/share/uv/python/cpython-3.11.16-linux-x86_64-gnu/lib/python3.11/json/encoder.py", line 398, in _iterencode_dict + yield _floatstr(value) + ^^^^^^^^^^^^^^^^ + File "/home/hermes/.local/share/uv/python/cpython-3.11.16-linux-x86_64-gnu/lib/python3.11/json/encoder.py", line 240, in floatstr + raise ValueError( +ValueError: Out of range float values are not JSON compliant: inf + +Exit code: 1 +Finished UTC: 2026-10-14T09:19:23.297078+00:00 diff --git a/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/15-audit.log b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/15-audit.log new file mode 100644 index 0000000..d04cd6c --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/15-audit.log @@ -0,0 +1,2 @@ +$ npm audit --json +Exit code: 0 diff --git a/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/15-browser.log b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/15-browser.log new file mode 100644 index 0000000..60fa6b0 --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/15-browser.log @@ -0,0 +1,58 @@ +$ env CHROME_PATH=/usr/bin/google-chrome PLAYWRIGHT_NO_SANDBOX=0 PLAYWRIGHT_JSON_OUTPUT_FILE=.agent/evidence-v0.2.3/privacy-screening/browser-results.json npx playwright test --reporter=line,json --output=.agent/evidence-v0.2.3/privacy-screening/browser-final +Started UTC: 2026-10-14T09:19:38.005274+00:00 +[WebServer] (node:1143638) 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 30 tests using 2 workers + +(node:1143659) 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:1143660) 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/30] [desktop] › tests/browser/audio.spec.ts:7:1 › 음성·현장음 109개 versioned WAV를 실제 Chrome에서 해시·디코드 검증한다 +[2/30] [desktop] › tests/browser/game.spec.ts:8:1 › 실제 오디오로 혼합 모드 완주·레이아웃·접근성·외부 요청 없음 +[3/30] [desktop] › tests/browser/game.spec.ts:130:3 › intro WAV query URL의 404를 표시하고 같은 URL로 재시도·정답 mapping한다 +[4/30] [desktop] › tests/browser/game.spec.ts:130:3 › target WAV query URL의 404를 표시하고 같은 URL로 재시도·정답 mapping한다 +[5/30] [desktop] › tests/browser/release.spec.ts:6:1 › 릴리스는 사용자 크레딧과 런타임 MIT notice 전문을 제공한다 +[6/30] [desktop] › tests/browser/release.spec.ts:24:1 › 누락 음성·환경음은 query와 HTML accept에도 404이고 출처 고지는 번들된다 +[7/30] [desktop] › tests/browser/review-fixes.spec.ts:27:1 › 리뷰: 한국어 모드·결과 어절은 320px와 360px에서도 갈라지거나 넘치지 않는다 +[8/30] [desktop] › tests/browser/review-fixes.spec.ts:62:1 › 리뷰: 실제 진행 막대는 현재 문항의 1/3·2/3·3/3을 채운다 +[9/30] [desktop] › tests/browser/rounds.spec.ts:35:1 › 시작 단계·SNR·3문항 완료→다음 단계·재생 중 종료·응답 후 종료·홈 초기화 +[10/30] [desktop] › tests/browser/rounds.spec.ts:135:1 › 여덟 환경의 실제 WAV를 각각 디코드하고 루프 재생한 뒤 즉시 정지한다 +[11/30] [desktop] › tests/browser/rounds.spec.ts:178:1 › 환경음 404는 한국어 오류와 재시도 후 정상 답변으로 복구한다 +[12/30] [desktop] › tests/browser/ui.spec.ts:4:1 › 전체 음량은 설정 흐름 안에 들어가며 키보드로 조절된다 +[13/30] [desktop] › tests/browser/ui.spec.ts:52:1 › 난이도 설명은 모바일에서도 보인다 +[14/30] [desktop] › tests/browser/ui.spec.ts:68:1 › 한국어 제목은 단어 중간에서 줄바꿈하지 않는다 +[15/30] [desktop] › tests/browser/ui.spec.ts:121:1 › 시작 단계와 SNR 설정은 카드 안에 들어가고 터치 영역을 확보한다 +(node:1150374) 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) + + +[16/30] [mobile] › tests/browser/audio.spec.ts:7:1 › 음성·현장음 109개 versioned WAV를 실제 Chrome에서 해시·디코드 검증한다 +(node:1150409) 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) + + +[17/30] [mobile] › tests/browser/game.spec.ts:8:1 › 실제 오디오로 혼합 모드 완주·레이아웃·접근성·외부 요청 없음 +[18/30] [mobile] › tests/browser/game.spec.ts:130:3 › intro WAV query URL의 404를 표시하고 같은 URL로 재시도·정답 mapping한다 +[19/30] [mobile] › tests/browser/game.spec.ts:130:3 › target WAV query URL의 404를 표시하고 같은 URL로 재시도·정답 mapping한다 +[20/30] [mobile] › tests/browser/release.spec.ts:6:1 › 릴리스는 사용자 크레딧과 런타임 MIT notice 전문을 제공한다 +[21/30] [mobile] › tests/browser/release.spec.ts:24:1 › 누락 음성·환경음은 query와 HTML accept에도 404이고 출처 고지는 번들된다 +[22/30] [mobile] › tests/browser/review-fixes.spec.ts:27:1 › 리뷰: 한국어 모드·결과 어절은 320px와 360px에서도 갈라지거나 넘치지 않는다 +[23/30] [mobile] › tests/browser/review-fixes.spec.ts:62:1 › 리뷰: 실제 진행 막대는 현재 문항의 1/3·2/3·3/3을 채운다 +[24/30] [mobile] › tests/browser/rounds.spec.ts:35:1 › 시작 단계·SNR·3문항 완료→다음 단계·재생 중 종료·응답 후 종료·홈 초기화 +[25/30] [mobile] › tests/browser/rounds.spec.ts:135:1 › 여덟 환경의 실제 WAV를 각각 디코드하고 루프 재생한 뒤 즉시 정지한다 +[26/30] [mobile] › tests/browser/rounds.spec.ts:178:1 › 환경음 404는 한국어 오류와 재시도 후 정상 답변으로 복구한다 +[27/30] [mobile] › tests/browser/ui.spec.ts:4:1 › 전체 음량은 설정 흐름 안에 들어가며 키보드로 조절된다 +[28/30] [mobile] › tests/browser/ui.spec.ts:52:1 › 난이도 설명은 모바일에서도 보인다 +[29/30] [mobile] › tests/browser/ui.spec.ts:68:1 › 한국어 제목은 단어 중간에서 줄바꿈하지 않는다 +[30/30] [mobile] › tests/browser/ui.spec.ts:121:1 › 시작 단계와 SNR 설정은 카드 안에 들어가고 터치 영역을 확보한다 + 30 passed (4.0m) + +Exit code: 0 +Finished UTC: 2026-10-14T09:23:37.679994+00:00 diff --git a/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/16-final-asr-vad-json.log b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/16-final-asr-vad-json.log new file mode 100644 index 0000000..a842147 --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/16-final-asr-vad-json.log @@ -0,0 +1,14 @@ +$ /tmp/findword-asr-venv/bin/python .agent/evidence-v0.2.3/privacy-screening/screen-with-vad-json.py +Started UTC: 2026-10-14T09:20:07.751963+00:00 +{"environmentId": "street", "sha256": "a8bffa201b174618955bc51b860167169125304811aabe2086b0bb35b06c3ae1", "language": "en", "languageProbability": 0.3020564913749695, "segments": [], "text": ""} +{"environmentId": "mall", "sha256": "680a769940c08f0d12c6c954c08366598dd8b5745e276f39c82b10d1a88261a1", "language": "en", "languageProbability": 0.3020564913749695, "segments": [], "text": ""} +{"environmentId": "theater", "sha256": "2d6a444fb7874cdf6b2d8a741a69175299b112eb66834912c025437d8277d635", "language": "en", "languageProbability": 0.3020564913749695, "segments": [], "text": ""} +{"environmentId": "department", "sha256": "aa43f3d1d3e7c2b1f8ace24ecbda45d0ea3a031db941c39506dc6c1665b8efa7", "language": "en", "languageProbability": 0.3020564913749695, "segments": [], "text": ""} +{"environmentId": "market", "sha256": "7a7a980845a4aade2a7e8a108eae746220a4688e92792ee93d3deb76b2a762f6", "language": "en", "languageProbability": 0.1462402045726776, "segments": [{"id": 1, "seek": 0, "start": 0.43, "end": 2.43, "text": " I'm going to take a picture of you.", "tokens": [50364, 286, 478, 516, 281, 747, 257, 3036, 295, 291, 13, 50464], "avg_logprob": -0.7898735548998859, "compression_ratio": 2.276595744680851, "no_speech_prob": 0.4569862484931946, "words": null, "temperature": 0.2}, {"id": 2, "seek": 0, "start": 2.43, "end": 4.43, "text": " I'm going to take a picture of you.", "tokens": [50464, 286, 478, 516, 281, 747, 257, 3036, 295, 291, 13, 50564], "avg_logprob": -0.7898735548998859, "compression_ratio": 2.276595744680851, "no_speech_prob": 0.4569862484931946, "words": null, "temperature": 0.2}, {"id": 3, "seek": 0, "start": 4.43, "end": 6.43, "text": " I'm going to take a picture of you.", "tokens": [50564, 286, 478, 516, 281, 747, 257, 3036, 295, 291, 13, 50664], "avg_logprob": -0.7898735548998859, "compression_ratio": 2.276595744680851, "no_speech_prob": 0.4569862484931946, "words": null, "temperature": 0.2}], "text": " I'm going to take a picture of you. I'm going to take a picture of you. I'm going to take a picture of you."} +{"environmentId": "subway", "sha256": "9faf70b68617d267b367a0f3692ed90015458543ab4b0844f6c704e6a724728f", "language": "en", "languageProbability": 0.3020564913749695, "segments": [], "text": ""} +{"environmentId": "cafe", "sha256": "802a956e91b85a2fdd0e1f161d75bfada7a53499bcb57ba7f578411480ded216", "language": "en", "languageProbability": 0.23059327900409698, "segments": [{"id": 1, "seek": 0, "start": 3.02, "end": 4.02, "text": " Thank you.", "tokens": [50364, 1044, 291, 13, 50414], "avg_logprob": -0.8587487538655599, "compression_ratio": 0.5555555555555556, "no_speech_prob": 0.7639055252075195, "words": null, "temperature": 0.0}], "text": " Thank you."} +{"environmentId": "rain", "sha256": "f4315084e820f742b0709de5bb0d1abd3d5af1730620e08c2948b70347356dd9", "language": "en", "languageProbability": 0.3020564913749695, "segments": [], "text": ""} +Required changed excerpts produced ASR segments; screening criterion failed. + +Exit code: 1 +Finished UTC: 2026-10-14T09:20:19.115065+00:00 diff --git a/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/17-unit.log b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/17-unit.log new file mode 100644 index 0000000..32c7e5c --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/17-unit.log @@ -0,0 +1,124 @@ +$ npm test +Started UTC: 2026-10-14T09:21:25.178903+00:00 + +> find-word@0.2.3 test +> vitest run + + + RUN v5.0.4 /home/hermes/worktrees/find-word-v0.2.3 + + ❯ tests/ambience.test.ts (5 tests | 1 failed) 1346ms + × 최종 ASR 증거는 정확한 WAV와 연결되며 청취·법적 인수로 주장하지 않는다 50ms + +⎯⎯⎯⎯⎯⎯⎯ Failed Tests 1 ⎯⎯⎯⎯⎯⎯⎯ + + FAIL tests/ambience.test.ts > 최종 ASR 증거는 정확한 WAV와 연결되며 청취·법적 인수로 주장하지 않는다 +AssertionError: expected [ { id: 1, seek: +0, …(9) }, …(2) ] to deeply equal [] + +- Expected ++ Received + +- [] ++ [ ++ { ++ "avg_logprob": -0.7898735548998859, ++ "compression_ratio": 2.276595744680851, ++ "end": 2.43, ++ "id": 1, ++ "no_speech_prob": 0.4569862484931946, ++ "seek": 0, ++ "start": 0.43, ++ "temperature": 0.2, ++ "text": " I'm going to take a picture of you.", ++ "tokens": [ ++ 50364, ++ 286, ++ 478, ++ 516, ++ 281, ++ 747, ++ 257, ++ 3036, ++ 295, ++ 291, ++ 13, ++ 50464, ++ ], ++ "words": null, ++ }, ++ { ++ "avg_logprob": -0.7898735548998859, ++ "compression_ratio": 2.276595744680851, ++ "end": 4.43, ++ "id": 2, ++ "no_speech_prob": 0.4569862484931946, ++ "seek": 0, ++ "start": 2.43, ++ "temperature": 0.2, ++ "text": " I'm going to take a picture of you.", ++ "tokens": [ ++ 50464, ++ 286, ++ 478, ++ 516, ++ 281, ++ 747, ++ 257, ++ 3036, ++ 295, ++ 291, ++ 13, ++ 50564, ++ ], ++ "words": null, ++ }, ++ { ++ "avg_logprob": -0.7898735548998859, ++ "compression_ratio": 2.276595744680851, ++ "end": 6.43, ++ "id": 3, ++ "no_speech_prob": 0.4569862484931946, ++ "seek": 0, ++ "start": 4.43, ++ "temperature": 0.2, ++ "text": " I'm going to take a picture of you.", ++ "tokens": [ ++ 50564, ++ 286, ++ 478, ++ 516, ++ 281, ++ 747, ++ 257, ++ 3036, ++ 295, ++ 291, ++ 13, ++ 50664, ++ ], ++ "words": null, ++ }, ++ ] + + ❯ tests/ambience.test.ts:224:31 + 222| expect(Array.isArray(result.segments)).toBe(true); + 223| if (["mall", "market", "cafe"].includes(entry.environmentId)) { + 224| expect(result.segments).toEqual([]); + | ^ + 225| expect(result.text).toBe(""); + 226| } + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[1/1]⎯ + + + Test Files 1 failed | 12 passed (13) + Tests 1 failed | 123 passed (124) + Start at 09:21:26 + Duration 33.46s (tests 88%, environment 8%, setup 4%) + + Isolate 13 workers spawned · ~702ms startup each (spawn + environment, per file) + at least ~2.34s faster with isolate: false — reuses workers across files instead of one per file + + +Exit code: 1 +Finished UTC: 2026-10-14T09:21:59.522503+00:00 diff --git a/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/18-final-lint.log b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/18-final-lint.log new file mode 100644 index 0000000..f281789 --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/18-final-lint.log @@ -0,0 +1,9 @@ +$ npm run lint +Started UTC: 2026-10-14T09:25:04.023632+00:00 + +> find-word@0.2.3 lint +> eslint . && tsc --noEmit + + +Exit code: 0 +Finished UTC: 2026-10-14T09:25:10.062124+00:00 diff --git a/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/19-diff-check.log b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/19-diff-check.log new file mode 100644 index 0000000..c149eec --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/19-diff-check.log @@ -0,0 +1,5 @@ +$ git diff --check +Started UTC: 2026-10-14T09:26:17.523277+00:00 + +Exit code: 0 +Finished UTC: 2026-10-14T09:26:17.532504+00:00 diff --git a/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/asr-serialization-failure.json b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/asr-serialization-failure.json new file mode 100644 index 0000000..e69de29 diff --git a/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/baseline.json b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/baseline.json new file mode 100644 index 0000000..2745041 --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/baseline.json @@ -0,0 +1,519 @@ +{ + "capturedAtUtc": "2026-10-14T09:07:00.393096+00:00", + "priorAgentFiles": { + ".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": "e4d400b32344a0a45debc807c058e4c8bfa30d3cf947e75ef81dc40beddbbc8b", + ".agent/CONTEXT.md": "712bd056cfc8d0254d6c96e7a604d364779d3734d14899111792e7f343e6819b", + ".agent/RESULT-v0.1.1.md": "d5d7077d4977d70a89086801dd8e7d5ae04e16a8e8009e41f3216008b743ac5b", + ".agent/RESULT-v0.2.3.md": "d186104a6cda2dddd13314e4225c0e4158ab36a85d4d3f16fbc0cfc593171e66", + ".agent/RESULT.md": "eef6d73a67a8a7e90cd7b4747debc5976cc51571bc268328634413f698d0e311", + ".agent/TASK-v0.1.1.md": "4e4a81c02cf16ae8a2a6b53da8501de512b6a6387d7d4eaf932833c63ada4aa7", + ".agent/TASK-v0.2.3.md": "46ae8118506c756b97e29424e580843d0557c2f663f069e9ae71c04904fafb18", + ".agent/TASK.md": "7e52739d5de3161aa60004ca8e65b5a5041d62c1b6a0e50c6c72ad8f6b183d61", + ".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", + ".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/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/browser-favicon-RED.json": "036a734efcdff9481b3d10f1b07159ef6ca056d9245cffa469c5b1c8fe87f2bb", + ".agent/evidence-v0.2.3/browser-results.json": "060d18bd74f7179884205117c6c853dc783ec7a818bdfcc8a490ef1a679c77f6", + ".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/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-\uc74c\uc131\u00b7\ud604\uc7a5\uc74c-109\uac1c-versioned-WAV\ub97c-\uc2e4\uc81c-Chrome\uc5d0\uc11c-\ud574\uc2dc\u00b7\ub514\ucf54\ub4dc-\uac80\uc99d\ud55c\ub2e4-desktop/attachments/109-versioned-WAV-integrity-7406877c173ee35afff758c9c5f1645f0dc02fa5.json": "3d6defdb7ad3b8d4d7949ffe476f4ebf685e5dcc1ad0868b98bb4e639b6dcadb", + ".agent/evidence-v0.2.3/review-fixes/browser-final/audio-\uc74c\uc131\u00b7\ud604\uc7a5\uc74c-109\uac1c-versioned-WAV\ub97c-\uc2e4\uc81c-Chrome\uc5d0\uc11c-\ud574\uc2dc\u00b7\ub514\ucf54\ub4dc-\uac80\uc99d\ud55c\ub2e4-desktop/browser-audio-integrity.json": "3d6defdb7ad3b8d4d7949ffe476f4ebf685e5dcc1ad0868b98bb4e639b6dcadb", + ".agent/evidence-v0.2.3/review-fixes/browser-final/audio-\uc74c\uc131\u00b7\ud604\uc7a5\uc74c-109\uac1c-versioned-WAV\ub97c-\uc2e4\uc81c-Chrome\uc5d0\uc11c-\ud574\uc2dc\u00b7\ub514\ucf54\ub4dc-\uac80\uc99d\ud55c\ub2e4-mobile/attachments/109-versioned-WAV-integrity-9b9f8223b6524087ac395eb7a96ac0d386fbcb95.json": "3d6defdb7ad3b8d4d7949ffe476f4ebf685e5dcc1ad0868b98bb4e639b6dcadb", + ".agent/evidence-v0.2.3/review-fixes/browser-final/audio-\uc74c\uc131\u00b7\ud604\uc7a5\uc74c-109\uac1c-versioned-WAV\ub97c-\uc2e4\uc81c-Chrome\uc5d0\uc11c-\ud574\uc2dc\u00b7\ub514\ucf54\ub4dc-\uac80\uc99d\ud55c\ub2e4-mobile/browser-audio-integrity.json": "3d6defdb7ad3b8d4d7949ffe476f4ebf685e5dcc1ad0868b98bb4e639b6dcadb", + ".agent/evidence-v0.2.3/review-fixes/browser-final/game-\uc2e4\uc81c-\uc624\ub514\uc624\ub85c-\ud63c\ud569-\ubaa8\ub4dc-\uc644\uc8fc\u00b7\ub808\uc774\uc544\uc6c3\u00b7\uc811\uadfc\uc131\u00b7\uc678\ubd80-\uc694\uccad-\uc5c6\uc74c-desktop/game.png": "17c22581f74ddcd78770ebfbb75f0041298baab336c17cd5b37ff5e29b8b6a7d", + ".agent/evidence-v0.2.3/review-fixes/browser-final/game-\uc2e4\uc81c-\uc624\ub514\uc624\ub85c-\ud63c\ud569-\ubaa8\ub4dc-\uc644\uc8fc\u00b7\ub808\uc774\uc544\uc6c3\u00b7\uc811\uadfc\uc131\u00b7\uc678\ubd80-\uc694\uccad-\uc5c6\uc74c-desktop/home.png": "911b923e3a68e8deb0063efd88ed43eb1ed6c597c14bd5b9ee71f6b5161b6d7b", + ".agent/evidence-v0.2.3/review-fixes/browser-final/game-\uc2e4\uc81c-\uc624\ub514\uc624\ub85c-\ud63c\ud569-\ubaa8\ub4dc-\uc644\uc8fc\u00b7\ub808\uc774\uc544\uc6c3\u00b7\uc811\uadfc\uc131\u00b7\uc678\ubd80-\uc694\uccad-\uc5c6\uc74c-desktop/results.png": "51d34a4717075e8b516b2f334d6a30affecea776568052cc9ccb9d7518ecbebf", + ".agent/evidence-v0.2.3/review-fixes/browser-final/game-\uc2e4\uc81c-\uc624\ub514\uc624\ub85c-\ud63c\ud569-\ubaa8\ub4dc-\uc644\uc8fc\u00b7\ub808\uc774\uc544\uc6c3\u00b7\uc811\uadfc\uc131\u00b7\uc678\ubd80-\uc694\uccad-\uc5c6\uc74c-mobile/game.png": "13291f8ba632d1962611e25c99f73fa3d7732f7b8ef3a9222a5ddd5082576353", + ".agent/evidence-v0.2.3/review-fixes/browser-final/game-\uc2e4\uc81c-\uc624\ub514\uc624\ub85c-\ud63c\ud569-\ubaa8\ub4dc-\uc644\uc8fc\u00b7\ub808\uc774\uc544\uc6c3\u00b7\uc811\uadfc\uc131\u00b7\uc678\ubd80-\uc694\uccad-\uc5c6\uc74c-mobile/home.png": "a17b7cad00be132583d28f91a938a83f69663365575e1a91d17013e6d7369002", + ".agent/evidence-v0.2.3/review-fixes/browser-final/game-\uc2e4\uc81c-\uc624\ub514\uc624\ub85c-\ud63c\ud569-\ubaa8\ub4dc-\uc644\uc8fc\u00b7\ub808\uc774\uc544\uc6c3\u00b7\uc811\uadfc\uc131\u00b7\uc678\ubd80-\uc694\uccad-\uc5c6\uc74c-mobile/results.png": "2f973a00b336f2373cac53c79ae56eb7760cf4eeaff019bde949a86b7e92665a", + ".agent/evidence-v0.2.3/review-fixes/browser-final/review-fixes-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-desktop/normal-results.png": "85e8b066ac128239de765f001c3542e6905018f5deaec7abac4a985006fb03b5", + ".agent/evidence-v0.2.3/review-fixes/browser-final/review-fixes-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-desktop/progress-1.png": "4d130e9ea43bdfcd7b35e300224d1b54f2875aa8c24d5551c6627b7abd8ce1fc", + ".agent/evidence-v0.2.3/review-fixes/browser-final/review-fixes-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-desktop/progress-2.png": "4508a9c9e5c7533e9bf8afe6653fb4e1cd111de71141f0fb5404ab4c4b168ac9", + ".agent/evidence-v0.2.3/review-fixes/browser-final/review-fixes-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-desktop/progress-3.png": "fde834aa2f803612ef9cc7a68cea0c8d5a225289a82321ba0a59063d151e66a0", + ".agent/evidence-v0.2.3/review-fixes/browser-final/review-fixes-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-mobile/normal-results.png": "2f973a00b336f2373cac53c79ae56eb7760cf4eeaff019bde949a86b7e92665a", + ".agent/evidence-v0.2.3/review-fixes/browser-final/review-fixes-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-mobile/progress-1.png": "f46672f555b73c705f838e6d1e1c3d25fe2f9ff29ad629903b85c9b129b83b3b", + ".agent/evidence-v0.2.3/review-fixes/browser-final/review-fixes-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-mobile/progress-2.png": "c39155a3c4d4ae096cb73a892e8e86b40a2d4129c670a7b44d4b24daf8030983", + ".agent/evidence-v0.2.3/review-fixes/browser-final/review-fixes-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-mobile/progress-3.png": "9d198c8b07ea84e9f3d9ebad03831ffd61b98672a9e637e7ee9e9eead959cf28", + ".agent/evidence-v0.2.3/review-fixes/browser-final/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-desktop/copy-320-home.png": "872c362713d2013c7021770e3c222458f56ba0ee2ea2d21cf28bd28df8a6d613", + ".agent/evidence-v0.2.3/review-fixes/browser-final/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-desktop/copy-320-results.png": "fdf263c2c84c64beab026e2899b4b93a7b71b4fcf28b796e5782bb5bc17c2c78", + ".agent/evidence-v0.2.3/review-fixes/browser-final/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-desktop/copy-360-home.png": "a17b7cad00be132583d28f91a938a83f69663365575e1a91d17013e6d7369002", + ".agent/evidence-v0.2.3/review-fixes/browser-final/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-desktop/copy-360-results.png": "b838f6bbb4392ef8aa941c66dec5bef6bb27f06acada06b67272be926db9d576", + ".agent/evidence-v0.2.3/review-fixes/browser-final/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-mobile/copy-320-home.png": "872c362713d2013c7021770e3c222458f56ba0ee2ea2d21cf28bd28df8a6d613", + ".agent/evidence-v0.2.3/review-fixes/browser-final/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-mobile/copy-320-results.png": "fdf263c2c84c64beab026e2899b4b93a7b71b4fcf28b796e5782bb5bc17c2c78", + ".agent/evidence-v0.2.3/review-fixes/browser-final/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-mobile/copy-360-home.png": "a17b7cad00be132583d28f91a938a83f69663365575e1a91d17013e6d7369002", + ".agent/evidence-v0.2.3/review-fixes/browser-final/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-mobile/copy-360-results.png": "b838f6bbb4392ef8aa941c66dec5bef6bb27f06acada06b67272be926db9d576", + ".agent/evidence-v0.2.3/review-fixes/browser-final/rounds-\uc2dc\uc791-\ub2e8\uacc4\u00b7SNR\u00b73\ubb38\ud56d-\uc644\ub8cc\u2192\ub2e4\uc74c-\ub2e8\uacc4\u00b7\uc7ac\uc0dd-\uc911-\uc885\ub8cc\u00b7\uc751\ub2f5-\ud6c4-\uc885\ub8cc\u00b7\ud648-\ucd08\uae30\ud654-desktop/early-exit.png": "47cf4429695d65ddad8d353aaa14dd5edcea3ef4c09c16b537d6a72c3e256533", + ".agent/evidence-v0.2.3/review-fixes/browser-final/rounds-\uc2dc\uc791-\ub2e8\uacc4\u00b7SNR\u00b73\ubb38\ud56d-\uc644\ub8cc\u2192\ub2e4\uc74c-\ub2e8\uacc4\u00b7\uc7ac\uc0dd-\uc911-\uc885\ub8cc\u00b7\uc751\ub2f5-\ud6c4-\uc885\ub8cc\u00b7\ud648-\ucd08\uae30\ud654-mobile/early-exit.png": "b838f6bbb4392ef8aa941c66dec5bef6bb27f06acada06b67272be926db9d576", + ".agent/evidence-v0.2.3/review-fixes/browser-final/ui-\ud55c\uad6d\uc5b4-\uc81c\ubaa9\uc740-\ub2e8\uc5b4-\uc911\uac04\uc5d0\uc11c-\uc904\ubc14\uafc8\ud558\uc9c0-\uc54a\ub294\ub2e4-desktop/heading.png": "56fa16aa968018bcc3252168a0c9e7fd3b30d352cb831b29caed75329c96dac7", + ".agent/evidence-v0.2.3/review-fixes/browser-final/ui-\ud55c\uad6d\uc5b4-\uc81c\ubaa9\uc740-\ub2e8\uc5b4-\uc911\uac04\uc5d0\uc11c-\uc904\ubc14\uafc8\ud558\uc9c0-\uc54a\ub294\ub2e4-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-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-desktop/normal-results.png": "85e8b066ac128239de765f001c3542e6905018f5deaec7abac4a985006fb03b5", + ".agent/evidence-v0.2.3/review-fixes/browser-green/review-fixes-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-desktop/progress-1.png": "4d130e9ea43bdfcd7b35e300224d1b54f2875aa8c24d5551c6627b7abd8ce1fc", + ".agent/evidence-v0.2.3/review-fixes/browser-green/review-fixes-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-desktop/progress-2.png": "4508a9c9e5c7533e9bf8afe6653fb4e1cd111de71141f0fb5404ab4c4b168ac9", + ".agent/evidence-v0.2.3/review-fixes/browser-green/review-fixes-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-desktop/progress-3.png": "fde834aa2f803612ef9cc7a68cea0c8d5a225289a82321ba0a59063d151e66a0", + ".agent/evidence-v0.2.3/review-fixes/browser-green/review-fixes-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-mobile/normal-results.png": "2f973a00b336f2373cac53c79ae56eb7760cf4eeaff019bde949a86b7e92665a", + ".agent/evidence-v0.2.3/review-fixes/browser-green/review-fixes-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-mobile/progress-1.png": "f46672f555b73c705f838e6d1e1c3d25fe2f9ff29ad629903b85c9b129b83b3b", + ".agent/evidence-v0.2.3/review-fixes/browser-green/review-fixes-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-mobile/progress-2.png": "c39155a3c4d4ae096cb73a892e8e86b40a2d4129c670a7b44d4b24daf8030983", + ".agent/evidence-v0.2.3/review-fixes/browser-green/review-fixes-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-mobile/progress-3.png": "9d198c8b07ea84e9f3d9ebad03831ffd61b98672a9e637e7ee9e9eead959cf28", + ".agent/evidence-v0.2.3/review-fixes/browser-green/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-desktop/copy-320-home.png": "872c362713d2013c7021770e3c222458f56ba0ee2ea2d21cf28bd28df8a6d613", + ".agent/evidence-v0.2.3/review-fixes/browser-green/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-desktop/copy-320-results.png": "fdf263c2c84c64beab026e2899b4b93a7b71b4fcf28b796e5782bb5bc17c2c78", + ".agent/evidence-v0.2.3/review-fixes/browser-green/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-desktop/copy-360-home.png": "a17b7cad00be132583d28f91a938a83f69663365575e1a91d17013e6d7369002", + ".agent/evidence-v0.2.3/review-fixes/browser-green/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-desktop/copy-360-results.png": "b838f6bbb4392ef8aa941c66dec5bef6bb27f06acada06b67272be926db9d576", + ".agent/evidence-v0.2.3/review-fixes/browser-green/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-mobile/copy-320-home.png": "872c362713d2013c7021770e3c222458f56ba0ee2ea2d21cf28bd28df8a6d613", + ".agent/evidence-v0.2.3/review-fixes/browser-green/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-mobile/copy-320-results.png": "fdf263c2c84c64beab026e2899b4b93a7b71b4fcf28b796e5782bb5bc17c2c78", + ".agent/evidence-v0.2.3/review-fixes/browser-green/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-mobile/copy-360-home.png": "a17b7cad00be132583d28f91a938a83f69663365575e1a91d17013e6d7369002", + ".agent/evidence-v0.2.3/review-fixes/browser-green/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-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-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-desktop/error-context.md": "fa4b05c6fb8ec98c57ff96e2f0d568aeb7ed027d8763712e767e50e13b25b31c", + ".agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-desktop/normal-results.png": "d3caf1e2d8625d6020e1e9061143b38843fa5698e7316b65a73569cce6026b73", + ".agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-desktop/progress-1.png": "e4f413e3dd1379a913a1d94ec5f084f607a80fe375382eb74cee2ac515aa8590", + ".agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-desktop/progress-2.png": "4d130e9ea43bdfcd7b35e300224d1b54f2875aa8c24d5551c6627b7abd8ce1fc", + ".agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-desktop/progress-3.png": "4508a9c9e5c7533e9bf8afe6653fb4e1cd111de71141f0fb5404ab4c4b168ac9", + ".agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-desktop/trace.zip": "f415eaae383b21d1fd059b3f99b2a1ec962a34facd2959406985e08710bf7a54", + ".agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-mobile/error-context.md": "1a289b42d134b84701446f0bfe2f1e462121412930595617023c1cf93e2e0c40", + ".agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-mobile/normal-results.png": "5eccd53853c27a7c1385f1219b0a9bb7af60070fbdd1469ef3265e40377f3eaa", + ".agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-mobile/progress-1.png": "3597007bfc13a2a9dcb9477ce836b68cccb78f55957f1f460431b67fe90e0f13", + ".agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-mobile/progress-2.png": "f46672f555b73c705f838e6d1e1c3d25fe2f9ff29ad629903b85c9b129b83b3b", + ".agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-mobile/progress-3.png": "c39155a3c4d4ae096cb73a892e8e86b40a2d4129c670a7b44d4b24daf8030983", + ".agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-mobile/trace.zip": "022a0078453d25254bb6bb4af59fbd3696abd5acaaee750343adea3cd9b8aa0d", + ".agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-desktop/copy-320-home.png": "872c362713d2013c7021770e3c222458f56ba0ee2ea2d21cf28bd28df8a6d613", + ".agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-desktop/copy-320-results.png": "b1dae69c908b9911d536d3e41553447bc71908a035f28bbc1f885d1def337b92", + ".agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-desktop/copy-360-home.png": "c04abd43e93e46fde7e1591bde24a3073d584226e93ba5661bac1b5cd78a4695", + ".agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-desktop/copy-360-results.png": "5e2ef07c6c3b7672e0aa82f248a5a245d60a10f86633fab2b2dd45ecff81d7fa", + ".agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-desktop/error-context.md": "d186519b7904a6ef3096e49c18e5e410528df127a7de409e237e7571d8a89f1b", + ".agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-desktop/trace.zip": "6d2abede66a4b0784accca9a0fea36ea71cabb138855e84343a2cb7f64cdab71", + ".agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-mobile/copy-320-home.png": "872c362713d2013c7021770e3c222458f56ba0ee2ea2d21cf28bd28df8a6d613", + ".agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-mobile/copy-320-results.png": "b1dae69c908b9911d536d3e41553447bc71908a035f28bbc1f885d1def337b92", + ".agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-mobile/copy-360-home.png": "c04abd43e93e46fde7e1591bde24a3073d584226e93ba5661bac1b5cd78a4695", + ".agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-mobile/copy-360-results.png": "5e2ef07c6c3b7672e0aa82f248a5a245d60a10f86633fab2b2dd45ecff81d7fa", + ".agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-mobile/error-context.md": "d186519b7904a6ef3096e49c18e5e410528df127a7de409e237e7571d8a89f1b", + ".agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-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" + }, + "wavSha256": { + "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", + "public/ambience/cafe.wav": "8db06f3f09bbd8409573ba4874c7ccdd1e7e825c8a61989a4efe66206a66c2d2", + "public/ambience/department.wav": "aa43f3d1d3e7c2b1f8ace24ecbda45d0ea3a031db941c39506dc6c1665b8efa7", + "public/ambience/mall.wav": "6e9171f549cacadfaeedd57a41c8e2a76b0e789f5c9a97af029a8d3558c9f145", + "public/ambience/market.wav": "4287e971a12767f70da714e0c1aff30125268f9c3faf07ebfbcc0d2904f4a312", + "public/ambience/rain.wav": "f4315084e820f742b0709de5bb0d1abd3d5af1730620e08c2948b70347356dd9", + "public/ambience/street.wav": "a8bffa201b174618955bc51b860167169125304811aabe2086b0bb35b06c3ae1", + "public/ambience/subway.wav": "9faf70b68617d267b367a0f3692ed90015458543ab4b0844f6c704e6a724728f", + "public/ambience/theater.wav": "2d6a444fb7874cdf6b2d8a741a69175299b112eb66834912c025437d8277d635" + }, + "mutableAgentFiles": [ + ".agent/AMBIENCE-SOURCES-v0.2.3.json", + ".agent/RESULT-v0.2.3.md" + ] +} diff --git a/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/before-manifest.json b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/before-manifest.json new file mode 100644 index 0000000..97b8dc9 --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/before-manifest.json @@ -0,0 +1,340 @@ +{ + "version": "0.2.3", + "generatedAtUtc": "2026-10-14T08:08:06.083521+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.", + "file": "street.wav", + "sourceSha256": "0ddb0be7eb3427f781c8268bcbc74b8ad7e1fbf75b9f6966e65274dbe85f3d9d", + "sourceBytes": 3414104, + "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, + "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" + }, + "expectedSourceSha256": "0ddb0be7eb3427f781c8268bcbc74b8ad7e1fbf75b9f6966e65274dbe85f3d9d", + "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" + } + }, + { + "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.", + "file": "mall.wav", + "sourceSha256": "bb066e130e5d665db57cb5f88e820d053c724d8f777b275213998d2074c6529a", + "sourceBytes": 1666896, + "outputLicense": "Public domain (PD-author)", + "verificationDateUtc": "2026-10-14", + "sha256": "6e9171f549cacadfaeedd57a41c8e2a76b0e789f5c9a97af029a8d3558c9f145", + "bytes": 576044, + "duration": 12.0, + "rms": 0.07999756961051585, + "peak": 0.5546875, + "conversion": { + "startSeconds": 20, + "durationSeconds": 12, + "fadeSeconds": 0.05, + "sampleRate": 24000, + "channels": 1, + "encoding": "PCM16 little-endian", + "linearGain": 0.9603596731816801, + "targetRms": 0.08, + "peakLimit": 0.85, + "maxGain": 4, + "operations": "excerpt, downmix, resample, linear end fades, bounded linear normalization, WAV encoding" + }, + "expectedSourceSha256": "bb066e130e5d665db57cb5f88e820d053c724d8f777b275213998d2074c6529a", + "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" + } + }, + { + "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.", + "file": "theater.wav", + "sourceSha256": "05c3ece7c088f34700b7610f791c0ad848a24c77be2c32fd1503a78356739a43", + "sourceBytes": 1485015, + "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, + "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" + }, + "expectedSourceSha256": "05c3ece7c088f34700b7610f791c0ad848a24c77be2c32fd1503a78356739a43", + "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" + } + }, + { + "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.", + "file": "department.wav", + "sourceSha256": "261fda28722fba623483a90b32e7a2ec388c59887f56a5247156b53f1ffb6ccd", + "sourceBytes": 2445024, + "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, + "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" + }, + "expectedSourceSha256": "261fda28722fba623483a90b32e7a2ec388c59887f56a5247156b53f1ffb6ccd", + "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" + } + }, + { + "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.", + "file": "market.wav", + "sourceSha256": "fc0075dce8ad05b56460c9f18754c27b2021f21f1c780a595ccda648d33c941d", + "sourceBytes": 622200, + "outputLicense": "CC BY-SA 4.0", + "verificationDateUtc": "2026-10-14", + "sha256": "4287e971a12767f70da714e0c1aff30125268f9c3faf07ebfbcc0d2904f4a312", + "bytes": 576044, + "duration": 12.0, + "rms": 0.04922207776603238, + "peak": 0.8499755859375, + "conversion": { + "startSeconds": 30, + "durationSeconds": 12, + "fadeSeconds": 0.05, + "sampleRate": 24000, + "channels": 1, + "encoding": "PCM16 little-endian", + "linearGain": 0.9408509216036823, + "targetRms": 0.08, + "peakLimit": 0.85, + "maxGain": 4, + "operations": "excerpt, downmix, resample, linear end fades, bounded linear normalization, WAV encoding" + }, + "expectedSourceSha256": "fc0075dce8ad05b56460c9f18754c27b2021f21f1c780a595ccda648d33c941d", + "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" + } + }, + { + "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.", + "file": "subway.wav", + "sourceSha256": "41fcf064cde53cef1528fe98721347851e60c070d8ff9f213f354025cf272d4c", + "sourceBytes": 3343901, + "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, + "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" + }, + "expectedSourceSha256": "41fcf064cde53cef1528fe98721347851e60c070d8ff9f213f354025cf272d4c", + "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" + } + }, + { + "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.", + "file": "cafe.wav", + "sourceSha256": "6360791fdcee1f64638f0fc9abd6d2c7a1aa75fd3d2b80033170a02d025099dc", + "sourceBytes": 19947952, + "outputLicense": "CC0 1.0 Universal", + "verificationDateUtc": "2026-10-14", + "sha256": "8db06f3f09bbd8409573ba4874c7ccdd1e7e825c8a61989a4efe66206a66c2d2", + "bytes": 576044, + "duration": 12.0, + "rms": 0.07999759158182362, + "peak": 0.3970947265625, + "conversion": { + "startSeconds": 120, + "durationSeconds": 12, + "fadeSeconds": 0.05, + "sampleRate": 24000, + "channels": 1, + "encoding": "PCM16 little-endian", + "linearGain": 0.6543423611954429, + "targetRms": 0.08, + "peakLimit": 0.85, + "maxGain": 4, + "operations": "excerpt, downmix, resample, linear end fades, bounded linear normalization, WAV encoding" + }, + "expectedSourceSha256": "6360791fdcee1f64638f0fc9abd6d2c7a1aa75fd3d2b80033170a02d025099dc", + "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" + } + }, + { + "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.", + "file": "rain.wav", + "sourceSha256": "ef0511593b1bb0ba47d5c5dafd83eb07ba854b5a65fd5d41b8c76a1b3ff2c22a", + "sourceBytes": 91187572, + "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, + "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" + }, + "expectedSourceSha256": "ef0511593b1bb0ba47d5c5dafd83eb07ba854b5a65fd5d41b8c76a1b3ff2c22a", + "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" + } + } + ] +} diff --git a/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/before-notices.md b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/before-notices.md new file mode 100644 index 0000000..8bb73f8 --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/before-notices.md @@ -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 20–32. + +## 극장 — 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 30–42. + +## 지하철 — 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 120–132. + +## 비 오는 거리 — 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. diff --git a/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/before-result.md b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/before-result.md new file mode 100644 index 0000000..60392e8 --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/before-result.md @@ -0,0 +1,275 @@ +# Find-Word v0.2.3 구현·검증 결과 + +작성일: 2026-10-14 UTC. worktree `/home/hermes/worktrees/find-word-v0.2.3`, branch `feat/v0.2.3`. +기준 HEAD `c92660b514f7af8eb556d3fa5c0fc80e4bdd4cf5`. 지정된 TASK/ACCEPTANCE/AMBIENCE-SOURCES를 먼저 읽고 기존 코드·테스트·문서를 확인했다. + +**Git commit/push/merge/tag, 외부 배포, secrets 사용은 하지 않았다.** 로컬 production preview만 사용했다. +정확한 credit **Designed by OZ at Heat-T Medical Inc.**와 private/UNLICENSED 프로젝트 권리를 보존했다. +제3자 현장음은 각각의 라이선스를 유지한다. + +**현재 최종 상태:** 독립 리뷰 수정 완료. lint/build PASS, 단위 118개·Python 32개·sandboxed Chrome 30개 PASS, npm audit 0건. +새 근거와 상세 변경은 문서 하단의 **독립 리뷰 수정**에 있으며 아래 최초 구현 기록과 구분한다. + +## 최초 구현 내용 (아래 리뷰 수정 내역으로 보완) + +- 정확히 세 개의 서로 다른 문제/단어를 한 단계에서 출제한다. 시작 단계 1~5 선택, mixed 선택/입력/선택, + 진행률/안내/분모 3문항, 정상 완료→다음 단계의 새 3문항, 5단계 재도전과 홈 복귀를 구현했다. +- SNR을 −12~+12 dB, 1 dB 눈금으로 직접 설정한다. 범위 밖 값은 clamp, NaN/Infinity는 단계 기본값으로 복구한다. + 변경은 현재 재청취·미응답 문항·이후 라운드에 적용한다. 재생 중 gain을 바꾸지 않는다. + 다음 단계도 수동 값은 유지하고 홈 복귀 시 수동 override를 지운다. 시작 단계/모드/환경/전체 음량은 홈 설정으로 유지한다. +- ready/loading/playing/answer/feedback에서 `문제 풀이 종료`가 가능하다. token 무효화→엔진 정지→결과 전환으로 + 지연 콜백을 차단한다. 응답 수·정답 수·실제 응답 분모를 표시하고 무응답을 오답으로 세지 않는다. +- 여덟 고유 실제 현장 녹음을 fetch/decode/loop한다. 절차적 잡음 합성 코드는 제거했다. + 101개 음성 및 여덟 배경은 모두 same-origin `?v=0.2.3` 정적 요청이다. 런타임 외부 API/TTS/추적은 없다. +- 음성과 배경을 각각 RMS .03으로 정규화하고 상대 gain `10^(dB/20)`을 적용한다. + 안내/목표/배경의 피크 합에 공통 gain을 적용해 최악 합계 peak ≤ .8을 유지한다. + master 음량은 그 뒤 공통 적용되므로 SNR을 보존한다. 배경은 목표 ended에서 함께 정리한다. +- HTTP/decode/준비 15초 timeout/재생 길이+5초 timeout/abort 후 한국어 안내와 재시도를 유지한다. +- CHANGELOG 생성, package/lock/HTML/UI/자산 버전/README/설계/배포/오디오/단어/권리 문서를 0.2.3에 맞췄다. + 상세 한국어 설계 주석을 수정 코드의 모듈·함수·클래스·상태/매개변수·경합/수치 계산에 추가했다. + +## RED → GREEN 원문 + +각 동작/회귀는 테스트를 먼저 작성·실행한 뒤 구현했다. 아래 RED의 종료 코드는 1, GREEN은 0이다. +`-t`로 좁힌 실행의 skipped는 필터 제외이며 최종 전체 실행은 skip 0이다. 실패 원문을 성공 로그로 대체하지 않았다. + +| 계약/회귀 | RED → GREEN | 원문 | +| --- | --- | --- | +| 세 문항/같은 시작 단계/혼합/점수 | 기존 10문항·자동 단계에서 3 실패 → 9 통과 | [01 RED](evidence-v0.2.3/01-round-RED.log), [01 GREEN](evidence-v0.2.3/01-round-GREEN.log) | +| SNR 정규화/미응답 전파/전 단계 종료/지연 이벤트 | 누락 reducer action 등 7 실패 → 15 통과 | [02 RED](evidence-v0.2.3/02-snr-exit-RED.log), [02 GREEN](evidence-v0.2.3/02-snr-exit-GREEN.log) | +| 시작 단계/수동 SNR/다음 라운드/5단계 경계/중도 결과/UI 초기화 | 10 실패 → 18 통과 | [03 RED](evidence-v0.2.3/03-screen-RED.log), [03 GREEN](evidence-v0.2.3/03-screen-GREEN.log) | +| 고유 녹음 URL/절차적 매개변수 제거/peak/SNR 수학 | 2 실패 → 콘텐츠 포함 19 통과 | [04 RED](evidence-v0.2.3/04-recorded-mix-RED.log), [04 GREEN](evidence-v0.2.3/04-recorded-mix-GREEN.log) | +| 실제 배경 fetch/decode/loop/abort/timeout/재시도 | 전환 중 남은 합성 호출 및 누락 녹음 경로로 9 실패 → 11 통과 | [05 RED](evidence-v0.2.3/05-playback-RED.log), [05 GREEN](evidence-v0.2.3/05-playback-GREEN.log) | +| Node 직접 import 회귀 | ERR_MODULE_NOT_FOUND → 101문장 import 통과 | [06 RED](evidence-v0.2.3/06-node-import-RED.log), [06 GREEN](evidence-v0.2.3/06-node-import-GREEN.log) | +| 8개 배포 PCM/해시/출처/고지/루프 경계 | manifest ENOENT → 전수 통과 | [07 RED](evidence-v0.2.3/07-assets-RED.log), [07 GREEN](evidence-v0.2.3/07-assets-GREEN.log) | +| 실제 FFmpeg 변환/재현/무음 거부/길이 제한 | 변환 모듈 없음 → Python 2 통과 | [변환 RED](evidence-v0.2.3/07-converter-RED.log), [변환 GREEN](evidence-v0.2.3/07-converter-GREEN.log) | +| 재생 중 SNR 변경의 실제 청취 이력 | −10을 들었다고 잘못 기록 → 34 통과 | [08 RED](evidence-v0.2.3/08-heard-snr-RED.log), [08 GREEN](evidence-v0.2.3/08-heard-snr-GREEN.log) | +| 버전/문서/변경 이력/기존 voice metadata | 이전 버전·누락 CHANGELOG → 50 통과 | [09 RED](evidence-v0.2.3/09-version-docs-RED.log), [09 GREEN](evidence-v0.2.3/09-version-docs-GREEN.log) | +| 3문항의 환경 순환 회귀 | 3개 환경만 도달 → 8개 도달, 35 통과 | [10 RED](evidence-v0.2.3/10-environment-rotation-RED.log), [10 GREEN](evidence-v0.2.3/10-environment-rotation-GREEN.log) | +| dist 현장음/manifest/notice 변조·누락·원본 혼입/고지 링크 | 5 실패 → 26 통과 | [11 RED](evidence-v0.2.3/11-bundle-notice-RED.log), [11 GREEN](evidence-v0.2.3/11-bundle-notice-GREEN.log) | +| 누락 WAV의 SPA fallback | desktop/mobile 200 HTML → 양쪽 404, 4 통과 | [13 RED](evidence-v0.2.3/13-static-404-RED.log), [13 GREEN](evidence-v0.2.3/13-static-404-GREEN.log) | +| 결과 화면의 잘못된 도움말 anchor | 없는 #howto 링크 노출 → 제거 | [15 RED](evidence-v0.2.3/15-results-anchor-RED.log), [15 GREEN](evidence-v0.2.3/15-results-anchor-GREEN.log) | +| 새 설정의 터치 크기/카드 경계 | 양쪽 23px 높이 → 44px 이상, 2 통과 | [16 RED](evidence-v0.2.3/16-controls-layout-RED.log), [16 GREEN](evidence-v0.2.3/16-controls-layout-GREEN.log) | +| 3문항의 보너스 안내 | 당시 40점 → 20점 안내; 리뷰에서 문항별 20점/합계 30점으로 재정정 | [17 RED](evidence-v0.2.3/17-bonus-copy-RED.log), [17 GREEN](evidence-v0.2.3/17-bonus-copy-GREEN.log) | +| 모바일 select 선택값 잘림 | 360px에서 글자 폭 초과 → 중복 SNR을 아래 제어에 모음 | [21 RED](evidence-v0.2.3/21-select-label-RED.log), [21 GREEN](evidence-v0.2.3/21-select-label-GREEN.log) | +| Chrome favicon 기본 404 | 내장 icon 없음/실제 콘솔 오류 → 내장 SVG | [19 RED](evidence-v0.2.3/19-favicon-RED.log), [19 GREEN](evidence-v0.2.3/19-favicon-GREEN.log) | + +추가 진단 기록도 보존했다. `01-round-sampling-regression.log`의 96/100은 세 문항으로 줄인 뒤 +기존 200 seed 표본이 작아진 테스트 회귀여서 1000 seed로 전체 100조합 도달성을 검사했다. +`03-screen-duplicate-description-RED.log`는 같은 SNR 설명을 중복 배치한 회귀를 잡았다. +`05-playback-fixture-regression.log` 뒤 mock AudioBuffer의 copyToChannel을 실제 복사처럼 보완했고 +부동소수점 0.12000000000000001 비교를 근사 비교로 바꿨다. 실제 재생은 별도의 Chrome으로 검증한다. +`12-lint-initial.log`의 축소된 union 비교/fixture 타입 오류도 수정했다. + +## 현장음 원본과 변환 + +지정된 원본 8개를 모두 사용했다. **대체 원본은 0개**다. 여섯 기존 원본을 재사용했고 café는 +HTTP 429의 **Retry-After 600초** backoff 뒤 지정 직접 URL로 다운로드했다. rain도 지정 URL에서 받았다. +[다운로드 기록](evidence-v0.2.3/source-downloads.log), [rain 기록](evidence-v0.2.3/rain-download.log). + +[원본 전수 검사](evidence-v0.2.3/source-integrity.json)는 전체 원본 SHA-256/bytes/ffprobe 정보와 +FFmpeg **전체 디코드 8/8 성공, stderr 0**을 기록한다. café 19,947,952 bytes, rain 91,187,572 bytes는 +Commons primary 메타데이터의 크기와 일치한다. [Commons API 근거](evidence-v0.2.3/commons-license-audit.json), +[primary 페이지/권리 재확인](evidence-v0.2.3/primary-page-verification.json). + +`python3 scripts/ambience_audio.py`로 원본의 명시적 중간 구간을 선택해 전부 **12초 / 24,000Hz / mono / PCM16**으로 만들었다. +양끝 **50ms 선형 fade**, RMS 목표 **.08**, 최대 증폭 **4배**, peak ceiling **.85** 중 안전한 선형 gain을 적용했다. +저레벨 rain과 순간 peak가 큰 market은 제한 때문에 RMS 목표보다 낮다. 엔진은 재생 시 각각 다시 RMS 정규화한다. +양끝 PCM은 0, non-silent 8/8, 고유 출력 해시 8/8, 각 576,044 bytes, 합계 **4,608,352 bytes**다. +대형 OGG/MP3/FLAC 원본은 `/tmp/findword-ambience-sources`에만 있으며 Git/public/dist에 번들하지 않았다. + +| 배포 자산 (`public/ambience/`) | 원본 구간 | RMS | peak | 출력 SHA-256 | +| --- | --- | --- | --- | --- | +| street.wav | 35–47s | 0.07999756 | 0.39675903 | `a8bffa201b174618955bc51b860167169125304811aabe2086b0bb35b06c3ae1` | +| mall.wav | 20–32s | 0.07999757 | 0.55468750 | `6e9171f549cacadfaeedd57a41c8e2a76b0e789f5c9a97af029a8d3558c9f145` | +| theater.wav | 45–57s | 0.07999757 | 0.49508667 | `2d6a444fb7874cdf6b2d8a741a69175299b112eb66834912c025437d8277d635` | +| department.wav | 90–102s | 0.07999758 | 0.47497559 | `aa43f3d1d3e7c2b1f8ace24ecbda45d0ea3a031db941c39506dc6c1665b8efa7` | +| market.wav | 30–42s | 0.04922208 | 0.84997559 | `4287e971a12767f70da714e0c1aff30125268f9c3faf07ebfbcc0d2904f4a312` | +| subway.wav | 65–77s | 0.07999755 | 0.42529297 | `9faf70b68617d267b367a0f3692ed90015458543ab4b0844f6c704e6a724728f` | +| cafe.wav | 120–132s | 0.07999759 | 0.39709473 | `8db06f3f09bbd8409573ba4874c7ccdd1e7e825c8a61989a4efe66206a66c2d2` | +| rain.wav | 180–192s | 0.01138463 | 0.10241699 | `f4315084e820f742b0709de5bb0d1abd3d5af1730620e08c2948b70347356dd9` | + +[배포 manifest](../public/ambience/manifest.json)에 environment id/표시 이름, source page/direct URL, creator, +license/license URL, attribution, 원본/출력 SHA-256, bytes/duration/RMS/peak, 실제 FFmpeg 버전과 변환 설정을 기록했다. +[AMBIENCE_NOTICES](../public/ambience/AMBIENCE_NOTICES.md)를 dist에 포함하고 UI에서 접근할 수 있다. +시장 파생 WAV는 **CC BY-SA 4.0**, 지하철은 **CC BY 4.0**, 나머지는 CC0/PD이며 출처·변경 고지를 보존했다. +프로젝트의 UNLICENSED를 이 녹음에 적용하지 않는다. 런타임 React/ReactDOM/scheduler의 기존 MIT 전문도 그대로 배포한다. + +## 보존과 구체적 회귀 수정 + +- **101개 neural WAV 바이트/원문/해시 변경 0**. voice manifest는 배포 version만 0.2.3으로 올리고 + `generatedForVersion: 0.1.1`을 추가했으며 생성 시각·provider·voice·prosody·도구/실측값은 보존했다. +- 기존 10 mechanic/100문장, 정답·오답 규칙·점수 공식·재청취·객관식/주관식/mixed·IME 보호를 유지했다. +- **과거 .agent 추적 파일 180개 모두 Git blob hash 동일**. v0.1/v0.1.1 RESULT와 evidence 수정 0. + [보존 검사](evidence-v0.2.3/preservation.json). +- 짧아진 라운드 때문에 순환 환경이 street/mall/theater에만 갇히는 회귀를 seed 기반 환경 셔플로 수정했다. +- 환경 URL 모듈 추가로 Python 생성기의 Node 직접 import가 깨지는 회귀를 명시적 `.ts` 경로로 수정했다. +- `heardDb`를 PLAY 시점에 기록해 재생 중 조절값이 과거 청취 이력/결과를 덮어쓰지 않게 했다. +- 중복 SNR 설명, 결과 화면의 없는 도움말 anchor, 실제 라운드 보너스 상한 안내를 바로잡았다. +- Vite dev/preview의 누락 WAV HTML fallback을 차단하고 Nginx 인계에도 `/ambience/` 404 규칙을 추가했다. +- 모바일 최종 이미지에서 시작 단계 select의 긴 선택값 잘림을 찾아 글자 폭 검사로 재현하고, 중복 SNR 표기를 전용 제어로 모았다. +- 실제 Chrome의 기본 `/favicon.ico` 404 콘솔 오류를 내장 SVG로 제거했다. + +## 리뷰 전 검증 기록 (리뷰 수정 후 결과는 문서 하단) + +환경: Node **26.7.0**, npm **11.19.0**, Python **3.11.16**, FFmpeg **6.1.1-3ubuntu5**, system Chrome **146.0.7680.80**. +[환경](evidence-v0.2.3/environment.json). Chrome sandbox 활성화, `--no-sandbox` 0개를 실행 중 process argv로 확인했다. +[실행 sandbox 기록](evidence-v0.2.3/chrome-sandbox.json); 설정 계약 테스트도 통과했다. + +| 검증 | 결과 | 원문 | +| --- | --- | --- | +| `npm run lint` | PASS, ESLint + TypeScript strict, exit 0 | [22-lint](evidence-v0.2.3/22-lint.log) | +| `npm test` | **13 files / 94 passed**, skip 0, exit 0; Python runner 포함 | [22-full-test](evidence-v0.2.3/22-full-test.log) | +| `python3 -m unittest discover -s tests/python -v` | **20 passed**, exit 0 (기존 neural 18 + 새 변환 2) | [18-python](evidence-v0.2.3/18-python.log) | +| `npm run build` | PASS, 101 voice + 8 ambience + 두 notice 검증, exit 0 | [22-build](evidence-v0.2.3/22-build.log) | +| `npm audit --json` | **취약점 0** (info/low/moderate/high/critical 모두 0), exit 0 | [audit JSON](evidence-v0.2.3/14-npm-audit.json) | +| 최종 sandboxed system Chrome desktop/mobile | **26 passed / 0 failed / 0 skipped**, exit 0; 실제 재생·접근성·무외부 요청 검증 | [22-browser](evidence-v0.2.3/22-browser.log), [machine-readable 결과](evidence-v0.2.3/browser-results.json) | +| 원본/배포 녹음 및 101개 voice 보존 | PASS | [원본](evidence-v0.2.3/source-integrity.json), [보존](evidence-v0.2.3/preservation.json) | +| 비밀정보 형식 검사 | **0 findings**, 값 노출 없이 경로/개수만 기록 | [scan](evidence-v0.2.3/secret-scan.json) | +| `git diff --check` | PASS | [최종 worktree 점검](evidence-v0.2.3/final-review.log) | + +브라우저는 1280×1000 desktop / 360×800 mobile에서 같은 production build를 사용한다. +실제 디코드한 109 WAV의 response hash/bytes/24kHz/mono/duration/RMS/peak를 전수 대조하고, +앱에서 여덟 환경을 실제 loop로 재생 후 정지했다. 혼합 모드 세 문항 완주/재청취/키보드, +4단계 시작→5단계 새 라운드, 수동 SNR 유지/재청취/홈 초기화, 재생 중 종료/응답 뒤 종료, +intro/target/ambience 404 재시도, 누락 WAV의 HTML Accept 404, notice 원문 제공을 검사한다. +정상 흐름의 console/page errors·failed requests·외부 요청·axe violations가 모두 0이어야 통과한다. +브라우저 native audio 메서드를 관찰할 때 원래 메서드를 실행하며 가짜 decode/ended를 주입하지 않는다. + +최종 캡처 8개와 실제 검사 JSON을 새 evidence에 보존했다. 모바일 게임/시작과 desktop 시작/결과의 +레이아웃을 이미지로 확인했고, 결과 분모/현재 SNR/종료 버튼/고지 링크가 잘리지 않는다. + +| 화면 | Desktop | Mobile | +| --- | --- | --- | +| 시작 | [PNG](evidence-v0.2.3/browser/desktop-start.png) | [PNG](evidence-v0.2.3/browser/mobile-start.png) | +| 게임 | [PNG](evidence-v0.2.3/browser/desktop-game.png) | [PNG](evidence-v0.2.3/browser/mobile-game.png) | +| 정상 결과 | [PNG](evidence-v0.2.3/browser/desktop-normal-results.png) | [PNG](evidence-v0.2.3/browser/mobile-normal-results.png) | +| 중도 종료 | [PNG](evidence-v0.2.3/browser/desktop-early-exit.png) | [PNG](evidence-v0.2.3/browser/mobile-early-exit.png) | + +실제 109 WAV 해시/디코드/레벨 및 오류 0 집계: +[desktop JSON](evidence-v0.2.3/browser/desktop-audio-integrity.json), +[mobile JSON](evidence-v0.2.3/browser/mobile-audio-integrity.json). +세 문항→다음 단계→중도 종료→홈·재청취의 실제 소스 시작/정지 및 네트워크 집계: +[desktop runtime](evidence-v0.2.3/browser/desktop-runtime-audit.json), +[mobile runtime](evidence-v0.2.3/browser/mobile-runtime-audit.json). + +초기 browser suite 24/24 통과 후 console/requestfailed 검사를 강화해 missing favicon을 찾았다. +그 실패는 `18-browser.log`에 남기고, 최종 검증은 별도 로그로 구분했다. 오류를 숨기거나 예외 목록으로 제외하지 않았다. +404/잘못된 WAV 주입 테스트의 의도적 실패 응답은 정상 흐름의 오류 0 집계와 구분한다. + +## 실제 검증의 한계와 인계 + +- Chrome은 실제 WAV를 디코드하고 실제 AudioContext/BufferSource를 실행했다. 헤드리스 자동 검증은 + 스피커/헤드폰의 물리 음압, 한국어 청감, 개인의 난이도나 임상 효과를 보증하지 않는다. +- 녹음 장면은 primary 출처 설명으로 확인했고 짧은 연속 구간의 포맷/신호/해시/루프를 검증했다. + **사람이 여덟 구간을 직접 청취하여 음악·불필요하게 명료한 우연 대화가 없는지 판단하는 인수는 수행하지 않았다.** + 자동 검사를 인간 청취 인증으로 주장하지 않는다. [샘플과 provenance](../docs/AUDIO_PROVENANCE.md)를 Neo가 검토할 수 있다. +- mobile은 system Chrome 360×800 viewport/touch emulation이다. 실제 Android/iOS 기기 및 Safari 검증은 별도다. +- SNR은 전체 버퍼 RMS에 대한 디지털 상대값이다. 현장음의 시간 변화 때문에 순간/주파수별 SNR은 다르다. +- 로컬 `dist`만 검증했다. production HTTPS/MIME/cache/서버 설정은 배포 후 Neo의 독립 검증 대상이다. +- 사용자 지시대로 commit/push/merge/tag/deploy는 미실행이다. acceptance의 Neo 릴리스 항목은 완료로 표시하지 않았다. + [DEPLOYMENT](../docs/DEPLOYMENT.md)에 feature push→main FF→annotated tag→fresh clone→commit-addressed 원자 배포/rollback 절차를 인계했다. + + +## 독립 리뷰 수정 — 2026-10-14 + +사용자가 요약한 두 독립 리뷰와 본 결과 문서를 읽고 release-hardening을 수행했다. +기존 uncommitted v0.2.3 작업을 이어서 수정했으며 commit/push/merge/tag/deploy는 하지 않았다. +새 실패 테스트를 먼저 실행하고 생산 코드/검증기를 수정했다. 이전 evidence 로그는 수정하지 않았다. +신규 기록은 모두 [review-fixes/](evidence-v0.2.3/review-fixes/) 아래에 있다. + +### 수정 내용과 동작 + +1. 진행 막대는 답변 수가 아닌 **현재 문항 1/3 → 2/3 → 3/3**이다. 첫 재생·답변 전·피드백과 + 다음 라운드에서도 일관된다. 접근성 이름/값, native progress 위치, 실제 PNG 채움 픽셀까지 검사한다. +2. 결과/README/설계/CHANGELOG의 점수 설명은 **정답마다 단계×100점 + 연속 정답 보너스**, + **문항별 최대 20점, 라운드 합계 0+10+20=30점**이다. 1단계 세 정답의 **330점**을 실제 UI 흐름으로 검증했다. +3. 응답이 없으면 정답률은 **— / 응답 없음**이며 0%나 0/0을 보여 주지 않는다. 응답 없는 단계는 **미진행**이다. + 중도 종료 제목은 **문제 풀이를 중간에 종료했어요.**, 정상 결과는 **N단계 문제 풀이를 마쳤어요.**로 구분한다. +4. 실제 Chrome RED에서 `입력`, 결과의 `만나요`/`최대` 등 어절 분리를 검출했다. + 모드 설명과 결과 영역에 keep-all을 적용하고 줄바꿈을 허용했다. 320px/360px에서 어절 내부 Range 줄 분리와 + 요소/문서 overflow를 검사하며 시작·정상 결과·중도 결과 캡처를 남겼다. +5. README 현재 증거 경로를 `.agent/evidence-v0.2.3/review-fixes/`로 바로잡고 일본어 reducer 테스트 제목을 한국어로 바꿨다. +6. build verifier는 앱 콘텐츠의 10 patterns×10 words+intro로 **정확한 101개 이름**을 독립 구성한다. + manifest 정확히 101개, 중복 없는 예상 inventory, dist/audio의 추가/누락 파일을 모두 검사한다. + 양쪽 manifest와 디렉터리를 함께 비우기/축약/중복/이름 변경해도 실패하며 정상 사본은 통과한다. +7. 승인 계획과 배포 manifest의 `verifiedLocalSource` 및 모호한 `sourceDurationSeconds`를 제거했다. + `expectedSourceSha256`, `sourceBytes`, `sourceVerification`과 **directUrl 바이트의 ffprobe format.duration**인 + `directMediaDurationSeconds`를 보존한다. Freesound preview MP3의 길이와 primary 페이지 표시 길이를 혼동하지 않는다. + 파생 WAV의 `duration`/`conversion.durationSeconds`는 별도로 12초다. 기존 source-integrity 증거와 대조했다. +8. 생성기는 **첫 변환 전에 여덟 원본 전부**의 승인 해시/bytes를 확인한다. 불일치/누락/중복/잘못된 목록은 실패하고, + 현재 파일 값으로 승인 계획을 덮어쓰지 않는다. 실제 원본 8개도 새 승인 필드로 재검증했다. +9. 현장음 notice를 **public/ambience/AMBIENCE_NOTICES.md**로 옮겼다. 같은 파일시스템의 staging에서 + 8 WAV·manifest·notice와 실측 PCM을 전수 검사한 다음 Linux **renameat2(RENAME_EXCHANGE)** 한 번으로 교체한다. + 최초 생성은 rename 한 번이다. overlay를 없애 stale 파일을 제거하고 정상/dangling symlink 출력을 거부한다. + 모든 변환 위치의 실패/KeyboardInterrupt, manifest/notice 쓰기 실패, staged 변조, 교환 실패/미지원, + commit 전 SIGTERM에서 이전 디렉터리를 보존한다. 실제 교환 도중 디렉터리 fd로 읽은 세 파일이 + 같은 세대인 것도 확인했다. UI 링크·build verifier·권리·배포·재현 문서를 함께 수정했다. +10. 모든 배포 notice 항목에 **creator, primary page URL, direct download URL, license URL, + outputLicense, 명시적 Changes**가 있어야 한다. 다른 항목에 공통 URL이 남아도 누락을 감추지 못한다. + 8개 항목×6개 필드 제거와 public/dist 동시 metadata 변조를 build verifier에서 거부한다. +11. CHANGELOG와 본 문서에 실제 수정/검증을 반영했다. **109 WAV 재생성 0 / 바이트 변경 0**이다. + +### 새 RED → GREEN 원문 + +| 계약 | RED | GREEN | +| --- | --- | --- | +| 진행률·330점·보너스·무응답·종료/완료 문구·README | [01 RED](evidence-v0.2.3/review-fixes/01-ui-RED.log) | [01 GREEN-02: 27 통과](evidence-v0.2.3/review-fixes/01-ui-GREEN-02.log) | +| 실제 desktop/mobile 진행률·320/360px 어절·overflow | [02 RED: 4 실패](evidence-v0.2.3/review-fixes/02-browser-RED.log) | [02 GREEN: 4 통과](evidence-v0.2.3/review-fixes/02-browser-GREEN.log) | +| manifest/폴더 동시 축약·추가/누락 | [03 RED](evidence-v0.2.3/review-fixes/03-voice-inventory-RED.log) | [03 GREEN](evidence-v0.2.3/review-fixes/03-voice-inventory-GREEN.log) | +| durable 승인 원본 메타데이터 | [04 RED](evidence-v0.2.3/review-fixes/04-source-plan-RED.log) | [04 GREEN](evidence-v0.2.3/review-fixes/04-source-plan-GREEN.log) | +| 첫 변환 전 전수 원본 검사 | [05 RED](evidence-v0.2.3/review-fixes/05-source-guard-RED.log) | [05 GREEN](evidence-v0.2.3/review-fixes/05-source-guard-GREEN.log) | +| staging·notice·symlink·검증·원자 교환·실패/중단 보존 | [06 RED](evidence-v0.2.3/review-fixes/06-atomic-RED.log) | [06 GREEN](evidence-v0.2.3/review-fixes/06-atomic-GREEN.log) | +| notice 동시 발행 경로/UI 링크/항목 내용 | [07 RED](evidence-v0.2.3/review-fixes/07-notice-path-RED.log) | [07 GREEN](evidence-v0.2.3/review-fixes/07-notice-path-GREEN.log) | +| 항목별 필수 notice 강제 | [08 RED](evidence-v0.2.3/review-fixes/08-notice-verifier-RED.log) | [08–09 GREEN: 27 통과](evidence-v0.2.3/review-fixes/08-09-build-GREEN.log) | +| manifest 사본 동시 출처/라이선스/변경 변조 | [09 RED](evidence-v0.2.3/review-fixes/09-build-plan-RED.log) | [08–09 GREEN](evidence-v0.2.3/review-fixes/08-09-build-GREEN.log) | + +RED 로그는 exit 1, 표에 연결한 GREEN은 exit 0이다. 필터 실행의 skipped는 최종 전체 실행과 구분한다. +`01-ui-GREEN.log`는 이름과 달리 **exit 1**인 중간 실행이다. 새 계약은 통과했지만 기존 통합 테스트의 +이전 제목 regex가 남아 실패했고, 그것을 고친 `01-ui-GREEN-02.log`가 실제 GREEN이다. 실패 로그도 보존했다. + +초기 RED/GREEN browser PNG를 사후 픽셀 분석한 [RED](evidence-v0.2.3/review-fixes/02-progress-pixels-RED.log) / +[GREEN](evidence-v0.2.3/review-fixes/02-progress-pixels-GREEN.log)도 보존했다. desktop 1096px 막대는 +365→731→1096px, mobile 320px 막대는 107→213→320px 채워졌다. 같은 픽셀 검사를 최종 브라우저 테스트에도 넣었다. +추가 동시 읽기/미지원 교환 검증은 [10-atomic-additional](evidence-v0.2.3/review-fixes/10-atomic-additional.log)에 있다. + +### 리뷰 수정 후 전체 검증 + +| 실행 | 실제 결과 | 원문 | +| --- | --- | --- | +| npm run lint | PASS, exit 0 | [lint](evidence-v0.2.3/review-fixes/11-lint.log) | +| npm test | 13 files / **118 passed**, skip 0, exit 0 | [unit](evidence-v0.2.3/review-fixes/11-unit.log) | +| python3 -m unittest discover -s tests/python -v | **32 passed** (neural 18 + ambience 14), exit 0 | [Python](evidence-v0.2.3/review-fixes/11-python.log) | +| npm run build | PASS, 101 voice + 8 ambience + runtime/ambience notices, exit 0 | [build](evidence-v0.2.3/review-fixes/11-build.log) | +| npm audit --json | **취약점 0**, exit 0 | [audit](evidence-v0.2.3/review-fixes/npm-audit.json) | +| sandboxed system Chrome desktop/mobile | **30 passed / 0 failed / 0 skipped / 0 flaky**, 4.0분, exit 0 | [browser log](evidence-v0.2.3/review-fixes/12-browser.log), [JSON](evidence-v0.2.3/review-fixes/browser-results.json) | + +[보존 검사](evidence-v0.2.3/review-fixes/preservation.json): 리뷰 시작 시점의 WAV 109개와 이전 `.agent` 파일 +268개 모두 해시 동일하다. Git 추적된 v0.1/v0.1.1 `.agent` 파일 180개도 HEAD와 동일하다. +[원본 재확인](evidence-v0.2.3/review-fixes/source-reverification.json): 승인 원본 8개와 배포 bundle을 검증했고 변환은 호출하지 않았다. + +Chrome **146.0.7680.80**, desktop 1280×1000/mobile 360×800에 추가 320px/360px copy 검사를 수행했다. +실행 중인 이 테스트의 Chrome 프로세스 20개에 `--no-sandbox`가 없음을 [실제 process 기록](evidence-v0.2.3/review-fixes/chrome-sandbox.json)으로 확인했다. +원래 AudioContext/BufferSource를 실행한 109 WAV 해시·decode 검사와 8개 실제 ambience loop, 오류 재시도, +키보드/axe/외부 요청/콘솔 검사에 새 진행률 픽셀·한국어 어절 검사를 더했다. +[desktop 오디오](evidence-v0.2.3/review-fixes/desktop-audio-integrity.json), +[mobile 오디오](evidence-v0.2.3/review-fixes/mobile-audio-integrity.json), +[desktop runtime](evidence-v0.2.3/review-fixes/desktop-runtime-audit.json), +[mobile runtime](evidence-v0.2.3/review-fixes/mobile-runtime-audit.json). + +| 최종 화면 | Desktop | Mobile | +| --- | --- | --- | +| 시작 | [PNG](evidence-v0.2.3/review-fixes/screenshots/desktop-start.png) | [PNG](evidence-v0.2.3/review-fixes/screenshots/mobile-start.png) | +| 게임 | [PNG](evidence-v0.2.3/review-fixes/screenshots/desktop-game.png) | [PNG](evidence-v0.2.3/review-fixes/screenshots/mobile-game.png) | +| 330점 정상 결과 | [PNG](evidence-v0.2.3/review-fixes/screenshots/desktop-normal-results.png) | [PNG](evidence-v0.2.3/review-fixes/screenshots/mobile-normal-results.png) | +| 무응답 중도 종료 | [PNG](evidence-v0.2.3/review-fixes/screenshots/desktop-early-exit.png) | [PNG](evidence-v0.2.3/review-fixes/screenshots/mobile-early-exit.png) | + +### 리뷰 후에도 남는 한계 + +**사람이 여덟 현장음 구간을 청취하여 음악/우연 대화와 적절성을 판단하는 인수는 수행하지 않았다.** +자동 PCM/Chrome 재생 검증을 인간 청취 승인으로 주장하지 않는다. mobile은 Chrome viewport/touch emulation이며 +실제 Android/iOS/Safari, 물리적 음압 또는 임상 효과 검증은 아니다. + +원자 commit 전 실패/중단은 이전 디렉터리를 보존하며 commit 뒤에는 완성된 새 트리가 공개된다. +강제 kill은 숨은 stage를 남길 수 있다. 전원 손실 내구성이나 여러 HTTP 요청에 걸친 snapshot 격리는 검증하지 않았다. +로컬 build/preview만 확인했으며 사용자 지시대로 Git commit/push/merge/tag 및 배포는 하지 않았다. diff --git a/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/before-source-plan.json b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/before-source-plan.json new file mode 100644 index 0000000..f288098 --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/before-source-plan.json @@ -0,0 +1,170 @@ +{ + "version": "0.2.3", + "policy": { + "runtime": "All ambience files are bundled same-origin static assets; no runtime requests to source sites.", + "conversion": "Select a representative segment, remove unsuitable intelligible/incidental content where practical, trim, fade for loop safety, downmix, resample and normalize to 24000 Hz mono PCM16 WAV.", + "rights": "CC0/public-domain assets retain suggested credits; CC BY and CC BY-SA derivatives retain exact attribution, modification notice and license. The proprietary project does not claim exclusive rights over third-party recordings.", + "verified": "All eight approved direct-media files were verified on 2026-10-14 by SHA-256, byte count, ffprobe and full FFmpeg decode. The expected hashes/bytes are immutable release inputs, never learned or updated by the converter.", + "durationFields": "directMediaDurationSeconds is ffprobe format.duration of the exact directUrl bytes (including Freesound preview MP3s), not a rounded primary-page recording duration. Output duration and conversion.durationSeconds describe the 12-second WAV excerpt." + }, + "assets": [ + { + "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" + } + }, + { + "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" + } + }, + { + "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" + } + }, + { + "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" + } + }, + { + "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" + } + }, + { + "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" + } + }, + { + "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" + } + }, + { + "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" + } + } + ], + "releaseRisks": [ + "Audition chosen excerpts to avoid music and unnecessarily intelligible bystander speech.", + "The market derivative must stay CC BY-SA 4.0 with source, creator, change notice and license link.", + "The subway derivative needs CC BY 4.0 attribution and change notice.", + "Freesound direct URLs are preview MP3 files; preserve local source hashes and page/license evidence." + ] +} diff --git a/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-final/.last-run.json b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-final/.last-run.json new file mode 100644 index 0000000..cbcc1fb --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-final/.last-run.json @@ -0,0 +1,4 @@ +{ + "status": "passed", + "failedTests": [] +} \ No newline at end of file diff --git a/.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 b/.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 new file mode 100644 index 0000000..d6db5ea --- /dev/null +++ b/.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 @@ -0,0 +1,1098 @@ +{ + "chrome": "146.0.7680.80", + "external": [], + "errors": [], + "failed": [], + "files": [ + { + "url": "http://127.0.0.1:4173/audio/intro.wav?v=0.2.3", + "sha256": "90d9f46e6e3f9c8a0c1a781096df54d7809ef4ad38b289508ef7b8c0411465ce", + "bytes": 338732, + "sampleRate": 24000, + "channels": 1, + "duration": 7.056, + "rms": 0.10000144992850359, + "peak": 0.4998626708984375 + }, + { + "url": "http://127.0.0.1:4173/ambience/street.wav?v=0.2.3", + "sha256": "a8bffa201b174618955bc51b860167169125304811aabe2086b0bb35b06c3ae1", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.07999880181401388, + "peak": 0.3967711329460144 + }, + { + "url": "http://127.0.0.1:4173/ambience/mall.wav?v=0.2.3", + "sha256": "680a769940c08f0d12c6c954c08366598dd8b5745e276f39c82b10d1a88261a1", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.07999875178666456, + "peak": 0.7191991806030273 + }, + { + "url": "http://127.0.0.1:4173/ambience/theater.wav?v=0.2.3", + "sha256": "2d6a444fb7874cdf6b2d8a741a69175299b112eb66834912c025437d8277d635", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.07999878601263052, + "peak": 0.495086669921875 + }, + { + "url": "http://127.0.0.1:4173/ambience/department.wav?v=0.2.3", + "sha256": "aa43f3d1d3e7c2b1f8ace24ecbda45d0ea3a031db941c39506dc6c1665b8efa7", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.07999879026023995, + "peak": 0.4749900698661804 + }, + { + "url": "http://127.0.0.1:4173/ambience/market.wav?v=0.2.3", + "sha256": "7a7a980845a4aade2a7e8a108eae746220a4688e92792ee93d3deb76b2a762f6", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.07999876626924392, + "peak": 0.507232666015625 + }, + { + "url": "http://127.0.0.1:4173/ambience/subway.wav?v=0.2.3", + "sha256": "9faf70b68617d267b367a0f3692ed90015458543ab4b0844f6c704e6a724728f", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.079998775670051, + "peak": 0.42530596256256104 + }, + { + "url": "http://127.0.0.1:4173/ambience/cafe.wav?v=0.2.3", + "sha256": "802a956e91b85a2fdd0e1f161d75bfada7a53499bcb57ba7f578411480ded216", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.0799987945764348, + "peak": 0.44708251953125 + }, + { + "url": "http://127.0.0.1:4173/ambience/rain.wav?v=0.2.3", + "sha256": "f4315084e820f742b0709de5bb0d1abd3d5af1730620e08c2948b70347356dd9", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.011384798571746246, + "peak": 0.1024169921875 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-apple.wav?v=0.2.3", + "sha256": "cb7da4e9a1288cac64d168b241f27d7d2bc2dfecace58744f9bbf2792dfad04e", + "bytes": 397484, + "sampleRate": 24000, + "channels": 1, + "duration": 8.28, + "rms": 0.10000142448574952, + "peak": 0.6414685249328613 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-market.wav?v=0.2.3", + "sha256": "b8d25b867497adcd0fe7c8b6a8a8d2e7a52965956738a83e53f58735708773f9", + "bytes": 405548, + "sampleRate": 24000, + "channels": 1, + "duration": 8.448, + "rms": 0.10000141405173993, + "peak": 0.491485595703125 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-sound.wav?v=0.2.3", + "sha256": "34e4d9758d2ed448646fda364610e34779c84794403d9051ab3d8c1d33e2c80c", + "bytes": 184364, + "sampleRate": 24000, + "channels": 1, + "duration": 3.84, + "rms": 0.10000138709171018, + "peak": 0.386322021484375 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-furniture.wav?v=0.2.3", + "sha256": "b45b1afc8d9b534ff3e0a2a2ecb99efc1f4e40d41f89f55c4ed8ba94ad6d76d4", + "bytes": 354860, + "sampleRate": 24000, + "channels": 1, + "duration": 7.392, + "rms": 0.1000015072973225, + "peak": 0.5576171875 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-market.wav?v=0.2.3", + "sha256": "cefa0e95649ea6bd1df4c8dfccd2b74b4f4c028714420ce1087b61db2f2a8d47", + "bytes": 248876, + "sampleRate": 24000, + "channels": 1, + "duration": 5.184, + "rms": 0.10000142548167161, + "peak": 0.4857020676136017 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-oil.wav?v=0.2.3", + "sha256": "f6eff0cdddcad9790351491e60c53cb2a70d222033a583652f2de0b8cd6abcc7", + "bytes": 406700, + "sampleRate": 24000, + "channels": 1, + "duration": 8.472, + "rms": 0.10000139122025363, + "peak": 0.470794677734375 + }, + { + "url": "http://127.0.0.1:4173/audio/first-hat.wav?v=0.2.3", + "sha256": "17c8cde90567e7574b0c0702663bd70713054089ee920241b5444d9b7869eef5", + "bytes": 357164, + "sampleRate": 24000, + "channels": 1, + "duration": 7.44, + "rms": 0.10000152904790521, + "peak": 0.5312662124633789 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-furniture.wav?v=0.2.3", + "sha256": "af82e03b686635c3356e706fe5b05c1231aeaaeab33f275aa5b8714988c65d43", + "bytes": 241964, + "sampleRate": 24000, + "channels": 1, + "duration": 5.04, + "rms": 0.10000137346142077, + "peak": 0.4852443039417267 + }, + { + "url": "http://127.0.0.1:4173/audio/password-sound.wav?v=0.2.3", + "sha256": "044aafff08a19e39f21e58b963644715a987cd155896998769ef8e9ce6449628", + "bytes": 236204, + "sampleRate": 24000, + "channels": 1, + "duration": 4.92, + "rms": 0.10000156641621728, + "peak": 0.4621112644672394 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-hat.wav?v=0.2.3", + "sha256": "f9f98c91cfbcfcb106eef7d5d3795a9cf3c3aab7e19a60f13d7dffe284d19f86", + "bytes": 398636, + "sampleRate": 24000, + "channels": 1, + "duration": 8.304, + "rms": 0.10000141071544869, + "peak": 0.470977783203125 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-apple.wav?v=0.2.3", + "sha256": "7c8f413f4b7e164f090e508ba090448f1376c6012649bbb6a917d45851313883", + "bytes": 188972, + "sampleRate": 24000, + "channels": 1, + "duration": 3.936, + "rms": 0.10000130469939268, + "peak": 0.401641845703125 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-sea.wav?v=0.2.3", + "sha256": "db2f235bee26ac804b5362e8e013b8f40c8da24fd3a34e0fb3b43c6d264feb36", + "bytes": 382508, + "sampleRate": 24000, + "channels": 1, + "duration": 7.968, + "rms": 0.10000145042993039, + "peak": 0.6843470335006714 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-furniture.wav?v=0.2.3", + "sha256": "442bdcb956f120c270e1f321feae0415c897de0183e468980fcc119b898b2a67", + "bytes": 403244, + "sampleRate": 24000, + "channels": 1, + "duration": 8.4, + "rms": 0.10000149119200713, + "peak": 0.5619068145751953 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-sea.wav?v=0.2.3", + "sha256": "b6dbe0af143ea775f05bd59a3d6af348bcc770ab378ac91ea75a56e06c326edf", + "bytes": 346796, + "sampleRate": 24000, + "channels": 1, + "duration": 7.224, + "rms": 0.10000144532868623, + "peak": 0.56494140625 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-sound.wav?v=0.2.3", + "sha256": "e9d636ff7f4777f38b1ff15bebdcec6fbde95b4b4b05625a7415b4cfa0025b59", + "bytes": 395180, + "sampleRate": 24000, + "channels": 1, + "duration": 8.232, + "rms": 0.10000164955559301, + "peak": 0.6114688515663147 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-apple.wav?v=0.2.3", + "sha256": "3ef42e276ff3500c3e197d149f29f79d6a0c1d5516ed1d5a2c57210333fded9c", + "bytes": 246572, + "sampleRate": 24000, + "channels": 1, + "duration": 5.136, + "rms": 0.10000144279302126, + "peak": 0.4701681435108185 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-market.wav?v=0.2.3", + "sha256": "356af25332bf2000ed349671f3ff39767929e1f4599af622c021f907d11fb7bf", + "bytes": 194732, + "sampleRate": 24000, + "channels": 1, + "duration": 4.056, + "rms": 0.10000132629820717, + "peak": 0.4022216796875 + }, + { + "url": "http://127.0.0.1:4173/audio/message-sea.wav?v=0.2.3", + "sha256": "28a461fbe03bffe2560030dea8b60715f7c0fe262dcf85b5b7f7daf483836382", + "bytes": 517292, + "sampleRate": 24000, + "channels": 1, + "duration": 10.776, + "rms": 0.10000130584401576, + "peak": 0.53521728515625 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-umbrella.wav?v=0.2.3", + "sha256": "c8988e604ba05d52597e561389541e8f9cda86e052279f1862bbf8399ead314e", + "bytes": 403244, + "sampleRate": 24000, + "channels": 1, + "duration": 8.4, + "rms": 0.10000148262660476, + "peak": 0.557830810546875 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-hat.wav?v=0.2.3", + "sha256": "308278ec2bd27d4224976a55632d1f7fa1edabb0792126d9d858a699c287aee4", + "bytes": 245420, + "sampleRate": 24000, + "channels": 1, + "duration": 5.112, + "rms": 0.10000140702099906, + "peak": 0.4498428404331207 + }, + { + "url": "http://127.0.0.1:4173/audio/password-furniture.wav?v=0.2.3", + "sha256": "fb2b631dd4e12120d08a84cce6450f9cd9cd68105d13d7001d808e7deaa1df4a", + "bytes": 233900, + "sampleRate": 24000, + "channels": 1, + "duration": 4.872, + "rms": 0.10000146718546903, + "peak": 0.4836573302745819 + }, + { + "url": "http://127.0.0.1:4173/audio/first-market.wav?v=0.2.3", + "sha256": "1e00b8f70a796cdebb0feb00c605fece7488b06915e6e036f54206f05e201e0c", + "bytes": 359468, + "sampleRate": 24000, + "channels": 1, + "duration": 7.488, + "rms": 0.10000152633991319, + "peak": 0.6390880942344666 + }, + { + "url": "http://127.0.0.1:4173/audio/first-meat.wav?v=0.2.3", + "sha256": "f51a37c1722fef581f7d642a4dcae7fcb9953b3c318dce971bf616cd1a81fecc", + "bytes": 345644, + "sampleRate": 24000, + "channels": 1, + "duration": 7.2, + "rms": 0.10000152244411063, + "peak": 0.5131382346153259 + }, + { + "url": "http://127.0.0.1:4173/audio/password-sea.wav?v=0.2.3", + "sha256": "03f45b8cb5b3dc72faf5c6e3d0e2a10cea6b60301ea400d0a4453596d2f0b337", + "bytes": 232748, + "sampleRate": 24000, + "channels": 1, + "duration": 4.848, + "rms": 0.10000144821976133, + "peak": 0.5339213013648987 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-sound.wav?v=0.2.3", + "sha256": "98387ccc7aab566f6487d4c250b2128082cc527e013a6f7b7bc4d0266ac295df", + "bytes": 394028, + "sampleRate": 24000, + "channels": 1, + "duration": 8.208, + "rms": 0.10000158053850364, + "peak": 0.5377971529960632 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-umbrella.wav?v=0.2.3", + "sha256": "5e59ef39113c3d5e106862356d715f4cef2862ef8ee02654a97e532675c1ac6d", + "bytes": 410156, + "sampleRate": 24000, + "channels": 1, + "duration": 8.544, + "rms": 0.10000147499132286, + "peak": 0.6748558282852173 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-hat.wav?v=0.2.3", + "sha256": "b01ef9762ac84e3eb757243bc9286c62f7d45444a821ae35ac36a8b095e1598a", + "bytes": 353708, + "sampleRate": 24000, + "channels": 1, + "duration": 7.368, + "rms": 0.10000153089787694, + "peak": 0.555206298828125 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-market.wav?v=0.2.3", + "sha256": "d89792da51c83ac49d27e55aa6d822a338899a5ee487b34b552748201e1522f6", + "bytes": 398636, + "sampleRate": 24000, + "channels": 1, + "duration": 8.304, + "rms": 0.10000149710778367, + "peak": 0.5728324055671692 + }, + { + "url": "http://127.0.0.1:4173/audio/password-umbrella.wav?v=0.2.3", + "sha256": "ab3ca6398c879971dc793eb25b472fcc0db72d76e386f11ef4d32c639f37c69d", + "bytes": 239660, + "sampleRate": 24000, + "channels": 1, + "duration": 4.992, + "rms": 0.100001426973271, + "peak": 0.4776757061481476 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-meat.wav?v=0.2.3", + "sha256": "48e91b3932d3798e852041a854b3ee08c72127e092c62083a47af6b99adff241", + "bytes": 403244, + "sampleRate": 24000, + "channels": 1, + "duration": 8.4, + "rms": 0.10000140336390047, + "peak": 0.481536865234375 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-hat.wav?v=0.2.3", + "sha256": "6e089a42fd7e65e82eec7186d369c926fb7fdac794365b2bd7658822fd92437c", + "bytes": 396332, + "sampleRate": 24000, + "channels": 1, + "duration": 8.256, + "rms": 0.1000015662548192, + "peak": 0.616748571395874 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-sound.wav?v=0.2.3", + "sha256": "4d00aa6114327f450a00dacbc7e7b572ebf1de4ce9dc2fe4b5505766cca71ce9", + "bytes": 353708, + "sampleRate": 24000, + "channels": 1, + "duration": 7.368, + "rms": 0.10000162019345048, + "peak": 0.5348368883132935 + }, + { + "url": "http://127.0.0.1:4173/audio/last-oil.wav?v=0.2.3", + "sha256": "b5ce34950b8b31b1baf6ce55410797f0d8aa5478a670d6eace87cf76d134d6d3", + "bytes": 337580, + "sampleRate": 24000, + "channels": 1, + "duration": 7.032, + "rms": 0.10000149980584365, + "peak": 0.55706787109375 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-sea.wav?v=0.2.3", + "sha256": "47aa31d757c9fb49c9b53a1c052d90a5ced4be57549d649850d9b48f8864045b", + "bytes": 191276, + "sampleRate": 24000, + "channels": 1, + "duration": 3.984, + "rms": 0.10000129182106483, + "peak": 0.388702392578125 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-sound.wav?v=0.2.3", + "sha256": "659eb0e2b06e6b165b46744769743e032e2282519f8486c57bc45e0f7d07a069", + "bytes": 240812, + "sampleRate": 24000, + "channels": 1, + "duration": 5.016, + "rms": 0.10000152909529536, + "peak": 0.45481735467910767 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-meat.wav?v=0.2.3", + "sha256": "6599d2fac73ea616a793151b4ce6f51af673988d630bac6219a77e78ae6cb34e", + "bytes": 380204, + "sampleRate": 24000, + "channels": 1, + "duration": 7.92, + "rms": 0.1000016061190976, + "peak": 0.5921201109886169 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-market.wav?v=0.2.3", + "sha256": "c855b449e0d4ace74681bfe68e5e7f0b063568827ae872017234dbe8ae119e4c", + "bytes": 356012, + "sampleRate": 24000, + "channels": 1, + "duration": 7.416, + "rms": 0.10000151456676445, + "peak": 0.5949888825416565 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-furniture.wav?v=0.2.3", + "sha256": "bf84dc6cff1f227924a3a62158d2fc18769fb0ca40b91418fa19e534dbf92f00", + "bytes": 397484, + "sampleRate": 24000, + "channels": 1, + "duration": 8.28, + "rms": 0.10000155255948041, + "peak": 0.6670430898666382 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-sound.wav?v=0.2.3", + "sha256": "5a603bc69979603afddcaeb6edf500a7c540b72405daeb33f5335d746b327da1", + "bytes": 397484, + "sampleRate": 24000, + "channels": 1, + "duration": 8.28, + "rms": 0.10000146491234768, + "peak": 0.469268798828125 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-meat.wav?v=0.2.3", + "sha256": "9183ef90b64f5ceaf3bb0178c689231ff3e9981d6ce889124a15f2a6e2b7a344", + "bytes": 395180, + "sampleRate": 24000, + "channels": 1, + "duration": 8.232, + "rms": 0.10000155087122137, + "peak": 0.5193029642105103 + }, + { + "url": "http://127.0.0.1:4173/audio/last-sound.wav?v=0.2.3", + "sha256": "ec9c49802aebeb6a8b898a1c0d8ad1daa127d2d64c905c197ed49a8e0c4eb64a", + "bytes": 354860, + "sampleRate": 24000, + "channels": 1, + "duration": 7.392, + "rms": 0.10000165748716579, + "peak": 0.5641041398048401 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-oil.wav?v=0.2.3", + "sha256": "5fb63e04520c312aa6b7b48b70c2f7c140b5ab480e5c6992edbc2ba85b9a06e7", + "bytes": 241964, + "sampleRate": 24000, + "channels": 1, + "duration": 5.04, + "rms": 0.10000143720418167, + "peak": 0.443586528301239 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-umbrella.wav?v=0.2.3", + "sha256": "92b54f04884ab915783945077efd8f3bd443849a1720f72168b6348cae1f8e85", + "bytes": 406700, + "sampleRate": 24000, + "channels": 1, + "duration": 8.472, + "rms": 0.10000140257790288, + "peak": 0.479034423828125 + }, + { + "url": "http://127.0.0.1:4173/audio/message-sound.wav?v=0.2.3", + "sha256": "1e682147dae8026ba78dc8f256c7f24acb3a6743bfd88a0fcc86096930eef078", + "bytes": 521900, + "sampleRate": 24000, + "channels": 1, + "duration": 10.872, + "rms": 0.10000138583471241, + "peak": 0.51953125 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-apple.wav?v=0.2.3", + "sha256": "ccd7327a3fb54d3320d049ffdced3bc17595861cee69429c0ee97182d454195b", + "bytes": 402092, + "sampleRate": 24000, + "channels": 1, + "duration": 8.376, + "rms": 0.10000140667715379, + "peak": 0.490325927734375 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-sea.wav?v=0.2.3", + "sha256": "5c91a36496e274d2be9c6fa8d9b506cd04f2a1b7ceb05ed1b7bb03fe7fca99d9", + "bytes": 399788, + "sampleRate": 24000, + "channels": 1, + "duration": 8.328, + "rms": 0.10000144241513113, + "peak": 0.5465559959411621 + }, + { + "url": "http://127.0.0.1:4173/audio/message-hat.wav?v=0.2.3", + "sha256": "5a713a8522b231bb8276805c014b385b9150b79f58ff2618446607e2b442495e", + "bytes": 518444, + "sampleRate": 24000, + "channels": 1, + "duration": 10.8, + "rms": 0.10000136927555209, + "peak": 0.587005615234375 + }, + { + "url": "http://127.0.0.1:4173/audio/password-meat.wav?v=0.2.3", + "sha256": "b009caadd56350d6a641ff17f0973e2b2724c183e1f45ae0bf3c483e237fa99e", + "bytes": 240812, + "sampleRate": 24000, + "channels": 1, + "duration": 5.016, + "rms": 0.10000148386024335, + "peak": 0.4978789687156677 + }, + { + "url": "http://127.0.0.1:4173/audio/message-market.wav?v=0.2.3", + "sha256": "9242d4cd6e0030e6b073e4d2360f84aa8a454d1749711cdb2d64c14f28a7ea20", + "bytes": 523052, + "sampleRate": 24000, + "channels": 1, + "duration": 10.896, + "rms": 0.10000133805787564, + "peak": 0.534820556640625 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-apple.wav?v=0.2.3", + "sha256": "8832f1b793ab3eedbe663875ea8dbeabb122c329bd5879437c71230b0418c3c8", + "bytes": 360620, + "sampleRate": 24000, + "channels": 1, + "duration": 7.512, + "rms": 0.10000145024648589, + "peak": 0.553558349609375 + }, + { + "url": "http://127.0.0.1:4173/audio/last-umbrella.wav?v=0.2.3", + "sha256": "c801293a34013a8d93d3289a2cc87cd3eed83f97ba4647f5060efa00b117a9ad", + "bytes": 370988, + "sampleRate": 24000, + "channels": 1, + "duration": 7.728, + "rms": 0.10000149360501835, + "peak": 0.59765625 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-sea.wav?v=0.2.3", + "sha256": "9233431d78ab4b144e3c33ad0cf0d49fc0fb91b29514343230ba32987b794bb3", + "bytes": 398636, + "sampleRate": 24000, + "channels": 1, + "duration": 8.304, + "rms": 0.10000134688905045, + "peak": 0.49616992473602295 + }, + { + "url": "http://127.0.0.1:4173/audio/password-apple.wav?v=0.2.3", + "sha256": "b6f5de3fe571fe3a7fdb722fe49250bcfeedef49475271e0ec76a7630907edd5", + "bytes": 235052, + "sampleRate": 24000, + "channels": 1, + "duration": 4.896, + "rms": 0.10000148212193387, + "peak": 0.4834437072277069 + }, + { + "url": "http://127.0.0.1:4173/audio/first-furniture.wav?v=0.2.3", + "sha256": "29f007b385b7182db1d8aeccad4fc3c260df5e66e14e52a46b0ef0fcd0ff3a0a", + "bytes": 364076, + "sampleRate": 24000, + "channels": 1, + "duration": 7.584, + "rms": 0.1000014551820741, + "peak": 0.5700552463531494 + }, + { + "url": "http://127.0.0.1:4173/audio/password-hat.wav?v=0.2.3", + "sha256": "e91bfc97df90a1675b6cd856880ac15c54de32cfc3b23603bdd1c2c5ac3ce6b8", + "bytes": 235052, + "sampleRate": 24000, + "channels": 1, + "duration": 4.896, + "rms": 0.10000146155157119, + "peak": 0.5059053301811218 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-oil.wav?v=0.2.3", + "sha256": "7a6b122b11c07da86c95fb78e2db2a70681b5219c63d6441fe56da1979ac1dc3", + "bytes": 334124, + "sampleRate": 24000, + "channels": 1, + "duration": 6.96, + "rms": 0.1000014880654183, + "peak": 0.539933443069458 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-meat.wav?v=0.2.3", + "sha256": "d416107cc05e7c5b92ca27100a10a8a9689de913346179945d5542de4a6bac0c", + "bytes": 342188, + "sampleRate": 24000, + "channels": 1, + "duration": 7.128, + "rms": 0.10000157422522808, + "peak": 0.510833740234375 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-apple.wav?v=0.2.3", + "sha256": "1bf2aef9a9f030af1a8fd7dee8f44aa420a397b3ba99b575feeb3dc7a63ec191", + "bytes": 395180, + "sampleRate": 24000, + "channels": 1, + "duration": 8.232, + "rms": 0.10000148399213096, + "peak": 0.563568115234375 + }, + { + "url": "http://127.0.0.1:4173/audio/first-oil.wav?v=0.2.3", + "sha256": "f415195e0cfc7ee711d09de7519e88eab62cc8b58d70772c83c3f5c27c267819", + "bytes": 335276, + "sampleRate": 24000, + "channels": 1, + "duration": 6.984, + "rms": 0.10000145886808136, + "peak": 0.5347453355789185 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-hat.wav?v=0.2.3", + "sha256": "31a6a4270bf368cda419094d87a303ac3cd5c22539786cb165f8044b0b8e9d6e", + "bytes": 402092, + "sampleRate": 24000, + "channels": 1, + "duration": 8.376, + "rms": 0.10000145804818952, + "peak": 0.541778564453125 + }, + { + "url": "http://127.0.0.1:4173/audio/message-furniture.wav?v=0.2.3", + "sha256": "26c331b7e12311236f4bb48f88918dfbf53cccd2f50b55741ea6ff4473e71dd8", + "bytes": 521900, + "sampleRate": 24000, + "channels": 1, + "duration": 10.872, + "rms": 0.10000134596838128, + "peak": 0.529327392578125 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-oil.wav?v=0.2.3", + "sha256": "3fa1e662a3af8f2726b17b2baa5bec2934406e6595ebc243c8380dd16e190977", + "bytes": 190124, + "sampleRate": 24000, + "channels": 1, + "duration": 3.96, + "rms": 0.10000134375667624, + "peak": 0.3817255198955536 + }, + { + "url": "http://127.0.0.1:4173/audio/last-sea.wav?v=0.2.3", + "sha256": "f755452e1da44674aa1df7d12edffa988091b89a394e7eb6d4a00eb721f07cbf", + "bytes": 345644, + "sampleRate": 24000, + "channels": 1, + "duration": 7.2, + "rms": 0.10000140162255576, + "peak": 0.591033935546875 + }, + { + "url": "http://127.0.0.1:4173/audio/password-oil.wav?v=0.2.3", + "sha256": "b472957b27ff98ea7b8894fa1ff12653f7e9f66f77870faa9e52a1c1bf116c41", + "bytes": 240812, + "sampleRate": 24000, + "channels": 1, + "duration": 5.016, + "rms": 0.10000146772662066, + "peak": 0.4945219159126282 + }, + { + "url": "http://127.0.0.1:4173/audio/first-umbrella.wav?v=0.2.3", + "sha256": "878e0bd2e6e4105f175aef51a028f6b141f3a2072be20f783193f3ba897a3ee0", + "bytes": 366380, + "sampleRate": 24000, + "channels": 1, + "duration": 7.632, + "rms": 0.10000147647908036, + "peak": 0.5700247287750244 + }, + { + "url": "http://127.0.0.1:4173/audio/last-apple.wav?v=0.2.3", + "sha256": "4cb2a8579fa3a7b91bb36363826ce8ca0d6d86e96e16a479e226a2802edd82f7", + "bytes": 356012, + "sampleRate": 24000, + "channels": 1, + "duration": 7.416, + "rms": 0.10000144523423521, + "peak": 0.622528076171875 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-market.wav?v=0.2.3", + "sha256": "68a5b899115a66ab225d610ec47b4de56cc8793657362bc38f533c06f741e4cc", + "bytes": 402092, + "sampleRate": 24000, + "channels": 1, + "duration": 8.376, + "rms": 0.10000160159844854, + "peak": 0.6822717785835266 + }, + { + "url": "http://127.0.0.1:4173/audio/message-oil.wav?v=0.2.3", + "sha256": "a2a71a7e5e07c81871a25c6cb7540c39aa0b32fc44f78cda66b5f34ace98d805", + "bytes": 509228, + "sampleRate": 24000, + "channels": 1, + "duration": 10.608, + "rms": 0.10000135184106136, + "peak": 0.51812744140625 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-meat.wav?v=0.2.3", + "sha256": "d36dfc395a5c53fbfa4abe9980db7bb59adfdac59e40318c4aca365365e3f2ab", + "bytes": 187820, + "sampleRate": 24000, + "channels": 1, + "duration": 3.912, + "rms": 0.1000013329979738, + "peak": 0.371124267578125 + }, + { + "url": "http://127.0.0.1:4173/audio/password-market.wav?v=0.2.3", + "sha256": "02e325fb753ef7a3ee585a03d2ca2aa3f1fbc58523b062222ae1136eeed7a95c", + "bytes": 230444, + "sampleRate": 24000, + "channels": 1, + "duration": 4.8, + "rms": 0.10000151520861549, + "peak": 0.48170414566993713 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-hat.wav?v=0.2.3", + "sha256": "4ff43dd042f4b5451e9fdeb3edd59f1e389a7d1dd488094587a3a9fc7dfffa44", + "bytes": 191276, + "sampleRate": 24000, + "channels": 1, + "duration": 3.984, + "rms": 0.10000132502946775, + "peak": 0.417083740234375 + }, + { + "url": "http://127.0.0.1:4173/audio/last-market.wav?v=0.2.3", + "sha256": "7857e87e9dbfe8fe849cc0b18c1d45b60916cb337328099c7a87a42c82e2821e", + "bytes": 359468, + "sampleRate": 24000, + "channels": 1, + "duration": 7.488, + "rms": 0.10000148064140717, + "peak": 0.600555419921875 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-meat.wav?v=0.2.3", + "sha256": "94f8a4f9e116a787e5ed052661d6de9ecf3ad8629db476661dd59ad03014b0c9", + "bytes": 244268, + "sampleRate": 24000, + "channels": 1, + "duration": 5.088, + "rms": 0.10000146176253134, + "peak": 0.44187748432159424 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-oil.wav?v=0.2.3", + "sha256": "55b2c7d6aa8bbce04edf8661882c9781da81c57f56217f99b80457a3bb895da0", + "bytes": 369836, + "sampleRate": 24000, + "channels": 1, + "duration": 7.704, + "rms": 0.10000146897241707, + "peak": 0.6239814162254333 + }, + { + "url": "http://127.0.0.1:4173/audio/first-sound.wav?v=0.2.3", + "sha256": "46f6adeed928a16af0700f1e8626cf8049f124632a04a5d10604426fb06f9596", + "bytes": 353708, + "sampleRate": 24000, + "channels": 1, + "duration": 7.368, + "rms": 0.10000157588418972, + "peak": 0.5189672708511353 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-umbrella.wav?v=0.2.3", + "sha256": "4b4c858a25659540f9dbc524664496fc6de61ab8c1627f3cfee8c9c744e11d5b", + "bytes": 247724, + "sampleRate": 24000, + "channels": 1, + "duration": 5.16, + "rms": 0.10000144286672341, + "peak": 0.46534621715545654 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-oil.wav?v=0.2.3", + "sha256": "3ca98682ff06d1d6b8af02c0fd5b2124f42266ac989884223eff4a9bbde1287a", + "bytes": 399788, + "sampleRate": 24000, + "channels": 1, + "duration": 8.328, + "rms": 0.10000149133669024, + "peak": 0.5243995189666748 + }, + { + "url": "http://127.0.0.1:4173/audio/first-sea.wav?v=0.2.3", + "sha256": "0f0b39314c5f7d7168d4854003c0c284e7bc3438cdc4d1d1c5adab7cb5ed30e5", + "bytes": 349100, + "sampleRate": 24000, + "channels": 1, + "duration": 7.272, + "rms": 0.10000142148394393, + "peak": 0.5717948079109192 + }, + { + "url": "http://127.0.0.1:4173/audio/last-meat.wav?v=0.2.3", + "sha256": "10f8ad4259ed8945c9da831e80b3902303c09caef96d400298599168fb1efed4", + "bytes": 346796, + "sampleRate": 24000, + "channels": 1, + "duration": 7.224, + "rms": 0.10000155834091913, + "peak": 0.537200927734375 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-umbrella.wav?v=0.2.3", + "sha256": "399ea2f681f755918f1117c8baba42739ceca64b307b999342f457a9235050b6", + "bytes": 368684, + "sampleRate": 24000, + "channels": 1, + "duration": 7.68, + "rms": 0.10000155028684544, + "peak": 0.569549560546875 + }, + { + "url": "http://127.0.0.1:4173/audio/message-meat.wav?v=0.2.3", + "sha256": "ce19735df079b54c171e775b6b365385a80160b9033442abab95b2b9c8505e1a", + "bytes": 512684, + "sampleRate": 24000, + "channels": 1, + "duration": 10.68, + "rms": 0.10000140834686953, + "peak": 0.5147705078125 + }, + { + "url": "http://127.0.0.1:4173/audio/message-umbrella.wav?v=0.2.3", + "sha256": "41d5866dae66600df4694a8312b531571d44cece6dba0e423e7c43d09d184819", + "bytes": 523052, + "sampleRate": 24000, + "channels": 1, + "duration": 10.896, + "rms": 0.10000120668553683, + "peak": 0.530364990234375 + }, + { + "url": "http://127.0.0.1:4173/audio/last-furniture.wav?v=0.2.3", + "sha256": "5ad4f776e35439d408abed0e66567d6b5cdc80fc54d579165472e474f1238776", + "bytes": 357164, + "sampleRate": 24000, + "channels": 1, + "duration": 7.44, + "rms": 0.10000152394963031, + "peak": 0.583587646484375 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-sea.wav?v=0.2.3", + "sha256": "8838d6a1ee8a790427dc5aa761e70b3d8872af62086efeed743297ff7f8b8a06", + "bytes": 243116, + "sampleRate": 24000, + "channels": 1, + "duration": 5.064, + "rms": 0.10000138788281714, + "peak": 0.45013427734375 + }, + { + "url": "http://127.0.0.1:4173/audio/message-apple.wav?v=0.2.3", + "sha256": "d85e6f47d871369f00de2274139e5ad6b4b5686b5e20e248df0ed6b9a320d942", + "bytes": 517292, + "sampleRate": 24000, + "channels": 1, + "duration": 10.776, + "rms": 0.10000133916854889, + "peak": 0.525360107421875 + }, + { + "url": "http://127.0.0.1:4173/audio/last-hat.wav?v=0.2.3", + "sha256": "bdaf8fbc54df8061e9e58aa8c14b3044a6e863dc54973ee3ee6ae2c5ae1a28f1", + "bytes": 354860, + "sampleRate": 24000, + "channels": 1, + "duration": 7.392, + "rms": 0.10000152378078818, + "peak": 0.550079345703125 + }, + { + "url": "http://127.0.0.1:4173/audio/first-apple.wav?v=0.2.3", + "sha256": "7c1dbcb3082055df2b8f087f7e906ec867c92f679de0894c34740c05e61a4bc1", + "bytes": 359468, + "sampleRate": 24000, + "channels": 1, + "duration": 7.488, + "rms": 0.10000143468253914, + "peak": 0.57977294921875 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-umbrella.wav?v=0.2.3", + "sha256": "8d3e8e8bc97e5fe3f3362184c4abb12f01a882a1f1174d2644f0f70aac677c0a", + "bytes": 192428, + "sampleRate": 24000, + "channels": 1, + "duration": 4.008, + "rms": 0.10000131475711933, + "peak": 0.385650634765625 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-furniture.wav?v=0.2.3", + "sha256": "5c004a7b2f5a4a918c9f689f1a2dcb219a620ed14313f40a9655b36dbf64948d", + "bytes": 398636, + "sampleRate": 24000, + "channels": 1, + "duration": 8.304, + "rms": 0.10000141690978645, + "peak": 0.487396240234375 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-tree.wav?v=0.2.3", + "sha256": "122f496834fb16d6da47f801e50e46e272e4e934af959467d1db4e490f79be7a", + "bytes": 183212, + "sampleRate": 24000, + "channels": 1, + "duration": 3.816, + "rms": 0.10000140751524371, + "peak": 0.36920166015625 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-tree.wav?v=0.2.3", + "sha256": "00d8e77ec0371971d632724d91f8cf8d947bfb83c582a513b6421be4c457a1da", + "bytes": 241964, + "sampleRate": 24000, + "channels": 1, + "duration": 5.04, + "rms": 0.10000146153372488, + "peak": 0.4585406184196472 + }, + { + "url": "http://127.0.0.1:4173/audio/message-tree.wav?v=0.2.3", + "sha256": "5d684aa710a63d36ed8dcc2a8bfbdd5c71b0b1c63dad2a324adecb76591e85b8", + "bytes": 540332, + "sampleRate": 24000, + "channels": 1, + "duration": 11.256, + "rms": 0.10000132424453942, + "peak": 0.5262451171875 + }, + { + "url": "http://127.0.0.1:4173/audio/last-tree.wav?v=0.2.3", + "sha256": "589e56d940a3c9e80ec02ae0b2dd93463fdc85ef019a753fcd0fded0752055f9", + "bytes": 382508, + "sampleRate": 24000, + "channels": 1, + "duration": 7.968, + "rms": 0.10000149781706567, + "peak": 0.5807672142982483 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-tree.wav?v=0.2.3", + "sha256": "341888c75275c13eb31058f53a1d4276be0daa0a1b5a3a45522036928b83b0c1", + "bytes": 382508, + "sampleRate": 24000, + "channels": 1, + "duration": 7.968, + "rms": 0.1000014873304774, + "peak": 0.600024402141571 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-tree.wav?v=0.2.3", + "sha256": "8735c3d9672561ca237fa87317beec2878492eb9063d6048d5b214423561acc1", + "bytes": 423980, + "sampleRate": 24000, + "channels": 1, + "duration": 8.832, + "rms": 0.10000150947389638, + "peak": 0.6187627911567688 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-furniture.wav?v=0.2.3", + "sha256": "52cb92cdb8ee92b6f581c9d68dbc346f180c470564809ba57185429c9eb84127", + "bytes": 186668, + "sampleRate": 24000, + "channels": 1, + "duration": 3.888, + "rms": 0.1000013480244084, + "peak": 0.387054443359375 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-tree.wav?v=0.2.3", + "sha256": "bc8e54f5407e8866bf1ca1ddfd4f6c63d85fee29bd9e430c7dd33e87974fc5b8", + "bytes": 409004, + "sampleRate": 24000, + "channels": 1, + "duration": 8.52, + "rms": 0.10000146559822108, + "peak": 0.5486617684364319 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-tree.wav?v=0.2.3", + "sha256": "b8e8bbe6b8b14727efd953fae9d4aed2caeb004055d52f611c6378322847edbe", + "bytes": 400940, + "sampleRate": 24000, + "channels": 1, + "duration": 8.352, + "rms": 0.10000144970799159, + "peak": 0.470611572265625 + }, + { + "url": "http://127.0.0.1:4173/audio/first-tree.wav?v=0.2.3", + "sha256": "3178230fd5850b6277a2153b438ec5289720e3db7ac929914cc213964f004bd5", + "bytes": 379052, + "sampleRate": 24000, + "channels": 1, + "duration": 7.896, + "rms": 0.10000144270360484, + "peak": 0.5833613276481628 + }, + { + "url": "http://127.0.0.1:4173/audio/password-tree.wav?v=0.2.3", + "sha256": "67da8147296e35134ec254bc82b58317630061b2c64d2d63c4be197ce8692d50", + "bytes": 233900, + "sampleRate": 24000, + "channels": 1, + "duration": 4.872, + "rms": 0.10000156310809623, + "peak": 0.4904019236564636 + } + ] +} diff --git a/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-final/audio-음성·현장음-109개-versioned-WAV를-실제-Chrome에서-해시·디코드-검증한다-desktop/browser-audio-integrity.json b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-final/audio-음성·현장음-109개-versioned-WAV를-실제-Chrome에서-해시·디코드-검증한다-desktop/browser-audio-integrity.json new file mode 100644 index 0000000..d6db5ea --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-final/audio-음성·현장음-109개-versioned-WAV를-실제-Chrome에서-해시·디코드-검증한다-desktop/browser-audio-integrity.json @@ -0,0 +1,1098 @@ +{ + "chrome": "146.0.7680.80", + "external": [], + "errors": [], + "failed": [], + "files": [ + { + "url": "http://127.0.0.1:4173/audio/intro.wav?v=0.2.3", + "sha256": "90d9f46e6e3f9c8a0c1a781096df54d7809ef4ad38b289508ef7b8c0411465ce", + "bytes": 338732, + "sampleRate": 24000, + "channels": 1, + "duration": 7.056, + "rms": 0.10000144992850359, + "peak": 0.4998626708984375 + }, + { + "url": "http://127.0.0.1:4173/ambience/street.wav?v=0.2.3", + "sha256": "a8bffa201b174618955bc51b860167169125304811aabe2086b0bb35b06c3ae1", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.07999880181401388, + "peak": 0.3967711329460144 + }, + { + "url": "http://127.0.0.1:4173/ambience/mall.wav?v=0.2.3", + "sha256": "680a769940c08f0d12c6c954c08366598dd8b5745e276f39c82b10d1a88261a1", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.07999875178666456, + "peak": 0.7191991806030273 + }, + { + "url": "http://127.0.0.1:4173/ambience/theater.wav?v=0.2.3", + "sha256": "2d6a444fb7874cdf6b2d8a741a69175299b112eb66834912c025437d8277d635", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.07999878601263052, + "peak": 0.495086669921875 + }, + { + "url": "http://127.0.0.1:4173/ambience/department.wav?v=0.2.3", + "sha256": "aa43f3d1d3e7c2b1f8ace24ecbda45d0ea3a031db941c39506dc6c1665b8efa7", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.07999879026023995, + "peak": 0.4749900698661804 + }, + { + "url": "http://127.0.0.1:4173/ambience/market.wav?v=0.2.3", + "sha256": "7a7a980845a4aade2a7e8a108eae746220a4688e92792ee93d3deb76b2a762f6", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.07999876626924392, + "peak": 0.507232666015625 + }, + { + "url": "http://127.0.0.1:4173/ambience/subway.wav?v=0.2.3", + "sha256": "9faf70b68617d267b367a0f3692ed90015458543ab4b0844f6c704e6a724728f", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.079998775670051, + "peak": 0.42530596256256104 + }, + { + "url": "http://127.0.0.1:4173/ambience/cafe.wav?v=0.2.3", + "sha256": "802a956e91b85a2fdd0e1f161d75bfada7a53499bcb57ba7f578411480ded216", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.0799987945764348, + "peak": 0.44708251953125 + }, + { + "url": "http://127.0.0.1:4173/ambience/rain.wav?v=0.2.3", + "sha256": "f4315084e820f742b0709de5bb0d1abd3d5af1730620e08c2948b70347356dd9", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.011384798571746246, + "peak": 0.1024169921875 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-apple.wav?v=0.2.3", + "sha256": "cb7da4e9a1288cac64d168b241f27d7d2bc2dfecace58744f9bbf2792dfad04e", + "bytes": 397484, + "sampleRate": 24000, + "channels": 1, + "duration": 8.28, + "rms": 0.10000142448574952, + "peak": 0.6414685249328613 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-market.wav?v=0.2.3", + "sha256": "b8d25b867497adcd0fe7c8b6a8a8d2e7a52965956738a83e53f58735708773f9", + "bytes": 405548, + "sampleRate": 24000, + "channels": 1, + "duration": 8.448, + "rms": 0.10000141405173993, + "peak": 0.491485595703125 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-sound.wav?v=0.2.3", + "sha256": "34e4d9758d2ed448646fda364610e34779c84794403d9051ab3d8c1d33e2c80c", + "bytes": 184364, + "sampleRate": 24000, + "channels": 1, + "duration": 3.84, + "rms": 0.10000138709171018, + "peak": 0.386322021484375 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-furniture.wav?v=0.2.3", + "sha256": "b45b1afc8d9b534ff3e0a2a2ecb99efc1f4e40d41f89f55c4ed8ba94ad6d76d4", + "bytes": 354860, + "sampleRate": 24000, + "channels": 1, + "duration": 7.392, + "rms": 0.1000015072973225, + "peak": 0.5576171875 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-market.wav?v=0.2.3", + "sha256": "cefa0e95649ea6bd1df4c8dfccd2b74b4f4c028714420ce1087b61db2f2a8d47", + "bytes": 248876, + "sampleRate": 24000, + "channels": 1, + "duration": 5.184, + "rms": 0.10000142548167161, + "peak": 0.4857020676136017 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-oil.wav?v=0.2.3", + "sha256": "f6eff0cdddcad9790351491e60c53cb2a70d222033a583652f2de0b8cd6abcc7", + "bytes": 406700, + "sampleRate": 24000, + "channels": 1, + "duration": 8.472, + "rms": 0.10000139122025363, + "peak": 0.470794677734375 + }, + { + "url": "http://127.0.0.1:4173/audio/first-hat.wav?v=0.2.3", + "sha256": "17c8cde90567e7574b0c0702663bd70713054089ee920241b5444d9b7869eef5", + "bytes": 357164, + "sampleRate": 24000, + "channels": 1, + "duration": 7.44, + "rms": 0.10000152904790521, + "peak": 0.5312662124633789 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-furniture.wav?v=0.2.3", + "sha256": "af82e03b686635c3356e706fe5b05c1231aeaaeab33f275aa5b8714988c65d43", + "bytes": 241964, + "sampleRate": 24000, + "channels": 1, + "duration": 5.04, + "rms": 0.10000137346142077, + "peak": 0.4852443039417267 + }, + { + "url": "http://127.0.0.1:4173/audio/password-sound.wav?v=0.2.3", + "sha256": "044aafff08a19e39f21e58b963644715a987cd155896998769ef8e9ce6449628", + "bytes": 236204, + "sampleRate": 24000, + "channels": 1, + "duration": 4.92, + "rms": 0.10000156641621728, + "peak": 0.4621112644672394 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-hat.wav?v=0.2.3", + "sha256": "f9f98c91cfbcfcb106eef7d5d3795a9cf3c3aab7e19a60f13d7dffe284d19f86", + "bytes": 398636, + "sampleRate": 24000, + "channels": 1, + "duration": 8.304, + "rms": 0.10000141071544869, + "peak": 0.470977783203125 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-apple.wav?v=0.2.3", + "sha256": "7c8f413f4b7e164f090e508ba090448f1376c6012649bbb6a917d45851313883", + "bytes": 188972, + "sampleRate": 24000, + "channels": 1, + "duration": 3.936, + "rms": 0.10000130469939268, + "peak": 0.401641845703125 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-sea.wav?v=0.2.3", + "sha256": "db2f235bee26ac804b5362e8e013b8f40c8da24fd3a34e0fb3b43c6d264feb36", + "bytes": 382508, + "sampleRate": 24000, + "channels": 1, + "duration": 7.968, + "rms": 0.10000145042993039, + "peak": 0.6843470335006714 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-furniture.wav?v=0.2.3", + "sha256": "442bdcb956f120c270e1f321feae0415c897de0183e468980fcc119b898b2a67", + "bytes": 403244, + "sampleRate": 24000, + "channels": 1, + "duration": 8.4, + "rms": 0.10000149119200713, + "peak": 0.5619068145751953 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-sea.wav?v=0.2.3", + "sha256": "b6dbe0af143ea775f05bd59a3d6af348bcc770ab378ac91ea75a56e06c326edf", + "bytes": 346796, + "sampleRate": 24000, + "channels": 1, + "duration": 7.224, + "rms": 0.10000144532868623, + "peak": 0.56494140625 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-sound.wav?v=0.2.3", + "sha256": "e9d636ff7f4777f38b1ff15bebdcec6fbde95b4b4b05625a7415b4cfa0025b59", + "bytes": 395180, + "sampleRate": 24000, + "channels": 1, + "duration": 8.232, + "rms": 0.10000164955559301, + "peak": 0.6114688515663147 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-apple.wav?v=0.2.3", + "sha256": "3ef42e276ff3500c3e197d149f29f79d6a0c1d5516ed1d5a2c57210333fded9c", + "bytes": 246572, + "sampleRate": 24000, + "channels": 1, + "duration": 5.136, + "rms": 0.10000144279302126, + "peak": 0.4701681435108185 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-market.wav?v=0.2.3", + "sha256": "356af25332bf2000ed349671f3ff39767929e1f4599af622c021f907d11fb7bf", + "bytes": 194732, + "sampleRate": 24000, + "channels": 1, + "duration": 4.056, + "rms": 0.10000132629820717, + "peak": 0.4022216796875 + }, + { + "url": "http://127.0.0.1:4173/audio/message-sea.wav?v=0.2.3", + "sha256": "28a461fbe03bffe2560030dea8b60715f7c0fe262dcf85b5b7f7daf483836382", + "bytes": 517292, + "sampleRate": 24000, + "channels": 1, + "duration": 10.776, + "rms": 0.10000130584401576, + "peak": 0.53521728515625 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-umbrella.wav?v=0.2.3", + "sha256": "c8988e604ba05d52597e561389541e8f9cda86e052279f1862bbf8399ead314e", + "bytes": 403244, + "sampleRate": 24000, + "channels": 1, + "duration": 8.4, + "rms": 0.10000148262660476, + "peak": 0.557830810546875 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-hat.wav?v=0.2.3", + "sha256": "308278ec2bd27d4224976a55632d1f7fa1edabb0792126d9d858a699c287aee4", + "bytes": 245420, + "sampleRate": 24000, + "channels": 1, + "duration": 5.112, + "rms": 0.10000140702099906, + "peak": 0.4498428404331207 + }, + { + "url": "http://127.0.0.1:4173/audio/password-furniture.wav?v=0.2.3", + "sha256": "fb2b631dd4e12120d08a84cce6450f9cd9cd68105d13d7001d808e7deaa1df4a", + "bytes": 233900, + "sampleRate": 24000, + "channels": 1, + "duration": 4.872, + "rms": 0.10000146718546903, + "peak": 0.4836573302745819 + }, + { + "url": "http://127.0.0.1:4173/audio/first-market.wav?v=0.2.3", + "sha256": "1e00b8f70a796cdebb0feb00c605fece7488b06915e6e036f54206f05e201e0c", + "bytes": 359468, + "sampleRate": 24000, + "channels": 1, + "duration": 7.488, + "rms": 0.10000152633991319, + "peak": 0.6390880942344666 + }, + { + "url": "http://127.0.0.1:4173/audio/first-meat.wav?v=0.2.3", + "sha256": "f51a37c1722fef581f7d642a4dcae7fcb9953b3c318dce971bf616cd1a81fecc", + "bytes": 345644, + "sampleRate": 24000, + "channels": 1, + "duration": 7.2, + "rms": 0.10000152244411063, + "peak": 0.5131382346153259 + }, + { + "url": "http://127.0.0.1:4173/audio/password-sea.wav?v=0.2.3", + "sha256": "03f45b8cb5b3dc72faf5c6e3d0e2a10cea6b60301ea400d0a4453596d2f0b337", + "bytes": 232748, + "sampleRate": 24000, + "channels": 1, + "duration": 4.848, + "rms": 0.10000144821976133, + "peak": 0.5339213013648987 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-sound.wav?v=0.2.3", + "sha256": "98387ccc7aab566f6487d4c250b2128082cc527e013a6f7b7bc4d0266ac295df", + "bytes": 394028, + "sampleRate": 24000, + "channels": 1, + "duration": 8.208, + "rms": 0.10000158053850364, + "peak": 0.5377971529960632 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-umbrella.wav?v=0.2.3", + "sha256": "5e59ef39113c3d5e106862356d715f4cef2862ef8ee02654a97e532675c1ac6d", + "bytes": 410156, + "sampleRate": 24000, + "channels": 1, + "duration": 8.544, + "rms": 0.10000147499132286, + "peak": 0.6748558282852173 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-hat.wav?v=0.2.3", + "sha256": "b01ef9762ac84e3eb757243bc9286c62f7d45444a821ae35ac36a8b095e1598a", + "bytes": 353708, + "sampleRate": 24000, + "channels": 1, + "duration": 7.368, + "rms": 0.10000153089787694, + "peak": 0.555206298828125 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-market.wav?v=0.2.3", + "sha256": "d89792da51c83ac49d27e55aa6d822a338899a5ee487b34b552748201e1522f6", + "bytes": 398636, + "sampleRate": 24000, + "channels": 1, + "duration": 8.304, + "rms": 0.10000149710778367, + "peak": 0.5728324055671692 + }, + { + "url": "http://127.0.0.1:4173/audio/password-umbrella.wav?v=0.2.3", + "sha256": "ab3ca6398c879971dc793eb25b472fcc0db72d76e386f11ef4d32c639f37c69d", + "bytes": 239660, + "sampleRate": 24000, + "channels": 1, + "duration": 4.992, + "rms": 0.100001426973271, + "peak": 0.4776757061481476 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-meat.wav?v=0.2.3", + "sha256": "48e91b3932d3798e852041a854b3ee08c72127e092c62083a47af6b99adff241", + "bytes": 403244, + "sampleRate": 24000, + "channels": 1, + "duration": 8.4, + "rms": 0.10000140336390047, + "peak": 0.481536865234375 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-hat.wav?v=0.2.3", + "sha256": "6e089a42fd7e65e82eec7186d369c926fb7fdac794365b2bd7658822fd92437c", + "bytes": 396332, + "sampleRate": 24000, + "channels": 1, + "duration": 8.256, + "rms": 0.1000015662548192, + "peak": 0.616748571395874 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-sound.wav?v=0.2.3", + "sha256": "4d00aa6114327f450a00dacbc7e7b572ebf1de4ce9dc2fe4b5505766cca71ce9", + "bytes": 353708, + "sampleRate": 24000, + "channels": 1, + "duration": 7.368, + "rms": 0.10000162019345048, + "peak": 0.5348368883132935 + }, + { + "url": "http://127.0.0.1:4173/audio/last-oil.wav?v=0.2.3", + "sha256": "b5ce34950b8b31b1baf6ce55410797f0d8aa5478a670d6eace87cf76d134d6d3", + "bytes": 337580, + "sampleRate": 24000, + "channels": 1, + "duration": 7.032, + "rms": 0.10000149980584365, + "peak": 0.55706787109375 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-sea.wav?v=0.2.3", + "sha256": "47aa31d757c9fb49c9b53a1c052d90a5ced4be57549d649850d9b48f8864045b", + "bytes": 191276, + "sampleRate": 24000, + "channels": 1, + "duration": 3.984, + "rms": 0.10000129182106483, + "peak": 0.388702392578125 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-sound.wav?v=0.2.3", + "sha256": "659eb0e2b06e6b165b46744769743e032e2282519f8486c57bc45e0f7d07a069", + "bytes": 240812, + "sampleRate": 24000, + "channels": 1, + "duration": 5.016, + "rms": 0.10000152909529536, + "peak": 0.45481735467910767 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-meat.wav?v=0.2.3", + "sha256": "6599d2fac73ea616a793151b4ce6f51af673988d630bac6219a77e78ae6cb34e", + "bytes": 380204, + "sampleRate": 24000, + "channels": 1, + "duration": 7.92, + "rms": 0.1000016061190976, + "peak": 0.5921201109886169 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-market.wav?v=0.2.3", + "sha256": "c855b449e0d4ace74681bfe68e5e7f0b063568827ae872017234dbe8ae119e4c", + "bytes": 356012, + "sampleRate": 24000, + "channels": 1, + "duration": 7.416, + "rms": 0.10000151456676445, + "peak": 0.5949888825416565 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-furniture.wav?v=0.2.3", + "sha256": "bf84dc6cff1f227924a3a62158d2fc18769fb0ca40b91418fa19e534dbf92f00", + "bytes": 397484, + "sampleRate": 24000, + "channels": 1, + "duration": 8.28, + "rms": 0.10000155255948041, + "peak": 0.6670430898666382 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-sound.wav?v=0.2.3", + "sha256": "5a603bc69979603afddcaeb6edf500a7c540b72405daeb33f5335d746b327da1", + "bytes": 397484, + "sampleRate": 24000, + "channels": 1, + "duration": 8.28, + "rms": 0.10000146491234768, + "peak": 0.469268798828125 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-meat.wav?v=0.2.3", + "sha256": "9183ef90b64f5ceaf3bb0178c689231ff3e9981d6ce889124a15f2a6e2b7a344", + "bytes": 395180, + "sampleRate": 24000, + "channels": 1, + "duration": 8.232, + "rms": 0.10000155087122137, + "peak": 0.5193029642105103 + }, + { + "url": "http://127.0.0.1:4173/audio/last-sound.wav?v=0.2.3", + "sha256": "ec9c49802aebeb6a8b898a1c0d8ad1daa127d2d64c905c197ed49a8e0c4eb64a", + "bytes": 354860, + "sampleRate": 24000, + "channels": 1, + "duration": 7.392, + "rms": 0.10000165748716579, + "peak": 0.5641041398048401 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-oil.wav?v=0.2.3", + "sha256": "5fb63e04520c312aa6b7b48b70c2f7c140b5ab480e5c6992edbc2ba85b9a06e7", + "bytes": 241964, + "sampleRate": 24000, + "channels": 1, + "duration": 5.04, + "rms": 0.10000143720418167, + "peak": 0.443586528301239 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-umbrella.wav?v=0.2.3", + "sha256": "92b54f04884ab915783945077efd8f3bd443849a1720f72168b6348cae1f8e85", + "bytes": 406700, + "sampleRate": 24000, + "channels": 1, + "duration": 8.472, + "rms": 0.10000140257790288, + "peak": 0.479034423828125 + }, + { + "url": "http://127.0.0.1:4173/audio/message-sound.wav?v=0.2.3", + "sha256": "1e682147dae8026ba78dc8f256c7f24acb3a6743bfd88a0fcc86096930eef078", + "bytes": 521900, + "sampleRate": 24000, + "channels": 1, + "duration": 10.872, + "rms": 0.10000138583471241, + "peak": 0.51953125 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-apple.wav?v=0.2.3", + "sha256": "ccd7327a3fb54d3320d049ffdced3bc17595861cee69429c0ee97182d454195b", + "bytes": 402092, + "sampleRate": 24000, + "channels": 1, + "duration": 8.376, + "rms": 0.10000140667715379, + "peak": 0.490325927734375 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-sea.wav?v=0.2.3", + "sha256": "5c91a36496e274d2be9c6fa8d9b506cd04f2a1b7ceb05ed1b7bb03fe7fca99d9", + "bytes": 399788, + "sampleRate": 24000, + "channels": 1, + "duration": 8.328, + "rms": 0.10000144241513113, + "peak": 0.5465559959411621 + }, + { + "url": "http://127.0.0.1:4173/audio/message-hat.wav?v=0.2.3", + "sha256": "5a713a8522b231bb8276805c014b385b9150b79f58ff2618446607e2b442495e", + "bytes": 518444, + "sampleRate": 24000, + "channels": 1, + "duration": 10.8, + "rms": 0.10000136927555209, + "peak": 0.587005615234375 + }, + { + "url": "http://127.0.0.1:4173/audio/password-meat.wav?v=0.2.3", + "sha256": "b009caadd56350d6a641ff17f0973e2b2724c183e1f45ae0bf3c483e237fa99e", + "bytes": 240812, + "sampleRate": 24000, + "channels": 1, + "duration": 5.016, + "rms": 0.10000148386024335, + "peak": 0.4978789687156677 + }, + { + "url": "http://127.0.0.1:4173/audio/message-market.wav?v=0.2.3", + "sha256": "9242d4cd6e0030e6b073e4d2360f84aa8a454d1749711cdb2d64c14f28a7ea20", + "bytes": 523052, + "sampleRate": 24000, + "channels": 1, + "duration": 10.896, + "rms": 0.10000133805787564, + "peak": 0.534820556640625 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-apple.wav?v=0.2.3", + "sha256": "8832f1b793ab3eedbe663875ea8dbeabb122c329bd5879437c71230b0418c3c8", + "bytes": 360620, + "sampleRate": 24000, + "channels": 1, + "duration": 7.512, + "rms": 0.10000145024648589, + "peak": 0.553558349609375 + }, + { + "url": "http://127.0.0.1:4173/audio/last-umbrella.wav?v=0.2.3", + "sha256": "c801293a34013a8d93d3289a2cc87cd3eed83f97ba4647f5060efa00b117a9ad", + "bytes": 370988, + "sampleRate": 24000, + "channels": 1, + "duration": 7.728, + "rms": 0.10000149360501835, + "peak": 0.59765625 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-sea.wav?v=0.2.3", + "sha256": "9233431d78ab4b144e3c33ad0cf0d49fc0fb91b29514343230ba32987b794bb3", + "bytes": 398636, + "sampleRate": 24000, + "channels": 1, + "duration": 8.304, + "rms": 0.10000134688905045, + "peak": 0.49616992473602295 + }, + { + "url": "http://127.0.0.1:4173/audio/password-apple.wav?v=0.2.3", + "sha256": "b6f5de3fe571fe3a7fdb722fe49250bcfeedef49475271e0ec76a7630907edd5", + "bytes": 235052, + "sampleRate": 24000, + "channels": 1, + "duration": 4.896, + "rms": 0.10000148212193387, + "peak": 0.4834437072277069 + }, + { + "url": "http://127.0.0.1:4173/audio/first-furniture.wav?v=0.2.3", + "sha256": "29f007b385b7182db1d8aeccad4fc3c260df5e66e14e52a46b0ef0fcd0ff3a0a", + "bytes": 364076, + "sampleRate": 24000, + "channels": 1, + "duration": 7.584, + "rms": 0.1000014551820741, + "peak": 0.5700552463531494 + }, + { + "url": "http://127.0.0.1:4173/audio/password-hat.wav?v=0.2.3", + "sha256": "e91bfc97df90a1675b6cd856880ac15c54de32cfc3b23603bdd1c2c5ac3ce6b8", + "bytes": 235052, + "sampleRate": 24000, + "channels": 1, + "duration": 4.896, + "rms": 0.10000146155157119, + "peak": 0.5059053301811218 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-oil.wav?v=0.2.3", + "sha256": "7a6b122b11c07da86c95fb78e2db2a70681b5219c63d6441fe56da1979ac1dc3", + "bytes": 334124, + "sampleRate": 24000, + "channels": 1, + "duration": 6.96, + "rms": 0.1000014880654183, + "peak": 0.539933443069458 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-meat.wav?v=0.2.3", + "sha256": "d416107cc05e7c5b92ca27100a10a8a9689de913346179945d5542de4a6bac0c", + "bytes": 342188, + "sampleRate": 24000, + "channels": 1, + "duration": 7.128, + "rms": 0.10000157422522808, + "peak": 0.510833740234375 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-apple.wav?v=0.2.3", + "sha256": "1bf2aef9a9f030af1a8fd7dee8f44aa420a397b3ba99b575feeb3dc7a63ec191", + "bytes": 395180, + "sampleRate": 24000, + "channels": 1, + "duration": 8.232, + "rms": 0.10000148399213096, + "peak": 0.563568115234375 + }, + { + "url": "http://127.0.0.1:4173/audio/first-oil.wav?v=0.2.3", + "sha256": "f415195e0cfc7ee711d09de7519e88eab62cc8b58d70772c83c3f5c27c267819", + "bytes": 335276, + "sampleRate": 24000, + "channels": 1, + "duration": 6.984, + "rms": 0.10000145886808136, + "peak": 0.5347453355789185 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-hat.wav?v=0.2.3", + "sha256": "31a6a4270bf368cda419094d87a303ac3cd5c22539786cb165f8044b0b8e9d6e", + "bytes": 402092, + "sampleRate": 24000, + "channels": 1, + "duration": 8.376, + "rms": 0.10000145804818952, + "peak": 0.541778564453125 + }, + { + "url": "http://127.0.0.1:4173/audio/message-furniture.wav?v=0.2.3", + "sha256": "26c331b7e12311236f4bb48f88918dfbf53cccd2f50b55741ea6ff4473e71dd8", + "bytes": 521900, + "sampleRate": 24000, + "channels": 1, + "duration": 10.872, + "rms": 0.10000134596838128, + "peak": 0.529327392578125 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-oil.wav?v=0.2.3", + "sha256": "3fa1e662a3af8f2726b17b2baa5bec2934406e6595ebc243c8380dd16e190977", + "bytes": 190124, + "sampleRate": 24000, + "channels": 1, + "duration": 3.96, + "rms": 0.10000134375667624, + "peak": 0.3817255198955536 + }, + { + "url": "http://127.0.0.1:4173/audio/last-sea.wav?v=0.2.3", + "sha256": "f755452e1da44674aa1df7d12edffa988091b89a394e7eb6d4a00eb721f07cbf", + "bytes": 345644, + "sampleRate": 24000, + "channels": 1, + "duration": 7.2, + "rms": 0.10000140162255576, + "peak": 0.591033935546875 + }, + { + "url": "http://127.0.0.1:4173/audio/password-oil.wav?v=0.2.3", + "sha256": "b472957b27ff98ea7b8894fa1ff12653f7e9f66f77870faa9e52a1c1bf116c41", + "bytes": 240812, + "sampleRate": 24000, + "channels": 1, + "duration": 5.016, + "rms": 0.10000146772662066, + "peak": 0.4945219159126282 + }, + { + "url": "http://127.0.0.1:4173/audio/first-umbrella.wav?v=0.2.3", + "sha256": "878e0bd2e6e4105f175aef51a028f6b141f3a2072be20f783193f3ba897a3ee0", + "bytes": 366380, + "sampleRate": 24000, + "channels": 1, + "duration": 7.632, + "rms": 0.10000147647908036, + "peak": 0.5700247287750244 + }, + { + "url": "http://127.0.0.1:4173/audio/last-apple.wav?v=0.2.3", + "sha256": "4cb2a8579fa3a7b91bb36363826ce8ca0d6d86e96e16a479e226a2802edd82f7", + "bytes": 356012, + "sampleRate": 24000, + "channels": 1, + "duration": 7.416, + "rms": 0.10000144523423521, + "peak": 0.622528076171875 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-market.wav?v=0.2.3", + "sha256": "68a5b899115a66ab225d610ec47b4de56cc8793657362bc38f533c06f741e4cc", + "bytes": 402092, + "sampleRate": 24000, + "channels": 1, + "duration": 8.376, + "rms": 0.10000160159844854, + "peak": 0.6822717785835266 + }, + { + "url": "http://127.0.0.1:4173/audio/message-oil.wav?v=0.2.3", + "sha256": "a2a71a7e5e07c81871a25c6cb7540c39aa0b32fc44f78cda66b5f34ace98d805", + "bytes": 509228, + "sampleRate": 24000, + "channels": 1, + "duration": 10.608, + "rms": 0.10000135184106136, + "peak": 0.51812744140625 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-meat.wav?v=0.2.3", + "sha256": "d36dfc395a5c53fbfa4abe9980db7bb59adfdac59e40318c4aca365365e3f2ab", + "bytes": 187820, + "sampleRate": 24000, + "channels": 1, + "duration": 3.912, + "rms": 0.1000013329979738, + "peak": 0.371124267578125 + }, + { + "url": "http://127.0.0.1:4173/audio/password-market.wav?v=0.2.3", + "sha256": "02e325fb753ef7a3ee585a03d2ca2aa3f1fbc58523b062222ae1136eeed7a95c", + "bytes": 230444, + "sampleRate": 24000, + "channels": 1, + "duration": 4.8, + "rms": 0.10000151520861549, + "peak": 0.48170414566993713 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-hat.wav?v=0.2.3", + "sha256": "4ff43dd042f4b5451e9fdeb3edd59f1e389a7d1dd488094587a3a9fc7dfffa44", + "bytes": 191276, + "sampleRate": 24000, + "channels": 1, + "duration": 3.984, + "rms": 0.10000132502946775, + "peak": 0.417083740234375 + }, + { + "url": "http://127.0.0.1:4173/audio/last-market.wav?v=0.2.3", + "sha256": "7857e87e9dbfe8fe849cc0b18c1d45b60916cb337328099c7a87a42c82e2821e", + "bytes": 359468, + "sampleRate": 24000, + "channels": 1, + "duration": 7.488, + "rms": 0.10000148064140717, + "peak": 0.600555419921875 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-meat.wav?v=0.2.3", + "sha256": "94f8a4f9e116a787e5ed052661d6de9ecf3ad8629db476661dd59ad03014b0c9", + "bytes": 244268, + "sampleRate": 24000, + "channels": 1, + "duration": 5.088, + "rms": 0.10000146176253134, + "peak": 0.44187748432159424 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-oil.wav?v=0.2.3", + "sha256": "55b2c7d6aa8bbce04edf8661882c9781da81c57f56217f99b80457a3bb895da0", + "bytes": 369836, + "sampleRate": 24000, + "channels": 1, + "duration": 7.704, + "rms": 0.10000146897241707, + "peak": 0.6239814162254333 + }, + { + "url": "http://127.0.0.1:4173/audio/first-sound.wav?v=0.2.3", + "sha256": "46f6adeed928a16af0700f1e8626cf8049f124632a04a5d10604426fb06f9596", + "bytes": 353708, + "sampleRate": 24000, + "channels": 1, + "duration": 7.368, + "rms": 0.10000157588418972, + "peak": 0.5189672708511353 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-umbrella.wav?v=0.2.3", + "sha256": "4b4c858a25659540f9dbc524664496fc6de61ab8c1627f3cfee8c9c744e11d5b", + "bytes": 247724, + "sampleRate": 24000, + "channels": 1, + "duration": 5.16, + "rms": 0.10000144286672341, + "peak": 0.46534621715545654 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-oil.wav?v=0.2.3", + "sha256": "3ca98682ff06d1d6b8af02c0fd5b2124f42266ac989884223eff4a9bbde1287a", + "bytes": 399788, + "sampleRate": 24000, + "channels": 1, + "duration": 8.328, + "rms": 0.10000149133669024, + "peak": 0.5243995189666748 + }, + { + "url": "http://127.0.0.1:4173/audio/first-sea.wav?v=0.2.3", + "sha256": "0f0b39314c5f7d7168d4854003c0c284e7bc3438cdc4d1d1c5adab7cb5ed30e5", + "bytes": 349100, + "sampleRate": 24000, + "channels": 1, + "duration": 7.272, + "rms": 0.10000142148394393, + "peak": 0.5717948079109192 + }, + { + "url": "http://127.0.0.1:4173/audio/last-meat.wav?v=0.2.3", + "sha256": "10f8ad4259ed8945c9da831e80b3902303c09caef96d400298599168fb1efed4", + "bytes": 346796, + "sampleRate": 24000, + "channels": 1, + "duration": 7.224, + "rms": 0.10000155834091913, + "peak": 0.537200927734375 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-umbrella.wav?v=0.2.3", + "sha256": "399ea2f681f755918f1117c8baba42739ceca64b307b999342f457a9235050b6", + "bytes": 368684, + "sampleRate": 24000, + "channels": 1, + "duration": 7.68, + "rms": 0.10000155028684544, + "peak": 0.569549560546875 + }, + { + "url": "http://127.0.0.1:4173/audio/message-meat.wav?v=0.2.3", + "sha256": "ce19735df079b54c171e775b6b365385a80160b9033442abab95b2b9c8505e1a", + "bytes": 512684, + "sampleRate": 24000, + "channels": 1, + "duration": 10.68, + "rms": 0.10000140834686953, + "peak": 0.5147705078125 + }, + { + "url": "http://127.0.0.1:4173/audio/message-umbrella.wav?v=0.2.3", + "sha256": "41d5866dae66600df4694a8312b531571d44cece6dba0e423e7c43d09d184819", + "bytes": 523052, + "sampleRate": 24000, + "channels": 1, + "duration": 10.896, + "rms": 0.10000120668553683, + "peak": 0.530364990234375 + }, + { + "url": "http://127.0.0.1:4173/audio/last-furniture.wav?v=0.2.3", + "sha256": "5ad4f776e35439d408abed0e66567d6b5cdc80fc54d579165472e474f1238776", + "bytes": 357164, + "sampleRate": 24000, + "channels": 1, + "duration": 7.44, + "rms": 0.10000152394963031, + "peak": 0.583587646484375 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-sea.wav?v=0.2.3", + "sha256": "8838d6a1ee8a790427dc5aa761e70b3d8872af62086efeed743297ff7f8b8a06", + "bytes": 243116, + "sampleRate": 24000, + "channels": 1, + "duration": 5.064, + "rms": 0.10000138788281714, + "peak": 0.45013427734375 + }, + { + "url": "http://127.0.0.1:4173/audio/message-apple.wav?v=0.2.3", + "sha256": "d85e6f47d871369f00de2274139e5ad6b4b5686b5e20e248df0ed6b9a320d942", + "bytes": 517292, + "sampleRate": 24000, + "channels": 1, + "duration": 10.776, + "rms": 0.10000133916854889, + "peak": 0.525360107421875 + }, + { + "url": "http://127.0.0.1:4173/audio/last-hat.wav?v=0.2.3", + "sha256": "bdaf8fbc54df8061e9e58aa8c14b3044a6e863dc54973ee3ee6ae2c5ae1a28f1", + "bytes": 354860, + "sampleRate": 24000, + "channels": 1, + "duration": 7.392, + "rms": 0.10000152378078818, + "peak": 0.550079345703125 + }, + { + "url": "http://127.0.0.1:4173/audio/first-apple.wav?v=0.2.3", + "sha256": "7c1dbcb3082055df2b8f087f7e906ec867c92f679de0894c34740c05e61a4bc1", + "bytes": 359468, + "sampleRate": 24000, + "channels": 1, + "duration": 7.488, + "rms": 0.10000143468253914, + "peak": 0.57977294921875 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-umbrella.wav?v=0.2.3", + "sha256": "8d3e8e8bc97e5fe3f3362184c4abb12f01a882a1f1174d2644f0f70aac677c0a", + "bytes": 192428, + "sampleRate": 24000, + "channels": 1, + "duration": 4.008, + "rms": 0.10000131475711933, + "peak": 0.385650634765625 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-furniture.wav?v=0.2.3", + "sha256": "5c004a7b2f5a4a918c9f689f1a2dcb219a620ed14313f40a9655b36dbf64948d", + "bytes": 398636, + "sampleRate": 24000, + "channels": 1, + "duration": 8.304, + "rms": 0.10000141690978645, + "peak": 0.487396240234375 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-tree.wav?v=0.2.3", + "sha256": "122f496834fb16d6da47f801e50e46e272e4e934af959467d1db4e490f79be7a", + "bytes": 183212, + "sampleRate": 24000, + "channels": 1, + "duration": 3.816, + "rms": 0.10000140751524371, + "peak": 0.36920166015625 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-tree.wav?v=0.2.3", + "sha256": "00d8e77ec0371971d632724d91f8cf8d947bfb83c582a513b6421be4c457a1da", + "bytes": 241964, + "sampleRate": 24000, + "channels": 1, + "duration": 5.04, + "rms": 0.10000146153372488, + "peak": 0.4585406184196472 + }, + { + "url": "http://127.0.0.1:4173/audio/message-tree.wav?v=0.2.3", + "sha256": "5d684aa710a63d36ed8dcc2a8bfbdd5c71b0b1c63dad2a324adecb76591e85b8", + "bytes": 540332, + "sampleRate": 24000, + "channels": 1, + "duration": 11.256, + "rms": 0.10000132424453942, + "peak": 0.5262451171875 + }, + { + "url": "http://127.0.0.1:4173/audio/last-tree.wav?v=0.2.3", + "sha256": "589e56d940a3c9e80ec02ae0b2dd93463fdc85ef019a753fcd0fded0752055f9", + "bytes": 382508, + "sampleRate": 24000, + "channels": 1, + "duration": 7.968, + "rms": 0.10000149781706567, + "peak": 0.5807672142982483 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-tree.wav?v=0.2.3", + "sha256": "341888c75275c13eb31058f53a1d4276be0daa0a1b5a3a45522036928b83b0c1", + "bytes": 382508, + "sampleRate": 24000, + "channels": 1, + "duration": 7.968, + "rms": 0.1000014873304774, + "peak": 0.600024402141571 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-tree.wav?v=0.2.3", + "sha256": "8735c3d9672561ca237fa87317beec2878492eb9063d6048d5b214423561acc1", + "bytes": 423980, + "sampleRate": 24000, + "channels": 1, + "duration": 8.832, + "rms": 0.10000150947389638, + "peak": 0.6187627911567688 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-furniture.wav?v=0.2.3", + "sha256": "52cb92cdb8ee92b6f581c9d68dbc346f180c470564809ba57185429c9eb84127", + "bytes": 186668, + "sampleRate": 24000, + "channels": 1, + "duration": 3.888, + "rms": 0.1000013480244084, + "peak": 0.387054443359375 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-tree.wav?v=0.2.3", + "sha256": "bc8e54f5407e8866bf1ca1ddfd4f6c63d85fee29bd9e430c7dd33e87974fc5b8", + "bytes": 409004, + "sampleRate": 24000, + "channels": 1, + "duration": 8.52, + "rms": 0.10000146559822108, + "peak": 0.5486617684364319 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-tree.wav?v=0.2.3", + "sha256": "b8e8bbe6b8b14727efd953fae9d4aed2caeb004055d52f611c6378322847edbe", + "bytes": 400940, + "sampleRate": 24000, + "channels": 1, + "duration": 8.352, + "rms": 0.10000144970799159, + "peak": 0.470611572265625 + }, + { + "url": "http://127.0.0.1:4173/audio/first-tree.wav?v=0.2.3", + "sha256": "3178230fd5850b6277a2153b438ec5289720e3db7ac929914cc213964f004bd5", + "bytes": 379052, + "sampleRate": 24000, + "channels": 1, + "duration": 7.896, + "rms": 0.10000144270360484, + "peak": 0.5833613276481628 + }, + { + "url": "http://127.0.0.1:4173/audio/password-tree.wav?v=0.2.3", + "sha256": "67da8147296e35134ec254bc82b58317630061b2c64d2d63c4be197ce8692d50", + "bytes": 233900, + "sampleRate": 24000, + "channels": 1, + "duration": 4.872, + "rms": 0.10000156310809623, + "peak": 0.4904019236564636 + } + ] +} diff --git a/.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 b/.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 new file mode 100644 index 0000000..d6db5ea --- /dev/null +++ b/.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 @@ -0,0 +1,1098 @@ +{ + "chrome": "146.0.7680.80", + "external": [], + "errors": [], + "failed": [], + "files": [ + { + "url": "http://127.0.0.1:4173/audio/intro.wav?v=0.2.3", + "sha256": "90d9f46e6e3f9c8a0c1a781096df54d7809ef4ad38b289508ef7b8c0411465ce", + "bytes": 338732, + "sampleRate": 24000, + "channels": 1, + "duration": 7.056, + "rms": 0.10000144992850359, + "peak": 0.4998626708984375 + }, + { + "url": "http://127.0.0.1:4173/ambience/street.wav?v=0.2.3", + "sha256": "a8bffa201b174618955bc51b860167169125304811aabe2086b0bb35b06c3ae1", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.07999880181401388, + "peak": 0.3967711329460144 + }, + { + "url": "http://127.0.0.1:4173/ambience/mall.wav?v=0.2.3", + "sha256": "680a769940c08f0d12c6c954c08366598dd8b5745e276f39c82b10d1a88261a1", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.07999875178666456, + "peak": 0.7191991806030273 + }, + { + "url": "http://127.0.0.1:4173/ambience/theater.wav?v=0.2.3", + "sha256": "2d6a444fb7874cdf6b2d8a741a69175299b112eb66834912c025437d8277d635", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.07999878601263052, + "peak": 0.495086669921875 + }, + { + "url": "http://127.0.0.1:4173/ambience/department.wav?v=0.2.3", + "sha256": "aa43f3d1d3e7c2b1f8ace24ecbda45d0ea3a031db941c39506dc6c1665b8efa7", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.07999879026023995, + "peak": 0.4749900698661804 + }, + { + "url": "http://127.0.0.1:4173/ambience/market.wav?v=0.2.3", + "sha256": "7a7a980845a4aade2a7e8a108eae746220a4688e92792ee93d3deb76b2a762f6", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.07999876626924392, + "peak": 0.507232666015625 + }, + { + "url": "http://127.0.0.1:4173/ambience/subway.wav?v=0.2.3", + "sha256": "9faf70b68617d267b367a0f3692ed90015458543ab4b0844f6c704e6a724728f", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.079998775670051, + "peak": 0.42530596256256104 + }, + { + "url": "http://127.0.0.1:4173/ambience/cafe.wav?v=0.2.3", + "sha256": "802a956e91b85a2fdd0e1f161d75bfada7a53499bcb57ba7f578411480ded216", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.0799987945764348, + "peak": 0.44708251953125 + }, + { + "url": "http://127.0.0.1:4173/ambience/rain.wav?v=0.2.3", + "sha256": "f4315084e820f742b0709de5bb0d1abd3d5af1730620e08c2948b70347356dd9", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.011384798571746246, + "peak": 0.1024169921875 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-apple.wav?v=0.2.3", + "sha256": "cb7da4e9a1288cac64d168b241f27d7d2bc2dfecace58744f9bbf2792dfad04e", + "bytes": 397484, + "sampleRate": 24000, + "channels": 1, + "duration": 8.28, + "rms": 0.10000142448574952, + "peak": 0.6414685249328613 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-market.wav?v=0.2.3", + "sha256": "b8d25b867497adcd0fe7c8b6a8a8d2e7a52965956738a83e53f58735708773f9", + "bytes": 405548, + "sampleRate": 24000, + "channels": 1, + "duration": 8.448, + "rms": 0.10000141405173993, + "peak": 0.491485595703125 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-sound.wav?v=0.2.3", + "sha256": "34e4d9758d2ed448646fda364610e34779c84794403d9051ab3d8c1d33e2c80c", + "bytes": 184364, + "sampleRate": 24000, + "channels": 1, + "duration": 3.84, + "rms": 0.10000138709171018, + "peak": 0.386322021484375 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-furniture.wav?v=0.2.3", + "sha256": "b45b1afc8d9b534ff3e0a2a2ecb99efc1f4e40d41f89f55c4ed8ba94ad6d76d4", + "bytes": 354860, + "sampleRate": 24000, + "channels": 1, + "duration": 7.392, + "rms": 0.1000015072973225, + "peak": 0.5576171875 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-market.wav?v=0.2.3", + "sha256": "cefa0e95649ea6bd1df4c8dfccd2b74b4f4c028714420ce1087b61db2f2a8d47", + "bytes": 248876, + "sampleRate": 24000, + "channels": 1, + "duration": 5.184, + "rms": 0.10000142548167161, + "peak": 0.4857020676136017 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-oil.wav?v=0.2.3", + "sha256": "f6eff0cdddcad9790351491e60c53cb2a70d222033a583652f2de0b8cd6abcc7", + "bytes": 406700, + "sampleRate": 24000, + "channels": 1, + "duration": 8.472, + "rms": 0.10000139122025363, + "peak": 0.470794677734375 + }, + { + "url": "http://127.0.0.1:4173/audio/first-hat.wav?v=0.2.3", + "sha256": "17c8cde90567e7574b0c0702663bd70713054089ee920241b5444d9b7869eef5", + "bytes": 357164, + "sampleRate": 24000, + "channels": 1, + "duration": 7.44, + "rms": 0.10000152904790521, + "peak": 0.5312662124633789 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-furniture.wav?v=0.2.3", + "sha256": "af82e03b686635c3356e706fe5b05c1231aeaaeab33f275aa5b8714988c65d43", + "bytes": 241964, + "sampleRate": 24000, + "channels": 1, + "duration": 5.04, + "rms": 0.10000137346142077, + "peak": 0.4852443039417267 + }, + { + "url": "http://127.0.0.1:4173/audio/password-sound.wav?v=0.2.3", + "sha256": "044aafff08a19e39f21e58b963644715a987cd155896998769ef8e9ce6449628", + "bytes": 236204, + "sampleRate": 24000, + "channels": 1, + "duration": 4.92, + "rms": 0.10000156641621728, + "peak": 0.4621112644672394 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-hat.wav?v=0.2.3", + "sha256": "f9f98c91cfbcfcb106eef7d5d3795a9cf3c3aab7e19a60f13d7dffe284d19f86", + "bytes": 398636, + "sampleRate": 24000, + "channels": 1, + "duration": 8.304, + "rms": 0.10000141071544869, + "peak": 0.470977783203125 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-apple.wav?v=0.2.3", + "sha256": "7c8f413f4b7e164f090e508ba090448f1376c6012649bbb6a917d45851313883", + "bytes": 188972, + "sampleRate": 24000, + "channels": 1, + "duration": 3.936, + "rms": 0.10000130469939268, + "peak": 0.401641845703125 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-sea.wav?v=0.2.3", + "sha256": "db2f235bee26ac804b5362e8e013b8f40c8da24fd3a34e0fb3b43c6d264feb36", + "bytes": 382508, + "sampleRate": 24000, + "channels": 1, + "duration": 7.968, + "rms": 0.10000145042993039, + "peak": 0.6843470335006714 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-furniture.wav?v=0.2.3", + "sha256": "442bdcb956f120c270e1f321feae0415c897de0183e468980fcc119b898b2a67", + "bytes": 403244, + "sampleRate": 24000, + "channels": 1, + "duration": 8.4, + "rms": 0.10000149119200713, + "peak": 0.5619068145751953 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-sea.wav?v=0.2.3", + "sha256": "b6dbe0af143ea775f05bd59a3d6af348bcc770ab378ac91ea75a56e06c326edf", + "bytes": 346796, + "sampleRate": 24000, + "channels": 1, + "duration": 7.224, + "rms": 0.10000144532868623, + "peak": 0.56494140625 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-sound.wav?v=0.2.3", + "sha256": "e9d636ff7f4777f38b1ff15bebdcec6fbde95b4b4b05625a7415b4cfa0025b59", + "bytes": 395180, + "sampleRate": 24000, + "channels": 1, + "duration": 8.232, + "rms": 0.10000164955559301, + "peak": 0.6114688515663147 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-apple.wav?v=0.2.3", + "sha256": "3ef42e276ff3500c3e197d149f29f79d6a0c1d5516ed1d5a2c57210333fded9c", + "bytes": 246572, + "sampleRate": 24000, + "channels": 1, + "duration": 5.136, + "rms": 0.10000144279302126, + "peak": 0.4701681435108185 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-market.wav?v=0.2.3", + "sha256": "356af25332bf2000ed349671f3ff39767929e1f4599af622c021f907d11fb7bf", + "bytes": 194732, + "sampleRate": 24000, + "channels": 1, + "duration": 4.056, + "rms": 0.10000132629820717, + "peak": 0.4022216796875 + }, + { + "url": "http://127.0.0.1:4173/audio/message-sea.wav?v=0.2.3", + "sha256": "28a461fbe03bffe2560030dea8b60715f7c0fe262dcf85b5b7f7daf483836382", + "bytes": 517292, + "sampleRate": 24000, + "channels": 1, + "duration": 10.776, + "rms": 0.10000130584401576, + "peak": 0.53521728515625 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-umbrella.wav?v=0.2.3", + "sha256": "c8988e604ba05d52597e561389541e8f9cda86e052279f1862bbf8399ead314e", + "bytes": 403244, + "sampleRate": 24000, + "channels": 1, + "duration": 8.4, + "rms": 0.10000148262660476, + "peak": 0.557830810546875 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-hat.wav?v=0.2.3", + "sha256": "308278ec2bd27d4224976a55632d1f7fa1edabb0792126d9d858a699c287aee4", + "bytes": 245420, + "sampleRate": 24000, + "channels": 1, + "duration": 5.112, + "rms": 0.10000140702099906, + "peak": 0.4498428404331207 + }, + { + "url": "http://127.0.0.1:4173/audio/password-furniture.wav?v=0.2.3", + "sha256": "fb2b631dd4e12120d08a84cce6450f9cd9cd68105d13d7001d808e7deaa1df4a", + "bytes": 233900, + "sampleRate": 24000, + "channels": 1, + "duration": 4.872, + "rms": 0.10000146718546903, + "peak": 0.4836573302745819 + }, + { + "url": "http://127.0.0.1:4173/audio/first-market.wav?v=0.2.3", + "sha256": "1e00b8f70a796cdebb0feb00c605fece7488b06915e6e036f54206f05e201e0c", + "bytes": 359468, + "sampleRate": 24000, + "channels": 1, + "duration": 7.488, + "rms": 0.10000152633991319, + "peak": 0.6390880942344666 + }, + { + "url": "http://127.0.0.1:4173/audio/first-meat.wav?v=0.2.3", + "sha256": "f51a37c1722fef581f7d642a4dcae7fcb9953b3c318dce971bf616cd1a81fecc", + "bytes": 345644, + "sampleRate": 24000, + "channels": 1, + "duration": 7.2, + "rms": 0.10000152244411063, + "peak": 0.5131382346153259 + }, + { + "url": "http://127.0.0.1:4173/audio/password-sea.wav?v=0.2.3", + "sha256": "03f45b8cb5b3dc72faf5c6e3d0e2a10cea6b60301ea400d0a4453596d2f0b337", + "bytes": 232748, + "sampleRate": 24000, + "channels": 1, + "duration": 4.848, + "rms": 0.10000144821976133, + "peak": 0.5339213013648987 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-sound.wav?v=0.2.3", + "sha256": "98387ccc7aab566f6487d4c250b2128082cc527e013a6f7b7bc4d0266ac295df", + "bytes": 394028, + "sampleRate": 24000, + "channels": 1, + "duration": 8.208, + "rms": 0.10000158053850364, + "peak": 0.5377971529960632 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-umbrella.wav?v=0.2.3", + "sha256": "5e59ef39113c3d5e106862356d715f4cef2862ef8ee02654a97e532675c1ac6d", + "bytes": 410156, + "sampleRate": 24000, + "channels": 1, + "duration": 8.544, + "rms": 0.10000147499132286, + "peak": 0.6748558282852173 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-hat.wav?v=0.2.3", + "sha256": "b01ef9762ac84e3eb757243bc9286c62f7d45444a821ae35ac36a8b095e1598a", + "bytes": 353708, + "sampleRate": 24000, + "channels": 1, + "duration": 7.368, + "rms": 0.10000153089787694, + "peak": 0.555206298828125 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-market.wav?v=0.2.3", + "sha256": "d89792da51c83ac49d27e55aa6d822a338899a5ee487b34b552748201e1522f6", + "bytes": 398636, + "sampleRate": 24000, + "channels": 1, + "duration": 8.304, + "rms": 0.10000149710778367, + "peak": 0.5728324055671692 + }, + { + "url": "http://127.0.0.1:4173/audio/password-umbrella.wav?v=0.2.3", + "sha256": "ab3ca6398c879971dc793eb25b472fcc0db72d76e386f11ef4d32c639f37c69d", + "bytes": 239660, + "sampleRate": 24000, + "channels": 1, + "duration": 4.992, + "rms": 0.100001426973271, + "peak": 0.4776757061481476 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-meat.wav?v=0.2.3", + "sha256": "48e91b3932d3798e852041a854b3ee08c72127e092c62083a47af6b99adff241", + "bytes": 403244, + "sampleRate": 24000, + "channels": 1, + "duration": 8.4, + "rms": 0.10000140336390047, + "peak": 0.481536865234375 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-hat.wav?v=0.2.3", + "sha256": "6e089a42fd7e65e82eec7186d369c926fb7fdac794365b2bd7658822fd92437c", + "bytes": 396332, + "sampleRate": 24000, + "channels": 1, + "duration": 8.256, + "rms": 0.1000015662548192, + "peak": 0.616748571395874 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-sound.wav?v=0.2.3", + "sha256": "4d00aa6114327f450a00dacbc7e7b572ebf1de4ce9dc2fe4b5505766cca71ce9", + "bytes": 353708, + "sampleRate": 24000, + "channels": 1, + "duration": 7.368, + "rms": 0.10000162019345048, + "peak": 0.5348368883132935 + }, + { + "url": "http://127.0.0.1:4173/audio/last-oil.wav?v=0.2.3", + "sha256": "b5ce34950b8b31b1baf6ce55410797f0d8aa5478a670d6eace87cf76d134d6d3", + "bytes": 337580, + "sampleRate": 24000, + "channels": 1, + "duration": 7.032, + "rms": 0.10000149980584365, + "peak": 0.55706787109375 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-sea.wav?v=0.2.3", + "sha256": "47aa31d757c9fb49c9b53a1c052d90a5ced4be57549d649850d9b48f8864045b", + "bytes": 191276, + "sampleRate": 24000, + "channels": 1, + "duration": 3.984, + "rms": 0.10000129182106483, + "peak": 0.388702392578125 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-sound.wav?v=0.2.3", + "sha256": "659eb0e2b06e6b165b46744769743e032e2282519f8486c57bc45e0f7d07a069", + "bytes": 240812, + "sampleRate": 24000, + "channels": 1, + "duration": 5.016, + "rms": 0.10000152909529536, + "peak": 0.45481735467910767 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-meat.wav?v=0.2.3", + "sha256": "6599d2fac73ea616a793151b4ce6f51af673988d630bac6219a77e78ae6cb34e", + "bytes": 380204, + "sampleRate": 24000, + "channels": 1, + "duration": 7.92, + "rms": 0.1000016061190976, + "peak": 0.5921201109886169 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-market.wav?v=0.2.3", + "sha256": "c855b449e0d4ace74681bfe68e5e7f0b063568827ae872017234dbe8ae119e4c", + "bytes": 356012, + "sampleRate": 24000, + "channels": 1, + "duration": 7.416, + "rms": 0.10000151456676445, + "peak": 0.5949888825416565 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-furniture.wav?v=0.2.3", + "sha256": "bf84dc6cff1f227924a3a62158d2fc18769fb0ca40b91418fa19e534dbf92f00", + "bytes": 397484, + "sampleRate": 24000, + "channels": 1, + "duration": 8.28, + "rms": 0.10000155255948041, + "peak": 0.6670430898666382 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-sound.wav?v=0.2.3", + "sha256": "5a603bc69979603afddcaeb6edf500a7c540b72405daeb33f5335d746b327da1", + "bytes": 397484, + "sampleRate": 24000, + "channels": 1, + "duration": 8.28, + "rms": 0.10000146491234768, + "peak": 0.469268798828125 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-meat.wav?v=0.2.3", + "sha256": "9183ef90b64f5ceaf3bb0178c689231ff3e9981d6ce889124a15f2a6e2b7a344", + "bytes": 395180, + "sampleRate": 24000, + "channels": 1, + "duration": 8.232, + "rms": 0.10000155087122137, + "peak": 0.5193029642105103 + }, + { + "url": "http://127.0.0.1:4173/audio/last-sound.wav?v=0.2.3", + "sha256": "ec9c49802aebeb6a8b898a1c0d8ad1daa127d2d64c905c197ed49a8e0c4eb64a", + "bytes": 354860, + "sampleRate": 24000, + "channels": 1, + "duration": 7.392, + "rms": 0.10000165748716579, + "peak": 0.5641041398048401 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-oil.wav?v=0.2.3", + "sha256": "5fb63e04520c312aa6b7b48b70c2f7c140b5ab480e5c6992edbc2ba85b9a06e7", + "bytes": 241964, + "sampleRate": 24000, + "channels": 1, + "duration": 5.04, + "rms": 0.10000143720418167, + "peak": 0.443586528301239 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-umbrella.wav?v=0.2.3", + "sha256": "92b54f04884ab915783945077efd8f3bd443849a1720f72168b6348cae1f8e85", + "bytes": 406700, + "sampleRate": 24000, + "channels": 1, + "duration": 8.472, + "rms": 0.10000140257790288, + "peak": 0.479034423828125 + }, + { + "url": "http://127.0.0.1:4173/audio/message-sound.wav?v=0.2.3", + "sha256": "1e682147dae8026ba78dc8f256c7f24acb3a6743bfd88a0fcc86096930eef078", + "bytes": 521900, + "sampleRate": 24000, + "channels": 1, + "duration": 10.872, + "rms": 0.10000138583471241, + "peak": 0.51953125 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-apple.wav?v=0.2.3", + "sha256": "ccd7327a3fb54d3320d049ffdced3bc17595861cee69429c0ee97182d454195b", + "bytes": 402092, + "sampleRate": 24000, + "channels": 1, + "duration": 8.376, + "rms": 0.10000140667715379, + "peak": 0.490325927734375 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-sea.wav?v=0.2.3", + "sha256": "5c91a36496e274d2be9c6fa8d9b506cd04f2a1b7ceb05ed1b7bb03fe7fca99d9", + "bytes": 399788, + "sampleRate": 24000, + "channels": 1, + "duration": 8.328, + "rms": 0.10000144241513113, + "peak": 0.5465559959411621 + }, + { + "url": "http://127.0.0.1:4173/audio/message-hat.wav?v=0.2.3", + "sha256": "5a713a8522b231bb8276805c014b385b9150b79f58ff2618446607e2b442495e", + "bytes": 518444, + "sampleRate": 24000, + "channels": 1, + "duration": 10.8, + "rms": 0.10000136927555209, + "peak": 0.587005615234375 + }, + { + "url": "http://127.0.0.1:4173/audio/password-meat.wav?v=0.2.3", + "sha256": "b009caadd56350d6a641ff17f0973e2b2724c183e1f45ae0bf3c483e237fa99e", + "bytes": 240812, + "sampleRate": 24000, + "channels": 1, + "duration": 5.016, + "rms": 0.10000148386024335, + "peak": 0.4978789687156677 + }, + { + "url": "http://127.0.0.1:4173/audio/message-market.wav?v=0.2.3", + "sha256": "9242d4cd6e0030e6b073e4d2360f84aa8a454d1749711cdb2d64c14f28a7ea20", + "bytes": 523052, + "sampleRate": 24000, + "channels": 1, + "duration": 10.896, + "rms": 0.10000133805787564, + "peak": 0.534820556640625 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-apple.wav?v=0.2.3", + "sha256": "8832f1b793ab3eedbe663875ea8dbeabb122c329bd5879437c71230b0418c3c8", + "bytes": 360620, + "sampleRate": 24000, + "channels": 1, + "duration": 7.512, + "rms": 0.10000145024648589, + "peak": 0.553558349609375 + }, + { + "url": "http://127.0.0.1:4173/audio/last-umbrella.wav?v=0.2.3", + "sha256": "c801293a34013a8d93d3289a2cc87cd3eed83f97ba4647f5060efa00b117a9ad", + "bytes": 370988, + "sampleRate": 24000, + "channels": 1, + "duration": 7.728, + "rms": 0.10000149360501835, + "peak": 0.59765625 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-sea.wav?v=0.2.3", + "sha256": "9233431d78ab4b144e3c33ad0cf0d49fc0fb91b29514343230ba32987b794bb3", + "bytes": 398636, + "sampleRate": 24000, + "channels": 1, + "duration": 8.304, + "rms": 0.10000134688905045, + "peak": 0.49616992473602295 + }, + { + "url": "http://127.0.0.1:4173/audio/password-apple.wav?v=0.2.3", + "sha256": "b6f5de3fe571fe3a7fdb722fe49250bcfeedef49475271e0ec76a7630907edd5", + "bytes": 235052, + "sampleRate": 24000, + "channels": 1, + "duration": 4.896, + "rms": 0.10000148212193387, + "peak": 0.4834437072277069 + }, + { + "url": "http://127.0.0.1:4173/audio/first-furniture.wav?v=0.2.3", + "sha256": "29f007b385b7182db1d8aeccad4fc3c260df5e66e14e52a46b0ef0fcd0ff3a0a", + "bytes": 364076, + "sampleRate": 24000, + "channels": 1, + "duration": 7.584, + "rms": 0.1000014551820741, + "peak": 0.5700552463531494 + }, + { + "url": "http://127.0.0.1:4173/audio/password-hat.wav?v=0.2.3", + "sha256": "e91bfc97df90a1675b6cd856880ac15c54de32cfc3b23603bdd1c2c5ac3ce6b8", + "bytes": 235052, + "sampleRate": 24000, + "channels": 1, + "duration": 4.896, + "rms": 0.10000146155157119, + "peak": 0.5059053301811218 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-oil.wav?v=0.2.3", + "sha256": "7a6b122b11c07da86c95fb78e2db2a70681b5219c63d6441fe56da1979ac1dc3", + "bytes": 334124, + "sampleRate": 24000, + "channels": 1, + "duration": 6.96, + "rms": 0.1000014880654183, + "peak": 0.539933443069458 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-meat.wav?v=0.2.3", + "sha256": "d416107cc05e7c5b92ca27100a10a8a9689de913346179945d5542de4a6bac0c", + "bytes": 342188, + "sampleRate": 24000, + "channels": 1, + "duration": 7.128, + "rms": 0.10000157422522808, + "peak": 0.510833740234375 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-apple.wav?v=0.2.3", + "sha256": "1bf2aef9a9f030af1a8fd7dee8f44aa420a397b3ba99b575feeb3dc7a63ec191", + "bytes": 395180, + "sampleRate": 24000, + "channels": 1, + "duration": 8.232, + "rms": 0.10000148399213096, + "peak": 0.563568115234375 + }, + { + "url": "http://127.0.0.1:4173/audio/first-oil.wav?v=0.2.3", + "sha256": "f415195e0cfc7ee711d09de7519e88eab62cc8b58d70772c83c3f5c27c267819", + "bytes": 335276, + "sampleRate": 24000, + "channels": 1, + "duration": 6.984, + "rms": 0.10000145886808136, + "peak": 0.5347453355789185 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-hat.wav?v=0.2.3", + "sha256": "31a6a4270bf368cda419094d87a303ac3cd5c22539786cb165f8044b0b8e9d6e", + "bytes": 402092, + "sampleRate": 24000, + "channels": 1, + "duration": 8.376, + "rms": 0.10000145804818952, + "peak": 0.541778564453125 + }, + { + "url": "http://127.0.0.1:4173/audio/message-furniture.wav?v=0.2.3", + "sha256": "26c331b7e12311236f4bb48f88918dfbf53cccd2f50b55741ea6ff4473e71dd8", + "bytes": 521900, + "sampleRate": 24000, + "channels": 1, + "duration": 10.872, + "rms": 0.10000134596838128, + "peak": 0.529327392578125 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-oil.wav?v=0.2.3", + "sha256": "3fa1e662a3af8f2726b17b2baa5bec2934406e6595ebc243c8380dd16e190977", + "bytes": 190124, + "sampleRate": 24000, + "channels": 1, + "duration": 3.96, + "rms": 0.10000134375667624, + "peak": 0.3817255198955536 + }, + { + "url": "http://127.0.0.1:4173/audio/last-sea.wav?v=0.2.3", + "sha256": "f755452e1da44674aa1df7d12edffa988091b89a394e7eb6d4a00eb721f07cbf", + "bytes": 345644, + "sampleRate": 24000, + "channels": 1, + "duration": 7.2, + "rms": 0.10000140162255576, + "peak": 0.591033935546875 + }, + { + "url": "http://127.0.0.1:4173/audio/password-oil.wav?v=0.2.3", + "sha256": "b472957b27ff98ea7b8894fa1ff12653f7e9f66f77870faa9e52a1c1bf116c41", + "bytes": 240812, + "sampleRate": 24000, + "channels": 1, + "duration": 5.016, + "rms": 0.10000146772662066, + "peak": 0.4945219159126282 + }, + { + "url": "http://127.0.0.1:4173/audio/first-umbrella.wav?v=0.2.3", + "sha256": "878e0bd2e6e4105f175aef51a028f6b141f3a2072be20f783193f3ba897a3ee0", + "bytes": 366380, + "sampleRate": 24000, + "channels": 1, + "duration": 7.632, + "rms": 0.10000147647908036, + "peak": 0.5700247287750244 + }, + { + "url": "http://127.0.0.1:4173/audio/last-apple.wav?v=0.2.3", + "sha256": "4cb2a8579fa3a7b91bb36363826ce8ca0d6d86e96e16a479e226a2802edd82f7", + "bytes": 356012, + "sampleRate": 24000, + "channels": 1, + "duration": 7.416, + "rms": 0.10000144523423521, + "peak": 0.622528076171875 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-market.wav?v=0.2.3", + "sha256": "68a5b899115a66ab225d610ec47b4de56cc8793657362bc38f533c06f741e4cc", + "bytes": 402092, + "sampleRate": 24000, + "channels": 1, + "duration": 8.376, + "rms": 0.10000160159844854, + "peak": 0.6822717785835266 + }, + { + "url": "http://127.0.0.1:4173/audio/message-oil.wav?v=0.2.3", + "sha256": "a2a71a7e5e07c81871a25c6cb7540c39aa0b32fc44f78cda66b5f34ace98d805", + "bytes": 509228, + "sampleRate": 24000, + "channels": 1, + "duration": 10.608, + "rms": 0.10000135184106136, + "peak": 0.51812744140625 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-meat.wav?v=0.2.3", + "sha256": "d36dfc395a5c53fbfa4abe9980db7bb59adfdac59e40318c4aca365365e3f2ab", + "bytes": 187820, + "sampleRate": 24000, + "channels": 1, + "duration": 3.912, + "rms": 0.1000013329979738, + "peak": 0.371124267578125 + }, + { + "url": "http://127.0.0.1:4173/audio/password-market.wav?v=0.2.3", + "sha256": "02e325fb753ef7a3ee585a03d2ca2aa3f1fbc58523b062222ae1136eeed7a95c", + "bytes": 230444, + "sampleRate": 24000, + "channels": 1, + "duration": 4.8, + "rms": 0.10000151520861549, + "peak": 0.48170414566993713 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-hat.wav?v=0.2.3", + "sha256": "4ff43dd042f4b5451e9fdeb3edd59f1e389a7d1dd488094587a3a9fc7dfffa44", + "bytes": 191276, + "sampleRate": 24000, + "channels": 1, + "duration": 3.984, + "rms": 0.10000132502946775, + "peak": 0.417083740234375 + }, + { + "url": "http://127.0.0.1:4173/audio/last-market.wav?v=0.2.3", + "sha256": "7857e87e9dbfe8fe849cc0b18c1d45b60916cb337328099c7a87a42c82e2821e", + "bytes": 359468, + "sampleRate": 24000, + "channels": 1, + "duration": 7.488, + "rms": 0.10000148064140717, + "peak": 0.600555419921875 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-meat.wav?v=0.2.3", + "sha256": "94f8a4f9e116a787e5ed052661d6de9ecf3ad8629db476661dd59ad03014b0c9", + "bytes": 244268, + "sampleRate": 24000, + "channels": 1, + "duration": 5.088, + "rms": 0.10000146176253134, + "peak": 0.44187748432159424 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-oil.wav?v=0.2.3", + "sha256": "55b2c7d6aa8bbce04edf8661882c9781da81c57f56217f99b80457a3bb895da0", + "bytes": 369836, + "sampleRate": 24000, + "channels": 1, + "duration": 7.704, + "rms": 0.10000146897241707, + "peak": 0.6239814162254333 + }, + { + "url": "http://127.0.0.1:4173/audio/first-sound.wav?v=0.2.3", + "sha256": "46f6adeed928a16af0700f1e8626cf8049f124632a04a5d10604426fb06f9596", + "bytes": 353708, + "sampleRate": 24000, + "channels": 1, + "duration": 7.368, + "rms": 0.10000157588418972, + "peak": 0.5189672708511353 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-umbrella.wav?v=0.2.3", + "sha256": "4b4c858a25659540f9dbc524664496fc6de61ab8c1627f3cfee8c9c744e11d5b", + "bytes": 247724, + "sampleRate": 24000, + "channels": 1, + "duration": 5.16, + "rms": 0.10000144286672341, + "peak": 0.46534621715545654 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-oil.wav?v=0.2.3", + "sha256": "3ca98682ff06d1d6b8af02c0fd5b2124f42266ac989884223eff4a9bbde1287a", + "bytes": 399788, + "sampleRate": 24000, + "channels": 1, + "duration": 8.328, + "rms": 0.10000149133669024, + "peak": 0.5243995189666748 + }, + { + "url": "http://127.0.0.1:4173/audio/first-sea.wav?v=0.2.3", + "sha256": "0f0b39314c5f7d7168d4854003c0c284e7bc3438cdc4d1d1c5adab7cb5ed30e5", + "bytes": 349100, + "sampleRate": 24000, + "channels": 1, + "duration": 7.272, + "rms": 0.10000142148394393, + "peak": 0.5717948079109192 + }, + { + "url": "http://127.0.0.1:4173/audio/last-meat.wav?v=0.2.3", + "sha256": "10f8ad4259ed8945c9da831e80b3902303c09caef96d400298599168fb1efed4", + "bytes": 346796, + "sampleRate": 24000, + "channels": 1, + "duration": 7.224, + "rms": 0.10000155834091913, + "peak": 0.537200927734375 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-umbrella.wav?v=0.2.3", + "sha256": "399ea2f681f755918f1117c8baba42739ceca64b307b999342f457a9235050b6", + "bytes": 368684, + "sampleRate": 24000, + "channels": 1, + "duration": 7.68, + "rms": 0.10000155028684544, + "peak": 0.569549560546875 + }, + { + "url": "http://127.0.0.1:4173/audio/message-meat.wav?v=0.2.3", + "sha256": "ce19735df079b54c171e775b6b365385a80160b9033442abab95b2b9c8505e1a", + "bytes": 512684, + "sampleRate": 24000, + "channels": 1, + "duration": 10.68, + "rms": 0.10000140834686953, + "peak": 0.5147705078125 + }, + { + "url": "http://127.0.0.1:4173/audio/message-umbrella.wav?v=0.2.3", + "sha256": "41d5866dae66600df4694a8312b531571d44cece6dba0e423e7c43d09d184819", + "bytes": 523052, + "sampleRate": 24000, + "channels": 1, + "duration": 10.896, + "rms": 0.10000120668553683, + "peak": 0.530364990234375 + }, + { + "url": "http://127.0.0.1:4173/audio/last-furniture.wav?v=0.2.3", + "sha256": "5ad4f776e35439d408abed0e66567d6b5cdc80fc54d579165472e474f1238776", + "bytes": 357164, + "sampleRate": 24000, + "channels": 1, + "duration": 7.44, + "rms": 0.10000152394963031, + "peak": 0.583587646484375 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-sea.wav?v=0.2.3", + "sha256": "8838d6a1ee8a790427dc5aa761e70b3d8872af62086efeed743297ff7f8b8a06", + "bytes": 243116, + "sampleRate": 24000, + "channels": 1, + "duration": 5.064, + "rms": 0.10000138788281714, + "peak": 0.45013427734375 + }, + { + "url": "http://127.0.0.1:4173/audio/message-apple.wav?v=0.2.3", + "sha256": "d85e6f47d871369f00de2274139e5ad6b4b5686b5e20e248df0ed6b9a320d942", + "bytes": 517292, + "sampleRate": 24000, + "channels": 1, + "duration": 10.776, + "rms": 0.10000133916854889, + "peak": 0.525360107421875 + }, + { + "url": "http://127.0.0.1:4173/audio/last-hat.wav?v=0.2.3", + "sha256": "bdaf8fbc54df8061e9e58aa8c14b3044a6e863dc54973ee3ee6ae2c5ae1a28f1", + "bytes": 354860, + "sampleRate": 24000, + "channels": 1, + "duration": 7.392, + "rms": 0.10000152378078818, + "peak": 0.550079345703125 + }, + { + "url": "http://127.0.0.1:4173/audio/first-apple.wav?v=0.2.3", + "sha256": "7c1dbcb3082055df2b8f087f7e906ec867c92f679de0894c34740c05e61a4bc1", + "bytes": 359468, + "sampleRate": 24000, + "channels": 1, + "duration": 7.488, + "rms": 0.10000143468253914, + "peak": 0.57977294921875 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-umbrella.wav?v=0.2.3", + "sha256": "8d3e8e8bc97e5fe3f3362184c4abb12f01a882a1f1174d2644f0f70aac677c0a", + "bytes": 192428, + "sampleRate": 24000, + "channels": 1, + "duration": 4.008, + "rms": 0.10000131475711933, + "peak": 0.385650634765625 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-furniture.wav?v=0.2.3", + "sha256": "5c004a7b2f5a4a918c9f689f1a2dcb219a620ed14313f40a9655b36dbf64948d", + "bytes": 398636, + "sampleRate": 24000, + "channels": 1, + "duration": 8.304, + "rms": 0.10000141690978645, + "peak": 0.487396240234375 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-tree.wav?v=0.2.3", + "sha256": "122f496834fb16d6da47f801e50e46e272e4e934af959467d1db4e490f79be7a", + "bytes": 183212, + "sampleRate": 24000, + "channels": 1, + "duration": 3.816, + "rms": 0.10000140751524371, + "peak": 0.36920166015625 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-tree.wav?v=0.2.3", + "sha256": "00d8e77ec0371971d632724d91f8cf8d947bfb83c582a513b6421be4c457a1da", + "bytes": 241964, + "sampleRate": 24000, + "channels": 1, + "duration": 5.04, + "rms": 0.10000146153372488, + "peak": 0.4585406184196472 + }, + { + "url": "http://127.0.0.1:4173/audio/message-tree.wav?v=0.2.3", + "sha256": "5d684aa710a63d36ed8dcc2a8bfbdd5c71b0b1c63dad2a324adecb76591e85b8", + "bytes": 540332, + "sampleRate": 24000, + "channels": 1, + "duration": 11.256, + "rms": 0.10000132424453942, + "peak": 0.5262451171875 + }, + { + "url": "http://127.0.0.1:4173/audio/last-tree.wav?v=0.2.3", + "sha256": "589e56d940a3c9e80ec02ae0b2dd93463fdc85ef019a753fcd0fded0752055f9", + "bytes": 382508, + "sampleRate": 24000, + "channels": 1, + "duration": 7.968, + "rms": 0.10000149781706567, + "peak": 0.5807672142982483 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-tree.wav?v=0.2.3", + "sha256": "341888c75275c13eb31058f53a1d4276be0daa0a1b5a3a45522036928b83b0c1", + "bytes": 382508, + "sampleRate": 24000, + "channels": 1, + "duration": 7.968, + "rms": 0.1000014873304774, + "peak": 0.600024402141571 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-tree.wav?v=0.2.3", + "sha256": "8735c3d9672561ca237fa87317beec2878492eb9063d6048d5b214423561acc1", + "bytes": 423980, + "sampleRate": 24000, + "channels": 1, + "duration": 8.832, + "rms": 0.10000150947389638, + "peak": 0.6187627911567688 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-furniture.wav?v=0.2.3", + "sha256": "52cb92cdb8ee92b6f581c9d68dbc346f180c470564809ba57185429c9eb84127", + "bytes": 186668, + "sampleRate": 24000, + "channels": 1, + "duration": 3.888, + "rms": 0.1000013480244084, + "peak": 0.387054443359375 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-tree.wav?v=0.2.3", + "sha256": "bc8e54f5407e8866bf1ca1ddfd4f6c63d85fee29bd9e430c7dd33e87974fc5b8", + "bytes": 409004, + "sampleRate": 24000, + "channels": 1, + "duration": 8.52, + "rms": 0.10000146559822108, + "peak": 0.5486617684364319 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-tree.wav?v=0.2.3", + "sha256": "b8e8bbe6b8b14727efd953fae9d4aed2caeb004055d52f611c6378322847edbe", + "bytes": 400940, + "sampleRate": 24000, + "channels": 1, + "duration": 8.352, + "rms": 0.10000144970799159, + "peak": 0.470611572265625 + }, + { + "url": "http://127.0.0.1:4173/audio/first-tree.wav?v=0.2.3", + "sha256": "3178230fd5850b6277a2153b438ec5289720e3db7ac929914cc213964f004bd5", + "bytes": 379052, + "sampleRate": 24000, + "channels": 1, + "duration": 7.896, + "rms": 0.10000144270360484, + "peak": 0.5833613276481628 + }, + { + "url": "http://127.0.0.1:4173/audio/password-tree.wav?v=0.2.3", + "sha256": "67da8147296e35134ec254bc82b58317630061b2c64d2d63c4be197ce8692d50", + "bytes": 233900, + "sampleRate": 24000, + "channels": 1, + "duration": 4.872, + "rms": 0.10000156310809623, + "peak": 0.4904019236564636 + } + ] +} diff --git a/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-final/audio-음성·현장음-109개-versioned-WAV를-실제-Chrome에서-해시·디코드-검증한다-mobile/browser-audio-integrity.json b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-final/audio-음성·현장음-109개-versioned-WAV를-실제-Chrome에서-해시·디코드-검증한다-mobile/browser-audio-integrity.json new file mode 100644 index 0000000..d6db5ea --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-final/audio-음성·현장음-109개-versioned-WAV를-실제-Chrome에서-해시·디코드-검증한다-mobile/browser-audio-integrity.json @@ -0,0 +1,1098 @@ +{ + "chrome": "146.0.7680.80", + "external": [], + "errors": [], + "failed": [], + "files": [ + { + "url": "http://127.0.0.1:4173/audio/intro.wav?v=0.2.3", + "sha256": "90d9f46e6e3f9c8a0c1a781096df54d7809ef4ad38b289508ef7b8c0411465ce", + "bytes": 338732, + "sampleRate": 24000, + "channels": 1, + "duration": 7.056, + "rms": 0.10000144992850359, + "peak": 0.4998626708984375 + }, + { + "url": "http://127.0.0.1:4173/ambience/street.wav?v=0.2.3", + "sha256": "a8bffa201b174618955bc51b860167169125304811aabe2086b0bb35b06c3ae1", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.07999880181401388, + "peak": 0.3967711329460144 + }, + { + "url": "http://127.0.0.1:4173/ambience/mall.wav?v=0.2.3", + "sha256": "680a769940c08f0d12c6c954c08366598dd8b5745e276f39c82b10d1a88261a1", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.07999875178666456, + "peak": 0.7191991806030273 + }, + { + "url": "http://127.0.0.1:4173/ambience/theater.wav?v=0.2.3", + "sha256": "2d6a444fb7874cdf6b2d8a741a69175299b112eb66834912c025437d8277d635", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.07999878601263052, + "peak": 0.495086669921875 + }, + { + "url": "http://127.0.0.1:4173/ambience/department.wav?v=0.2.3", + "sha256": "aa43f3d1d3e7c2b1f8ace24ecbda45d0ea3a031db941c39506dc6c1665b8efa7", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.07999879026023995, + "peak": 0.4749900698661804 + }, + { + "url": "http://127.0.0.1:4173/ambience/market.wav?v=0.2.3", + "sha256": "7a7a980845a4aade2a7e8a108eae746220a4688e92792ee93d3deb76b2a762f6", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.07999876626924392, + "peak": 0.507232666015625 + }, + { + "url": "http://127.0.0.1:4173/ambience/subway.wav?v=0.2.3", + "sha256": "9faf70b68617d267b367a0f3692ed90015458543ab4b0844f6c704e6a724728f", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.079998775670051, + "peak": 0.42530596256256104 + }, + { + "url": "http://127.0.0.1:4173/ambience/cafe.wav?v=0.2.3", + "sha256": "802a956e91b85a2fdd0e1f161d75bfada7a53499bcb57ba7f578411480ded216", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.0799987945764348, + "peak": 0.44708251953125 + }, + { + "url": "http://127.0.0.1:4173/ambience/rain.wav?v=0.2.3", + "sha256": "f4315084e820f742b0709de5bb0d1abd3d5af1730620e08c2948b70347356dd9", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.011384798571746246, + "peak": 0.1024169921875 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-apple.wav?v=0.2.3", + "sha256": "cb7da4e9a1288cac64d168b241f27d7d2bc2dfecace58744f9bbf2792dfad04e", + "bytes": 397484, + "sampleRate": 24000, + "channels": 1, + "duration": 8.28, + "rms": 0.10000142448574952, + "peak": 0.6414685249328613 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-market.wav?v=0.2.3", + "sha256": "b8d25b867497adcd0fe7c8b6a8a8d2e7a52965956738a83e53f58735708773f9", + "bytes": 405548, + "sampleRate": 24000, + "channels": 1, + "duration": 8.448, + "rms": 0.10000141405173993, + "peak": 0.491485595703125 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-sound.wav?v=0.2.3", + "sha256": "34e4d9758d2ed448646fda364610e34779c84794403d9051ab3d8c1d33e2c80c", + "bytes": 184364, + "sampleRate": 24000, + "channels": 1, + "duration": 3.84, + "rms": 0.10000138709171018, + "peak": 0.386322021484375 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-furniture.wav?v=0.2.3", + "sha256": "b45b1afc8d9b534ff3e0a2a2ecb99efc1f4e40d41f89f55c4ed8ba94ad6d76d4", + "bytes": 354860, + "sampleRate": 24000, + "channels": 1, + "duration": 7.392, + "rms": 0.1000015072973225, + "peak": 0.5576171875 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-market.wav?v=0.2.3", + "sha256": "cefa0e95649ea6bd1df4c8dfccd2b74b4f4c028714420ce1087b61db2f2a8d47", + "bytes": 248876, + "sampleRate": 24000, + "channels": 1, + "duration": 5.184, + "rms": 0.10000142548167161, + "peak": 0.4857020676136017 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-oil.wav?v=0.2.3", + "sha256": "f6eff0cdddcad9790351491e60c53cb2a70d222033a583652f2de0b8cd6abcc7", + "bytes": 406700, + "sampleRate": 24000, + "channels": 1, + "duration": 8.472, + "rms": 0.10000139122025363, + "peak": 0.470794677734375 + }, + { + "url": "http://127.0.0.1:4173/audio/first-hat.wav?v=0.2.3", + "sha256": "17c8cde90567e7574b0c0702663bd70713054089ee920241b5444d9b7869eef5", + "bytes": 357164, + "sampleRate": 24000, + "channels": 1, + "duration": 7.44, + "rms": 0.10000152904790521, + "peak": 0.5312662124633789 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-furniture.wav?v=0.2.3", + "sha256": "af82e03b686635c3356e706fe5b05c1231aeaaeab33f275aa5b8714988c65d43", + "bytes": 241964, + "sampleRate": 24000, + "channels": 1, + "duration": 5.04, + "rms": 0.10000137346142077, + "peak": 0.4852443039417267 + }, + { + "url": "http://127.0.0.1:4173/audio/password-sound.wav?v=0.2.3", + "sha256": "044aafff08a19e39f21e58b963644715a987cd155896998769ef8e9ce6449628", + "bytes": 236204, + "sampleRate": 24000, + "channels": 1, + "duration": 4.92, + "rms": 0.10000156641621728, + "peak": 0.4621112644672394 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-hat.wav?v=0.2.3", + "sha256": "f9f98c91cfbcfcb106eef7d5d3795a9cf3c3aab7e19a60f13d7dffe284d19f86", + "bytes": 398636, + "sampleRate": 24000, + "channels": 1, + "duration": 8.304, + "rms": 0.10000141071544869, + "peak": 0.470977783203125 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-apple.wav?v=0.2.3", + "sha256": "7c8f413f4b7e164f090e508ba090448f1376c6012649bbb6a917d45851313883", + "bytes": 188972, + "sampleRate": 24000, + "channels": 1, + "duration": 3.936, + "rms": 0.10000130469939268, + "peak": 0.401641845703125 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-sea.wav?v=0.2.3", + "sha256": "db2f235bee26ac804b5362e8e013b8f40c8da24fd3a34e0fb3b43c6d264feb36", + "bytes": 382508, + "sampleRate": 24000, + "channels": 1, + "duration": 7.968, + "rms": 0.10000145042993039, + "peak": 0.6843470335006714 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-furniture.wav?v=0.2.3", + "sha256": "442bdcb956f120c270e1f321feae0415c897de0183e468980fcc119b898b2a67", + "bytes": 403244, + "sampleRate": 24000, + "channels": 1, + "duration": 8.4, + "rms": 0.10000149119200713, + "peak": 0.5619068145751953 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-sea.wav?v=0.2.3", + "sha256": "b6dbe0af143ea775f05bd59a3d6af348bcc770ab378ac91ea75a56e06c326edf", + "bytes": 346796, + "sampleRate": 24000, + "channels": 1, + "duration": 7.224, + "rms": 0.10000144532868623, + "peak": 0.56494140625 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-sound.wav?v=0.2.3", + "sha256": "e9d636ff7f4777f38b1ff15bebdcec6fbde95b4b4b05625a7415b4cfa0025b59", + "bytes": 395180, + "sampleRate": 24000, + "channels": 1, + "duration": 8.232, + "rms": 0.10000164955559301, + "peak": 0.6114688515663147 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-apple.wav?v=0.2.3", + "sha256": "3ef42e276ff3500c3e197d149f29f79d6a0c1d5516ed1d5a2c57210333fded9c", + "bytes": 246572, + "sampleRate": 24000, + "channels": 1, + "duration": 5.136, + "rms": 0.10000144279302126, + "peak": 0.4701681435108185 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-market.wav?v=0.2.3", + "sha256": "356af25332bf2000ed349671f3ff39767929e1f4599af622c021f907d11fb7bf", + "bytes": 194732, + "sampleRate": 24000, + "channels": 1, + "duration": 4.056, + "rms": 0.10000132629820717, + "peak": 0.4022216796875 + }, + { + "url": "http://127.0.0.1:4173/audio/message-sea.wav?v=0.2.3", + "sha256": "28a461fbe03bffe2560030dea8b60715f7c0fe262dcf85b5b7f7daf483836382", + "bytes": 517292, + "sampleRate": 24000, + "channels": 1, + "duration": 10.776, + "rms": 0.10000130584401576, + "peak": 0.53521728515625 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-umbrella.wav?v=0.2.3", + "sha256": "c8988e604ba05d52597e561389541e8f9cda86e052279f1862bbf8399ead314e", + "bytes": 403244, + "sampleRate": 24000, + "channels": 1, + "duration": 8.4, + "rms": 0.10000148262660476, + "peak": 0.557830810546875 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-hat.wav?v=0.2.3", + "sha256": "308278ec2bd27d4224976a55632d1f7fa1edabb0792126d9d858a699c287aee4", + "bytes": 245420, + "sampleRate": 24000, + "channels": 1, + "duration": 5.112, + "rms": 0.10000140702099906, + "peak": 0.4498428404331207 + }, + { + "url": "http://127.0.0.1:4173/audio/password-furniture.wav?v=0.2.3", + "sha256": "fb2b631dd4e12120d08a84cce6450f9cd9cd68105d13d7001d808e7deaa1df4a", + "bytes": 233900, + "sampleRate": 24000, + "channels": 1, + "duration": 4.872, + "rms": 0.10000146718546903, + "peak": 0.4836573302745819 + }, + { + "url": "http://127.0.0.1:4173/audio/first-market.wav?v=0.2.3", + "sha256": "1e00b8f70a796cdebb0feb00c605fece7488b06915e6e036f54206f05e201e0c", + "bytes": 359468, + "sampleRate": 24000, + "channels": 1, + "duration": 7.488, + "rms": 0.10000152633991319, + "peak": 0.6390880942344666 + }, + { + "url": "http://127.0.0.1:4173/audio/first-meat.wav?v=0.2.3", + "sha256": "f51a37c1722fef581f7d642a4dcae7fcb9953b3c318dce971bf616cd1a81fecc", + "bytes": 345644, + "sampleRate": 24000, + "channels": 1, + "duration": 7.2, + "rms": 0.10000152244411063, + "peak": 0.5131382346153259 + }, + { + "url": "http://127.0.0.1:4173/audio/password-sea.wav?v=0.2.3", + "sha256": "03f45b8cb5b3dc72faf5c6e3d0e2a10cea6b60301ea400d0a4453596d2f0b337", + "bytes": 232748, + "sampleRate": 24000, + "channels": 1, + "duration": 4.848, + "rms": 0.10000144821976133, + "peak": 0.5339213013648987 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-sound.wav?v=0.2.3", + "sha256": "98387ccc7aab566f6487d4c250b2128082cc527e013a6f7b7bc4d0266ac295df", + "bytes": 394028, + "sampleRate": 24000, + "channels": 1, + "duration": 8.208, + "rms": 0.10000158053850364, + "peak": 0.5377971529960632 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-umbrella.wav?v=0.2.3", + "sha256": "5e59ef39113c3d5e106862356d715f4cef2862ef8ee02654a97e532675c1ac6d", + "bytes": 410156, + "sampleRate": 24000, + "channels": 1, + "duration": 8.544, + "rms": 0.10000147499132286, + "peak": 0.6748558282852173 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-hat.wav?v=0.2.3", + "sha256": "b01ef9762ac84e3eb757243bc9286c62f7d45444a821ae35ac36a8b095e1598a", + "bytes": 353708, + "sampleRate": 24000, + "channels": 1, + "duration": 7.368, + "rms": 0.10000153089787694, + "peak": 0.555206298828125 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-market.wav?v=0.2.3", + "sha256": "d89792da51c83ac49d27e55aa6d822a338899a5ee487b34b552748201e1522f6", + "bytes": 398636, + "sampleRate": 24000, + "channels": 1, + "duration": 8.304, + "rms": 0.10000149710778367, + "peak": 0.5728324055671692 + }, + { + "url": "http://127.0.0.1:4173/audio/password-umbrella.wav?v=0.2.3", + "sha256": "ab3ca6398c879971dc793eb25b472fcc0db72d76e386f11ef4d32c639f37c69d", + "bytes": 239660, + "sampleRate": 24000, + "channels": 1, + "duration": 4.992, + "rms": 0.100001426973271, + "peak": 0.4776757061481476 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-meat.wav?v=0.2.3", + "sha256": "48e91b3932d3798e852041a854b3ee08c72127e092c62083a47af6b99adff241", + "bytes": 403244, + "sampleRate": 24000, + "channels": 1, + "duration": 8.4, + "rms": 0.10000140336390047, + "peak": 0.481536865234375 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-hat.wav?v=0.2.3", + "sha256": "6e089a42fd7e65e82eec7186d369c926fb7fdac794365b2bd7658822fd92437c", + "bytes": 396332, + "sampleRate": 24000, + "channels": 1, + "duration": 8.256, + "rms": 0.1000015662548192, + "peak": 0.616748571395874 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-sound.wav?v=0.2.3", + "sha256": "4d00aa6114327f450a00dacbc7e7b572ebf1de4ce9dc2fe4b5505766cca71ce9", + "bytes": 353708, + "sampleRate": 24000, + "channels": 1, + "duration": 7.368, + "rms": 0.10000162019345048, + "peak": 0.5348368883132935 + }, + { + "url": "http://127.0.0.1:4173/audio/last-oil.wav?v=0.2.3", + "sha256": "b5ce34950b8b31b1baf6ce55410797f0d8aa5478a670d6eace87cf76d134d6d3", + "bytes": 337580, + "sampleRate": 24000, + "channels": 1, + "duration": 7.032, + "rms": 0.10000149980584365, + "peak": 0.55706787109375 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-sea.wav?v=0.2.3", + "sha256": "47aa31d757c9fb49c9b53a1c052d90a5ced4be57549d649850d9b48f8864045b", + "bytes": 191276, + "sampleRate": 24000, + "channels": 1, + "duration": 3.984, + "rms": 0.10000129182106483, + "peak": 0.388702392578125 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-sound.wav?v=0.2.3", + "sha256": "659eb0e2b06e6b165b46744769743e032e2282519f8486c57bc45e0f7d07a069", + "bytes": 240812, + "sampleRate": 24000, + "channels": 1, + "duration": 5.016, + "rms": 0.10000152909529536, + "peak": 0.45481735467910767 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-meat.wav?v=0.2.3", + "sha256": "6599d2fac73ea616a793151b4ce6f51af673988d630bac6219a77e78ae6cb34e", + "bytes": 380204, + "sampleRate": 24000, + "channels": 1, + "duration": 7.92, + "rms": 0.1000016061190976, + "peak": 0.5921201109886169 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-market.wav?v=0.2.3", + "sha256": "c855b449e0d4ace74681bfe68e5e7f0b063568827ae872017234dbe8ae119e4c", + "bytes": 356012, + "sampleRate": 24000, + "channels": 1, + "duration": 7.416, + "rms": 0.10000151456676445, + "peak": 0.5949888825416565 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-furniture.wav?v=0.2.3", + "sha256": "bf84dc6cff1f227924a3a62158d2fc18769fb0ca40b91418fa19e534dbf92f00", + "bytes": 397484, + "sampleRate": 24000, + "channels": 1, + "duration": 8.28, + "rms": 0.10000155255948041, + "peak": 0.6670430898666382 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-sound.wav?v=0.2.3", + "sha256": "5a603bc69979603afddcaeb6edf500a7c540b72405daeb33f5335d746b327da1", + "bytes": 397484, + "sampleRate": 24000, + "channels": 1, + "duration": 8.28, + "rms": 0.10000146491234768, + "peak": 0.469268798828125 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-meat.wav?v=0.2.3", + "sha256": "9183ef90b64f5ceaf3bb0178c689231ff3e9981d6ce889124a15f2a6e2b7a344", + "bytes": 395180, + "sampleRate": 24000, + "channels": 1, + "duration": 8.232, + "rms": 0.10000155087122137, + "peak": 0.5193029642105103 + }, + { + "url": "http://127.0.0.1:4173/audio/last-sound.wav?v=0.2.3", + "sha256": "ec9c49802aebeb6a8b898a1c0d8ad1daa127d2d64c905c197ed49a8e0c4eb64a", + "bytes": 354860, + "sampleRate": 24000, + "channels": 1, + "duration": 7.392, + "rms": 0.10000165748716579, + "peak": 0.5641041398048401 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-oil.wav?v=0.2.3", + "sha256": "5fb63e04520c312aa6b7b48b70c2f7c140b5ab480e5c6992edbc2ba85b9a06e7", + "bytes": 241964, + "sampleRate": 24000, + "channels": 1, + "duration": 5.04, + "rms": 0.10000143720418167, + "peak": 0.443586528301239 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-umbrella.wav?v=0.2.3", + "sha256": "92b54f04884ab915783945077efd8f3bd443849a1720f72168b6348cae1f8e85", + "bytes": 406700, + "sampleRate": 24000, + "channels": 1, + "duration": 8.472, + "rms": 0.10000140257790288, + "peak": 0.479034423828125 + }, + { + "url": "http://127.0.0.1:4173/audio/message-sound.wav?v=0.2.3", + "sha256": "1e682147dae8026ba78dc8f256c7f24acb3a6743bfd88a0fcc86096930eef078", + "bytes": 521900, + "sampleRate": 24000, + "channels": 1, + "duration": 10.872, + "rms": 0.10000138583471241, + "peak": 0.51953125 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-apple.wav?v=0.2.3", + "sha256": "ccd7327a3fb54d3320d049ffdced3bc17595861cee69429c0ee97182d454195b", + "bytes": 402092, + "sampleRate": 24000, + "channels": 1, + "duration": 8.376, + "rms": 0.10000140667715379, + "peak": 0.490325927734375 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-sea.wav?v=0.2.3", + "sha256": "5c91a36496e274d2be9c6fa8d9b506cd04f2a1b7ceb05ed1b7bb03fe7fca99d9", + "bytes": 399788, + "sampleRate": 24000, + "channels": 1, + "duration": 8.328, + "rms": 0.10000144241513113, + "peak": 0.5465559959411621 + }, + { + "url": "http://127.0.0.1:4173/audio/message-hat.wav?v=0.2.3", + "sha256": "5a713a8522b231bb8276805c014b385b9150b79f58ff2618446607e2b442495e", + "bytes": 518444, + "sampleRate": 24000, + "channels": 1, + "duration": 10.8, + "rms": 0.10000136927555209, + "peak": 0.587005615234375 + }, + { + "url": "http://127.0.0.1:4173/audio/password-meat.wav?v=0.2.3", + "sha256": "b009caadd56350d6a641ff17f0973e2b2724c183e1f45ae0bf3c483e237fa99e", + "bytes": 240812, + "sampleRate": 24000, + "channels": 1, + "duration": 5.016, + "rms": 0.10000148386024335, + "peak": 0.4978789687156677 + }, + { + "url": "http://127.0.0.1:4173/audio/message-market.wav?v=0.2.3", + "sha256": "9242d4cd6e0030e6b073e4d2360f84aa8a454d1749711cdb2d64c14f28a7ea20", + "bytes": 523052, + "sampleRate": 24000, + "channels": 1, + "duration": 10.896, + "rms": 0.10000133805787564, + "peak": 0.534820556640625 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-apple.wav?v=0.2.3", + "sha256": "8832f1b793ab3eedbe663875ea8dbeabb122c329bd5879437c71230b0418c3c8", + "bytes": 360620, + "sampleRate": 24000, + "channels": 1, + "duration": 7.512, + "rms": 0.10000145024648589, + "peak": 0.553558349609375 + }, + { + "url": "http://127.0.0.1:4173/audio/last-umbrella.wav?v=0.2.3", + "sha256": "c801293a34013a8d93d3289a2cc87cd3eed83f97ba4647f5060efa00b117a9ad", + "bytes": 370988, + "sampleRate": 24000, + "channels": 1, + "duration": 7.728, + "rms": 0.10000149360501835, + "peak": 0.59765625 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-sea.wav?v=0.2.3", + "sha256": "9233431d78ab4b144e3c33ad0cf0d49fc0fb91b29514343230ba32987b794bb3", + "bytes": 398636, + "sampleRate": 24000, + "channels": 1, + "duration": 8.304, + "rms": 0.10000134688905045, + "peak": 0.49616992473602295 + }, + { + "url": "http://127.0.0.1:4173/audio/password-apple.wav?v=0.2.3", + "sha256": "b6f5de3fe571fe3a7fdb722fe49250bcfeedef49475271e0ec76a7630907edd5", + "bytes": 235052, + "sampleRate": 24000, + "channels": 1, + "duration": 4.896, + "rms": 0.10000148212193387, + "peak": 0.4834437072277069 + }, + { + "url": "http://127.0.0.1:4173/audio/first-furniture.wav?v=0.2.3", + "sha256": "29f007b385b7182db1d8aeccad4fc3c260df5e66e14e52a46b0ef0fcd0ff3a0a", + "bytes": 364076, + "sampleRate": 24000, + "channels": 1, + "duration": 7.584, + "rms": 0.1000014551820741, + "peak": 0.5700552463531494 + }, + { + "url": "http://127.0.0.1:4173/audio/password-hat.wav?v=0.2.3", + "sha256": "e91bfc97df90a1675b6cd856880ac15c54de32cfc3b23603bdd1c2c5ac3ce6b8", + "bytes": 235052, + "sampleRate": 24000, + "channels": 1, + "duration": 4.896, + "rms": 0.10000146155157119, + "peak": 0.5059053301811218 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-oil.wav?v=0.2.3", + "sha256": "7a6b122b11c07da86c95fb78e2db2a70681b5219c63d6441fe56da1979ac1dc3", + "bytes": 334124, + "sampleRate": 24000, + "channels": 1, + "duration": 6.96, + "rms": 0.1000014880654183, + "peak": 0.539933443069458 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-meat.wav?v=0.2.3", + "sha256": "d416107cc05e7c5b92ca27100a10a8a9689de913346179945d5542de4a6bac0c", + "bytes": 342188, + "sampleRate": 24000, + "channels": 1, + "duration": 7.128, + "rms": 0.10000157422522808, + "peak": 0.510833740234375 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-apple.wav?v=0.2.3", + "sha256": "1bf2aef9a9f030af1a8fd7dee8f44aa420a397b3ba99b575feeb3dc7a63ec191", + "bytes": 395180, + "sampleRate": 24000, + "channels": 1, + "duration": 8.232, + "rms": 0.10000148399213096, + "peak": 0.563568115234375 + }, + { + "url": "http://127.0.0.1:4173/audio/first-oil.wav?v=0.2.3", + "sha256": "f415195e0cfc7ee711d09de7519e88eab62cc8b58d70772c83c3f5c27c267819", + "bytes": 335276, + "sampleRate": 24000, + "channels": 1, + "duration": 6.984, + "rms": 0.10000145886808136, + "peak": 0.5347453355789185 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-hat.wav?v=0.2.3", + "sha256": "31a6a4270bf368cda419094d87a303ac3cd5c22539786cb165f8044b0b8e9d6e", + "bytes": 402092, + "sampleRate": 24000, + "channels": 1, + "duration": 8.376, + "rms": 0.10000145804818952, + "peak": 0.541778564453125 + }, + { + "url": "http://127.0.0.1:4173/audio/message-furniture.wav?v=0.2.3", + "sha256": "26c331b7e12311236f4bb48f88918dfbf53cccd2f50b55741ea6ff4473e71dd8", + "bytes": 521900, + "sampleRate": 24000, + "channels": 1, + "duration": 10.872, + "rms": 0.10000134596838128, + "peak": 0.529327392578125 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-oil.wav?v=0.2.3", + "sha256": "3fa1e662a3af8f2726b17b2baa5bec2934406e6595ebc243c8380dd16e190977", + "bytes": 190124, + "sampleRate": 24000, + "channels": 1, + "duration": 3.96, + "rms": 0.10000134375667624, + "peak": 0.3817255198955536 + }, + { + "url": "http://127.0.0.1:4173/audio/last-sea.wav?v=0.2.3", + "sha256": "f755452e1da44674aa1df7d12edffa988091b89a394e7eb6d4a00eb721f07cbf", + "bytes": 345644, + "sampleRate": 24000, + "channels": 1, + "duration": 7.2, + "rms": 0.10000140162255576, + "peak": 0.591033935546875 + }, + { + "url": "http://127.0.0.1:4173/audio/password-oil.wav?v=0.2.3", + "sha256": "b472957b27ff98ea7b8894fa1ff12653f7e9f66f77870faa9e52a1c1bf116c41", + "bytes": 240812, + "sampleRate": 24000, + "channels": 1, + "duration": 5.016, + "rms": 0.10000146772662066, + "peak": 0.4945219159126282 + }, + { + "url": "http://127.0.0.1:4173/audio/first-umbrella.wav?v=0.2.3", + "sha256": "878e0bd2e6e4105f175aef51a028f6b141f3a2072be20f783193f3ba897a3ee0", + "bytes": 366380, + "sampleRate": 24000, + "channels": 1, + "duration": 7.632, + "rms": 0.10000147647908036, + "peak": 0.5700247287750244 + }, + { + "url": "http://127.0.0.1:4173/audio/last-apple.wav?v=0.2.3", + "sha256": "4cb2a8579fa3a7b91bb36363826ce8ca0d6d86e96e16a479e226a2802edd82f7", + "bytes": 356012, + "sampleRate": 24000, + "channels": 1, + "duration": 7.416, + "rms": 0.10000144523423521, + "peak": 0.622528076171875 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-market.wav?v=0.2.3", + "sha256": "68a5b899115a66ab225d610ec47b4de56cc8793657362bc38f533c06f741e4cc", + "bytes": 402092, + "sampleRate": 24000, + "channels": 1, + "duration": 8.376, + "rms": 0.10000160159844854, + "peak": 0.6822717785835266 + }, + { + "url": "http://127.0.0.1:4173/audio/message-oil.wav?v=0.2.3", + "sha256": "a2a71a7e5e07c81871a25c6cb7540c39aa0b32fc44f78cda66b5f34ace98d805", + "bytes": 509228, + "sampleRate": 24000, + "channels": 1, + "duration": 10.608, + "rms": 0.10000135184106136, + "peak": 0.51812744140625 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-meat.wav?v=0.2.3", + "sha256": "d36dfc395a5c53fbfa4abe9980db7bb59adfdac59e40318c4aca365365e3f2ab", + "bytes": 187820, + "sampleRate": 24000, + "channels": 1, + "duration": 3.912, + "rms": 0.1000013329979738, + "peak": 0.371124267578125 + }, + { + "url": "http://127.0.0.1:4173/audio/password-market.wav?v=0.2.3", + "sha256": "02e325fb753ef7a3ee585a03d2ca2aa3f1fbc58523b062222ae1136eeed7a95c", + "bytes": 230444, + "sampleRate": 24000, + "channels": 1, + "duration": 4.8, + "rms": 0.10000151520861549, + "peak": 0.48170414566993713 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-hat.wav?v=0.2.3", + "sha256": "4ff43dd042f4b5451e9fdeb3edd59f1e389a7d1dd488094587a3a9fc7dfffa44", + "bytes": 191276, + "sampleRate": 24000, + "channels": 1, + "duration": 3.984, + "rms": 0.10000132502946775, + "peak": 0.417083740234375 + }, + { + "url": "http://127.0.0.1:4173/audio/last-market.wav?v=0.2.3", + "sha256": "7857e87e9dbfe8fe849cc0b18c1d45b60916cb337328099c7a87a42c82e2821e", + "bytes": 359468, + "sampleRate": 24000, + "channels": 1, + "duration": 7.488, + "rms": 0.10000148064140717, + "peak": 0.600555419921875 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-meat.wav?v=0.2.3", + "sha256": "94f8a4f9e116a787e5ed052661d6de9ecf3ad8629db476661dd59ad03014b0c9", + "bytes": 244268, + "sampleRate": 24000, + "channels": 1, + "duration": 5.088, + "rms": 0.10000146176253134, + "peak": 0.44187748432159424 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-oil.wav?v=0.2.3", + "sha256": "55b2c7d6aa8bbce04edf8661882c9781da81c57f56217f99b80457a3bb895da0", + "bytes": 369836, + "sampleRate": 24000, + "channels": 1, + "duration": 7.704, + "rms": 0.10000146897241707, + "peak": 0.6239814162254333 + }, + { + "url": "http://127.0.0.1:4173/audio/first-sound.wav?v=0.2.3", + "sha256": "46f6adeed928a16af0700f1e8626cf8049f124632a04a5d10604426fb06f9596", + "bytes": 353708, + "sampleRate": 24000, + "channels": 1, + "duration": 7.368, + "rms": 0.10000157588418972, + "peak": 0.5189672708511353 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-umbrella.wav?v=0.2.3", + "sha256": "4b4c858a25659540f9dbc524664496fc6de61ab8c1627f3cfee8c9c744e11d5b", + "bytes": 247724, + "sampleRate": 24000, + "channels": 1, + "duration": 5.16, + "rms": 0.10000144286672341, + "peak": 0.46534621715545654 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-oil.wav?v=0.2.3", + "sha256": "3ca98682ff06d1d6b8af02c0fd5b2124f42266ac989884223eff4a9bbde1287a", + "bytes": 399788, + "sampleRate": 24000, + "channels": 1, + "duration": 8.328, + "rms": 0.10000149133669024, + "peak": 0.5243995189666748 + }, + { + "url": "http://127.0.0.1:4173/audio/first-sea.wav?v=0.2.3", + "sha256": "0f0b39314c5f7d7168d4854003c0c284e7bc3438cdc4d1d1c5adab7cb5ed30e5", + "bytes": 349100, + "sampleRate": 24000, + "channels": 1, + "duration": 7.272, + "rms": 0.10000142148394393, + "peak": 0.5717948079109192 + }, + { + "url": "http://127.0.0.1:4173/audio/last-meat.wav?v=0.2.3", + "sha256": "10f8ad4259ed8945c9da831e80b3902303c09caef96d400298599168fb1efed4", + "bytes": 346796, + "sampleRate": 24000, + "channels": 1, + "duration": 7.224, + "rms": 0.10000155834091913, + "peak": 0.537200927734375 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-umbrella.wav?v=0.2.3", + "sha256": "399ea2f681f755918f1117c8baba42739ceca64b307b999342f457a9235050b6", + "bytes": 368684, + "sampleRate": 24000, + "channels": 1, + "duration": 7.68, + "rms": 0.10000155028684544, + "peak": 0.569549560546875 + }, + { + "url": "http://127.0.0.1:4173/audio/message-meat.wav?v=0.2.3", + "sha256": "ce19735df079b54c171e775b6b365385a80160b9033442abab95b2b9c8505e1a", + "bytes": 512684, + "sampleRate": 24000, + "channels": 1, + "duration": 10.68, + "rms": 0.10000140834686953, + "peak": 0.5147705078125 + }, + { + "url": "http://127.0.0.1:4173/audio/message-umbrella.wav?v=0.2.3", + "sha256": "41d5866dae66600df4694a8312b531571d44cece6dba0e423e7c43d09d184819", + "bytes": 523052, + "sampleRate": 24000, + "channels": 1, + "duration": 10.896, + "rms": 0.10000120668553683, + "peak": 0.530364990234375 + }, + { + "url": "http://127.0.0.1:4173/audio/last-furniture.wav?v=0.2.3", + "sha256": "5ad4f776e35439d408abed0e66567d6b5cdc80fc54d579165472e474f1238776", + "bytes": 357164, + "sampleRate": 24000, + "channels": 1, + "duration": 7.44, + "rms": 0.10000152394963031, + "peak": 0.583587646484375 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-sea.wav?v=0.2.3", + "sha256": "8838d6a1ee8a790427dc5aa761e70b3d8872af62086efeed743297ff7f8b8a06", + "bytes": 243116, + "sampleRate": 24000, + "channels": 1, + "duration": 5.064, + "rms": 0.10000138788281714, + "peak": 0.45013427734375 + }, + { + "url": "http://127.0.0.1:4173/audio/message-apple.wav?v=0.2.3", + "sha256": "d85e6f47d871369f00de2274139e5ad6b4b5686b5e20e248df0ed6b9a320d942", + "bytes": 517292, + "sampleRate": 24000, + "channels": 1, + "duration": 10.776, + "rms": 0.10000133916854889, + "peak": 0.525360107421875 + }, + { + "url": "http://127.0.0.1:4173/audio/last-hat.wav?v=0.2.3", + "sha256": "bdaf8fbc54df8061e9e58aa8c14b3044a6e863dc54973ee3ee6ae2c5ae1a28f1", + "bytes": 354860, + "sampleRate": 24000, + "channels": 1, + "duration": 7.392, + "rms": 0.10000152378078818, + "peak": 0.550079345703125 + }, + { + "url": "http://127.0.0.1:4173/audio/first-apple.wav?v=0.2.3", + "sha256": "7c1dbcb3082055df2b8f087f7e906ec867c92f679de0894c34740c05e61a4bc1", + "bytes": 359468, + "sampleRate": 24000, + "channels": 1, + "duration": 7.488, + "rms": 0.10000143468253914, + "peak": 0.57977294921875 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-umbrella.wav?v=0.2.3", + "sha256": "8d3e8e8bc97e5fe3f3362184c4abb12f01a882a1f1174d2644f0f70aac677c0a", + "bytes": 192428, + "sampleRate": 24000, + "channels": 1, + "duration": 4.008, + "rms": 0.10000131475711933, + "peak": 0.385650634765625 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-furniture.wav?v=0.2.3", + "sha256": "5c004a7b2f5a4a918c9f689f1a2dcb219a620ed14313f40a9655b36dbf64948d", + "bytes": 398636, + "sampleRate": 24000, + "channels": 1, + "duration": 8.304, + "rms": 0.10000141690978645, + "peak": 0.487396240234375 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-tree.wav?v=0.2.3", + "sha256": "122f496834fb16d6da47f801e50e46e272e4e934af959467d1db4e490f79be7a", + "bytes": 183212, + "sampleRate": 24000, + "channels": 1, + "duration": 3.816, + "rms": 0.10000140751524371, + "peak": 0.36920166015625 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-tree.wav?v=0.2.3", + "sha256": "00d8e77ec0371971d632724d91f8cf8d947bfb83c582a513b6421be4c457a1da", + "bytes": 241964, + "sampleRate": 24000, + "channels": 1, + "duration": 5.04, + "rms": 0.10000146153372488, + "peak": 0.4585406184196472 + }, + { + "url": "http://127.0.0.1:4173/audio/message-tree.wav?v=0.2.3", + "sha256": "5d684aa710a63d36ed8dcc2a8bfbdd5c71b0b1c63dad2a324adecb76591e85b8", + "bytes": 540332, + "sampleRate": 24000, + "channels": 1, + "duration": 11.256, + "rms": 0.10000132424453942, + "peak": 0.5262451171875 + }, + { + "url": "http://127.0.0.1:4173/audio/last-tree.wav?v=0.2.3", + "sha256": "589e56d940a3c9e80ec02ae0b2dd93463fdc85ef019a753fcd0fded0752055f9", + "bytes": 382508, + "sampleRate": 24000, + "channels": 1, + "duration": 7.968, + "rms": 0.10000149781706567, + "peak": 0.5807672142982483 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-tree.wav?v=0.2.3", + "sha256": "341888c75275c13eb31058f53a1d4276be0daa0a1b5a3a45522036928b83b0c1", + "bytes": 382508, + "sampleRate": 24000, + "channels": 1, + "duration": 7.968, + "rms": 0.1000014873304774, + "peak": 0.600024402141571 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-tree.wav?v=0.2.3", + "sha256": "8735c3d9672561ca237fa87317beec2878492eb9063d6048d5b214423561acc1", + "bytes": 423980, + "sampleRate": 24000, + "channels": 1, + "duration": 8.832, + "rms": 0.10000150947389638, + "peak": 0.6187627911567688 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-furniture.wav?v=0.2.3", + "sha256": "52cb92cdb8ee92b6f581c9d68dbc346f180c470564809ba57185429c9eb84127", + "bytes": 186668, + "sampleRate": 24000, + "channels": 1, + "duration": 3.888, + "rms": 0.1000013480244084, + "peak": 0.387054443359375 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-tree.wav?v=0.2.3", + "sha256": "bc8e54f5407e8866bf1ca1ddfd4f6c63d85fee29bd9e430c7dd33e87974fc5b8", + "bytes": 409004, + "sampleRate": 24000, + "channels": 1, + "duration": 8.52, + "rms": 0.10000146559822108, + "peak": 0.5486617684364319 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-tree.wav?v=0.2.3", + "sha256": "b8e8bbe6b8b14727efd953fae9d4aed2caeb004055d52f611c6378322847edbe", + "bytes": 400940, + "sampleRate": 24000, + "channels": 1, + "duration": 8.352, + "rms": 0.10000144970799159, + "peak": 0.470611572265625 + }, + { + "url": "http://127.0.0.1:4173/audio/first-tree.wav?v=0.2.3", + "sha256": "3178230fd5850b6277a2153b438ec5289720e3db7ac929914cc213964f004bd5", + "bytes": 379052, + "sampleRate": 24000, + "channels": 1, + "duration": 7.896, + "rms": 0.10000144270360484, + "peak": 0.5833613276481628 + }, + { + "url": "http://127.0.0.1:4173/audio/password-tree.wav?v=0.2.3", + "sha256": "67da8147296e35134ec254bc82b58317630061b2c64d2d63c4be197ce8692d50", + "bytes": 233900, + "sampleRate": 24000, + "channels": 1, + "duration": 4.872, + "rms": 0.10000156310809623, + "peak": 0.4904019236564636 + } + ] +} diff --git a/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-final/game-실제-오디오로-혼합-모드-완주·레이아웃·접근성·외부-요청-없음-desktop/game.png b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-final/game-실제-오디오로-혼합-모드-완주·레이아웃·접근성·외부-요청-없음-desktop/game.png new file mode 100644 index 0000000..04505e0 Binary files /dev/null and b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-final/game-실제-오디오로-혼합-모드-완주·레이아웃·접근성·외부-요청-없음-desktop/game.png differ diff --git a/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-final/game-실제-오디오로-혼합-모드-완주·레이아웃·접근성·외부-요청-없음-desktop/home.png b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-final/game-실제-오디오로-혼합-모드-완주·레이아웃·접근성·외부-요청-없음-desktop/home.png new file mode 100644 index 0000000..3e1863d Binary files /dev/null and b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-final/game-실제-오디오로-혼합-모드-완주·레이아웃·접근성·외부-요청-없음-desktop/home.png differ diff --git a/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-final/game-실제-오디오로-혼합-모드-완주·레이아웃·접근성·외부-요청-없음-desktop/results.png b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-final/game-실제-오디오로-혼합-모드-완주·레이아웃·접근성·외부-요청-없음-desktop/results.png new file mode 100644 index 0000000..60986f0 Binary files /dev/null and b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-final/game-실제-오디오로-혼합-모드-완주·레이아웃·접근성·외부-요청-없음-desktop/results.png differ diff --git a/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-final/game-실제-오디오로-혼합-모드-완주·레이아웃·접근성·외부-요청-없음-mobile/game.png b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-final/game-실제-오디오로-혼합-모드-완주·레이아웃·접근성·외부-요청-없음-mobile/game.png new file mode 100644 index 0000000..3e43e9c Binary files /dev/null and b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-final/game-실제-오디오로-혼합-모드-완주·레이아웃·접근성·외부-요청-없음-mobile/game.png differ diff --git a/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-final/game-실제-오디오로-혼합-모드-완주·레이아웃·접근성·외부-요청-없음-mobile/home.png b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-final/game-실제-오디오로-혼합-모드-완주·레이아웃·접근성·외부-요청-없음-mobile/home.png new file mode 100644 index 0000000..93c1298 Binary files /dev/null and b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-final/game-실제-오디오로-혼합-모드-완주·레이아웃·접근성·외부-요청-없음-mobile/home.png differ diff --git a/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-final/game-실제-오디오로-혼합-모드-완주·레이아웃·접근성·외부-요청-없음-mobile/results.png b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-final/game-실제-오디오로-혼합-모드-완주·레이아웃·접근성·외부-요청-없음-mobile/results.png new file mode 100644 index 0000000..46bdd67 Binary files /dev/null and b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-final/game-실제-오디오로-혼합-모드-완주·레이아웃·접근성·외부-요청-없음-mobile/results.png differ diff --git a/.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 b/.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 new file mode 100644 index 0000000..fa53c92 Binary files /dev/null and b/.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 differ diff --git a/.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 b/.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 new file mode 100644 index 0000000..ef8031b Binary files /dev/null and b/.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 differ diff --git a/.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 b/.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 new file mode 100644 index 0000000..e2b4352 Binary files /dev/null and b/.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 differ diff --git a/.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 b/.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 new file mode 100644 index 0000000..f0651da Binary files /dev/null and b/.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 differ diff --git a/.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 b/.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 new file mode 100644 index 0000000..46bdd67 Binary files /dev/null and b/.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 differ diff --git a/.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 b/.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 new file mode 100644 index 0000000..c6c3af6 Binary files /dev/null and b/.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 differ diff --git a/.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 b/.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 new file mode 100644 index 0000000..19e468c Binary files /dev/null and b/.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 differ diff --git a/.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 b/.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 new file mode 100644 index 0000000..1801343 Binary files /dev/null and b/.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 differ diff --git a/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-final/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-desktop/copy-320-home.png b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-final/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-desktop/copy-320-home.png new file mode 100644 index 0000000..9bb9d97 Binary files /dev/null and b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-final/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-desktop/copy-320-home.png differ diff --git a/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-final/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-desktop/copy-320-results.png b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-final/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-desktop/copy-320-results.png new file mode 100644 index 0000000..969eef1 Binary files /dev/null and b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-final/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-desktop/copy-320-results.png differ diff --git a/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-final/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-desktop/copy-360-home.png b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-final/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-desktop/copy-360-home.png new file mode 100644 index 0000000..93c1298 Binary files /dev/null and b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-final/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-desktop/copy-360-home.png differ diff --git a/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-final/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-desktop/copy-360-results.png b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-final/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-desktop/copy-360-results.png new file mode 100644 index 0000000..122ee5d Binary files /dev/null and b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-final/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-desktop/copy-360-results.png differ diff --git a/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-final/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-mobile/copy-320-home.png b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-final/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-mobile/copy-320-home.png new file mode 100644 index 0000000..9bb9d97 Binary files /dev/null and b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-final/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-mobile/copy-320-home.png differ diff --git a/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-final/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-mobile/copy-320-results.png b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-final/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-mobile/copy-320-results.png new file mode 100644 index 0000000..969eef1 Binary files /dev/null and b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-final/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-mobile/copy-320-results.png differ diff --git a/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-final/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-mobile/copy-360-home.png b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-final/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-mobile/copy-360-home.png new file mode 100644 index 0000000..93c1298 Binary files /dev/null and b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-final/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-mobile/copy-360-home.png differ diff --git a/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-final/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-mobile/copy-360-results.png b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-final/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-mobile/copy-360-results.png new file mode 100644 index 0000000..122ee5d Binary files /dev/null and b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-final/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-mobile/copy-360-results.png differ diff --git a/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-final/rounds-시작-단계·SNR·3문항-완료→다음-단계·재생-중-종료·응답-후-종료·홈-초기화-desktop/early-exit.png b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-final/rounds-시작-단계·SNR·3문항-완료→다음-단계·재생-중-종료·응답-후-종료·홈-초기화-desktop/early-exit.png new file mode 100644 index 0000000..811489d Binary files /dev/null and b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-final/rounds-시작-단계·SNR·3문항-완료→다음-단계·재생-중-종료·응답-후-종료·홈-초기화-desktop/early-exit.png differ diff --git a/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-final/rounds-시작-단계·SNR·3문항-완료→다음-단계·재생-중-종료·응답-후-종료·홈-초기화-mobile/early-exit.png b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-final/rounds-시작-단계·SNR·3문항-완료→다음-단계·재생-중-종료·응답-후-종료·홈-초기화-mobile/early-exit.png new file mode 100644 index 0000000..122ee5d Binary files /dev/null and b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-final/rounds-시작-단계·SNR·3문항-완료→다음-단계·재생-중-종료·응답-후-종료·홈-초기화-mobile/early-exit.png differ diff --git a/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-final/ui-한국어-제목은-단어-중간에서-줄바꿈하지-않는다-desktop/heading.png b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-final/ui-한국어-제목은-단어-중간에서-줄바꿈하지-않는다-desktop/heading.png new file mode 100644 index 0000000..e3e5e42 Binary files /dev/null and b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-final/ui-한국어-제목은-단어-중간에서-줄바꿈하지-않는다-desktop/heading.png differ diff --git a/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-final/ui-한국어-제목은-단어-중간에서-줄바꿈하지-않는다-mobile/heading.png b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-final/ui-한국어-제목은-단어-중간에서-줄바꿈하지-않는다-mobile/heading.png new file mode 100644 index 0000000..9b38a30 Binary files /dev/null and b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-final/ui-한국어-제목은-단어-중간에서-줄바꿈하지-않는다-mobile/heading.png differ diff --git a/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-integrity-summary.json b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-integrity-summary.json new file mode 100644 index 0000000..f5eeeef --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-integrity-summary.json @@ -0,0 +1,24 @@ +[ + { + "project": "mobile", + "chrome": "146.0.7680.80", + "filesMatched": 109, + "externalRequests": 0, + "consoleOrPageErrors": 0, + "failedRequests": 0, + "evidence": "mobile-audio-integrity.json", + "levelTolerance": 3.0517578125e-05, + "levelToleranceReason": "One PCM16 step accommodates browser decoder float scaling versus manifest signed PCM/32768 measurements. Hashes and byte counts must match exactly." + }, + { + "project": "desktop", + "chrome": "146.0.7680.80", + "filesMatched": 109, + "externalRequests": 0, + "consoleOrPageErrors": 0, + "failedRequests": 0, + "evidence": "desktop-audio-integrity.json", + "levelTolerance": 3.0517578125e-05, + "levelToleranceReason": "One PCM16 step accommodates browser decoder float scaling versus manifest signed PCM/32768 measurements. Hashes and byte counts must match exactly." + } +] diff --git a/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-red/.last-run.json b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-red/.last-run.json new file mode 100644 index 0000000..37aa4e1 --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-red/.last-run.json @@ -0,0 +1,7 @@ +{ + "status": "failed", + "failedTests": [ + "87be2dcdb54c25970a35-d93130048b0c80dc4106", + "87be2dcdb54c25970a35-9f9914a49e88a65e211e" + ] +} \ No newline at end of file diff --git a/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-red/audio-음성·현장음-109개-versioned-WAV를-실제-Chrome에서-해시·디코드-검증한다-desktop/error-context.md b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-red/audio-음성·현장음-109개-versioned-WAV를-실제-Chrome에서-해시·디코드-검증한다-desktop/error-context.md new file mode 100644 index 0000000..d923d71 --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-red/audio-음성·현장음-109개-versioned-WAV를-실제-Chrome에서-해시·디코드-검증한다-desktop/error-context.md @@ -0,0 +1,286 @@ +# 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: audio.spec.ts >> 음성·현장음 109개 versioned WAV를 실제 Chrome에서 해시·디코드 검증한다 +- Location: tests/browser/audio.spec.ts:7:1 + +# Error details + +``` +Error: expect(received).toBe(expected) // Object.is equality + +Expected: true +Received: false +``` + +# 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.3 + - generic [ref=e13]: + - link "플레이 방법" [ref=e14] [cursor=pointer]: + - /url: "#howto" + - text: 플레이 방법 ↓ + - text: 소리에 집중하는 시간 + - main [ref=e16]: + - region [ref=e17]: + - generic [ref=e18]: + - paragraph [ref=e19]: 귀를 기울이면, 발견하는 즐거움 + - heading [level=2] [ref=e21]: + - text: 소음 속 작은 단어, + - emphasis [ref=e22]: 들리시나요? + - paragraph [ref=e23]: 도시의 소리 사이에 에스가 숨겨 둔 단어.조금 더 귀 기울여, 오늘의 행운을 찾아보세요. + - generic [ref=e24]: + - generic [ref=e25]: 한 라운드 3개의 질문 + - generic [ref=e26]: ·5단계 도전 + - generic [ref=e27]: ·나만의 속도로 + - generic [ref=e28]: + - generic [ref=e29]: + - generic [ref=e30]: 에스의 사운드 룸 + - generic [ref=e32]: 8가지 환경 + - generic [aria-hidden] [ref=e35]: ♪ + - generic [aria-hidden] [ref=e36]: ✳ + - generic [ref=e37]: 행운의 단어를 찾아보거라! + - generic [ref=e44]: S + - generic [ref=e45]: 소음 사이, 숨겨진 한마디 + - region [ref=e82]: + - generic [ref=e83]: + - generic [ref=e84]: "01" + - generic [ref=e85]: + - heading "나의 소리 탐험 준비" [level=2] [ref=e86] + - paragraph [ref=e87]: 한 단계에서 세 문제를 풀고, 완료 후 다음 단계에 도전해요. + - generic [ref=e88]: 라운드당 약 1–2분 + - generic [ref=e89]: + - group "어떻게 답할까요?" [ref=e90]: + - generic [ref=e92]: + - generic [ref=e93] [cursor=pointer]: + - radio "골고루 풀기" [checked] [ref=e94] + - generic [aria-hidden] [ref=e95]: ◈ + - strong [ref=e96]: 골고루 풀기 + - generic [ref=e97]: 선택 + 직접 입력 + - generic [ref=e98] [cursor=pointer]: + - radio "보기에서 선택" [ref=e99] + - generic [aria-hidden] [ref=e100]: ☷ + - strong [ref=e101]: 보기에서 선택 + - generic [ref=e102]: 4개 단어 중 하나 + - generic [ref=e103] [cursor=pointer]: + - radio "직접 입력" [ref=e104] + - generic [aria-hidden] [ref=e105]: ✎ + - strong [ref=e106]: 직접 입력 + - generic [ref=e107]: 기억한 단어 쓰기 + - generic [ref=e108]: + - generic [ref=e109]: 배경 환경 + - combobox "배경 환경" [ref=e110] [cursor=pointer]: + - option "여덟 가지 일상 속으로" [selected] + - option "길거리" + - option "쇼핑몰" + - option "극장" + - option "백화점" + - option "시장" + - option "지하철" + - option "카페" + - option "비 오는 거리" + - paragraph [ref=e111]: 길거리부터 비 오는 거리까지, 매번 다른 공간을 만나요. + - generic [ref=e112]: + - generic [ref=e113]: 길거리 + - generic [ref=e114]: 카페 + - generic [ref=e115]: 지하철 + - generic [ref=e116]: +5개 환경 + - generic [ref=e117]: + - generic [ref=e118]: 시작 난이도 + - combobox "시작 난이도" [ref=e119] [cursor=pointer]: + - option "1단계 · 소리에 익숙해지기" [selected] + - option "2단계 · 귀 기울이기" + - option "3단계 · 소음 사이로" + - option "4단계 · 작은 단서 찾기" + - option "5단계 · 깊이 집중하기" + - generic [ref=e120]: + - generic [ref=e121]: 목표 음성 SNR + - slider "목표 음성 SNR" [ref=e122] [cursor=pointer]: "6" + - status [ref=e123]: SNR +6 dB + - paragraph [ref=e124]: 음성이 배경보다 6 dB 커요. 범위 −12~+12 dB · 1 dB 간격. 양수는 음성이 더 크게, 0은 같게, 음수는 더 작게 들려요. 변경은 다음 재생·재청취부터 적용돼요. + - generic [ref=e125]: + - generic [ref=e126]: ◖)) 전체 음량 + - slider "전체 음량" [ref=e127] [cursor=pointer]: "35" + - status [ref=e128]: 35% + - generic [ref=e129]: + - paragraph [ref=e130]: ♬ 편안한 작은 음량으로 시작해 보세요. + - button "게임 시작 · 소리 듣기" [ref=e131] [cursor=pointer]: + - text: 게임 시작 · 소리 듣기 + - generic [aria-hidden] [ref=e132]: → + - region [ref=e133]: + - heading "작은 단어를 발견하는 방법" [level=2] [ref=e134] + - generic [ref=e135]: + - article [ref=e136]: + - generic [ref=e137]: "01" + - heading "먼저, 귀 기울이기" [level=3] [ref=e138] + - paragraph [ref=e139]: 에스의 안내와 소음 속 문장을 들어요.한 라운드 동안 같은 난이도로 들어요. + - article [ref=e140]: + - generic [ref=e141]: "02" + - heading "기억한 단어 찾기" [level=3] [ref=e142] + - paragraph [ref=e143]: 소리가 끝나면 질문이 나타나요.보기에서 고르거나 직접 입력해요. + - article [ref=e144]: + - generic [ref=e145]: "03" + - heading "나의 발견 돌아보기" [level=3] [ref=e146] + - paragraph [ref=e147]: 세 문제 뒤 나의 결과를 확인해요.놓쳤다면 언제든 다시 들어도 좋아요. + - contentinfo [ref=e148]: + - paragraph [ref=e149]: Designed by OZ at Heat-T Medical Inc. + - paragraph [ref=e150]: 청각적 주의·식별 게임 · 의료적 진단이나 치료를 제공하지 않습니다. + - generic [ref=e151]: 개인정보 수집 없이, 오직 플레이만. + - link "환경음 출처·라이선스" [ref=e152] [cursor=pointer]: + - /url: /ambience/AMBIENCE_NOTICES.md +``` + +# Test source + +```ts + 1 | import { readFileSync, writeFileSync } from "node:fs"; + 2 | import { expect, test } from "@playwright/test"; + 3 | import { createQuestions } from "../../src/game"; + 4 | import { isAudioRequest } from "./audio-requests"; + 5 | + 6 | // 과거 evidence의 검증 스크립트는 보존하고, query URL 전수 검사를 정규 suite로 옮긴다. + 7 | test("음성·현장음 109개 versioned WAV를 실제 Chrome에서 해시·디코드 검증한다", async ({ + 8 | page, + 9 | browser, + 10 | }, info) => { + 11 | const external: string[] = []; + 12 | const errors: string[] = []; + 13 | const failed: string[] = []; + 14 | const requests: string[] = []; + 15 | page.on("request", (request) => { + 16 | const url = new URL(request.url()); + 17 | if (url.origin !== "http://127.0.0.1:4173") external.push(url.href); + 18 | if (isAudioRequest(url) || url.pathname.startsWith("/ambience/")) + 19 | requests.push(url.href); + 20 | }); + 21 | page.on("console", (message) => { + 22 | if (message.type() === "error") errors.push(message.text()); + 23 | }); + 24 | page.on("requestfailed", (request) => failed.push(request.url())); + 25 | page.on("pageerror", (error) => errors.push(error.message)); + 26 | await page.goto("/"); + 27 | await expect(page).toHaveTitle("단어를 맞춰라 · Find-Word v0.2.3"); + 28 | await expect(page.locator(".version")).toHaveText("v0.2.3"); + 29 | const plan = JSON.parse(readFileSync(".agent/AMBIENCE-SOURCES-v0.2.3.json", "utf8")); + 30 | const published = await page.evaluate(async () => ({ + 31 | manifest: await (await fetch("/ambience/manifest.json?v=0.2.3")).json(), + 32 | notice: await (await fetch("/ambience/AMBIENCE_NOTICES.md?v=0.2.3")).text(), + 33 | })); + 34 | expect(published.manifest).toEqual(JSON.parse(readFileSync("public/ambience/manifest.json", "utf8"))); + 35 | for (const asset of plan.assets) { + 36 | const start = asset.selectedSegmentStartSeconds; +> 37 | expect(Number.isFinite(start)).toBe(true); + | ^ Error: expect(received).toBe(expected) // Object.is equality + 38 | expect(start).toBeGreaterThanOrEqual(0); + 39 | expect(start + 12).toBeLessThanOrEqual(asset.directMediaDurationSeconds); + 40 | const entry = published.manifest.files.find((e: { environmentId: string }) => e.environmentId === asset.environmentId); + 41 | expect(entry.selectedSegmentStartSeconds).toBe(start); + 42 | expect(entry.conversion.startSeconds).toBe(start); + 43 | expect(entry.conversion.durationSeconds).toBe(12); + 44 | const section = published.notice.split("## ").find((s: string) => s.startsWith(`${asset.displayName} — ${asset.environmentId}\n`)); + 45 | expect(section).toContain(`source seconds ${start}–${start + 12}.`); + 46 | } + 47 | // intro는 테스트에서 URL을 재조립하지 않고 배포 앱의 실제 요청을 관찰한다. + 48 | const introRequest = page.waitForRequest( + 49 | (request) => new URL(request.url()).pathname === "/audio/intro.wav", + 50 | ); + 51 | await page.getByRole("button", { name: "게임 시작 · 소리 듣기" }).click(); + 52 | const introUrl = (await introRequest).url(); + 53 | await expect(page.getByRole("group", { name: "답 선택" })).toBeVisible({ + 54 | timeout: 30000, + 55 | }); + 56 | await page.getByRole("button", { name: "문제 풀이 종료" }).click(); + 57 | await page.getByRole("button", { name: "처음 화면으로" }).click(); + 58 | const targetUrls = [ + 59 | ...new Set( + 60 | Array.from({ length: 1000 }, (_, seed) => + 61 | createQuestions(seed, "mixed").map((question) => question.audioUrl), + 62 | ).flat(), + 63 | ), + 64 | ]; + 65 | expect(targetUrls).toHaveLength(100); + 66 | const ambience = JSON.parse( + 67 | readFileSync("public/ambience/manifest.json", "utf8"), + 68 | ); + 69 | const urls = [ + 70 | introUrl, + 71 | ...ambience.files.map( + 72 | (entry: { file: string }) => + 73 | new URL(`/ambience/${entry.file}?v=0.2.3`, page.url()).href, + 74 | ), + 75 | ...targetUrls.map((url) => new URL(url, page.url()).href), + 76 | ]; + 77 | expect( + 78 | new Set(urls.map((url) => new URL(url).searchParams.get("v"))), + 79 | ).toEqual(new Set(["0.2.3"])); + 80 | expect( + 81 | urls.every((url) => new URL(url).origin === new URL(page.url()).origin), + 82 | ).toBe(true); + 83 | const manifest = JSON.parse( + 84 | readFileSync("public/audio/manifest.json", "utf8"), + 85 | ) as { + 86 | version: string; + 87 | files: { file: string; sha256: string; bytes: number; duration: number }[]; + 88 | }; + 89 | expect(manifest.version).toBe("0.2.3"); + 90 | // 두 manifest의 파일명 충돌 없이 경로를 명시해 109개 응답을 독립 대조한다. + 91 | const entries = [ + 92 | ...manifest.files.map((entry) => ({ + 93 | ...entry, + 94 | path: `/audio/${entry.file}`, + 95 | })), + 96 | ...ambience.files.map( + 97 | (entry: { + 98 | file: string; + 99 | sha256: string; + 100 | bytes: number; + 101 | duration: number; + 102 | }) => ({ ...entry, path: `/ambience/${entry.file}` }), + 103 | ), + 104 | ]; + 105 | expect(urls.map((url) => new URL(url).pathname).sort()).toEqual( + 106 | entries.map((entry) => entry.path).sort(), + 107 | ); + 108 | requests.length = 0; + 109 | const rows = await page.evaluate( + 110 | async ({ urls, entries }) => { + 111 | const context = new OfflineAudioContext(1, 1, 24000); + 112 | const rows = []; + 113 | for (const url of urls) { + 114 | // query를 파일명으로 취급하지 않는다. 원문 파일과 응답 해시를 독립 대조한다. + 115 | const entry = entries.find( + 116 | (entry) => entry.path === new URL(url).pathname, + 117 | )!; + 118 | const response = await fetch(url); + 119 | if (!response.ok) throw Error(`${url}: HTTP ${response.status}`); + 120 | const bytes = await response.arrayBuffer(); + 121 | const sha256 = Array.from( + 122 | new Uint8Array(await crypto.subtle.digest("SHA-256", bytes)), + 123 | (b) => b.toString(16).padStart(2, "0"), + 124 | ).join(""); + 125 | if (sha256 !== entry.sha256 || bytes.byteLength !== entry.bytes) + 126 | throw Error(`${url}: integrity mismatch`); + 127 | const buffer = await context.decodeAudioData(bytes); + 128 | if ( + 129 | buffer.sampleRate !== 24000 || + 130 | buffer.numberOfChannels !== 1 || + 131 | Math.abs(buffer.duration - entry.duration) > 1e-9 + 132 | ) + 133 | throw Error(`${url}: decode format/duration mismatch`); + 134 | let power = 0, + 135 | peak = 0; + 136 | for (const sample of buffer.getChannelData(0)) { + 137 | power += sample * sample; +``` \ No newline at end of file diff --git a/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-red/audio-음성·현장음-109개-versioned-WAV를-실제-Chrome에서-해시·디코드-검증한다-desktop/trace.zip b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-red/audio-음성·현장음-109개-versioned-WAV를-실제-Chrome에서-해시·디코드-검증한다-desktop/trace.zip new file mode 100644 index 0000000..7cb41e3 Binary files /dev/null and b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-red/audio-음성·현장음-109개-versioned-WAV를-실제-Chrome에서-해시·디코드-검증한다-desktop/trace.zip differ diff --git a/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-red/audio-음성·현장음-109개-versioned-WAV를-실제-Chrome에서-해시·디코드-검증한다-mobile/error-context.md b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-red/audio-음성·현장음-109개-versioned-WAV를-실제-Chrome에서-해시·디코드-검증한다-mobile/error-context.md new file mode 100644 index 0000000..b46bca6 --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-red/audio-음성·현장음-109개-versioned-WAV를-실제-Chrome에서-해시·디코드-검증한다-mobile/error-context.md @@ -0,0 +1,285 @@ +# 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: audio.spec.ts >> 음성·현장음 109개 versioned WAV를 실제 Chrome에서 해시·디코드 검증한다 +- Location: tests/browser/audio.spec.ts:7:1 + +# Error details + +``` +Error: expect(received).toBe(expected) // Object.is equality + +Expected: true +Received: false +``` + +# 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.3 + - generic [ref=e13]: + - link "플레이 방법" [ref=e14] [cursor=pointer]: + - /url: "#howto" + - text: 플레이 방법 ↓ + - text: 소리에 집중하는 시간 + - main [ref=e15]: + - region [ref=e16]: + - generic [ref=e17]: + - paragraph [ref=e18]: 귀를 기울이면, 발견하는 즐거움 + - heading [level=2] [ref=e20]: + - text: 소음 속 작은 단어, + - emphasis [ref=e21]: 들리시나요? + - paragraph [ref=e22]: 도시의 소리 사이에 에스가 숨겨 둔 단어.조금 더 귀 기울여, 오늘의 행운을 찾아보세요. + - generic [ref=e23]: + - generic [ref=e24]: 한 라운드 3개의 질문 + - generic [ref=e25]: ·5단계 도전 + - generic [ref=e26]: ·나만의 속도로 + - generic [ref=e27]: + - generic [ref=e28]: + - generic [ref=e29]: 에스의 사운드 룸 + - generic [ref=e31]: 8가지 환경 + - generic [aria-hidden] [ref=e34]: ♪ + - generic [aria-hidden] [ref=e35]: ✳ + - generic [ref=e36]: 행운의 단어를 찾아보거라! + - generic [ref=e43]: S + - generic [ref=e44]: 소음 사이, 숨겨진 한마디 + - region [ref=e81]: + - generic [ref=e82]: + - generic [ref=e83]: "01" + - generic [ref=e84]: + - heading "나의 소리 탐험 준비" [level=2] [ref=e85] + - paragraph [ref=e86]: 한 단계에서 세 문제를 풀고, 완료 후 다음 단계에 도전해요. + - generic [ref=e87]: + - group "어떻게 답할까요?" [ref=e88]: + - generic [ref=e90]: + - generic [ref=e91] [cursor=pointer]: + - radio "골고루 풀기" [checked] [ref=e92] + - generic [aria-hidden] [ref=e93]: ◈ + - strong [ref=e94]: 골고루 풀기 + - generic [ref=e95]: 선택 + 직접 입력 + - generic [ref=e96] [cursor=pointer]: + - radio "보기에서 선택" [ref=e97] + - generic [aria-hidden] [ref=e98]: ☷ + - strong [ref=e99]: 보기에서 선택 + - generic [ref=e100]: 4개 단어 중 하나 + - generic [ref=e101] [cursor=pointer]: + - radio "직접 입력" [ref=e102] + - generic [aria-hidden] [ref=e103]: ✎ + - strong [ref=e104]: 직접 입력 + - generic [ref=e105]: 기억한 단어 쓰기 + - generic [ref=e106]: + - generic [ref=e107]: 배경 환경 + - combobox "배경 환경" [ref=e108] [cursor=pointer]: + - option "여덟 가지 일상 속으로" [selected] + - option "길거리" + - option "쇼핑몰" + - option "극장" + - option "백화점" + - option "시장" + - option "지하철" + - option "카페" + - option "비 오는 거리" + - paragraph [ref=e109]: 길거리부터 비 오는 거리까지, 매번 다른 공간을 만나요. + - generic [ref=e110]: + - generic [ref=e111]: 길거리 + - generic [ref=e112]: 카페 + - generic [ref=e113]: 지하철 + - generic [ref=e114]: +5개 환경 + - generic [ref=e115]: + - generic [ref=e116]: 시작 난이도 + - combobox "시작 난이도" [ref=e117] [cursor=pointer]: + - option "1단계 · 소리에 익숙해지기" [selected] + - option "2단계 · 귀 기울이기" + - option "3단계 · 소음 사이로" + - option "4단계 · 작은 단서 찾기" + - option "5단계 · 깊이 집중하기" + - generic [ref=e118]: + - generic [ref=e119]: 목표 음성 SNR + - slider "목표 음성 SNR" [ref=e120] [cursor=pointer]: "6" + - status [ref=e121]: SNR +6 dB + - paragraph [ref=e122]: 음성이 배경보다 6 dB 커요. 범위 −12~+12 dB · 1 dB 간격. 양수는 음성이 더 크게, 0은 같게, 음수는 더 작게 들려요. 변경은 다음 재생·재청취부터 적용돼요. + - generic [ref=e123]: + - generic [ref=e124]: ◖)) 전체 음량 + - slider "전체 음량" [ref=e125] [cursor=pointer]: "35" + - status [ref=e126]: 35% + - generic [ref=e127]: + - paragraph [ref=e128]: ♬ 편안한 작은 음량으로 시작해 보세요. + - button "게임 시작 · 소리 듣기" [ref=e129] [cursor=pointer]: + - text: 게임 시작 · 소리 듣기 + - generic [aria-hidden] [ref=e130]: → + - region [ref=e131]: + - heading "작은 단어를 발견하는 방법" [level=2] [ref=e132] + - generic [ref=e133]: + - article [ref=e134]: + - generic [ref=e135]: "01" + - heading "먼저, 귀 기울이기" [level=3] [ref=e136] + - paragraph [ref=e137]: 에스의 안내와 소음 속 문장을 들어요. 한 라운드 동안 같은 난이도로 들어요. + - article [ref=e138]: + - generic [ref=e139]: "02" + - heading "기억한 단어 찾기" [level=3] [ref=e140] + - paragraph [ref=e141]: 소리가 끝나면 질문이 나타나요. 보기에서 고르거나 직접 입력해요. + - article [ref=e142]: + - generic [ref=e143]: "03" + - heading "나의 발견 돌아보기" [level=3] [ref=e144] + - paragraph [ref=e145]: 세 문제 뒤 나의 결과를 확인해요. 놓쳤다면 언제든 다시 들어도 좋아요. + - contentinfo [ref=e146]: + - paragraph [ref=e147]: Designed by OZ at Heat-T Medical Inc. + - paragraph [ref=e148]: 청각적 주의·식별 게임 · 의료적 진단이나 치료를 제공하지 않습니다. + - generic [ref=e149]: 개인정보 수집 없이, 오직 플레이만. + - link "환경음 출처·라이선스" [ref=e150] [cursor=pointer]: + - /url: /ambience/AMBIENCE_NOTICES.md +``` + +# Test source + +```ts + 1 | import { readFileSync, writeFileSync } from "node:fs"; + 2 | import { expect, test } from "@playwright/test"; + 3 | import { createQuestions } from "../../src/game"; + 4 | import { isAudioRequest } from "./audio-requests"; + 5 | + 6 | // 과거 evidence의 검증 스크립트는 보존하고, query URL 전수 검사를 정규 suite로 옮긴다. + 7 | test("음성·현장음 109개 versioned WAV를 실제 Chrome에서 해시·디코드 검증한다", async ({ + 8 | page, + 9 | browser, + 10 | }, info) => { + 11 | const external: string[] = []; + 12 | const errors: string[] = []; + 13 | const failed: string[] = []; + 14 | const requests: string[] = []; + 15 | page.on("request", (request) => { + 16 | const url = new URL(request.url()); + 17 | if (url.origin !== "http://127.0.0.1:4173") external.push(url.href); + 18 | if (isAudioRequest(url) || url.pathname.startsWith("/ambience/")) + 19 | requests.push(url.href); + 20 | }); + 21 | page.on("console", (message) => { + 22 | if (message.type() === "error") errors.push(message.text()); + 23 | }); + 24 | page.on("requestfailed", (request) => failed.push(request.url())); + 25 | page.on("pageerror", (error) => errors.push(error.message)); + 26 | await page.goto("/"); + 27 | await expect(page).toHaveTitle("단어를 맞춰라 · Find-Word v0.2.3"); + 28 | await expect(page.locator(".version")).toHaveText("v0.2.3"); + 29 | const plan = JSON.parse(readFileSync(".agent/AMBIENCE-SOURCES-v0.2.3.json", "utf8")); + 30 | const published = await page.evaluate(async () => ({ + 31 | manifest: await (await fetch("/ambience/manifest.json?v=0.2.3")).json(), + 32 | notice: await (await fetch("/ambience/AMBIENCE_NOTICES.md?v=0.2.3")).text(), + 33 | })); + 34 | expect(published.manifest).toEqual(JSON.parse(readFileSync("public/ambience/manifest.json", "utf8"))); + 35 | for (const asset of plan.assets) { + 36 | const start = asset.selectedSegmentStartSeconds; +> 37 | expect(Number.isFinite(start)).toBe(true); + | ^ Error: expect(received).toBe(expected) // Object.is equality + 38 | expect(start).toBeGreaterThanOrEqual(0); + 39 | expect(start + 12).toBeLessThanOrEqual(asset.directMediaDurationSeconds); + 40 | const entry = published.manifest.files.find((e: { environmentId: string }) => e.environmentId === asset.environmentId); + 41 | expect(entry.selectedSegmentStartSeconds).toBe(start); + 42 | expect(entry.conversion.startSeconds).toBe(start); + 43 | expect(entry.conversion.durationSeconds).toBe(12); + 44 | const section = published.notice.split("## ").find((s: string) => s.startsWith(`${asset.displayName} — ${asset.environmentId}\n`)); + 45 | expect(section).toContain(`source seconds ${start}–${start + 12}.`); + 46 | } + 47 | // intro는 테스트에서 URL을 재조립하지 않고 배포 앱의 실제 요청을 관찰한다. + 48 | const introRequest = page.waitForRequest( + 49 | (request) => new URL(request.url()).pathname === "/audio/intro.wav", + 50 | ); + 51 | await page.getByRole("button", { name: "게임 시작 · 소리 듣기" }).click(); + 52 | const introUrl = (await introRequest).url(); + 53 | await expect(page.getByRole("group", { name: "답 선택" })).toBeVisible({ + 54 | timeout: 30000, + 55 | }); + 56 | await page.getByRole("button", { name: "문제 풀이 종료" }).click(); + 57 | await page.getByRole("button", { name: "처음 화면으로" }).click(); + 58 | const targetUrls = [ + 59 | ...new Set( + 60 | Array.from({ length: 1000 }, (_, seed) => + 61 | createQuestions(seed, "mixed").map((question) => question.audioUrl), + 62 | ).flat(), + 63 | ), + 64 | ]; + 65 | expect(targetUrls).toHaveLength(100); + 66 | const ambience = JSON.parse( + 67 | readFileSync("public/ambience/manifest.json", "utf8"), + 68 | ); + 69 | const urls = [ + 70 | introUrl, + 71 | ...ambience.files.map( + 72 | (entry: { file: string }) => + 73 | new URL(`/ambience/${entry.file}?v=0.2.3`, page.url()).href, + 74 | ), + 75 | ...targetUrls.map((url) => new URL(url, page.url()).href), + 76 | ]; + 77 | expect( + 78 | new Set(urls.map((url) => new URL(url).searchParams.get("v"))), + 79 | ).toEqual(new Set(["0.2.3"])); + 80 | expect( + 81 | urls.every((url) => new URL(url).origin === new URL(page.url()).origin), + 82 | ).toBe(true); + 83 | const manifest = JSON.parse( + 84 | readFileSync("public/audio/manifest.json", "utf8"), + 85 | ) as { + 86 | version: string; + 87 | files: { file: string; sha256: string; bytes: number; duration: number }[]; + 88 | }; + 89 | expect(manifest.version).toBe("0.2.3"); + 90 | // 두 manifest의 파일명 충돌 없이 경로를 명시해 109개 응답을 독립 대조한다. + 91 | const entries = [ + 92 | ...manifest.files.map((entry) => ({ + 93 | ...entry, + 94 | path: `/audio/${entry.file}`, + 95 | })), + 96 | ...ambience.files.map( + 97 | (entry: { + 98 | file: string; + 99 | sha256: string; + 100 | bytes: number; + 101 | duration: number; + 102 | }) => ({ ...entry, path: `/ambience/${entry.file}` }), + 103 | ), + 104 | ]; + 105 | expect(urls.map((url) => new URL(url).pathname).sort()).toEqual( + 106 | entries.map((entry) => entry.path).sort(), + 107 | ); + 108 | requests.length = 0; + 109 | const rows = await page.evaluate( + 110 | async ({ urls, entries }) => { + 111 | const context = new OfflineAudioContext(1, 1, 24000); + 112 | const rows = []; + 113 | for (const url of urls) { + 114 | // query를 파일명으로 취급하지 않는다. 원문 파일과 응답 해시를 독립 대조한다. + 115 | const entry = entries.find( + 116 | (entry) => entry.path === new URL(url).pathname, + 117 | )!; + 118 | const response = await fetch(url); + 119 | if (!response.ok) throw Error(`${url}: HTTP ${response.status}`); + 120 | const bytes = await response.arrayBuffer(); + 121 | const sha256 = Array.from( + 122 | new Uint8Array(await crypto.subtle.digest("SHA-256", bytes)), + 123 | (b) => b.toString(16).padStart(2, "0"), + 124 | ).join(""); + 125 | if (sha256 !== entry.sha256 || bytes.byteLength !== entry.bytes) + 126 | throw Error(`${url}: integrity mismatch`); + 127 | const buffer = await context.decodeAudioData(bytes); + 128 | if ( + 129 | buffer.sampleRate !== 24000 || + 130 | buffer.numberOfChannels !== 1 || + 131 | Math.abs(buffer.duration - entry.duration) > 1e-9 + 132 | ) + 133 | throw Error(`${url}: decode format/duration mismatch`); + 134 | let power = 0, + 135 | peak = 0; + 136 | for (const sample of buffer.getChannelData(0)) { + 137 | power += sample * sample; +``` \ No newline at end of file diff --git a/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-red/audio-음성·현장음-109개-versioned-WAV를-실제-Chrome에서-해시·디코드-검증한다-mobile/trace.zip b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-red/audio-음성·현장음-109개-versioned-WAV를-실제-Chrome에서-해시·디코드-검증한다-mobile/trace.zip new file mode 100644 index 0000000..a43a515 Binary files /dev/null and b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-red/audio-음성·현장음-109개-versioned-WAV를-실제-Chrome에서-해시·디코드-검증한다-mobile/trace.zip differ diff --git a/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-results.json b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-results.json new file mode 100644 index 0000000..dfb11bb --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-results.json @@ -0,0 +1,1253 @@ +{ + "config": { + "argv": [ + "/home/hermes/.hermes/node/bin/node", + "/home/hermes/worktrees/find-word-v0.2.3/node_modules/.bin/playwright", + "test", + "--reporter=line,json", + "--output=.agent/evidence-v0.2.3/privacy-screening/browser-final" + ], + "configFile": "/home/hermes/worktrees/find-word-v0.2.3/playwright.config.ts", + "rootDir": "/home/hermes/worktrees/find-word-v0.2.3/tests/browser", + "failOnFlakyTests": false, + "forbidOnly": false, + "fullyParallel": true, + "globalSetup": null, + "globalTeardown": null, + "globalTimeout": 0, + "grep": {}, + "grepInvert": null, + "maxFailures": 0, + "metadata": { + "actualWorkers": 2 + }, + "preserveOutput": "always", + "projects": [ + { + "outputDir": "/home/hermes/worktrees/find-word-v0.2.3/.agent/evidence-v0.2.3/privacy-screening/browser-final", + "repeatEach": 1, + "retries": 0, + "metadata": { + "actualWorkers": 2 + }, + "id": "desktop", + "name": "desktop", + "testDir": "/home/hermes/worktrees/find-word-v0.2.3/tests/browser", + "testIgnore": [], + "testMatch": [ + "**/*.@(spec|test).?(c|m)[jt]s?(x)" + ], + "timeout": 120000 + }, + { + "outputDir": "/home/hermes/worktrees/find-word-v0.2.3/.agent/evidence-v0.2.3/privacy-screening/browser-final", + "repeatEach": 1, + "retries": 0, + "metadata": { + "actualWorkers": 2 + }, + "id": "mobile", + "name": "mobile", + "testDir": "/home/hermes/worktrees/find-word-v0.2.3/tests/browser", + "testIgnore": [], + "testMatch": [ + "**/*.@(spec|test).?(c|m)[jt]s?(x)" + ], + "timeout": 120000 + } + ], + "filteredProjects": [ + { + "grep": {}, + "grepInvert": null, + "outputDir": "/home/hermes/worktrees/find-word-v0.2.3/.agent/evidence-v0.2.3/privacy-screening/browser-final", + "repeatEach": 1, + "retries": 0, + "metadata": { + "actualWorkers": 2 + }, + "name": "desktop", + "testDir": "/home/hermes/worktrees/find-word-v0.2.3/tests/browser", + "snapshotDir": "/home/hermes/worktrees/find-word-v0.2.3/tests/browser", + "testIgnore": [], + "testMatch": "**/*.@(spec|test).?(c|m)[jt]s?(x)", + "timeout": 120000, + "use": { + "baseURL": "http://127.0.0.1:4173", + "launchOptions": { + "executablePath": "/usr/bin/google-chrome", + "chromiumSandbox": true + }, + "trace": "retain-on-failure", + "viewport": { + "width": 1280, + "height": 1000 + } + }, + "dependencies": [], + "ignoreSnapshots": false, + "__projectId": "desktop" + }, + { + "grep": {}, + "grepInvert": null, + "outputDir": "/home/hermes/worktrees/find-word-v0.2.3/.agent/evidence-v0.2.3/privacy-screening/browser-final", + "repeatEach": 1, + "retries": 0, + "metadata": { + "actualWorkers": 2 + }, + "name": "mobile", + "testDir": "/home/hermes/worktrees/find-word-v0.2.3/tests/browser", + "snapshotDir": "/home/hermes/worktrees/find-word-v0.2.3/tests/browser", + "testIgnore": [], + "testMatch": "**/*.@(spec|test).?(c|m)[jt]s?(x)", + "timeout": 120000, + "use": { + "baseURL": "http://127.0.0.1:4173", + "launchOptions": { + "executablePath": "/usr/bin/google-chrome", + "chromiumSandbox": true + }, + "trace": "retain-on-failure", + "viewport": { + "width": 360, + "height": 800 + }, + "isMobile": true, + "hasTouch": true + }, + "dependencies": [], + "ignoreSnapshots": false, + "__projectId": "mobile" + } + ], + "quiet": false, + "reporter": [ + [ + "line" + ], + [ + "json" + ] + ], + "reportSlowTests": { + "max": 5, + "threshold": 300000 + }, + "shard": null, + "tags": [], + "updateSnapshots": "default", + "updateSourceMethod": "patch", + "version": "1.64.0", + "workers": 2, + "webServer": { + "command": "npm run preview -- --port 4173 --strictPort", + "url": "http://127.0.0.1:4173", + "reuseExistingServer": false + } + }, + "suites": [ + { + "title": "audio.spec.ts", + "file": "audio.spec.ts", + "column": 0, + "line": 0, + "specs": [ + { + "title": "음성·현장음 109개 versioned WAV를 실제 Chrome에서 해시·디코드 검증한다", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "desktop", + "projectName": "desktop", + "results": [ + { + "workerIndex": 0, + "parallelIndex": 0, + "status": "passed", + "duration": 21045, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T09:19:40.021Z", + "annotations": [], + "attachments": [ + { + "name": "109 versioned WAV integrity", + "contentType": "application/json", + "path": "/home/hermes/worktrees/find-word-v0.2.3/.agent/evidence-v0.2.3/privacy-screening/browser-final/audio-음성·현장음-109개-versioned-WAV를-실제-Chrome에서-해시·디코드-검증한다-desktop/attachments/109-versioned-WAV-integrity-bcde2a64dc46084caae2c89272a63e0ce1b6dc06.json" + } + ] + } + ], + "status": "expected" + } + ], + "id": "87be2dcdb54c25970a35-d93130048b0c80dc4106", + "file": "audio.spec.ts", + "line": 7, + "column": 1 + }, + { + "title": "음성·현장음 109개 versioned WAV를 실제 Chrome에서 해시·디코드 검증한다", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "mobile", + "projectName": "mobile", + "results": [ + { + "workerIndex": 2, + "parallelIndex": 1, + "status": "passed", + "duration": 20875, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T09:21:39.365Z", + "annotations": [], + "attachments": [ + { + "name": "109 versioned WAV integrity", + "contentType": "application/json", + "path": "/home/hermes/worktrees/find-word-v0.2.3/.agent/evidence-v0.2.3/privacy-screening/browser-final/audio-음성·현장음-109개-versioned-WAV를-실제-Chrome에서-해시·디코드-검증한다-mobile/attachments/109-versioned-WAV-integrity-c90c562b8cfd985ad0d76e1c0d918e5063cd2fba.json" + } + ] + } + ], + "status": "expected" + } + ], + "id": "87be2dcdb54c25970a35-9f9914a49e88a65e211e", + "file": "audio.spec.ts", + "line": 7, + "column": 1 + } + ] + }, + { + "title": "game.spec.ts", + "file": "game.spec.ts", + "column": 0, + "line": 0, + "specs": [ + { + "title": "실제 오디오로 혼합 모드 완주·레이아웃·접근성·외부 요청 없음", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "desktop", + "projectName": "desktop", + "results": [ + { + "workerIndex": 1, + "parallelIndex": 1, + "status": "passed", + "duration": 37648, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T09:19:40.059Z", + "annotations": [], + "attachments": [] + } + ], + "status": "expected" + } + ], + "id": "8b1bb1493a64c9fc3ab6-d223e249bc9a81f166b0", + "file": "game.spec.ts", + "line": 8, + "column": 1 + }, + { + "title": "intro WAV query URL의 404를 표시하고 같은 URL로 재시도·정답 mapping한다", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "desktop", + "projectName": "desktop", + "results": [ + { + "workerIndex": 0, + "parallelIndex": 0, + "status": "passed", + "duration": 13973, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T09:20:01.386Z", + "annotations": [], + "attachments": [] + } + ], + "status": "expected" + } + ], + "id": "8b1bb1493a64c9fc3ab6-ab45385409470bdf7ef2", + "file": "game.spec.ts", + "line": 130, + "column": 3 + }, + { + "title": "target WAV query URL의 404를 표시하고 같은 URL로 재시도·정답 mapping한다", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "desktop", + "projectName": "desktop", + "results": [ + { + "workerIndex": 0, + "parallelIndex": 0, + "status": "passed", + "duration": 19834, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T09:20:15.389Z", + "annotations": [], + "attachments": [] + } + ], + "status": "expected" + } + ], + "id": "8b1bb1493a64c9fc3ab6-52922f8228abc9f39bfe", + "file": "game.spec.ts", + "line": 130, + "column": 3 + }, + { + "title": "실제 오디오로 혼합 모드 완주·레이아웃·접근성·외부 요청 없음", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "mobile", + "projectName": "mobile", + "results": [ + { + "workerIndex": 3, + "parallelIndex": 0, + "status": "passed", + "duration": 43357, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T09:21:40.444Z", + "annotations": [], + "attachments": [] + } + ], + "status": "expected" + } + ], + "id": "8b1bb1493a64c9fc3ab6-e4766fea5c25788202a8", + "file": "game.spec.ts", + "line": 8, + "column": 1 + }, + { + "title": "intro WAV query URL의 404를 표시하고 같은 URL로 재시도·정답 mapping한다", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "mobile", + "projectName": "mobile", + "results": [ + { + "workerIndex": 2, + "parallelIndex": 1, + "status": "passed", + "duration": 16864, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T09:22:00.726Z", + "annotations": [], + "attachments": [] + } + ], + "status": "expected" + } + ], + "id": "8b1bb1493a64c9fc3ab6-84b7835dc149f0ebaeb2", + "file": "game.spec.ts", + "line": 130, + "column": 3 + }, + { + "title": "target WAV query URL의 404를 표시하고 같은 URL로 재시도·정답 mapping한다", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "mobile", + "projectName": "mobile", + "results": [ + { + "workerIndex": 2, + "parallelIndex": 1, + "status": "passed", + "duration": 16253, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T09:22:17.635Z", + "annotations": [], + "attachments": [] + } + ], + "status": "expected" + } + ], + "id": "8b1bb1493a64c9fc3ab6-05de2d3047fb33c59bd2", + "file": "game.spec.ts", + "line": 130, + "column": 3 + } + ] + }, + { + "title": "release.spec.ts", + "file": "release.spec.ts", + "column": 0, + "line": 0, + "specs": [ + { + "title": "릴리스는 사용자 크레딧과 런타임 MIT notice 전문을 제공한다", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "desktop", + "projectName": "desktop", + "results": [ + { + "workerIndex": 1, + "parallelIndex": 1, + "status": "passed", + "duration": 553, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T09:20:18.095Z", + "annotations": [], + "attachments": [] + } + ], + "status": "expected" + } + ], + "id": "7324964a6aa193ebd049-64d3eb3e631d5e3a7482", + "file": "release.spec.ts", + "line": 6, + "column": 1 + }, + { + "title": "누락 음성·환경음은 query와 HTML accept에도 404이고 출처 고지는 번들된다", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "desktop", + "projectName": "desktop", + "results": [ + { + "workerIndex": 1, + "parallelIndex": 1, + "status": "passed", + "duration": 55, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T09:20:18.683Z", + "annotations": [], + "attachments": [] + } + ], + "status": "expected" + } + ], + "id": "7324964a6aa193ebd049-a9a4a24641e1381cb656", + "file": "release.spec.ts", + "line": 24, + "column": 1 + }, + { + "title": "릴리스는 사용자 크레딧과 런타임 MIT notice 전문을 제공한다", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "mobile", + "projectName": "mobile", + "results": [ + { + "workerIndex": 3, + "parallelIndex": 0, + "status": "passed", + "duration": 290, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T09:22:24.235Z", + "annotations": [], + "attachments": [] + } + ], + "status": "expected" + } + ], + "id": "7324964a6aa193ebd049-b2bb581aa05f7bfc0a11", + "file": "release.spec.ts", + "line": 6, + "column": 1 + }, + { + "title": "누락 음성·환경음은 query와 HTML accept에도 404이고 출처 고지는 번들된다", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "mobile", + "projectName": "mobile", + "results": [ + { + "workerIndex": 3, + "parallelIndex": 0, + "status": "passed", + "duration": 18, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T09:22:24.547Z", + "annotations": [], + "attachments": [] + } + ], + "status": "expected" + } + ], + "id": "7324964a6aa193ebd049-87e393dee6d378b60b88", + "file": "release.spec.ts", + "line": 24, + "column": 1 + } + ] + }, + { + "title": "review-fixes.spec.ts", + "file": "review-fixes.spec.ts", + "column": 0, + "line": 0, + "specs": [ + { + "title": "리뷰: 한국어 모드·결과 어절은 320px와 360px에서도 갈라지거나 넘치지 않는다", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "desktop", + "projectName": "desktop", + "results": [ + { + "workerIndex": 1, + "parallelIndex": 1, + "status": "passed", + "duration": 2077, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T09:20:18.767Z", + "annotations": [], + "attachments": [] + } + ], + "status": "expected" + } + ], + "id": "abdd2e2cf517d3c959fd-e748bd769b024912a05a", + "file": "review-fixes.spec.ts", + "line": 27, + "column": 1 + }, + { + "title": "리뷰: 실제 진행 막대는 현재 문항의 1/3·2/3·3/3을 채운다", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "desktop", + "projectName": "desktop", + "results": [ + { + "workerIndex": 1, + "parallelIndex": 1, + "status": "passed", + "duration": 34208, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T09:20:20.873Z", + "annotations": [], + "attachments": [] + } + ], + "status": "expected" + } + ], + "id": "abdd2e2cf517d3c959fd-f7936886d307bf504a2e", + "file": "review-fixes.spec.ts", + "line": 62, + "column": 1 + }, + { + "title": "리뷰: 한국어 모드·결과 어절은 320px와 360px에서도 갈라지거나 넘치지 않는다", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "mobile", + "projectName": "mobile", + "results": [ + { + "workerIndex": 3, + "parallelIndex": 0, + "status": "passed", + "duration": 1620, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T09:22:24.582Z", + "annotations": [], + "attachments": [] + } + ], + "status": "expected" + } + ], + "id": "abdd2e2cf517d3c959fd-297a2a889ff2a2c13233", + "file": "review-fixes.spec.ts", + "line": 27, + "column": 1 + }, + { + "title": "리뷰: 실제 진행 막대는 현재 문항의 1/3·2/3·3/3을 채운다", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "mobile", + "projectName": "mobile", + "results": [ + { + "workerIndex": 3, + "parallelIndex": 0, + "status": "passed", + "duration": 30692, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T09:22:26.215Z", + "annotations": [], + "attachments": [] + } + ], + "status": "expected" + } + ], + "id": "abdd2e2cf517d3c959fd-99533baf08fa35da0cd2", + "file": "review-fixes.spec.ts", + "line": 62, + "column": 1 + } + ] + }, + { + "title": "rounds.spec.ts", + "file": "rounds.spec.ts", + "column": 0, + "line": 0, + "specs": [ + { + "title": "시작 단계·SNR·3문항 완료→다음 단계·재생 중 종료·응답 후 종료·홈 초기화", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "desktop", + "projectName": "desktop", + "results": [ + { + "workerIndex": 0, + "parallelIndex": 0, + "status": "passed", + "duration": 63528, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T09:20:35.282Z", + "annotations": [], + "attachments": [ + { + "name": "runtime-audit", + "contentType": "application/json", + "body": "ewogICJlcnJvcnMiOiBbXSwKICAiZmFpbGVkIjogW10sCiAgImV4dGVybmFsIjogW10sCiAgImF1ZGlvIjogewogICAgInN0YXJ0cyI6IFsKICAgICAgewogICAgICAgICJsb29wIjogdHJ1ZSwKICAgICAgICAiZHVyYXRpb24iOiAxMgogICAgICB9LAogICAgICB7CiAgICAgICAgImxvb3AiOiBmYWxzZSwKICAgICAgICAiZHVyYXRpb24iOiA3LjA1NTk4NjM5NDU1NzgyMwogICAgICB9LAogICAgICB7CiAgICAgICAgImxvb3AiOiBmYWxzZSwKICAgICAgICAiZHVyYXRpb24iOiAxMC43NzU5ODYzOTQ1NTc4MjIKICAgICAgfSwKICAgICAgewogICAgICAgICJsb29wIjogdHJ1ZSwKICAgICAgICAiZHVyYXRpb24iOiAxMgogICAgICB9LAogICAgICB7CiAgICAgICAgImxvb3AiOiBmYWxzZSwKICAgICAgICAiZHVyYXRpb24iOiA1LjA4Nzk4MTg1OTQxMDQzMQogICAgICB9LAogICAgICB7CiAgICAgICAgImxvb3AiOiB0cnVlLAogICAgICAgICJkdXJhdGlvbiI6IDEyCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAibG9vcCI6IGZhbHNlLAogICAgICAgICJkdXJhdGlvbiI6IDcuMgogICAgICB9LAogICAgICB7CiAgICAgICAgImxvb3AiOiB0cnVlLAogICAgICAgICJkdXJhdGlvbiI6IDEyCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAibG9vcCI6IGZhbHNlLAogICAgICAgICJkdXJhdGlvbiI6IDcuMDU1OTg2Mzk0NTU3ODIzCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAibG9vcCI6IGZhbHNlLAogICAgICAgICJkdXJhdGlvbiI6IDguMjMxOTk1NDY0ODUyNjA3CiAgICAgIH0sCiAgICAgIHsKICAgICAgICAibG9vcCI6IHRydWUsCiAgICAgICAgImR1cmF0aW9uIjogMTIKICAgICAgfSwKICAgICAgewogICAgICAgICJsb29wIjogZmFsc2UsCiAgICAgICAgImR1cmF0aW9uIjogNy4wNTU5ODYzOTQ1NTc4MjMKICAgICAgfSwKICAgICAgewogICAgICAgICJsb29wIjogZmFsc2UsCiAgICAgICAgImR1cmF0aW9uIjogOC44MzE5OTU0NjQ4NTI2MDcKICAgICAgfSwKICAgICAgewogICAgICAgICJsb29wIjogdHJ1ZSwKICAgICAgICAiZHVyYXRpb24iOiAxMgogICAgICB9LAogICAgICB7CiAgICAgICAgImxvb3AiOiBmYWxzZSwKICAgICAgICAiZHVyYXRpb24iOiA4LjgzMTk5NTQ2NDg1MjYwNwogICAgICB9CiAgICBdLAogICAgInN0b3BzIjogMTUKICB9Cn0=" + } + ] + } + ], + "status": "expected" + } + ], + "id": "5d80d20ef944a60dee29-84fa7dcc311fcc9f3abb", + "file": "rounds.spec.ts", + "line": 35, + "column": 1 + }, + { + "title": "여덟 환경의 실제 WAV를 각각 디코드하고 루프 재생한 뒤 즉시 정지한다", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "desktop", + "projectName": "desktop", + "results": [ + { + "workerIndex": 1, + "parallelIndex": 1, + "status": "passed", + "duration": 8092, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T09:20:55.136Z", + "annotations": [], + "attachments": [] + } + ], + "status": "expected" + } + ], + "id": "5d80d20ef944a60dee29-67ee259e43d6a5758a4c", + "file": "rounds.spec.ts", + "line": 135, + "column": 1 + }, + { + "title": "환경음 404는 한국어 오류와 재시도 후 정상 답변으로 복구한다", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "desktop", + "projectName": "desktop", + "results": [ + { + "workerIndex": 1, + "parallelIndex": 1, + "status": "passed", + "duration": 13808, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T09:21:03.257Z", + "annotations": [], + "attachments": [] + } + ], + "status": "expected" + } + ], + "id": "5d80d20ef944a60dee29-b3270c20fde2468292dc", + "file": "rounds.spec.ts", + "line": 178, + "column": 1 + }, + { + "title": "시작 단계·SNR·3문항 완료→다음 단계·재생 중 종료·응답 후 종료·홈 초기화", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "mobile", + "projectName": "mobile", + "results": [ + { + "workerIndex": 2, + "parallelIndex": 1, + "status": "passed", + "duration": 63087, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T09:22:33.938Z", + "annotations": [], + "attachments": [ + { + "name": "runtime-audit", + "contentType": "application/json", + "body": "ewogICJlcnJvcnMiOiBbXSwKICAiZmFpbGVkIjogW10sCiAgImV4dGVybmFsIjogW10sCiAgImF1ZGlvIjogewogICAgInN0YXJ0cyI6IFsKICAgICAgewogICAgICAgICJsb29wIjogdHJ1ZSwKICAgICAgICAiZHVyYXRpb24iOiAxMgogICAgICB9LAogICAgICB7CiAgICAgICAgImxvb3AiOiBmYWxzZSwKICAgICAgICAiZHVyYXRpb24iOiA3LjA1NTk4NjM5NDU1NzgyMwogICAgICB9LAogICAgICB7CiAgICAgICAgImxvb3AiOiBmYWxzZSwKICAgICAgICAiZHVyYXRpb24iOiAxMS4yNTU5ODYzOTQ1NTc4MjMKICAgICAgfSwKICAgICAgewogICAgICAgICJsb29wIjogdHJ1ZSwKICAgICAgICAiZHVyYXRpb24iOiAxMgogICAgICB9LAogICAgICB7CiAgICAgICAgImxvb3AiOiBmYWxzZSwKICAgICAgICAiZHVyYXRpb24iOiA3LjQxNTk4NjM5NDU1NzgyMwogICAgICB9LAogICAgICB7CiAgICAgICAgImxvb3AiOiB0cnVlLAogICAgICAgICJkdXJhdGlvbiI6IDEyCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAibG9vcCI6IGZhbHNlLAogICAgICAgICJkdXJhdGlvbiI6IDguMzI3OTgxODU5NDEwNDMKICAgICAgfSwKICAgICAgewogICAgICAgICJsb29wIjogdHJ1ZSwKICAgICAgICAiZHVyYXRpb24iOiAxMgogICAgICB9LAogICAgICB7CiAgICAgICAgImxvb3AiOiBmYWxzZSwKICAgICAgICAiZHVyYXRpb24iOiA3LjA1NTk4NjM5NDU1NzgyMwogICAgICB9LAogICAgICB7CiAgICAgICAgImxvb3AiOiBmYWxzZSwKICAgICAgICAiZHVyYXRpb24iOiA4LjQ3MTk5NTQ2NDg1MjYwOAogICAgICB9LAogICAgICB7CiAgICAgICAgImxvb3AiOiB0cnVlLAogICAgICAgICJkdXJhdGlvbiI6IDEyCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAibG9vcCI6IGZhbHNlLAogICAgICAgICJkdXJhdGlvbiI6IDcuMDU1OTg2Mzk0NTU3ODIzCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAibG9vcCI6IGZhbHNlLAogICAgICAgICJkdXJhdGlvbiI6IDcuNjc5OTc3MzI0MjYzMDM5CiAgICAgIH0sCiAgICAgIHsKICAgICAgICAibG9vcCI6IHRydWUsCiAgICAgICAgImR1cmF0aW9uIjogMTIKICAgICAgfSwKICAgICAgewogICAgICAgICJsb29wIjogZmFsc2UsCiAgICAgICAgImR1cmF0aW9uIjogNy42Nzk5NzczMjQyNjMwMzkKICAgICAgfQogICAgXSwKICAgICJzdG9wcyI6IDE1CiAgfQp9" + } + ] + } + ], + "status": "expected" + } + ], + "id": "5d80d20ef944a60dee29-13a6d49b3ccf87a3e87d", + "file": "rounds.spec.ts", + "line": 35, + "column": 1 + }, + { + "title": "여덟 환경의 실제 WAV를 각각 디코드하고 루프 재생한 뒤 즉시 정지한다", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "mobile", + "projectName": "mobile", + "results": [ + { + "workerIndex": 3, + "parallelIndex": 0, + "status": "passed", + "duration": 6095, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T09:22:56.929Z", + "annotations": [], + "attachments": [] + } + ], + "status": "expected" + } + ], + "id": "5d80d20ef944a60dee29-986d947b51ae90d63e40", + "file": "rounds.spec.ts", + "line": 135, + "column": 1 + }, + { + "title": "환경음 404는 한국어 오류와 재시도 후 정상 답변으로 복구한다", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "mobile", + "projectName": "mobile", + "results": [ + { + "workerIndex": 3, + "parallelIndex": 0, + "status": "passed", + "duration": 15890, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T09:23:03.064Z", + "annotations": [], + "attachments": [] + } + ], + "status": "expected" + } + ], + "id": "5d80d20ef944a60dee29-cf677d38ab55c08f0ba0", + "file": "rounds.spec.ts", + "line": 178, + "column": 1 + } + ] + }, + { + "title": "ui.spec.ts", + "file": "ui.spec.ts", + "column": 0, + "line": 0, + "specs": [ + { + "title": "전체 음량은 설정 흐름 안에 들어가며 키보드로 조절된다", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "desktop", + "projectName": "desktop", + "results": [ + { + "workerIndex": 1, + "parallelIndex": 1, + "status": "passed", + "duration": 1458, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T09:21:17.129Z", + "annotations": [], + "attachments": [] + } + ], + "status": "expected" + } + ], + "id": "d425444c687fa36b5882-2f651fec20696a7afab2", + "file": "ui.spec.ts", + "line": 4, + "column": 1 + }, + { + "title": "난이도 설명은 모바일에서도 보인다", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "desktop", + "projectName": "desktop", + "results": [ + { + "workerIndex": 1, + "parallelIndex": 1, + "status": "passed", + "duration": 1012, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T09:21:18.617Z", + "annotations": [], + "attachments": [] + } + ], + "status": "expected" + } + ], + "id": "d425444c687fa36b5882-7db7ff839d8655c45b58", + "file": "ui.spec.ts", + "line": 52, + "column": 1 + }, + { + "title": "한국어 제목은 단어 중간에서 줄바꿈하지 않는다", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "desktop", + "projectName": "desktop", + "results": [ + { + "workerIndex": 1, + "parallelIndex": 1, + "status": "passed", + "duration": 17420, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T09:21:19.658Z", + "annotations": [], + "attachments": [] + } + ], + "status": "expected" + } + ], + "id": "d425444c687fa36b5882-7518419f9a74847f1877", + "file": "ui.spec.ts", + "line": 68, + "column": 1 + }, + { + "title": "시작 단계와 SNR 설정은 카드 안에 들어가고 터치 영역을 확보한다", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "desktop", + "projectName": "desktop", + "results": [ + { + "workerIndex": 1, + "parallelIndex": 1, + "status": "passed", + "duration": 893, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T09:21:37.111Z", + "annotations": [], + "attachments": [] + } + ], + "status": "expected" + } + ], + "id": "d425444c687fa36b5882-8c65d4cc796bafc3d050", + "file": "ui.spec.ts", + "line": 121, + "column": 1 + }, + { + "title": "전체 음량은 설정 흐름 안에 들어가며 키보드로 조절된다", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "mobile", + "projectName": "mobile", + "results": [ + { + "workerIndex": 3, + "parallelIndex": 0, + "status": "passed", + "duration": 789, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T09:23:18.986Z", + "annotations": [], + "attachments": [] + } + ], + "status": "expected" + } + ], + "id": "d425444c687fa36b5882-42b32cae06f88c5571de", + "file": "ui.spec.ts", + "line": 4, + "column": 1 + }, + { + "title": "난이도 설명은 모바일에서도 보인다", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "mobile", + "projectName": "mobile", + "results": [ + { + "workerIndex": 3, + "parallelIndex": 0, + "status": "passed", + "duration": 667, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T09:23:19.791Z", + "annotations": [], + "attachments": [] + } + ], + "status": "expected" + } + ], + "id": "d425444c687fa36b5882-9bad02fda46134f05a95", + "file": "ui.spec.ts", + "line": 52, + "column": 1 + }, + { + "title": "한국어 제목은 단어 중간에서 줄바꿈하지 않는다", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "mobile", + "projectName": "mobile", + "results": [ + { + "workerIndex": 3, + "parallelIndex": 0, + "status": "passed", + "duration": 17063, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T09:23:20.473Z", + "annotations": [], + "attachments": [] + } + ], + "status": "expected" + } + ], + "id": "d425444c687fa36b5882-6ac401056de90e7e3757", + "file": "ui.spec.ts", + "line": 68, + "column": 1 + }, + { + "title": "시작 단계와 SNR 설정은 카드 안에 들어가고 터치 영역을 확보한다", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "mobile", + "projectName": "mobile", + "results": [ + { + "workerIndex": 2, + "parallelIndex": 1, + "status": "passed", + "duration": 335, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T09:23:37.057Z", + "annotations": [], + "attachments": [] + } + ], + "status": "expected" + } + ], + "id": "d425444c687fa36b5882-c761fe2d98a1c83f2536", + "file": "ui.spec.ts", + "line": 121, + "column": 1 + } + ] + } + ], + "errors": [], + "stats": { + "startTime": "2026-10-14T09:19:38.889Z", + "duration": 238765.232, + "expected": 30, + "skipped": 0, + "unexpected": 0, + "flaky": 0 + } +} \ No newline at end of file diff --git a/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/candidate-scan-original.json b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/candidate-scan-original.json new file mode 100644 index 0000000..40a3d24 --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/candidate-scan-original.json @@ -0,0 +1,128 @@ +{ + "mall": [ + { + "start": 0, + "lang": "nn", + "p": 0.136, + "text": "We are going to take a look at this. We are going to take a look at this. We are going to take a look at this." + }, + { + "start": 12, + "lang": "en", + "p": 0.41, + "text": "Thank you." + }, + { + "start": 24, + "lang": "en", + "p": 0.302, + "text": "" + }, + { + "start": 36, + "lang": "en", + "p": 0.302, + "text": "" + }, + { + "start": 48, + "lang": "ru", + "p": 0.176, + "text": "ДИНАМИЧНАЯ МУЗЫКА" + } + ], + "market": [ + { + "start": 0, + "lang": "ja", + "p": 0.275, + "text": "キスチャでに伸ばしてる よろしくかどうしよう ごたさら、かき下でいらっしゃいこう" + }, + { + "start": 12, + "lang": "nn", + "p": 0.108, + "text": "Hey, you can't go anywhere but come! Hey, hey, hey, hey, hey!" + }, + { + "start": 24, + "lang": "en", + "p": 0.258, + "text": "" + }, + { + "start": 36, + "lang": "en", + "p": 0.302, + "text": "" + }, + { + "start": 48, + "lang": "ja", + "p": 0.205, + "text": "アナウンスで行ったら、 アナウンスで行ったら、 アナウンスで行ったら、" + }, + { + "start": 60, + "lang": "en", + "p": 0.334, + "text": "" + } + ], + "cafe": [ + { + "start": 0, + "lang": "en", + "p": 0.302, + "text": "" + }, + { + "start": 60, + "lang": "en", + "p": 0.225, + "text": "Thank you very much." + }, + { + "start": 120, + "lang": "en", + "p": 0.264, + "text": "Thank you." + }, + { + "start": 180, + "lang": "en", + "p": 0.302, + "text": "" + }, + { + "start": 300, + "lang": "en", + "p": 0.302, + "text": "" + }, + { + "start": 480, + "lang": "en", + "p": 0.302, + "text": "" + }, + { + "start": 720, + "lang": "en", + "p": 0.302, + "text": "" + }, + { + "start": 960, + "lang": "en", + "p": 0.302, + "text": "" + }, + { + "start": 1140, + "lang": "en", + "p": 0.302, + "text": "" + } + ] +} diff --git a/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/chrome-sandbox.json b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/chrome-sandbox.json new file mode 100644 index 0000000..8db06d4 --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/chrome-sandbox.json @@ -0,0 +1,637 @@ +{ + "capturedAtUtc": "2026-10-14T09:21:57.933277+00:00", + "runnerPids": [ + 1143583 + ], + "method": "Chrome descendants of this suite runner only; chromiumSandbox=true; no --no-sandbox token in actual process command lines", + "processes": [ + { + "pid": 1150425, + "ppid": 1150374, + "commandLine": "/opt/google/chrome/chrome --disable-field-trial-config --disable-background-networking --disable-background-timer-throttling --disable-backgrounding-occluded-windows --disable-back-forward-cache --disable-breakpad --disable-client-side-phishing-detection --disable-component-extensions-with-background-pages --disable-component-update --no-default-browser-check --disable-default-apps --disable-dev-shm-usage --disable-edgeupdater --disable-extensions --disable-features=AvoidUnnecessaryBeforeUnloadCheckSync,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,PaintHolding,ThirdPartyStoragePartitioning,BlockOriginHeaderModificationOnRedirect,Translate,AutoDeElevate,OptimizationHints,NetworkTimeServiceQuerying,AimEnabled,msForceBrowserSignIn,msEdgeUpdateLaunchServicesPreferredVersion --enable-features=CDPScreenshotNewSurface --allow-pre-commit-input --disable-hang-monitor --disable-ipc-flooding-protection --disable-popup-blocking --disable-prompt-on-repost --disable-renderer-backgrounding --disable-updater-scheduler --force-color-profile=srgb --metrics-recording-only --no-first-run --password-store=basic --use-mock-keychain --no-service-autorun --export-tagged-pdf --disable-search-engine-choice-screen --unsafely-disable-devtools-self-xss-warnings --edge-skip-compat-layer-relaunch --disable-infobars --disable-search-engine-choice-screen --disable-sync --enable-unsafe-swiftshader --headless --hide-scrollbars --mute-audio --blink-settings=primaryHoverType=2,availableHoverTypes=2,primaryPointerType=4,availablePointerTypes=4 --user-data-dir=/tmp/playwright_chromiumdev_profile-FjSsOM --remote-debugging-pipe --no-startup-window --noerrdialogs --ozone-platform=headless --ozone-override-screen-size=800,600 --use-angle=swiftshader-webgl", + "arguments": [ + "/opt/google/chrome/chrome", + "--disable-field-trial-config", + "--disable-background-networking", + "--disable-background-timer-throttling", + "--disable-backgrounding-occluded-windows", + "--disable-back-forward-cache", + "--disable-breakpad", + "--disable-client-side-phishing-detection", + "--disable-component-extensions-with-background-pages", + "--disable-component-update", + "--no-default-browser-check", + "--disable-default-apps", + "--disable-dev-shm-usage", + "--disable-edgeupdater", + "--disable-extensions", + "--disable-features=AvoidUnnecessaryBeforeUnloadCheckSync,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,PaintHolding,ThirdPartyStoragePartitioning,BlockOriginHeaderModificationOnRedirect,Translate,AutoDeElevate,OptimizationHints,NetworkTimeServiceQuerying,AimEnabled,msForceBrowserSignIn,msEdgeUpdateLaunchServicesPreferredVersion", + "--enable-features=CDPScreenshotNewSurface", + "--allow-pre-commit-input", + "--disable-hang-monitor", + "--disable-ipc-flooding-protection", + "--disable-popup-blocking", + "--disable-prompt-on-repost", + "--disable-renderer-backgrounding", + "--disable-updater-scheduler", + "--force-color-profile=srgb", + "--metrics-recording-only", + "--no-first-run", + "--password-store=basic", + "--use-mock-keychain", + "--no-service-autorun", + "--export-tagged-pdf", + "--disable-search-engine-choice-screen", + "--unsafely-disable-devtools-self-xss-warnings", + "--edge-skip-compat-layer-relaunch", + "--disable-infobars", + "--disable-search-engine-choice-screen", + "--disable-sync", + "--enable-unsafe-swiftshader", + "--headless", + "--hide-scrollbars", + "--mute-audio", + "--blink-settings=primaryHoverType=2,availableHoverTypes=2,primaryPointerType=4,availablePointerTypes=4", + "--user-data-dir=/tmp/playwright_chromiumdev_profile-FjSsOM", + "--remote-debugging-pipe", + "--no-startup-window", + "--noerrdialogs", + "--ozone-platform=headless", + "--ozone-override-screen-size=800,600", + "--use-angle=swiftshader-webgl" + ] + }, + { + "pid": 1150447, + "ppid": 1150425, + "commandLine": "/opt/google/chrome/chrome --type=zygote --no-zygote-sandbox --headless --crashpad-handler-pid=1150439 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/playwright_chromiumdev_profile-FjSsOM --change-stack-guard-on-fork=enable --no-first-run --ozone-platform=headless --ozone-override-screen-size=800,600 --use-angle=swiftshader-webgl", + "arguments": [ + "/opt/google/chrome/chrome", + "--type=zygote", + "--no-zygote-sandbox", + "--headless", + "--crashpad-handler-pid=1150439", + "--enable-crash-reporter=,", + "--noerrdialogs", + "--user-data-dir=/tmp/playwright_chromiumdev_profile-FjSsOM", + "--change-stack-guard-on-fork=enable", + "--no-first-run", + "--ozone-platform=headless", + "--ozone-override-screen-size=800,600", + "--use-angle=swiftshader-webgl" + ] + }, + { + "pid": 1150448, + "ppid": 1150425, + "commandLine": "/opt/google/chrome/chrome --type=zygote --headless --crashpad-handler-pid=1150439 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/playwright_chromiumdev_profile-FjSsOM --change-stack-guard-on-fork=enable --no-first-run --ozone-platform=headless --ozone-override-screen-size=800,600 --use-angle=swiftshader-webgl", + "arguments": [ + "/opt/google/chrome/chrome", + "--type=zygote", + "--headless", + "--crashpad-handler-pid=1150439", + "--enable-crash-reporter=,", + "--noerrdialogs", + "--user-data-dir=/tmp/playwright_chromiumdev_profile-FjSsOM", + "--change-stack-guard-on-fork=enable", + "--no-first-run", + "--ozone-platform=headless", + "--ozone-override-screen-size=800,600", + "--use-angle=swiftshader-webgl" + ] + }, + { + "pid": 1150451, + "ppid": 1150448, + "commandLine": "/opt/google/chrome/chrome --type=zygote --headless --crashpad-handler-pid=1150439 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/playwright_chromiumdev_profile-FjSsOM --change-stack-guard-on-fork=enable --no-first-run --ozone-platform=headless --ozone-override-screen-size=800,600 --use-angle=swiftshader-webgl", + "arguments": [ + "/opt/google/chrome/chrome", + "--type=zygote", + "--headless", + "--crashpad-handler-pid=1150439", + "--enable-crash-reporter=,", + "--noerrdialogs", + "--user-data-dir=/tmp/playwright_chromiumdev_profile-FjSsOM", + "--change-stack-guard-on-fork=enable", + "--no-first-run", + "--ozone-platform=headless", + "--ozone-override-screen-size=800,600", + "--use-angle=swiftshader-webgl" + ] + }, + { + "pid": 1150472, + "ppid": 1150447, + "commandLine": "/opt/google/chrome/chrome --type=gpu-process --disable-dev-shm-usage --disable-breakpad --headless --ozone-platform=headless --use-angle=swiftshader-webgl --enable-unsafe-swiftshader --crashpad-handler-pid=1150439 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/playwright_chromiumdev_profile-FjSsOM --change-stack-guard-on-fork=enable --gpu-preferences=UAAAAAAAAAAgAAAEAAAAAAAAAAAAAGAAAQAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAYAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAgAAAAAAAAA --shared-files --field-trial-handle=3,i,16751779656710944080,9574512793703583948,262144 --enable-features=CDPScreenshotNewSurface --disable-features=AimEnabled,AutoDeElevate,AvoidUnnecessaryBeforeUnloadCheckSync,BlockOriginHeaderModificationOnRedirect,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,NetworkTimeServiceQuerying,OptimizationHints,PaintHolding,ThirdPartyStoragePartitioning,Translate,msEdgeUpdateLaunchServicesPreferredVersion,msForceBrowserSignIn --variations-seed-version --pseudonymization-salt-handle=7,i,5504656500254648753,8553557855284974703,4 --trace-process-track-uuid=3190708988185955192", + "arguments": [ + "/opt/google/chrome/chrome", + "--type=gpu-process", + "--disable-dev-shm-usage", + "--disable-breakpad", + "--headless", + "--ozone-platform=headless", + "--use-angle=swiftshader-webgl", + "--enable-unsafe-swiftshader", + "--crashpad-handler-pid=1150439", + "--enable-crash-reporter=,", + "--noerrdialogs", + "--user-data-dir=/tmp/playwright_chromiumdev_profile-FjSsOM", + "--change-stack-guard-on-fork=enable", + "--gpu-preferences=UAAAAAAAAAAgAAAEAAAAAAAAAAAAAGAAAQAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAYAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAgAAAAAAAAA", + "--shared-files", + "--field-trial-handle=3,i,16751779656710944080,9574512793703583948,262144", + "--enable-features=CDPScreenshotNewSurface", + "--disable-features=AimEnabled,AutoDeElevate,AvoidUnnecessaryBeforeUnloadCheckSync,BlockOriginHeaderModificationOnRedirect,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,NetworkTimeServiceQuerying,OptimizationHints,PaintHolding,ThirdPartyStoragePartitioning,Translate,msEdgeUpdateLaunchServicesPreferredVersion,msForceBrowserSignIn", + "--variations-seed-version", + "--pseudonymization-salt-handle=7,i,5504656500254648753,8553557855284974703,4", + "--trace-process-track-uuid=3190708988185955192" + ] + }, + { + "pid": 1150474, + "ppid": 1150425, + "commandLine": "/opt/google/chrome/chrome --type=utility --utility-sub-type=network.mojom.NetworkService --lang=en-US --service-sandbox-type=none --disable-dev-shm-usage --use-angle=swiftshader-webgl --mute-audio --crashpad-handler-pid=1150439 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/playwright_chromiumdev_profile-FjSsOM --change-stack-guard-on-fork=enable --shared-files=v8_context_snapshot_data:100 --field-trial-handle=3,i,16751779656710944080,9574512793703583948,262144 --enable-features=CDPScreenshotNewSurface --disable-features=AimEnabled,AutoDeElevate,AvoidUnnecessaryBeforeUnloadCheckSync,BlockOriginHeaderModificationOnRedirect,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,NetworkTimeServiceQuerying,OptimizationHints,PaintHolding,ThirdPartyStoragePartitioning,Translate,msEdgeUpdateLaunchServicesPreferredVersion,msForceBrowserSignIn --variations-seed-version --pseudonymization-salt-handle=7,i,5504656500254648753,8553557855284974703,4 --trace-process-track-uuid=3190708989122997041", + "arguments": [ + "/opt/google/chrome/chrome", + "--type=utility", + "--utility-sub-type=network.mojom.NetworkService", + "--lang=en-US", + "--service-sandbox-type=none", + "--disable-dev-shm-usage", + "--use-angle=swiftshader-webgl", + "--mute-audio", + "--crashpad-handler-pid=1150439", + "--enable-crash-reporter=,", + "--noerrdialogs", + "--user-data-dir=/tmp/playwright_chromiumdev_profile-FjSsOM", + "--change-stack-guard-on-fork=enable", + "--shared-files=v8_context_snapshot_data:100", + "--field-trial-handle=3,i,16751779656710944080,9574512793703583948,262144", + "--enable-features=CDPScreenshotNewSurface", + "--disable-features=AimEnabled,AutoDeElevate,AvoidUnnecessaryBeforeUnloadCheckSync,BlockOriginHeaderModificationOnRedirect,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,NetworkTimeServiceQuerying,OptimizationHints,PaintHolding,ThirdPartyStoragePartitioning,Translate,msEdgeUpdateLaunchServicesPreferredVersion,msForceBrowserSignIn", + "--variations-seed-version", + "--pseudonymization-salt-handle=7,i,5504656500254648753,8553557855284974703,4", + "--trace-process-track-uuid=3190708989122997041" + ] + }, + { + "pid": 1150485, + "ppid": 1150451, + "commandLine": "/opt/google/chrome/chrome --type=utility --utility-sub-type=storage.mojom.StorageService --lang=en-US --service-sandbox-type=utility --disable-dev-shm-usage --use-angle=swiftshader-webgl --mute-audio --crashpad-handler-pid=1150439 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/playwright_chromiumdev_profile-FjSsOM --change-stack-guard-on-fork=enable --shared-files=v8_context_snapshot_data:100 --field-trial-handle=3,i,16751779656710944080,9574512793703583948,262144 --enable-features=CDPScreenshotNewSurface --disable-features=AimEnabled,AutoDeElevate,AvoidUnnecessaryBeforeUnloadCheckSync,BlockOriginHeaderModificationOnRedirect,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,NetworkTimeServiceQuerying,OptimizationHints,PaintHolding,ThirdPartyStoragePartitioning,Translate,msEdgeUpdateLaunchServicesPreferredVersion,msForceBrowserSignIn --variations-seed-version --pseudonymization-salt-handle=7,i,5504656500254648753,8553557855284974703,4 --trace-process-track-uuid=3190708990060038890", + "arguments": [ + "/opt/google/chrome/chrome", + "--type=utility", + "--utility-sub-type=storage.mojom.StorageService", + "--lang=en-US", + "--service-sandbox-type=utility", + "--disable-dev-shm-usage", + "--use-angle=swiftshader-webgl", + "--mute-audio", + "--crashpad-handler-pid=1150439", + "--enable-crash-reporter=,", + "--noerrdialogs", + "--user-data-dir=/tmp/playwright_chromiumdev_profile-FjSsOM", + "--change-stack-guard-on-fork=enable", + "--shared-files=v8_context_snapshot_data:100", + "--field-trial-handle=3,i,16751779656710944080,9574512793703583948,262144", + "--enable-features=CDPScreenshotNewSurface", + "--disable-features=AimEnabled,AutoDeElevate,AvoidUnnecessaryBeforeUnloadCheckSync,BlockOriginHeaderModificationOnRedirect,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,NetworkTimeServiceQuerying,OptimizationHints,PaintHolding,ThirdPartyStoragePartitioning,Translate,msEdgeUpdateLaunchServicesPreferredVersion,msForceBrowserSignIn", + "--variations-seed-version", + "--pseudonymization-salt-handle=7,i,5504656500254648753,8553557855284974703,4", + "--trace-process-track-uuid=3190708990060038890" + ] + }, + { + "pid": 1150515, + "ppid": 1150451, + "commandLine": "/opt/google/chrome/chrome --type=renderer --crashpad-handler-pid=1150439 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/playwright_chromiumdev_profile-FjSsOM --change-stack-guard-on-fork=enable --disable-dev-shm-usage --disable-back-forward-cache --disable-background-timer-throttling --disable-breakpad --force-color-profile=srgb --remote-debugging-pipe --allow-pre-commit-input --blink-settings=primaryHoverType=2,availableHoverTypes=2,primaryPointerType=4,availablePointerTypes=4 --ozone-platform=headless --lang=en-US --num-raster-threads=2 --enable-main-frame-before-activation --renderer-client-id=6 --time-ticks-at-unix-epoch=-1790509733151410 --launch-time-ticks=1459966789304 --shared-files=v8_context_snapshot_data:100 --field-trial-handle=3,i,16751779656710944080,9574512793703583948,262144 --enable-features=CDPScreenshotNewSurface --disable-features=AimEnabled,AutoDeElevate,AvoidUnnecessaryBeforeUnloadCheckSync,BlockOriginHeaderModificationOnRedirect,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,NetworkTimeServiceQuerying,OptimizationHints,PaintHolding,ThirdPartyStoragePartitioning,Translate,msEdgeUpdateLaunchServicesPreferredVersion,msForceBrowserSignIn --variations-seed-version --pseudonymization-salt-handle=7,i,5504656500254648753,8553557855284974703,4 --trace-process-track-uuid=3190708991934122588", + "arguments": [ + "/opt/google/chrome/chrome", + "--type=renderer", + "--crashpad-handler-pid=1150439", + "--enable-crash-reporter=,", + "--noerrdialogs", + "--user-data-dir=/tmp/playwright_chromiumdev_profile-FjSsOM", + "--change-stack-guard-on-fork=enable", + "--disable-dev-shm-usage", + "--disable-back-forward-cache", + "--disable-background-timer-throttling", + "--disable-breakpad", + "--force-color-profile=srgb", + "--remote-debugging-pipe", + "--allow-pre-commit-input", + "--blink-settings=primaryHoverType=2,availableHoverTypes=2,primaryPointerType=4,availablePointerTypes=4", + "--ozone-platform=headless", + "--lang=en-US", + "--num-raster-threads=2", + "--enable-main-frame-before-activation", + "--renderer-client-id=6", + "--time-ticks-at-unix-epoch=-1790509733151410", + "--launch-time-ticks=1459966789304", + "--shared-files=v8_context_snapshot_data:100", + "--field-trial-handle=3,i,16751779656710944080,9574512793703583948,262144", + "--enable-features=CDPScreenshotNewSurface", + "--disable-features=AimEnabled,AutoDeElevate,AvoidUnnecessaryBeforeUnloadCheckSync,BlockOriginHeaderModificationOnRedirect,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,NetworkTimeServiceQuerying,OptimizationHints,PaintHolding,ThirdPartyStoragePartitioning,Translate,msEdgeUpdateLaunchServicesPreferredVersion,msForceBrowserSignIn", + "--variations-seed-version", + "--pseudonymization-salt-handle=7,i,5504656500254648753,8553557855284974703,4", + "--trace-process-track-uuid=3190708991934122588" + ] + }, + { + "pid": 1150517, + "ppid": 1150451, + "commandLine": "/opt/google/chrome/chrome --type=renderer --crashpad-handler-pid=1150439 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/playwright_chromiumdev_profile-FjSsOM --change-stack-guard-on-fork=enable --disable-dev-shm-usage --disable-back-forward-cache --disable-background-timer-throttling --disable-breakpad --force-color-profile=srgb --remote-debugging-pipe --allow-pre-commit-input --blink-settings=primaryHoverType=2,availableHoverTypes=2,primaryPointerType=4,availablePointerTypes=4 --ozone-platform=headless --lang=en-US --num-raster-threads=2 --enable-main-frame-before-activation --renderer-client-id=5 --time-ticks-at-unix-epoch=-1790509733151410 --launch-time-ticks=1459966794595 --shared-files=v8_context_snapshot_data:100 --field-trial-handle=3,i,16751779656710944080,9574512793703583948,262144 --enable-features=CDPScreenshotNewSurface --disable-features=AimEnabled,AutoDeElevate,AvoidUnnecessaryBeforeUnloadCheckSync,BlockOriginHeaderModificationOnRedirect,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,NetworkTimeServiceQuerying,OptimizationHints,PaintHolding,ThirdPartyStoragePartitioning,Translate,msEdgeUpdateLaunchServicesPreferredVersion,msForceBrowserSignIn --variations-seed-version --pseudonymization-salt-handle=7,i,5504656500254648753,8553557855284974703,4 --trace-process-track-uuid=3190708990997080739", + "arguments": [ + "/opt/google/chrome/chrome", + "--type=renderer", + "--crashpad-handler-pid=1150439", + "--enable-crash-reporter=,", + "--noerrdialogs", + "--user-data-dir=/tmp/playwright_chromiumdev_profile-FjSsOM", + "--change-stack-guard-on-fork=enable", + "--disable-dev-shm-usage", + "--disable-back-forward-cache", + "--disable-background-timer-throttling", + "--disable-breakpad", + "--force-color-profile=srgb", + "--remote-debugging-pipe", + "--allow-pre-commit-input", + "--blink-settings=primaryHoverType=2,availableHoverTypes=2,primaryPointerType=4,availablePointerTypes=4", + "--ozone-platform=headless", + "--lang=en-US", + "--num-raster-threads=2", + "--enable-main-frame-before-activation", + "--renderer-client-id=5", + "--time-ticks-at-unix-epoch=-1790509733151410", + "--launch-time-ticks=1459966794595", + "--shared-files=v8_context_snapshot_data:100", + "--field-trial-handle=3,i,16751779656710944080,9574512793703583948,262144", + "--enable-features=CDPScreenshotNewSurface", + "--disable-features=AimEnabled,AutoDeElevate,AvoidUnnecessaryBeforeUnloadCheckSync,BlockOriginHeaderModificationOnRedirect,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,NetworkTimeServiceQuerying,OptimizationHints,PaintHolding,ThirdPartyStoragePartitioning,Translate,msEdgeUpdateLaunchServicesPreferredVersion,msForceBrowserSignIn", + "--variations-seed-version", + "--pseudonymization-salt-handle=7,i,5504656500254648753,8553557855284974703,4", + "--trace-process-track-uuid=3190708990997080739" + ] + }, + { + "pid": 1150558, + "ppid": 1150409, + "commandLine": "/opt/google/chrome/chrome --disable-field-trial-config --disable-background-networking --disable-background-timer-throttling --disable-backgrounding-occluded-windows --disable-back-forward-cache --disable-breakpad --disable-client-side-phishing-detection --disable-component-extensions-with-background-pages --disable-component-update --no-default-browser-check --disable-default-apps --disable-dev-shm-usage --disable-edgeupdater --disable-extensions --disable-features=AvoidUnnecessaryBeforeUnloadCheckSync,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,PaintHolding,ThirdPartyStoragePartitioning,BlockOriginHeaderModificationOnRedirect,Translate,AutoDeElevate,OptimizationHints,NetworkTimeServiceQuerying,AimEnabled,msForceBrowserSignIn,msEdgeUpdateLaunchServicesPreferredVersion --enable-features=CDPScreenshotNewSurface --allow-pre-commit-input --disable-hang-monitor --disable-ipc-flooding-protection --disable-popup-blocking --disable-prompt-on-repost --disable-renderer-backgrounding --disable-updater-scheduler --force-color-profile=srgb --metrics-recording-only --no-first-run --password-store=basic --use-mock-keychain --no-service-autorun --export-tagged-pdf --disable-search-engine-choice-screen --unsafely-disable-devtools-self-xss-warnings --edge-skip-compat-layer-relaunch --disable-infobars --disable-search-engine-choice-screen --disable-sync --enable-unsafe-swiftshader --headless --hide-scrollbars --mute-audio --blink-settings=primaryHoverType=2,availableHoverTypes=2,primaryPointerType=4,availablePointerTypes=4 --user-data-dir=/tmp/playwright_chromiumdev_profile-xUTkdp --remote-debugging-pipe --no-startup-window --noerrdialogs --ozone-platform=headless --ozone-override-screen-size=800,600 --use-angle=swiftshader-webgl", + "arguments": [ + "/opt/google/chrome/chrome", + "--disable-field-trial-config", + "--disable-background-networking", + "--disable-background-timer-throttling", + "--disable-backgrounding-occluded-windows", + "--disable-back-forward-cache", + "--disable-breakpad", + "--disable-client-side-phishing-detection", + "--disable-component-extensions-with-background-pages", + "--disable-component-update", + "--no-default-browser-check", + "--disable-default-apps", + "--disable-dev-shm-usage", + "--disable-edgeupdater", + "--disable-extensions", + "--disable-features=AvoidUnnecessaryBeforeUnloadCheckSync,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,PaintHolding,ThirdPartyStoragePartitioning,BlockOriginHeaderModificationOnRedirect,Translate,AutoDeElevate,OptimizationHints,NetworkTimeServiceQuerying,AimEnabled,msForceBrowserSignIn,msEdgeUpdateLaunchServicesPreferredVersion", + "--enable-features=CDPScreenshotNewSurface", + "--allow-pre-commit-input", + "--disable-hang-monitor", + "--disable-ipc-flooding-protection", + "--disable-popup-blocking", + "--disable-prompt-on-repost", + "--disable-renderer-backgrounding", + "--disable-updater-scheduler", + "--force-color-profile=srgb", + "--metrics-recording-only", + "--no-first-run", + "--password-store=basic", + "--use-mock-keychain", + "--no-service-autorun", + "--export-tagged-pdf", + "--disable-search-engine-choice-screen", + "--unsafely-disable-devtools-self-xss-warnings", + "--edge-skip-compat-layer-relaunch", + "--disable-infobars", + "--disable-search-engine-choice-screen", + "--disable-sync", + "--enable-unsafe-swiftshader", + "--headless", + "--hide-scrollbars", + "--mute-audio", + "--blink-settings=primaryHoverType=2,availableHoverTypes=2,primaryPointerType=4,availablePointerTypes=4", + "--user-data-dir=/tmp/playwright_chromiumdev_profile-xUTkdp", + "--remote-debugging-pipe", + "--no-startup-window", + "--noerrdialogs", + "--ozone-platform=headless", + "--ozone-override-screen-size=800,600", + "--use-angle=swiftshader-webgl" + ] + }, + { + "pid": 1150574, + "ppid": 1150558, + "commandLine": "/opt/google/chrome/chrome --type=zygote --no-zygote-sandbox --headless --crashpad-handler-pid=1150566 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/playwright_chromiumdev_profile-xUTkdp --change-stack-guard-on-fork=enable --no-first-run --ozone-platform=headless --ozone-override-screen-size=800,600 --use-angle=swiftshader-webgl", + "arguments": [ + "/opt/google/chrome/chrome", + "--type=zygote", + "--no-zygote-sandbox", + "--headless", + "--crashpad-handler-pid=1150566", + "--enable-crash-reporter=,", + "--noerrdialogs", + "--user-data-dir=/tmp/playwright_chromiumdev_profile-xUTkdp", + "--change-stack-guard-on-fork=enable", + "--no-first-run", + "--ozone-platform=headless", + "--ozone-override-screen-size=800,600", + "--use-angle=swiftshader-webgl" + ] + }, + { + "pid": 1150575, + "ppid": 1150558, + "commandLine": "/opt/google/chrome/chrome --type=zygote --headless --crashpad-handler-pid=1150566 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/playwright_chromiumdev_profile-xUTkdp --change-stack-guard-on-fork=enable --no-first-run --ozone-platform=headless --ozone-override-screen-size=800,600 --use-angle=swiftshader-webgl", + "arguments": [ + "/opt/google/chrome/chrome", + "--type=zygote", + "--headless", + "--crashpad-handler-pid=1150566", + "--enable-crash-reporter=,", + "--noerrdialogs", + "--user-data-dir=/tmp/playwright_chromiumdev_profile-xUTkdp", + "--change-stack-guard-on-fork=enable", + "--no-first-run", + "--ozone-platform=headless", + "--ozone-override-screen-size=800,600", + "--use-angle=swiftshader-webgl" + ] + }, + { + "pid": 1150577, + "ppid": 1150575, + "commandLine": "/opt/google/chrome/chrome --type=zygote --headless --crashpad-handler-pid=1150566 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/playwright_chromiumdev_profile-xUTkdp --change-stack-guard-on-fork=enable --no-first-run --ozone-platform=headless --ozone-override-screen-size=800,600 --use-angle=swiftshader-webgl", + "arguments": [ + "/opt/google/chrome/chrome", + "--type=zygote", + "--headless", + "--crashpad-handler-pid=1150566", + "--enable-crash-reporter=,", + "--noerrdialogs", + "--user-data-dir=/tmp/playwright_chromiumdev_profile-xUTkdp", + "--change-stack-guard-on-fork=enable", + "--no-first-run", + "--ozone-platform=headless", + "--ozone-override-screen-size=800,600", + "--use-angle=swiftshader-webgl" + ] + }, + { + "pid": 1150599, + "ppid": 1150574, + "commandLine": "/opt/google/chrome/chrome --type=gpu-process --disable-dev-shm-usage --disable-breakpad --headless --ozone-platform=headless --use-angle=swiftshader-webgl --enable-unsafe-swiftshader --crashpad-handler-pid=1150566 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/playwright_chromiumdev_profile-xUTkdp --change-stack-guard-on-fork=enable --gpu-preferences=UAAAAAAAAAAgAAAEAAAAAAAAAAAAAGAAAQAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAYAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAgAAAAAAAAA --shared-files --field-trial-handle=3,i,14772660448816671451,4345369394915051995,262144 --enable-features=CDPScreenshotNewSurface --disable-features=AimEnabled,AutoDeElevate,AvoidUnnecessaryBeforeUnloadCheckSync,BlockOriginHeaderModificationOnRedirect,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,NetworkTimeServiceQuerying,OptimizationHints,PaintHolding,ThirdPartyStoragePartitioning,Translate,msEdgeUpdateLaunchServicesPreferredVersion,msForceBrowserSignIn --variations-seed-version --pseudonymization-salt-handle=7,i,12347905022210369448,8211810852701794377,4 --trace-process-track-uuid=3190708988185955192", + "arguments": [ + "/opt/google/chrome/chrome", + "--type=gpu-process", + "--disable-dev-shm-usage", + "--disable-breakpad", + "--headless", + "--ozone-platform=headless", + "--use-angle=swiftshader-webgl", + "--enable-unsafe-swiftshader", + "--crashpad-handler-pid=1150566", + "--enable-crash-reporter=,", + "--noerrdialogs", + "--user-data-dir=/tmp/playwright_chromiumdev_profile-xUTkdp", + "--change-stack-guard-on-fork=enable", + "--gpu-preferences=UAAAAAAAAAAgAAAEAAAAAAAAAAAAAGAAAQAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAYAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAgAAAAAAAAA", + "--shared-files", + "--field-trial-handle=3,i,14772660448816671451,4345369394915051995,262144", + "--enable-features=CDPScreenshotNewSurface", + "--disable-features=AimEnabled,AutoDeElevate,AvoidUnnecessaryBeforeUnloadCheckSync,BlockOriginHeaderModificationOnRedirect,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,NetworkTimeServiceQuerying,OptimizationHints,PaintHolding,ThirdPartyStoragePartitioning,Translate,msEdgeUpdateLaunchServicesPreferredVersion,msForceBrowserSignIn", + "--variations-seed-version", + "--pseudonymization-salt-handle=7,i,12347905022210369448,8211810852701794377,4", + "--trace-process-track-uuid=3190708988185955192" + ] + }, + { + "pid": 1150601, + "ppid": 1150558, + "commandLine": "/opt/google/chrome/chrome --type=utility --utility-sub-type=network.mojom.NetworkService --lang=en-US --service-sandbox-type=none --disable-dev-shm-usage --use-angle=swiftshader-webgl --mute-audio --crashpad-handler-pid=1150566 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/playwright_chromiumdev_profile-xUTkdp --change-stack-guard-on-fork=enable --shared-files=v8_context_snapshot_data:100 --field-trial-handle=3,i,14772660448816671451,4345369394915051995,262144 --enable-features=CDPScreenshotNewSurface --disable-features=AimEnabled,AutoDeElevate,AvoidUnnecessaryBeforeUnloadCheckSync,BlockOriginHeaderModificationOnRedirect,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,NetworkTimeServiceQuerying,OptimizationHints,PaintHolding,ThirdPartyStoragePartitioning,Translate,msEdgeUpdateLaunchServicesPreferredVersion,msForceBrowserSignIn --variations-seed-version --pseudonymization-salt-handle=7,i,12347905022210369448,8211810852701794377,4 --trace-process-track-uuid=3190708989122997041", + "arguments": [ + "/opt/google/chrome/chrome", + "--type=utility", + "--utility-sub-type=network.mojom.NetworkService", + "--lang=en-US", + "--service-sandbox-type=none", + "--disable-dev-shm-usage", + "--use-angle=swiftshader-webgl", + "--mute-audio", + "--crashpad-handler-pid=1150566", + "--enable-crash-reporter=,", + "--noerrdialogs", + "--user-data-dir=/tmp/playwright_chromiumdev_profile-xUTkdp", + "--change-stack-guard-on-fork=enable", + "--shared-files=v8_context_snapshot_data:100", + "--field-trial-handle=3,i,14772660448816671451,4345369394915051995,262144", + "--enable-features=CDPScreenshotNewSurface", + "--disable-features=AimEnabled,AutoDeElevate,AvoidUnnecessaryBeforeUnloadCheckSync,BlockOriginHeaderModificationOnRedirect,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,NetworkTimeServiceQuerying,OptimizationHints,PaintHolding,ThirdPartyStoragePartitioning,Translate,msEdgeUpdateLaunchServicesPreferredVersion,msForceBrowserSignIn", + "--variations-seed-version", + "--pseudonymization-salt-handle=7,i,12347905022210369448,8211810852701794377,4", + "--trace-process-track-uuid=3190708989122997041" + ] + }, + { + "pid": 1150608, + "ppid": 1150577, + "commandLine": "/opt/google/chrome/chrome --type=utility --utility-sub-type=storage.mojom.StorageService --lang=en-US --service-sandbox-type=utility --disable-dev-shm-usage --use-angle=swiftshader-webgl --mute-audio --crashpad-handler-pid=1150566 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/playwright_chromiumdev_profile-xUTkdp --change-stack-guard-on-fork=enable --shared-files=v8_context_snapshot_data:100 --field-trial-handle=3,i,14772660448816671451,4345369394915051995,262144 --enable-features=CDPScreenshotNewSurface --disable-features=AimEnabled,AutoDeElevate,AvoidUnnecessaryBeforeUnloadCheckSync,BlockOriginHeaderModificationOnRedirect,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,NetworkTimeServiceQuerying,OptimizationHints,PaintHolding,ThirdPartyStoragePartitioning,Translate,msEdgeUpdateLaunchServicesPreferredVersion,msForceBrowserSignIn --variations-seed-version --pseudonymization-salt-handle=7,i,12347905022210369448,8211810852701794377,4 --trace-process-track-uuid=3190708990060038890", + "arguments": [ + "/opt/google/chrome/chrome", + "--type=utility", + "--utility-sub-type=storage.mojom.StorageService", + "--lang=en-US", + "--service-sandbox-type=utility", + "--disable-dev-shm-usage", + "--use-angle=swiftshader-webgl", + "--mute-audio", + "--crashpad-handler-pid=1150566", + "--enable-crash-reporter=,", + "--noerrdialogs", + "--user-data-dir=/tmp/playwright_chromiumdev_profile-xUTkdp", + "--change-stack-guard-on-fork=enable", + "--shared-files=v8_context_snapshot_data:100", + "--field-trial-handle=3,i,14772660448816671451,4345369394915051995,262144", + "--enable-features=CDPScreenshotNewSurface", + "--disable-features=AimEnabled,AutoDeElevate,AvoidUnnecessaryBeforeUnloadCheckSync,BlockOriginHeaderModificationOnRedirect,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,NetworkTimeServiceQuerying,OptimizationHints,PaintHolding,ThirdPartyStoragePartitioning,Translate,msEdgeUpdateLaunchServicesPreferredVersion,msForceBrowserSignIn", + "--variations-seed-version", + "--pseudonymization-salt-handle=7,i,12347905022210369448,8211810852701794377,4", + "--trace-process-track-uuid=3190708990060038890" + ] + }, + { + "pid": 1150645, + "ppid": 1150425, + "commandLine": "/opt/google/chrome/chrome --type=utility --utility-sub-type=audio.mojom.AudioService --lang=en-US --service-sandbox-type=none --disable-dev-shm-usage --use-angle=swiftshader-webgl --mute-audio --crashpad-handler-pid=1150439 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/playwright_chromiumdev_profile-FjSsOM --change-stack-guard-on-fork=enable --shared-files=v8_context_snapshot_data:100 --field-trial-handle=3,i,16751779656710944080,9574512793703583948,262144 --enable-features=CDPScreenshotNewSurface --disable-features=AimEnabled,AutoDeElevate,AvoidUnnecessaryBeforeUnloadCheckSync,BlockOriginHeaderModificationOnRedirect,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,NetworkTimeServiceQuerying,OptimizationHints,PaintHolding,ThirdPartyStoragePartitioning,Translate,msEdgeUpdateLaunchServicesPreferredVersion,msForceBrowserSignIn --variations-seed-version --pseudonymization-salt-handle=7,i,5504656500254648753,8553557855284974703,4 --trace-process-track-uuid=3190708992871164437", + "arguments": [ + "/opt/google/chrome/chrome", + "--type=utility", + "--utility-sub-type=audio.mojom.AudioService", + "--lang=en-US", + "--service-sandbox-type=none", + "--disable-dev-shm-usage", + "--use-angle=swiftshader-webgl", + "--mute-audio", + "--crashpad-handler-pid=1150439", + "--enable-crash-reporter=,", + "--noerrdialogs", + "--user-data-dir=/tmp/playwright_chromiumdev_profile-FjSsOM", + "--change-stack-guard-on-fork=enable", + "--shared-files=v8_context_snapshot_data:100", + "--field-trial-handle=3,i,16751779656710944080,9574512793703583948,262144", + "--enable-features=CDPScreenshotNewSurface", + "--disable-features=AimEnabled,AutoDeElevate,AvoidUnnecessaryBeforeUnloadCheckSync,BlockOriginHeaderModificationOnRedirect,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,NetworkTimeServiceQuerying,OptimizationHints,PaintHolding,ThirdPartyStoragePartitioning,Translate,msEdgeUpdateLaunchServicesPreferredVersion,msForceBrowserSignIn", + "--variations-seed-version", + "--pseudonymization-salt-handle=7,i,5504656500254648753,8553557855284974703,4", + "--trace-process-track-uuid=3190708992871164437" + ] + }, + { + "pid": 1150648, + "ppid": 1150577, + "commandLine": "/opt/google/chrome/chrome --type=renderer --crashpad-handler-pid=1150566 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/playwright_chromiumdev_profile-xUTkdp --change-stack-guard-on-fork=enable --disable-dev-shm-usage --disable-back-forward-cache --disable-background-timer-throttling --disable-breakpad --force-color-profile=srgb --remote-debugging-pipe --allow-pre-commit-input --blink-settings=primaryHoverType=2,availableHoverTypes=2,primaryPointerType=4,availablePointerTypes=4 --ozone-platform=headless --lang=en-US --num-raster-threads=2 --enable-main-frame-before-activation --renderer-client-id=5 --time-ticks-at-unix-epoch=-1790509733151410 --launch-time-ticks=1459967878786 --shared-files=v8_context_snapshot_data:100 --field-trial-handle=3,i,14772660448816671451,4345369394915051995,262144 --enable-features=CDPScreenshotNewSurface --disable-features=AimEnabled,AutoDeElevate,AvoidUnnecessaryBeforeUnloadCheckSync,BlockOriginHeaderModificationOnRedirect,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,NetworkTimeServiceQuerying,OptimizationHints,PaintHolding,ThirdPartyStoragePartitioning,Translate,msEdgeUpdateLaunchServicesPreferredVersion,msForceBrowserSignIn --variations-seed-version --pseudonymization-salt-handle=7,i,12347905022210369448,8211810852701794377,4 --trace-process-track-uuid=3190708990997080739", + "arguments": [ + "/opt/google/chrome/chrome", + "--type=renderer", + "--crashpad-handler-pid=1150566", + "--enable-crash-reporter=,", + "--noerrdialogs", + "--user-data-dir=/tmp/playwright_chromiumdev_profile-xUTkdp", + "--change-stack-guard-on-fork=enable", + "--disable-dev-shm-usage", + "--disable-back-forward-cache", + "--disable-background-timer-throttling", + "--disable-breakpad", + "--force-color-profile=srgb", + "--remote-debugging-pipe", + "--allow-pre-commit-input", + "--blink-settings=primaryHoverType=2,availableHoverTypes=2,primaryPointerType=4,availablePointerTypes=4", + "--ozone-platform=headless", + "--lang=en-US", + "--num-raster-threads=2", + "--enable-main-frame-before-activation", + "--renderer-client-id=5", + "--time-ticks-at-unix-epoch=-1790509733151410", + "--launch-time-ticks=1459967878786", + "--shared-files=v8_context_snapshot_data:100", + "--field-trial-handle=3,i,14772660448816671451,4345369394915051995,262144", + "--enable-features=CDPScreenshotNewSurface", + "--disable-features=AimEnabled,AutoDeElevate,AvoidUnnecessaryBeforeUnloadCheckSync,BlockOriginHeaderModificationOnRedirect,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,NetworkTimeServiceQuerying,OptimizationHints,PaintHolding,ThirdPartyStoragePartitioning,Translate,msEdgeUpdateLaunchServicesPreferredVersion,msForceBrowserSignIn", + "--variations-seed-version", + "--pseudonymization-salt-handle=7,i,12347905022210369448,8211810852701794377,4", + "--trace-process-track-uuid=3190708990997080739" + ] + }, + { + "pid": 1150738, + "ppid": 1150577, + "commandLine": "/opt/google/chrome/chrome --type=renderer --crashpad-handler-pid=1150566 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/playwright_chromiumdev_profile-xUTkdp --change-stack-guard-on-fork=enable --disable-dev-shm-usage --disable-back-forward-cache --disable-background-timer-throttling --disable-breakpad --force-color-profile=srgb --remote-debugging-pipe --allow-pre-commit-input --blink-settings=primaryHoverType=2,availableHoverTypes=2,primaryPointerType=4,availablePointerTypes=4 --ozone-platform=headless --disable-gpu-compositing --lang=en-US --num-raster-threads=2 --enable-main-frame-before-activation --renderer-client-id=7 --time-ticks-at-unix-epoch=-1790509733151410 --launch-time-ticks=1459970002387 --shared-files=v8_context_snapshot_data:100 --field-trial-handle=3,i,14772660448816671451,4345369394915051995,262144 --enable-features=CDPScreenshotNewSurface --disable-features=AimEnabled,AutoDeElevate,AvoidUnnecessaryBeforeUnloadCheckSync,BlockOriginHeaderModificationOnRedirect,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,NetworkTimeServiceQuerying,OptimizationHints,PaintHolding,ThirdPartyStoragePartitioning,Translate,msEdgeUpdateLaunchServicesPreferredVersion,msForceBrowserSignIn --variations-seed-version --pseudonymization-salt-handle=7,i,12347905022210369448,8211810852701794377,4 --trace-process-track-uuid=3190708992871164437", + "arguments": [ + "/opt/google/chrome/chrome", + "--type=renderer", + "--crashpad-handler-pid=1150566", + "--enable-crash-reporter=,", + "--noerrdialogs", + "--user-data-dir=/tmp/playwright_chromiumdev_profile-xUTkdp", + "--change-stack-guard-on-fork=enable", + "--disable-dev-shm-usage", + "--disable-back-forward-cache", + "--disable-background-timer-throttling", + "--disable-breakpad", + "--force-color-profile=srgb", + "--remote-debugging-pipe", + "--allow-pre-commit-input", + "--blink-settings=primaryHoverType=2,availableHoverTypes=2,primaryPointerType=4,availablePointerTypes=4", + "--ozone-platform=headless", + "--disable-gpu-compositing", + "--lang=en-US", + "--num-raster-threads=2", + "--enable-main-frame-before-activation", + "--renderer-client-id=7", + "--time-ticks-at-unix-epoch=-1790509733151410", + "--launch-time-ticks=1459970002387", + "--shared-files=v8_context_snapshot_data:100", + "--field-trial-handle=3,i,14772660448816671451,4345369394915051995,262144", + "--enable-features=CDPScreenshotNewSurface", + "--disable-features=AimEnabled,AutoDeElevate,AvoidUnnecessaryBeforeUnloadCheckSync,BlockOriginHeaderModificationOnRedirect,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,NetworkTimeServiceQuerying,OptimizationHints,PaintHolding,ThirdPartyStoragePartitioning,Translate,msEdgeUpdateLaunchServicesPreferredVersion,msForceBrowserSignIn", + "--variations-seed-version", + "--pseudonymization-salt-handle=7,i,12347905022210369448,8211810852701794377,4", + "--trace-process-track-uuid=3190708992871164437" + ] + }, + { + "pid": 1150764, + "ppid": 1150558, + "commandLine": "/opt/google/chrome/chrome --type=utility --utility-sub-type=audio.mojom.AudioService --lang=en-US --service-sandbox-type=none --disable-dev-shm-usage --use-angle=swiftshader-webgl --mute-audio --crashpad-handler-pid=1150566 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/playwright_chromiumdev_profile-xUTkdp --change-stack-guard-on-fork=enable --shared-files=v8_context_snapshot_data:100 --field-trial-handle=3,i,14772660448816671451,4345369394915051995,262144 --enable-features=CDPScreenshotNewSurface --disable-features=AimEnabled,AutoDeElevate,AvoidUnnecessaryBeforeUnloadCheckSync,BlockOriginHeaderModificationOnRedirect,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,NetworkTimeServiceQuerying,OptimizationHints,PaintHolding,ThirdPartyStoragePartitioning,Translate,msEdgeUpdateLaunchServicesPreferredVersion,msForceBrowserSignIn --variations-seed-version --pseudonymization-salt-handle=7,i,12347905022210369448,8211810852701794377,4 --trace-process-track-uuid=3190708993808206286", + "arguments": [ + "/opt/google/chrome/chrome", + "--type=utility", + "--utility-sub-type=audio.mojom.AudioService", + "--lang=en-US", + "--service-sandbox-type=none", + "--disable-dev-shm-usage", + "--use-angle=swiftshader-webgl", + "--mute-audio", + "--crashpad-handler-pid=1150566", + "--enable-crash-reporter=,", + "--noerrdialogs", + "--user-data-dir=/tmp/playwright_chromiumdev_profile-xUTkdp", + "--change-stack-guard-on-fork=enable", + "--shared-files=v8_context_snapshot_data:100", + "--field-trial-handle=3,i,14772660448816671451,4345369394915051995,262144", + "--enable-features=CDPScreenshotNewSurface", + "--disable-features=AimEnabled,AutoDeElevate,AvoidUnnecessaryBeforeUnloadCheckSync,BlockOriginHeaderModificationOnRedirect,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,NetworkTimeServiceQuerying,OptimizationHints,PaintHolding,ThirdPartyStoragePartitioning,Translate,msEdgeUpdateLaunchServicesPreferredVersion,msForceBrowserSignIn", + "--variations-seed-version", + "--pseudonymization-salt-handle=7,i,12347905022210369448,8211810852701794377,4", + "--trace-process-track-uuid=3190708993808206286" + ] + }, + { + "pid": 1151282, + "ppid": 1150577, + "commandLine": "/opt/google/chrome/chrome --type=renderer --crashpad-handler-pid=1150566 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/playwright_chromiumdev_profile-xUTkdp --change-stack-guard-on-fork=enable --disable-dev-shm-usage --disable-back-forward-cache --disable-background-timer-throttling --disable-breakpad --force-color-profile=srgb --remote-debugging-pipe --allow-pre-commit-input --blink-settings=primaryHoverType=2,availableHoverTypes=2,primaryPointerType=4,availablePointerTypes=4 --ozone-platform=headless --disable-gpu-compositing --lang=en-US --num-raster-threads=2 --enable-main-frame-before-activation --renderer-client-id=9 --time-ticks-at-unix-epoch=-1790509733151410 --launch-time-ticks=1459984500539 --shared-files=v8_context_snapshot_data:100 --field-trial-handle=3,i,14772660448816671451,4345369394915051995,262144 --enable-features=CDPScreenshotNewSurface --disable-features=AimEnabled,AutoDeElevate,AvoidUnnecessaryBeforeUnloadCheckSync,BlockOriginHeaderModificationOnRedirect,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,NetworkTimeServiceQuerying,OptimizationHints,PaintHolding,ThirdPartyStoragePartitioning,Translate,msEdgeUpdateLaunchServicesPreferredVersion,msForceBrowserSignIn --variations-seed-version --pseudonymization-salt-handle=7,i,12347905022210369448,8211810852701794377,4 --trace-process-track-uuid=3190708994745248135", + "arguments": [ + "/opt/google/chrome/chrome", + "--type=renderer", + "--crashpad-handler-pid=1150566", + "--enable-crash-reporter=,", + "--noerrdialogs", + "--user-data-dir=/tmp/playwright_chromiumdev_profile-xUTkdp", + "--change-stack-guard-on-fork=enable", + "--disable-dev-shm-usage", + "--disable-back-forward-cache", + "--disable-background-timer-throttling", + "--disable-breakpad", + "--force-color-profile=srgb", + "--remote-debugging-pipe", + "--allow-pre-commit-input", + "--blink-settings=primaryHoverType=2,availableHoverTypes=2,primaryPointerType=4,availablePointerTypes=4", + "--ozone-platform=headless", + "--disable-gpu-compositing", + "--lang=en-US", + "--num-raster-threads=2", + "--enable-main-frame-before-activation", + "--renderer-client-id=9", + "--time-ticks-at-unix-epoch=-1790509733151410", + "--launch-time-ticks=1459984500539", + "--shared-files=v8_context_snapshot_data:100", + "--field-trial-handle=3,i,14772660448816671451,4345369394915051995,262144", + "--enable-features=CDPScreenshotNewSurface", + "--disable-features=AimEnabled,AutoDeElevate,AvoidUnnecessaryBeforeUnloadCheckSync,BlockOriginHeaderModificationOnRedirect,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,NetworkTimeServiceQuerying,OptimizationHints,PaintHolding,ThirdPartyStoragePartitioning,Translate,msEdgeUpdateLaunchServicesPreferredVersion,msForceBrowserSignIn", + "--variations-seed-version", + "--pseudonymization-salt-handle=7,i,12347905022210369448,8211810852701794377,4", + "--trace-process-track-uuid=3190708994745248135" + ] + } + ] +} diff --git a/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/desktop-audio-integrity.json b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/desktop-audio-integrity.json new file mode 100644 index 0000000..d6db5ea --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/desktop-audio-integrity.json @@ -0,0 +1,1098 @@ +{ + "chrome": "146.0.7680.80", + "external": [], + "errors": [], + "failed": [], + "files": [ + { + "url": "http://127.0.0.1:4173/audio/intro.wav?v=0.2.3", + "sha256": "90d9f46e6e3f9c8a0c1a781096df54d7809ef4ad38b289508ef7b8c0411465ce", + "bytes": 338732, + "sampleRate": 24000, + "channels": 1, + "duration": 7.056, + "rms": 0.10000144992850359, + "peak": 0.4998626708984375 + }, + { + "url": "http://127.0.0.1:4173/ambience/street.wav?v=0.2.3", + "sha256": "a8bffa201b174618955bc51b860167169125304811aabe2086b0bb35b06c3ae1", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.07999880181401388, + "peak": 0.3967711329460144 + }, + { + "url": "http://127.0.0.1:4173/ambience/mall.wav?v=0.2.3", + "sha256": "680a769940c08f0d12c6c954c08366598dd8b5745e276f39c82b10d1a88261a1", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.07999875178666456, + "peak": 0.7191991806030273 + }, + { + "url": "http://127.0.0.1:4173/ambience/theater.wav?v=0.2.3", + "sha256": "2d6a444fb7874cdf6b2d8a741a69175299b112eb66834912c025437d8277d635", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.07999878601263052, + "peak": 0.495086669921875 + }, + { + "url": "http://127.0.0.1:4173/ambience/department.wav?v=0.2.3", + "sha256": "aa43f3d1d3e7c2b1f8ace24ecbda45d0ea3a031db941c39506dc6c1665b8efa7", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.07999879026023995, + "peak": 0.4749900698661804 + }, + { + "url": "http://127.0.0.1:4173/ambience/market.wav?v=0.2.3", + "sha256": "7a7a980845a4aade2a7e8a108eae746220a4688e92792ee93d3deb76b2a762f6", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.07999876626924392, + "peak": 0.507232666015625 + }, + { + "url": "http://127.0.0.1:4173/ambience/subway.wav?v=0.2.3", + "sha256": "9faf70b68617d267b367a0f3692ed90015458543ab4b0844f6c704e6a724728f", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.079998775670051, + "peak": 0.42530596256256104 + }, + { + "url": "http://127.0.0.1:4173/ambience/cafe.wav?v=0.2.3", + "sha256": "802a956e91b85a2fdd0e1f161d75bfada7a53499bcb57ba7f578411480ded216", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.0799987945764348, + "peak": 0.44708251953125 + }, + { + "url": "http://127.0.0.1:4173/ambience/rain.wav?v=0.2.3", + "sha256": "f4315084e820f742b0709de5bb0d1abd3d5af1730620e08c2948b70347356dd9", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.011384798571746246, + "peak": 0.1024169921875 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-apple.wav?v=0.2.3", + "sha256": "cb7da4e9a1288cac64d168b241f27d7d2bc2dfecace58744f9bbf2792dfad04e", + "bytes": 397484, + "sampleRate": 24000, + "channels": 1, + "duration": 8.28, + "rms": 0.10000142448574952, + "peak": 0.6414685249328613 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-market.wav?v=0.2.3", + "sha256": "b8d25b867497adcd0fe7c8b6a8a8d2e7a52965956738a83e53f58735708773f9", + "bytes": 405548, + "sampleRate": 24000, + "channels": 1, + "duration": 8.448, + "rms": 0.10000141405173993, + "peak": 0.491485595703125 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-sound.wav?v=0.2.3", + "sha256": "34e4d9758d2ed448646fda364610e34779c84794403d9051ab3d8c1d33e2c80c", + "bytes": 184364, + "sampleRate": 24000, + "channels": 1, + "duration": 3.84, + "rms": 0.10000138709171018, + "peak": 0.386322021484375 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-furniture.wav?v=0.2.3", + "sha256": "b45b1afc8d9b534ff3e0a2a2ecb99efc1f4e40d41f89f55c4ed8ba94ad6d76d4", + "bytes": 354860, + "sampleRate": 24000, + "channels": 1, + "duration": 7.392, + "rms": 0.1000015072973225, + "peak": 0.5576171875 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-market.wav?v=0.2.3", + "sha256": "cefa0e95649ea6bd1df4c8dfccd2b74b4f4c028714420ce1087b61db2f2a8d47", + "bytes": 248876, + "sampleRate": 24000, + "channels": 1, + "duration": 5.184, + "rms": 0.10000142548167161, + "peak": 0.4857020676136017 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-oil.wav?v=0.2.3", + "sha256": "f6eff0cdddcad9790351491e60c53cb2a70d222033a583652f2de0b8cd6abcc7", + "bytes": 406700, + "sampleRate": 24000, + "channels": 1, + "duration": 8.472, + "rms": 0.10000139122025363, + "peak": 0.470794677734375 + }, + { + "url": "http://127.0.0.1:4173/audio/first-hat.wav?v=0.2.3", + "sha256": "17c8cde90567e7574b0c0702663bd70713054089ee920241b5444d9b7869eef5", + "bytes": 357164, + "sampleRate": 24000, + "channels": 1, + "duration": 7.44, + "rms": 0.10000152904790521, + "peak": 0.5312662124633789 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-furniture.wav?v=0.2.3", + "sha256": "af82e03b686635c3356e706fe5b05c1231aeaaeab33f275aa5b8714988c65d43", + "bytes": 241964, + "sampleRate": 24000, + "channels": 1, + "duration": 5.04, + "rms": 0.10000137346142077, + "peak": 0.4852443039417267 + }, + { + "url": "http://127.0.0.1:4173/audio/password-sound.wav?v=0.2.3", + "sha256": "044aafff08a19e39f21e58b963644715a987cd155896998769ef8e9ce6449628", + "bytes": 236204, + "sampleRate": 24000, + "channels": 1, + "duration": 4.92, + "rms": 0.10000156641621728, + "peak": 0.4621112644672394 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-hat.wav?v=0.2.3", + "sha256": "f9f98c91cfbcfcb106eef7d5d3795a9cf3c3aab7e19a60f13d7dffe284d19f86", + "bytes": 398636, + "sampleRate": 24000, + "channels": 1, + "duration": 8.304, + "rms": 0.10000141071544869, + "peak": 0.470977783203125 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-apple.wav?v=0.2.3", + "sha256": "7c8f413f4b7e164f090e508ba090448f1376c6012649bbb6a917d45851313883", + "bytes": 188972, + "sampleRate": 24000, + "channels": 1, + "duration": 3.936, + "rms": 0.10000130469939268, + "peak": 0.401641845703125 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-sea.wav?v=0.2.3", + "sha256": "db2f235bee26ac804b5362e8e013b8f40c8da24fd3a34e0fb3b43c6d264feb36", + "bytes": 382508, + "sampleRate": 24000, + "channels": 1, + "duration": 7.968, + "rms": 0.10000145042993039, + "peak": 0.6843470335006714 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-furniture.wav?v=0.2.3", + "sha256": "442bdcb956f120c270e1f321feae0415c897de0183e468980fcc119b898b2a67", + "bytes": 403244, + "sampleRate": 24000, + "channels": 1, + "duration": 8.4, + "rms": 0.10000149119200713, + "peak": 0.5619068145751953 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-sea.wav?v=0.2.3", + "sha256": "b6dbe0af143ea775f05bd59a3d6af348bcc770ab378ac91ea75a56e06c326edf", + "bytes": 346796, + "sampleRate": 24000, + "channels": 1, + "duration": 7.224, + "rms": 0.10000144532868623, + "peak": 0.56494140625 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-sound.wav?v=0.2.3", + "sha256": "e9d636ff7f4777f38b1ff15bebdcec6fbde95b4b4b05625a7415b4cfa0025b59", + "bytes": 395180, + "sampleRate": 24000, + "channels": 1, + "duration": 8.232, + "rms": 0.10000164955559301, + "peak": 0.6114688515663147 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-apple.wav?v=0.2.3", + "sha256": "3ef42e276ff3500c3e197d149f29f79d6a0c1d5516ed1d5a2c57210333fded9c", + "bytes": 246572, + "sampleRate": 24000, + "channels": 1, + "duration": 5.136, + "rms": 0.10000144279302126, + "peak": 0.4701681435108185 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-market.wav?v=0.2.3", + "sha256": "356af25332bf2000ed349671f3ff39767929e1f4599af622c021f907d11fb7bf", + "bytes": 194732, + "sampleRate": 24000, + "channels": 1, + "duration": 4.056, + "rms": 0.10000132629820717, + "peak": 0.4022216796875 + }, + { + "url": "http://127.0.0.1:4173/audio/message-sea.wav?v=0.2.3", + "sha256": "28a461fbe03bffe2560030dea8b60715f7c0fe262dcf85b5b7f7daf483836382", + "bytes": 517292, + "sampleRate": 24000, + "channels": 1, + "duration": 10.776, + "rms": 0.10000130584401576, + "peak": 0.53521728515625 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-umbrella.wav?v=0.2.3", + "sha256": "c8988e604ba05d52597e561389541e8f9cda86e052279f1862bbf8399ead314e", + "bytes": 403244, + "sampleRate": 24000, + "channels": 1, + "duration": 8.4, + "rms": 0.10000148262660476, + "peak": 0.557830810546875 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-hat.wav?v=0.2.3", + "sha256": "308278ec2bd27d4224976a55632d1f7fa1edabb0792126d9d858a699c287aee4", + "bytes": 245420, + "sampleRate": 24000, + "channels": 1, + "duration": 5.112, + "rms": 0.10000140702099906, + "peak": 0.4498428404331207 + }, + { + "url": "http://127.0.0.1:4173/audio/password-furniture.wav?v=0.2.3", + "sha256": "fb2b631dd4e12120d08a84cce6450f9cd9cd68105d13d7001d808e7deaa1df4a", + "bytes": 233900, + "sampleRate": 24000, + "channels": 1, + "duration": 4.872, + "rms": 0.10000146718546903, + "peak": 0.4836573302745819 + }, + { + "url": "http://127.0.0.1:4173/audio/first-market.wav?v=0.2.3", + "sha256": "1e00b8f70a796cdebb0feb00c605fece7488b06915e6e036f54206f05e201e0c", + "bytes": 359468, + "sampleRate": 24000, + "channels": 1, + "duration": 7.488, + "rms": 0.10000152633991319, + "peak": 0.6390880942344666 + }, + { + "url": "http://127.0.0.1:4173/audio/first-meat.wav?v=0.2.3", + "sha256": "f51a37c1722fef581f7d642a4dcae7fcb9953b3c318dce971bf616cd1a81fecc", + "bytes": 345644, + "sampleRate": 24000, + "channels": 1, + "duration": 7.2, + "rms": 0.10000152244411063, + "peak": 0.5131382346153259 + }, + { + "url": "http://127.0.0.1:4173/audio/password-sea.wav?v=0.2.3", + "sha256": "03f45b8cb5b3dc72faf5c6e3d0e2a10cea6b60301ea400d0a4453596d2f0b337", + "bytes": 232748, + "sampleRate": 24000, + "channels": 1, + "duration": 4.848, + "rms": 0.10000144821976133, + "peak": 0.5339213013648987 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-sound.wav?v=0.2.3", + "sha256": "98387ccc7aab566f6487d4c250b2128082cc527e013a6f7b7bc4d0266ac295df", + "bytes": 394028, + "sampleRate": 24000, + "channels": 1, + "duration": 8.208, + "rms": 0.10000158053850364, + "peak": 0.5377971529960632 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-umbrella.wav?v=0.2.3", + "sha256": "5e59ef39113c3d5e106862356d715f4cef2862ef8ee02654a97e532675c1ac6d", + "bytes": 410156, + "sampleRate": 24000, + "channels": 1, + "duration": 8.544, + "rms": 0.10000147499132286, + "peak": 0.6748558282852173 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-hat.wav?v=0.2.3", + "sha256": "b01ef9762ac84e3eb757243bc9286c62f7d45444a821ae35ac36a8b095e1598a", + "bytes": 353708, + "sampleRate": 24000, + "channels": 1, + "duration": 7.368, + "rms": 0.10000153089787694, + "peak": 0.555206298828125 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-market.wav?v=0.2.3", + "sha256": "d89792da51c83ac49d27e55aa6d822a338899a5ee487b34b552748201e1522f6", + "bytes": 398636, + "sampleRate": 24000, + "channels": 1, + "duration": 8.304, + "rms": 0.10000149710778367, + "peak": 0.5728324055671692 + }, + { + "url": "http://127.0.0.1:4173/audio/password-umbrella.wav?v=0.2.3", + "sha256": "ab3ca6398c879971dc793eb25b472fcc0db72d76e386f11ef4d32c639f37c69d", + "bytes": 239660, + "sampleRate": 24000, + "channels": 1, + "duration": 4.992, + "rms": 0.100001426973271, + "peak": 0.4776757061481476 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-meat.wav?v=0.2.3", + "sha256": "48e91b3932d3798e852041a854b3ee08c72127e092c62083a47af6b99adff241", + "bytes": 403244, + "sampleRate": 24000, + "channels": 1, + "duration": 8.4, + "rms": 0.10000140336390047, + "peak": 0.481536865234375 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-hat.wav?v=0.2.3", + "sha256": "6e089a42fd7e65e82eec7186d369c926fb7fdac794365b2bd7658822fd92437c", + "bytes": 396332, + "sampleRate": 24000, + "channels": 1, + "duration": 8.256, + "rms": 0.1000015662548192, + "peak": 0.616748571395874 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-sound.wav?v=0.2.3", + "sha256": "4d00aa6114327f450a00dacbc7e7b572ebf1de4ce9dc2fe4b5505766cca71ce9", + "bytes": 353708, + "sampleRate": 24000, + "channels": 1, + "duration": 7.368, + "rms": 0.10000162019345048, + "peak": 0.5348368883132935 + }, + { + "url": "http://127.0.0.1:4173/audio/last-oil.wav?v=0.2.3", + "sha256": "b5ce34950b8b31b1baf6ce55410797f0d8aa5478a670d6eace87cf76d134d6d3", + "bytes": 337580, + "sampleRate": 24000, + "channels": 1, + "duration": 7.032, + "rms": 0.10000149980584365, + "peak": 0.55706787109375 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-sea.wav?v=0.2.3", + "sha256": "47aa31d757c9fb49c9b53a1c052d90a5ced4be57549d649850d9b48f8864045b", + "bytes": 191276, + "sampleRate": 24000, + "channels": 1, + "duration": 3.984, + "rms": 0.10000129182106483, + "peak": 0.388702392578125 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-sound.wav?v=0.2.3", + "sha256": "659eb0e2b06e6b165b46744769743e032e2282519f8486c57bc45e0f7d07a069", + "bytes": 240812, + "sampleRate": 24000, + "channels": 1, + "duration": 5.016, + "rms": 0.10000152909529536, + "peak": 0.45481735467910767 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-meat.wav?v=0.2.3", + "sha256": "6599d2fac73ea616a793151b4ce6f51af673988d630bac6219a77e78ae6cb34e", + "bytes": 380204, + "sampleRate": 24000, + "channels": 1, + "duration": 7.92, + "rms": 0.1000016061190976, + "peak": 0.5921201109886169 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-market.wav?v=0.2.3", + "sha256": "c855b449e0d4ace74681bfe68e5e7f0b063568827ae872017234dbe8ae119e4c", + "bytes": 356012, + "sampleRate": 24000, + "channels": 1, + "duration": 7.416, + "rms": 0.10000151456676445, + "peak": 0.5949888825416565 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-furniture.wav?v=0.2.3", + "sha256": "bf84dc6cff1f227924a3a62158d2fc18769fb0ca40b91418fa19e534dbf92f00", + "bytes": 397484, + "sampleRate": 24000, + "channels": 1, + "duration": 8.28, + "rms": 0.10000155255948041, + "peak": 0.6670430898666382 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-sound.wav?v=0.2.3", + "sha256": "5a603bc69979603afddcaeb6edf500a7c540b72405daeb33f5335d746b327da1", + "bytes": 397484, + "sampleRate": 24000, + "channels": 1, + "duration": 8.28, + "rms": 0.10000146491234768, + "peak": 0.469268798828125 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-meat.wav?v=0.2.3", + "sha256": "9183ef90b64f5ceaf3bb0178c689231ff3e9981d6ce889124a15f2a6e2b7a344", + "bytes": 395180, + "sampleRate": 24000, + "channels": 1, + "duration": 8.232, + "rms": 0.10000155087122137, + "peak": 0.5193029642105103 + }, + { + "url": "http://127.0.0.1:4173/audio/last-sound.wav?v=0.2.3", + "sha256": "ec9c49802aebeb6a8b898a1c0d8ad1daa127d2d64c905c197ed49a8e0c4eb64a", + "bytes": 354860, + "sampleRate": 24000, + "channels": 1, + "duration": 7.392, + "rms": 0.10000165748716579, + "peak": 0.5641041398048401 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-oil.wav?v=0.2.3", + "sha256": "5fb63e04520c312aa6b7b48b70c2f7c140b5ab480e5c6992edbc2ba85b9a06e7", + "bytes": 241964, + "sampleRate": 24000, + "channels": 1, + "duration": 5.04, + "rms": 0.10000143720418167, + "peak": 0.443586528301239 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-umbrella.wav?v=0.2.3", + "sha256": "92b54f04884ab915783945077efd8f3bd443849a1720f72168b6348cae1f8e85", + "bytes": 406700, + "sampleRate": 24000, + "channels": 1, + "duration": 8.472, + "rms": 0.10000140257790288, + "peak": 0.479034423828125 + }, + { + "url": "http://127.0.0.1:4173/audio/message-sound.wav?v=0.2.3", + "sha256": "1e682147dae8026ba78dc8f256c7f24acb3a6743bfd88a0fcc86096930eef078", + "bytes": 521900, + "sampleRate": 24000, + "channels": 1, + "duration": 10.872, + "rms": 0.10000138583471241, + "peak": 0.51953125 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-apple.wav?v=0.2.3", + "sha256": "ccd7327a3fb54d3320d049ffdced3bc17595861cee69429c0ee97182d454195b", + "bytes": 402092, + "sampleRate": 24000, + "channels": 1, + "duration": 8.376, + "rms": 0.10000140667715379, + "peak": 0.490325927734375 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-sea.wav?v=0.2.3", + "sha256": "5c91a36496e274d2be9c6fa8d9b506cd04f2a1b7ceb05ed1b7bb03fe7fca99d9", + "bytes": 399788, + "sampleRate": 24000, + "channels": 1, + "duration": 8.328, + "rms": 0.10000144241513113, + "peak": 0.5465559959411621 + }, + { + "url": "http://127.0.0.1:4173/audio/message-hat.wav?v=0.2.3", + "sha256": "5a713a8522b231bb8276805c014b385b9150b79f58ff2618446607e2b442495e", + "bytes": 518444, + "sampleRate": 24000, + "channels": 1, + "duration": 10.8, + "rms": 0.10000136927555209, + "peak": 0.587005615234375 + }, + { + "url": "http://127.0.0.1:4173/audio/password-meat.wav?v=0.2.3", + "sha256": "b009caadd56350d6a641ff17f0973e2b2724c183e1f45ae0bf3c483e237fa99e", + "bytes": 240812, + "sampleRate": 24000, + "channels": 1, + "duration": 5.016, + "rms": 0.10000148386024335, + "peak": 0.4978789687156677 + }, + { + "url": "http://127.0.0.1:4173/audio/message-market.wav?v=0.2.3", + "sha256": "9242d4cd6e0030e6b073e4d2360f84aa8a454d1749711cdb2d64c14f28a7ea20", + "bytes": 523052, + "sampleRate": 24000, + "channels": 1, + "duration": 10.896, + "rms": 0.10000133805787564, + "peak": 0.534820556640625 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-apple.wav?v=0.2.3", + "sha256": "8832f1b793ab3eedbe663875ea8dbeabb122c329bd5879437c71230b0418c3c8", + "bytes": 360620, + "sampleRate": 24000, + "channels": 1, + "duration": 7.512, + "rms": 0.10000145024648589, + "peak": 0.553558349609375 + }, + { + "url": "http://127.0.0.1:4173/audio/last-umbrella.wav?v=0.2.3", + "sha256": "c801293a34013a8d93d3289a2cc87cd3eed83f97ba4647f5060efa00b117a9ad", + "bytes": 370988, + "sampleRate": 24000, + "channels": 1, + "duration": 7.728, + "rms": 0.10000149360501835, + "peak": 0.59765625 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-sea.wav?v=0.2.3", + "sha256": "9233431d78ab4b144e3c33ad0cf0d49fc0fb91b29514343230ba32987b794bb3", + "bytes": 398636, + "sampleRate": 24000, + "channels": 1, + "duration": 8.304, + "rms": 0.10000134688905045, + "peak": 0.49616992473602295 + }, + { + "url": "http://127.0.0.1:4173/audio/password-apple.wav?v=0.2.3", + "sha256": "b6f5de3fe571fe3a7fdb722fe49250bcfeedef49475271e0ec76a7630907edd5", + "bytes": 235052, + "sampleRate": 24000, + "channels": 1, + "duration": 4.896, + "rms": 0.10000148212193387, + "peak": 0.4834437072277069 + }, + { + "url": "http://127.0.0.1:4173/audio/first-furniture.wav?v=0.2.3", + "sha256": "29f007b385b7182db1d8aeccad4fc3c260df5e66e14e52a46b0ef0fcd0ff3a0a", + "bytes": 364076, + "sampleRate": 24000, + "channels": 1, + "duration": 7.584, + "rms": 0.1000014551820741, + "peak": 0.5700552463531494 + }, + { + "url": "http://127.0.0.1:4173/audio/password-hat.wav?v=0.2.3", + "sha256": "e91bfc97df90a1675b6cd856880ac15c54de32cfc3b23603bdd1c2c5ac3ce6b8", + "bytes": 235052, + "sampleRate": 24000, + "channels": 1, + "duration": 4.896, + "rms": 0.10000146155157119, + "peak": 0.5059053301811218 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-oil.wav?v=0.2.3", + "sha256": "7a6b122b11c07da86c95fb78e2db2a70681b5219c63d6441fe56da1979ac1dc3", + "bytes": 334124, + "sampleRate": 24000, + "channels": 1, + "duration": 6.96, + "rms": 0.1000014880654183, + "peak": 0.539933443069458 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-meat.wav?v=0.2.3", + "sha256": "d416107cc05e7c5b92ca27100a10a8a9689de913346179945d5542de4a6bac0c", + "bytes": 342188, + "sampleRate": 24000, + "channels": 1, + "duration": 7.128, + "rms": 0.10000157422522808, + "peak": 0.510833740234375 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-apple.wav?v=0.2.3", + "sha256": "1bf2aef9a9f030af1a8fd7dee8f44aa420a397b3ba99b575feeb3dc7a63ec191", + "bytes": 395180, + "sampleRate": 24000, + "channels": 1, + "duration": 8.232, + "rms": 0.10000148399213096, + "peak": 0.563568115234375 + }, + { + "url": "http://127.0.0.1:4173/audio/first-oil.wav?v=0.2.3", + "sha256": "f415195e0cfc7ee711d09de7519e88eab62cc8b58d70772c83c3f5c27c267819", + "bytes": 335276, + "sampleRate": 24000, + "channels": 1, + "duration": 6.984, + "rms": 0.10000145886808136, + "peak": 0.5347453355789185 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-hat.wav?v=0.2.3", + "sha256": "31a6a4270bf368cda419094d87a303ac3cd5c22539786cb165f8044b0b8e9d6e", + "bytes": 402092, + "sampleRate": 24000, + "channels": 1, + "duration": 8.376, + "rms": 0.10000145804818952, + "peak": 0.541778564453125 + }, + { + "url": "http://127.0.0.1:4173/audio/message-furniture.wav?v=0.2.3", + "sha256": "26c331b7e12311236f4bb48f88918dfbf53cccd2f50b55741ea6ff4473e71dd8", + "bytes": 521900, + "sampleRate": 24000, + "channels": 1, + "duration": 10.872, + "rms": 0.10000134596838128, + "peak": 0.529327392578125 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-oil.wav?v=0.2.3", + "sha256": "3fa1e662a3af8f2726b17b2baa5bec2934406e6595ebc243c8380dd16e190977", + "bytes": 190124, + "sampleRate": 24000, + "channels": 1, + "duration": 3.96, + "rms": 0.10000134375667624, + "peak": 0.3817255198955536 + }, + { + "url": "http://127.0.0.1:4173/audio/last-sea.wav?v=0.2.3", + "sha256": "f755452e1da44674aa1df7d12edffa988091b89a394e7eb6d4a00eb721f07cbf", + "bytes": 345644, + "sampleRate": 24000, + "channels": 1, + "duration": 7.2, + "rms": 0.10000140162255576, + "peak": 0.591033935546875 + }, + { + "url": "http://127.0.0.1:4173/audio/password-oil.wav?v=0.2.3", + "sha256": "b472957b27ff98ea7b8894fa1ff12653f7e9f66f77870faa9e52a1c1bf116c41", + "bytes": 240812, + "sampleRate": 24000, + "channels": 1, + "duration": 5.016, + "rms": 0.10000146772662066, + "peak": 0.4945219159126282 + }, + { + "url": "http://127.0.0.1:4173/audio/first-umbrella.wav?v=0.2.3", + "sha256": "878e0bd2e6e4105f175aef51a028f6b141f3a2072be20f783193f3ba897a3ee0", + "bytes": 366380, + "sampleRate": 24000, + "channels": 1, + "duration": 7.632, + "rms": 0.10000147647908036, + "peak": 0.5700247287750244 + }, + { + "url": "http://127.0.0.1:4173/audio/last-apple.wav?v=0.2.3", + "sha256": "4cb2a8579fa3a7b91bb36363826ce8ca0d6d86e96e16a479e226a2802edd82f7", + "bytes": 356012, + "sampleRate": 24000, + "channels": 1, + "duration": 7.416, + "rms": 0.10000144523423521, + "peak": 0.622528076171875 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-market.wav?v=0.2.3", + "sha256": "68a5b899115a66ab225d610ec47b4de56cc8793657362bc38f533c06f741e4cc", + "bytes": 402092, + "sampleRate": 24000, + "channels": 1, + "duration": 8.376, + "rms": 0.10000160159844854, + "peak": 0.6822717785835266 + }, + { + "url": "http://127.0.0.1:4173/audio/message-oil.wav?v=0.2.3", + "sha256": "a2a71a7e5e07c81871a25c6cb7540c39aa0b32fc44f78cda66b5f34ace98d805", + "bytes": 509228, + "sampleRate": 24000, + "channels": 1, + "duration": 10.608, + "rms": 0.10000135184106136, + "peak": 0.51812744140625 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-meat.wav?v=0.2.3", + "sha256": "d36dfc395a5c53fbfa4abe9980db7bb59adfdac59e40318c4aca365365e3f2ab", + "bytes": 187820, + "sampleRate": 24000, + "channels": 1, + "duration": 3.912, + "rms": 0.1000013329979738, + "peak": 0.371124267578125 + }, + { + "url": "http://127.0.0.1:4173/audio/password-market.wav?v=0.2.3", + "sha256": "02e325fb753ef7a3ee585a03d2ca2aa3f1fbc58523b062222ae1136eeed7a95c", + "bytes": 230444, + "sampleRate": 24000, + "channels": 1, + "duration": 4.8, + "rms": 0.10000151520861549, + "peak": 0.48170414566993713 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-hat.wav?v=0.2.3", + "sha256": "4ff43dd042f4b5451e9fdeb3edd59f1e389a7d1dd488094587a3a9fc7dfffa44", + "bytes": 191276, + "sampleRate": 24000, + "channels": 1, + "duration": 3.984, + "rms": 0.10000132502946775, + "peak": 0.417083740234375 + }, + { + "url": "http://127.0.0.1:4173/audio/last-market.wav?v=0.2.3", + "sha256": "7857e87e9dbfe8fe849cc0b18c1d45b60916cb337328099c7a87a42c82e2821e", + "bytes": 359468, + "sampleRate": 24000, + "channels": 1, + "duration": 7.488, + "rms": 0.10000148064140717, + "peak": 0.600555419921875 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-meat.wav?v=0.2.3", + "sha256": "94f8a4f9e116a787e5ed052661d6de9ecf3ad8629db476661dd59ad03014b0c9", + "bytes": 244268, + "sampleRate": 24000, + "channels": 1, + "duration": 5.088, + "rms": 0.10000146176253134, + "peak": 0.44187748432159424 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-oil.wav?v=0.2.3", + "sha256": "55b2c7d6aa8bbce04edf8661882c9781da81c57f56217f99b80457a3bb895da0", + "bytes": 369836, + "sampleRate": 24000, + "channels": 1, + "duration": 7.704, + "rms": 0.10000146897241707, + "peak": 0.6239814162254333 + }, + { + "url": "http://127.0.0.1:4173/audio/first-sound.wav?v=0.2.3", + "sha256": "46f6adeed928a16af0700f1e8626cf8049f124632a04a5d10604426fb06f9596", + "bytes": 353708, + "sampleRate": 24000, + "channels": 1, + "duration": 7.368, + "rms": 0.10000157588418972, + "peak": 0.5189672708511353 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-umbrella.wav?v=0.2.3", + "sha256": "4b4c858a25659540f9dbc524664496fc6de61ab8c1627f3cfee8c9c744e11d5b", + "bytes": 247724, + "sampleRate": 24000, + "channels": 1, + "duration": 5.16, + "rms": 0.10000144286672341, + "peak": 0.46534621715545654 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-oil.wav?v=0.2.3", + "sha256": "3ca98682ff06d1d6b8af02c0fd5b2124f42266ac989884223eff4a9bbde1287a", + "bytes": 399788, + "sampleRate": 24000, + "channels": 1, + "duration": 8.328, + "rms": 0.10000149133669024, + "peak": 0.5243995189666748 + }, + { + "url": "http://127.0.0.1:4173/audio/first-sea.wav?v=0.2.3", + "sha256": "0f0b39314c5f7d7168d4854003c0c284e7bc3438cdc4d1d1c5adab7cb5ed30e5", + "bytes": 349100, + "sampleRate": 24000, + "channels": 1, + "duration": 7.272, + "rms": 0.10000142148394393, + "peak": 0.5717948079109192 + }, + { + "url": "http://127.0.0.1:4173/audio/last-meat.wav?v=0.2.3", + "sha256": "10f8ad4259ed8945c9da831e80b3902303c09caef96d400298599168fb1efed4", + "bytes": 346796, + "sampleRate": 24000, + "channels": 1, + "duration": 7.224, + "rms": 0.10000155834091913, + "peak": 0.537200927734375 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-umbrella.wav?v=0.2.3", + "sha256": "399ea2f681f755918f1117c8baba42739ceca64b307b999342f457a9235050b6", + "bytes": 368684, + "sampleRate": 24000, + "channels": 1, + "duration": 7.68, + "rms": 0.10000155028684544, + "peak": 0.569549560546875 + }, + { + "url": "http://127.0.0.1:4173/audio/message-meat.wav?v=0.2.3", + "sha256": "ce19735df079b54c171e775b6b365385a80160b9033442abab95b2b9c8505e1a", + "bytes": 512684, + "sampleRate": 24000, + "channels": 1, + "duration": 10.68, + "rms": 0.10000140834686953, + "peak": 0.5147705078125 + }, + { + "url": "http://127.0.0.1:4173/audio/message-umbrella.wav?v=0.2.3", + "sha256": "41d5866dae66600df4694a8312b531571d44cece6dba0e423e7c43d09d184819", + "bytes": 523052, + "sampleRate": 24000, + "channels": 1, + "duration": 10.896, + "rms": 0.10000120668553683, + "peak": 0.530364990234375 + }, + { + "url": "http://127.0.0.1:4173/audio/last-furniture.wav?v=0.2.3", + "sha256": "5ad4f776e35439d408abed0e66567d6b5cdc80fc54d579165472e474f1238776", + "bytes": 357164, + "sampleRate": 24000, + "channels": 1, + "duration": 7.44, + "rms": 0.10000152394963031, + "peak": 0.583587646484375 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-sea.wav?v=0.2.3", + "sha256": "8838d6a1ee8a790427dc5aa761e70b3d8872af62086efeed743297ff7f8b8a06", + "bytes": 243116, + "sampleRate": 24000, + "channels": 1, + "duration": 5.064, + "rms": 0.10000138788281714, + "peak": 0.45013427734375 + }, + { + "url": "http://127.0.0.1:4173/audio/message-apple.wav?v=0.2.3", + "sha256": "d85e6f47d871369f00de2274139e5ad6b4b5686b5e20e248df0ed6b9a320d942", + "bytes": 517292, + "sampleRate": 24000, + "channels": 1, + "duration": 10.776, + "rms": 0.10000133916854889, + "peak": 0.525360107421875 + }, + { + "url": "http://127.0.0.1:4173/audio/last-hat.wav?v=0.2.3", + "sha256": "bdaf8fbc54df8061e9e58aa8c14b3044a6e863dc54973ee3ee6ae2c5ae1a28f1", + "bytes": 354860, + "sampleRate": 24000, + "channels": 1, + "duration": 7.392, + "rms": 0.10000152378078818, + "peak": 0.550079345703125 + }, + { + "url": "http://127.0.0.1:4173/audio/first-apple.wav?v=0.2.3", + "sha256": "7c1dbcb3082055df2b8f087f7e906ec867c92f679de0894c34740c05e61a4bc1", + "bytes": 359468, + "sampleRate": 24000, + "channels": 1, + "duration": 7.488, + "rms": 0.10000143468253914, + "peak": 0.57977294921875 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-umbrella.wav?v=0.2.3", + "sha256": "8d3e8e8bc97e5fe3f3362184c4abb12f01a882a1f1174d2644f0f70aac677c0a", + "bytes": 192428, + "sampleRate": 24000, + "channels": 1, + "duration": 4.008, + "rms": 0.10000131475711933, + "peak": 0.385650634765625 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-furniture.wav?v=0.2.3", + "sha256": "5c004a7b2f5a4a918c9f689f1a2dcb219a620ed14313f40a9655b36dbf64948d", + "bytes": 398636, + "sampleRate": 24000, + "channels": 1, + "duration": 8.304, + "rms": 0.10000141690978645, + "peak": 0.487396240234375 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-tree.wav?v=0.2.3", + "sha256": "122f496834fb16d6da47f801e50e46e272e4e934af959467d1db4e490f79be7a", + "bytes": 183212, + "sampleRate": 24000, + "channels": 1, + "duration": 3.816, + "rms": 0.10000140751524371, + "peak": 0.36920166015625 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-tree.wav?v=0.2.3", + "sha256": "00d8e77ec0371971d632724d91f8cf8d947bfb83c582a513b6421be4c457a1da", + "bytes": 241964, + "sampleRate": 24000, + "channels": 1, + "duration": 5.04, + "rms": 0.10000146153372488, + "peak": 0.4585406184196472 + }, + { + "url": "http://127.0.0.1:4173/audio/message-tree.wav?v=0.2.3", + "sha256": "5d684aa710a63d36ed8dcc2a8bfbdd5c71b0b1c63dad2a324adecb76591e85b8", + "bytes": 540332, + "sampleRate": 24000, + "channels": 1, + "duration": 11.256, + "rms": 0.10000132424453942, + "peak": 0.5262451171875 + }, + { + "url": "http://127.0.0.1:4173/audio/last-tree.wav?v=0.2.3", + "sha256": "589e56d940a3c9e80ec02ae0b2dd93463fdc85ef019a753fcd0fded0752055f9", + "bytes": 382508, + "sampleRate": 24000, + "channels": 1, + "duration": 7.968, + "rms": 0.10000149781706567, + "peak": 0.5807672142982483 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-tree.wav?v=0.2.3", + "sha256": "341888c75275c13eb31058f53a1d4276be0daa0a1b5a3a45522036928b83b0c1", + "bytes": 382508, + "sampleRate": 24000, + "channels": 1, + "duration": 7.968, + "rms": 0.1000014873304774, + "peak": 0.600024402141571 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-tree.wav?v=0.2.3", + "sha256": "8735c3d9672561ca237fa87317beec2878492eb9063d6048d5b214423561acc1", + "bytes": 423980, + "sampleRate": 24000, + "channels": 1, + "duration": 8.832, + "rms": 0.10000150947389638, + "peak": 0.6187627911567688 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-furniture.wav?v=0.2.3", + "sha256": "52cb92cdb8ee92b6f581c9d68dbc346f180c470564809ba57185429c9eb84127", + "bytes": 186668, + "sampleRate": 24000, + "channels": 1, + "duration": 3.888, + "rms": 0.1000013480244084, + "peak": 0.387054443359375 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-tree.wav?v=0.2.3", + "sha256": "bc8e54f5407e8866bf1ca1ddfd4f6c63d85fee29bd9e430c7dd33e87974fc5b8", + "bytes": 409004, + "sampleRate": 24000, + "channels": 1, + "duration": 8.52, + "rms": 0.10000146559822108, + "peak": 0.5486617684364319 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-tree.wav?v=0.2.3", + "sha256": "b8e8bbe6b8b14727efd953fae9d4aed2caeb004055d52f611c6378322847edbe", + "bytes": 400940, + "sampleRate": 24000, + "channels": 1, + "duration": 8.352, + "rms": 0.10000144970799159, + "peak": 0.470611572265625 + }, + { + "url": "http://127.0.0.1:4173/audio/first-tree.wav?v=0.2.3", + "sha256": "3178230fd5850b6277a2153b438ec5289720e3db7ac929914cc213964f004bd5", + "bytes": 379052, + "sampleRate": 24000, + "channels": 1, + "duration": 7.896, + "rms": 0.10000144270360484, + "peak": 0.5833613276481628 + }, + { + "url": "http://127.0.0.1:4173/audio/password-tree.wav?v=0.2.3", + "sha256": "67da8147296e35134ec254bc82b58317630061b2c64d2d63c4be197ce8692d50", + "bytes": 233900, + "sampleRate": 24000, + "channels": 1, + "duration": 4.872, + "rms": 0.10000156310809623, + "peak": 0.4904019236564636 + } + ] +} diff --git a/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/earlier-asr-provenance.json b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/earlier-asr-provenance.json new file mode 100644 index 0000000..b7a1a48 --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/earlier-asr-provenance.json @@ -0,0 +1,262 @@ +{ + "preservedAtUtc": "2026-10-14T09:14:01.449054+00:00", + "reportedTool": { + "name": "faster-whisper", + "version": "1.2.1", + "model": "tiny multilingual", + "attribution": "Neo, as supplied in the user request; raw JSON has no tool configuration metadata." + }, + "records": [ + { + "sourcePath": "/tmp/findword-ambience-candidate-asr.json", + "savedFile": "candidate-scan-original.json", + "sha256": "2f89b954b323d2d1da96ce5927d68771f9f7ec82331c04a3bfdefbdb693b4ef6", + "bytes": 2258, + "sourceModifiedAtUtc": "2026-10-14T08:46:59.249935+00:00", + "scope": "Earlier broad source candidate scan; 12-second candidates for mall, market and cafe, as reported by Neo through the user." + }, + { + "sourcePath": "/tmp/findword-ambience-asr.json", + "savedFile": "prior-derivatives-asr-original.json", + "sha256": "ab65f3d21655ee1894d16b2836d8976ba6419457aabc67a2f90a66eb8fa8bb88", + "bytes": 1372, + "sourceModifiedAtUtc": "2026-10-14T08:46:03.032951+00:00", + "scope": "Earlier screening of the pre-refinement eight 12-second derivatives, as reported by Neo through the user." + } + ], + "provenanceLimits": "Raw records are preserved byte-for-byte. They do not embed input hashes, model revision, decoder settings or full invocation metadata. Source/derivative associations below are the task context and captured pre-refinement plan/manifest, not independently proven by those raw ASR files. Candidate lang/p values are heuristic guesses (p is rounded in the supplied scan), not speaker identification or validated transcription.", + "contextSources": [ + { + "environmentId": "street", + "directUrl": "https://upload.wikimedia.org/wikipedia/commons/2/24/Sunday_in_the_city_street_noise2.ogg", + "expectedSourceSha256": "0ddb0be7eb3427f781c8268bcbc74b8ad7e1fbf75b9f6966e65274dbe85f3d9d", + "sourceBytes": 3414104, + "directMediaDurationSeconds": 264.254694 + }, + { + "environmentId": "mall", + "directUrl": "https://upload.wikimedia.org/wikipedia/commons/f/fd/1_minute_at_the_alexa_mall_in_berlin.ogg", + "expectedSourceSha256": "bb066e130e5d665db57cb5f88e820d053c724d8f777b275213998d2074c6529a", + "sourceBytes": 1666896, + "directMediaDurationSeconds": 60.05551 + }, + { + "environmentId": "theater", + "directUrl": "https://cdn.freesound.org/previews/853/853576_14269391-lq.mp3", + "expectedSourceSha256": "05c3ece7c088f34700b7610f791c0ad848a24c77be2c32fd1503a78356739a43", + "sourceBytes": 1485015, + "directMediaDurationSeconds": 176.901224 + }, + { + "environmentId": "department", + "directUrl": "https://cdn.freesound.org/previews/268/268941_40107-lq.mp3", + "expectedSourceSha256": "261fda28722fba623483a90b32e7a2ec388c59887f56a5247156b53f1ffb6ccd", + "sourceBytes": 2445024, + "directMediaDurationSeconds": 292.872 + }, + { + "environmentId": "market", + "directUrl": "https://upload.wikimedia.org/wikipedia/commons/e/e8/Italia_Palermo_mercato-Ballaro_20161225_122421.ogg", + "expectedSourceSha256": "fc0075dce8ad05b56460c9f18754c27b2021f21f1c780a595ccda648d33c941d", + "sourceBytes": 622200, + "directMediaDurationSeconds": 76.696961 + }, + { + "environmentId": "subway", + "directUrl": "https://upload.wikimedia.org/wikipedia/commons/d/d3/TTC_Subway_Line_1_Ambience_-_Museum_to_Union_%28Freesound%29.ogg", + "expectedSourceSha256": "41fcf064cde53cef1528fe98721347851e60c070d8ff9f213f354025cf272d4c", + "sourceBytes": 3343901, + "directMediaDurationSeconds": 425.024 + }, + { + "environmentId": "cafe", + "directUrl": "https://upload.wikimedia.org/wikipedia/commons/5/54/Cafe_ambiance.ogg", + "expectedSourceSha256": "6360791fdcee1f64638f0fc9abd6d2c7a1aa75fd3d2b80033170a02d025099dc", + "sourceBytes": 19947952, + "directMediaDurationSeconds": 1200.000998 + }, + { + "environmentId": "rain", + "directUrl": "https://upload.wikimedia.org/wikipedia/commons/8/8c/Urban_Street_on_a_Rainy_Afternoon.flac", + "expectedSourceSha256": "ef0511593b1bb0ba47d5c5dafd83eb07ba854b5a65fd5d41b8c76a1b3ff2c22a", + "sourceBytes": 91187572, + "directMediaDurationSeconds": 1800.0 + } + ], + "contextPriorDerivatives": [ + { + "environmentId": "street", + "file": "street.wav", + "sha256": "a8bffa201b174618955bc51b860167169125304811aabe2086b0bb35b06c3ae1", + "bytes": 576044, + "conversion": { + "startSeconds": 35, + "durationSeconds": 12, + "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", + "file": "mall.wav", + "sha256": "6e9171f549cacadfaeedd57a41c8e2a76b0e789f5c9a97af029a8d3558c9f145", + "bytes": 576044, + "conversion": { + "startSeconds": 20, + "durationSeconds": 12, + "fadeSeconds": 0.05, + "sampleRate": 24000, + "channels": 1, + "encoding": "PCM16 little-endian", + "linearGain": 0.9603596731816801, + "targetRms": 0.08, + "peakLimit": 0.85, + "maxGain": 4, + "operations": "excerpt, downmix, resample, linear end fades, bounded linear normalization, WAV encoding" + } + }, + { + "environmentId": "theater", + "file": "theater.wav", + "sha256": "2d6a444fb7874cdf6b2d8a741a69175299b112eb66834912c025437d8277d635", + "bytes": 576044, + "conversion": { + "startSeconds": 45, + "durationSeconds": 12, + "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", + "file": "department.wav", + "sha256": "aa43f3d1d3e7c2b1f8ace24ecbda45d0ea3a031db941c39506dc6c1665b8efa7", + "bytes": 576044, + "conversion": { + "startSeconds": 90, + "durationSeconds": 12, + "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", + "file": "market.wav", + "sha256": "4287e971a12767f70da714e0c1aff30125268f9c3faf07ebfbcc0d2904f4a312", + "bytes": 576044, + "conversion": { + "startSeconds": 30, + "durationSeconds": 12, + "fadeSeconds": 0.05, + "sampleRate": 24000, + "channels": 1, + "encoding": "PCM16 little-endian", + "linearGain": 0.9408509216036823, + "targetRms": 0.08, + "peakLimit": 0.85, + "maxGain": 4, + "operations": "excerpt, downmix, resample, linear end fades, bounded linear normalization, WAV encoding" + } + }, + { + "environmentId": "subway", + "file": "subway.wav", + "sha256": "9faf70b68617d267b367a0f3692ed90015458543ab4b0844f6c704e6a724728f", + "bytes": 576044, + "conversion": { + "startSeconds": 65, + "durationSeconds": 12, + "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", + "file": "cafe.wav", + "sha256": "8db06f3f09bbd8409573ba4874c7ccdd1e7e825c8a61989a4efe66206a66c2d2", + "bytes": 576044, + "conversion": { + "startSeconds": 120, + "durationSeconds": 12, + "fadeSeconds": 0.05, + "sampleRate": 24000, + "channels": 1, + "encoding": "PCM16 little-endian", + "linearGain": 0.6543423611954429, + "targetRms": 0.08, + "peakLimit": 0.85, + "maxGain": 4, + "operations": "excerpt, downmix, resample, linear end fades, bounded linear normalization, WAV encoding" + } + }, + { + "environmentId": "rain", + "file": "rain.wav", + "sha256": "f4315084e820f742b0709de5bb0d1abd3d5af1730620e08c2948b70347356dd9", + "bytes": 576044, + "conversion": { + "startSeconds": 180, + "durationSeconds": 12, + "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" + } + } + ], + "selection": { + "mall": { + "previousStartSeconds": 20, + "selectedStartSeconds": 36, + "durationSeconds": 12 + }, + "market": { + "previousStartSeconds": 30, + "selectedStartSeconds": 60, + "durationSeconds": 12 + }, + "cafe": { + "previousStartSeconds": 120, + "selectedStartSeconds": 180, + "durationSeconds": 12 + } + }, + "screeningOnly": true, + "textIsVerifiedTranscript": false, + "humanListeningAcceptance": false, + "legalPrivacyClearance": false, + "limitations": "Heuristic ASR output can miss speech and hallucinate text. Neither candidate text nor empty text is a faithful transcript or clearance. Final exact derivatives must be screened separately; human listening acceptance remains unperformed." +} diff --git a/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/failed-regeneration-preservation.json b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/failed-regeneration-preservation.json new file mode 100644 index 0000000..ae610cd --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/failed-regeneration-preservation.json @@ -0,0 +1,9 @@ +{ + "afterFailedRuns": [ + "05-regeneration.log", + "07-regeneration.log" + ], + "all109WavsUnchanged": true, + "manifestUnchanged": true, + "noticesUnchanged": true +} \ No newline at end of file diff --git a/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/final-asr.json b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/final-asr.json new file mode 100644 index 0000000..ecd83a4 --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/final-asr.json @@ -0,0 +1,4632 @@ +{ + "schemaVersion": 1, + "startedAtUtc": "2026-10-14T09:20:07.998082+00:00", + "completedAtUtc": "2026-10-14T09:20:18.354510+00:00", + "tool": { + "name": "faster-whisper", + "version": "1.2.1", + "python": "3.11.16", + "dependencies": { + "ctranslate2": "4.8.3", + "av": "18.1.0", + "numpy": "2.4.6", + "tokenizers": "0.23.3", + "huggingface-hub": "2.2.0" + } + }, + "model": { + "name": "tiny", + "multilingual": true, + "repository": "Systran/faster-whisper-tiny", + "revision": "d90ca5fe260221311c53c58e660288d3deb8d356", + "files": { + "config.json": "a73a28cdfe1c43ccc7202fa333d1f89c202477271407ae9a7f19afa52039cac8", + "model.bin": "dcb76c6586fc06cbdac6dd21f14cfd129cc4cdd9dce19bf4ffa62e59cbe6e6d1", + "tokenizer.json": "fb7b63191e9bb045082c79fd742a3106a12c99513ab30df4a0d47fa6cb6fd0ab", + "vocabulary.txt": "34ce3fe1c5041027b3f8d42912270993f986dbc4bb34cf27f951e34a1e453913" + } + }, + "method": { + "input": "Exact final 12-second public/ambience WAV files, hash verified before and after inference; built-in Silero VAD with package defaults, no text editing or manual filtering.", + "device": "cpu", + "computeType": "int8", + "cpuThreads": 4, + "numWorkers": 1, + "randomSeed": 0, + "nonFiniteNumberEncoding": "Non-finite default options use {nonFiniteFloat: Infinity|-Infinity|NaN} tagged objects; no ASR segments or text are discarded.", + "offline": true, + "parameters": { + "language": null, + "task": "transcribe", + "log_progress": false, + "beam_size": 5, + "best_of": 5, + "patience": 1, + "length_penalty": 1, + "repetition_penalty": 1, + "no_repeat_ngram_size": 0, + "temperature": [ + 0.0, + 0.2, + 0.4, + 0.6, + 0.8, + 1.0 + ], + "compression_ratio_threshold": 2.4, + "log_prob_threshold": -1.0, + "no_speech_threshold": 0.6, + "condition_on_previous_text": true, + "prompt_reset_on_temperature": 0.5, + "initial_prompt": null, + "prefix": null, + "suppress_blank": true, + "suppress_tokens": [ + -1 + ], + "without_timestamps": false, + "max_initial_timestamp": 1.0, + "word_timestamps": false, + "prepend_punctuations": "\"'“¿([{-", + "append_punctuations": "\"'.。,,!!??::”)]}、", + "multilingual": false, + "vad_filter": true, + "vad_parameters": null, + "max_new_tokens": null, + "chunk_length": null, + "clip_timestamps": "0", + "hallucination_silence_threshold": null, + "hotwords": null, + "language_detection_threshold": 0.5, + "language_detection_segments": 1 + }, + "manifestSha256": "4f21df1c046e545553319889218c29b3efe0da0d49d45d3e09a36fb7759a617c", + "vadModelSha256": "4cbf549b8326f60f80f2536d9eefeb450a9abe83365a098031c89719f1be17d2", + "scriptSha256": "b2d7d4075b56f6d2bcd40966ccc0d787f20a5fb7b9322d9d0547fe1915a909eb", + "command": "/tmp/findword-asr-venv/bin/python .agent/evidence-v0.2.3/privacy-screening/screen-with-vad-json.py" + }, + "limitations": { + "screeningOnly": true, + "humanListeningAcceptance": false, + "legalPrivacyClearance": false, + "textIsVerifiedTranscript": false, + "explanation": "Tiny-model ASR is only a screening signal. Empty segments do not prove absence of speech, music or private conversation. Candidate text and language guesses may be hallucinated and are not faithful transcripts. This is NOT human listening acceptance or legal/privacy clearance." + }, + "supplementaryNoVadRun": { + "file": "no-vad-asr.json", + "sha256": "14b42ee0b80c194caa3c0de2644f647d6d7720c60c2208374778619f47c2e969", + "requiredEmptyPassed": false, + "explanation": "The separate unfiltered run emitted candidate segments for all three changed excerpts. The primary VAD-enabled screen does not supersede or invalidate that evidence. Neo original VAD/decoder settings were not recorded, so methodological equivalence is unverified." + }, + "requiredEmptyEnvironmentIds": [ + "mall", + "market", + "cafe" + ], + "requiredEmptyPassed": false, + "files": [ + { + "environmentId": "street", + "file": "public/ambience/street.wav", + "sha256": "a8bffa201b174618955bc51b860167169125304811aabe2086b0bb35b06c3ae1", + "bytes": 576044, + "durationSeconds": 12.0, + "selectedSegmentStartSeconds": 35, + "sourceSha256": "0ddb0be7eb3427f781c8268bcbc74b8ad7e1fbf75b9f6966e65274dbe85f3d9d", + "language": "en", + "languageProbability": 0.3020564913749695, + "segments": [], + "text": "", + "info": { + "language": "en", + "language_probability": 0.3020564913749695, + "duration": 12.0, + "duration_after_vad": 0.0, + "all_language_probs": [ + [ + "en", + 0.3020564913749695 + ], + [ + "cy", + 0.21030105650424957 + ], + [ + "nn", + 0.14189758896827698 + ], + [ + "zh", + 0.04061942175030708 + ], + [ + "ja", + 0.03452612832188606 + ], + [ + "ru", + 0.03396379575133324 + ], + [ + "la", + 0.030456941574811935 + ], + [ + "pl", + 0.02258244901895523 + ], + [ + "es", + 0.021157776936888695 + ], + [ + "pt", + 0.017485281452536583 + ], + [ + "fr", + 0.015300172381103039 + ], + [ + "ko", + 0.01108497753739357 + ], + [ + "it", + 0.010035485960543156 + ], + [ + "de", + 0.007656001951545477 + ], + [ + "ar", + 0.006853005383163691 + ], + [ + "nl", + 0.006296808365732431 + ], + [ + "tr", + 0.005499983672052622 + ], + [ + "haw", + 0.005389326252043247 + ], + [ + "sv", + 0.004781618714332581 + ], + [ + "th", + 0.004685405641794205 + ], + [ + "el", + 0.004048524424433708 + ], + [ + "hi", + 0.0036309813149273396 + ], + [ + "fi", + 0.0033149493392556906 + ], + [ + "id", + 0.003307837527245283 + ], + [ + "ms", + 0.0032469655852764845 + ], + [ + "jw", + 0.0031340355053544044 + ], + [ + "ro", + 0.0029805265367031097 + ], + [ + "br", + 0.0029171525966376066 + ], + [ + "mi", + 0.0028367217164486647 + ], + [ + "vi", + 0.0028196300845593214 + ], + [ + "gl", + 0.0025912728160619736 + ], + [ + "km", + 0.002590385964140296 + ], + [ + "sn", + 0.0024162698537111282 + ], + [ + "hu", + 0.002406821819022298 + ], + [ + "uk", + 0.0018103669863194227 + ], + [ + "cs", + 0.0016262015560641885 + ], + [ + "yo", + 0.001625207718461752 + ], + [ + "bo", + 0.0015162129420787096 + ], + [ + "sa", + 0.00130862754303962 + ], + [ + "he", + 0.0011921327095478773 + ], + [ + "si", + 0.0011325259692966938 + ], + [ + "ml", + 0.0010853250278159976 + ], + [ + "bn", + 0.0010256647365167737 + ], + [ + "ta", + 0.0009075920679606497 + ], + [ + "sw", + 0.000845721981022507 + ], + [ + "da", + 0.0008275281288661063 + ], + [ + "fa", + 0.0007775731501169503 + ], + [ + "te", + 0.0007719157729297876 + ], + [ + "ca", + 0.0007328137289732695 + ], + [ + "ur", + 0.0007311314693652093 + ], + [ + "bg", + 0.000695197784807533 + ], + [ + "eu", + 0.0005441734101623297 + ], + [ + "hr", + 0.0004312059027142823 + ], + [ + "sl", + 0.0004269620985724032 + ], + [ + "fo", + 0.00038641990977339447 + ], + [ + "af", + 0.000331822142470628 + ], + [ + "no", + 0.0003316291549708694 + ], + [ + "my", + 0.00031328442855738103 + ], + [ + "tl", + 0.00027318537468090653 + ], + [ + "bs", + 0.0002692292327992618 + ], + [ + "yi", + 0.00024950431543402374 + ], + [ + "mn", + 0.00024202950589824468 + ], + [ + "az", + 0.00021917068806942552 + ], + [ + "sk", + 0.00020947805023752153 + ], + [ + "ne", + 0.00020235382544342428 + ], + [ + "sr", + 0.0001879734336398542 + ], + [ + "ht", + 0.0001864101504907012 + ], + [ + "oc", + 0.0001844368816819042 + ], + [ + "be", + 0.0001775887212716043 + ], + [ + "lt", + 0.00013429981481749564 + ], + [ + "sd", + 0.00012911477824673057 + ], + [ + "is", + 0.00010892335558310151 + ], + [ + "pa", + 9.756845247466117e-05 + ], + [ + "sq", + 9.457524720346555e-05 + ], + [ + "mk", + 9.2326634330675e-05 + ], + [ + "mr", + 7.776313577778637e-05 + ], + [ + "ps", + 7.548009307356551e-05 + ], + [ + "hy", + 7.365928468061611e-05 + ], + [ + "lv", + 6.607783143408597e-05 + ], + [ + "mt", + 6.539625610457733e-05 + ], + [ + "et", + 6.393730291165411e-05 + ], + [ + "gu", + 4.735660331789404e-05 + ], + [ + "ka", + 4.6489964006468654e-05 + ], + [ + "kn", + 3.211794683011249e-05 + ], + [ + "lo", + 3.088561425101943e-05 + ], + [ + "as", + 2.7807591322925873e-05 + ], + [ + "kk", + 2.5295639716205187e-05 + ], + [ + "am", + 2.479039176250808e-05 + ], + [ + "so", + 1.860335578385275e-05 + ], + [ + "ln", + 1.4299822396424133e-05 + ], + [ + "tg", + 9.60720967668749e-07 + ], + [ + "tt", + 6.956781817279989e-07 + ], + [ + "lb", + 3.706700795191864e-07 + ], + [ + "ha", + 2.8613706604119216e-07 + ], + [ + "su", + 2.6732325864031736e-07 + ], + [ + "mg", + 1.1841115110655664e-07 + ], + [ + "tk", + 8.603510792681845e-08 + ], + [ + "ba", + 6.101110727740888e-08 + ], + [ + "uz", + 1.4534106362873445e-08 + ] + ], + "transcription_options": { + "beam_size": 5, + "best_of": 5, + "patience": 1, + "length_penalty": 1, + "repetition_penalty": 1, + "no_repeat_ngram_size": 0, + "log_prob_threshold": -1.0, + "no_speech_threshold": 0.6, + "compression_ratio_threshold": 2.4, + "condition_on_previous_text": true, + "prompt_reset_on_temperature": 0.5, + "temperatures": [ + 0.0, + 0.2, + 0.4, + 0.6, + 0.8, + 1.0 + ], + "initial_prompt": null, + "prefix": null, + "suppress_blank": true, + "suppress_tokens": [ + 1, + 2, + 7, + 8, + 9, + 10, + 14, + 25, + 26, + 27, + 28, + 29, + 31, + 58, + 59, + 60, + 61, + 62, + 63, + 90, + 91, + 92, + 93, + 359, + 503, + 522, + 542, + 873, + 893, + 902, + 918, + 922, + 931, + 1350, + 1853, + 1982, + 2460, + 2627, + 3246, + 3253, + 3268, + 3536, + 3846, + 3961, + 4183, + 4667, + 6585, + 6647, + 7273, + 9061, + 9383, + 10428, + 10929, + 11938, + 12033, + 12331, + 12562, + 13793, + 14157, + 14635, + 15265, + 15618, + 16553, + 16604, + 18362, + 18956, + 20075, + 21675, + 22520, + 26130, + 26161, + 26435, + 28279, + 29464, + 31650, + 32302, + 32470, + 36865, + 42863, + 47425, + 49870, + 50254, + 50258, + 50358, + 50359, + 50360, + 50361, + 50362 + ], + "without_timestamps": false, + "max_initial_timestamp": 1.0, + "word_timestamps": false, + "prepend_punctuations": "\"'“¿([{-", + "append_punctuations": "\"'.。,,!!??::”)]}、", + "multilingual": false, + "max_new_tokens": null, + "clip_timestamps": [ + 0.0 + ], + "hallucination_silence_threshold": null, + "hotwords": null + }, + "vad_options": { + "threshold": 0.5, + "neg_threshold": null, + "min_speech_duration_ms": 0, + "max_speech_duration_s": { + "nonFiniteFloat": "Infinity" + }, + "min_silence_duration_ms": 2000, + "speech_pad_ms": 400 + } + } + }, + { + "environmentId": "mall", + "file": "public/ambience/mall.wav", + "sha256": "680a769940c08f0d12c6c954c08366598dd8b5745e276f39c82b10d1a88261a1", + "bytes": 576044, + "durationSeconds": 12.0, + "selectedSegmentStartSeconds": 36, + "sourceSha256": "bb066e130e5d665db57cb5f88e820d053c724d8f777b275213998d2074c6529a", + "language": "en", + "languageProbability": 0.3020564913749695, + "segments": [], + "text": "", + "info": { + "language": "en", + "language_probability": 0.3020564913749695, + "duration": 12.0, + "duration_after_vad": 0.0, + "all_language_probs": [ + [ + "en", + 0.3020564913749695 + ], + [ + "cy", + 0.21030105650424957 + ], + [ + "nn", + 0.14189758896827698 + ], + [ + "zh", + 0.04061942175030708 + ], + [ + "ja", + 0.03452612832188606 + ], + [ + "ru", + 0.03396379575133324 + ], + [ + "la", + 0.030456941574811935 + ], + [ + "pl", + 0.02258244901895523 + ], + [ + "es", + 0.021157776936888695 + ], + [ + "pt", + 0.017485281452536583 + ], + [ + "fr", + 0.015300172381103039 + ], + [ + "ko", + 0.01108497753739357 + ], + [ + "it", + 0.010035485960543156 + ], + [ + "de", + 0.007656001951545477 + ], + [ + "ar", + 0.006853005383163691 + ], + [ + "nl", + 0.006296808365732431 + ], + [ + "tr", + 0.005499983672052622 + ], + [ + "haw", + 0.005389326252043247 + ], + [ + "sv", + 0.004781618714332581 + ], + [ + "th", + 0.004685405641794205 + ], + [ + "el", + 0.004048524424433708 + ], + [ + "hi", + 0.0036309813149273396 + ], + [ + "fi", + 0.0033149493392556906 + ], + [ + "id", + 0.003307837527245283 + ], + [ + "ms", + 0.0032469655852764845 + ], + [ + "jw", + 0.0031340355053544044 + ], + [ + "ro", + 0.0029805265367031097 + ], + [ + "br", + 0.0029171525966376066 + ], + [ + "mi", + 0.0028367217164486647 + ], + [ + "vi", + 0.0028196300845593214 + ], + [ + "gl", + 0.0025912728160619736 + ], + [ + "km", + 0.002590385964140296 + ], + [ + "sn", + 0.0024162698537111282 + ], + [ + "hu", + 0.002406821819022298 + ], + [ + "uk", + 0.0018103669863194227 + ], + [ + "cs", + 0.0016262015560641885 + ], + [ + "yo", + 0.001625207718461752 + ], + [ + "bo", + 0.0015162129420787096 + ], + [ + "sa", + 0.00130862754303962 + ], + [ + "he", + 0.0011921327095478773 + ], + [ + "si", + 0.0011325259692966938 + ], + [ + "ml", + 0.0010853250278159976 + ], + [ + "bn", + 0.0010256647365167737 + ], + [ + "ta", + 0.0009075920679606497 + ], + [ + "sw", + 0.000845721981022507 + ], + [ + "da", + 0.0008275281288661063 + ], + [ + "fa", + 0.0007775731501169503 + ], + [ + "te", + 0.0007719157729297876 + ], + [ + "ca", + 0.0007328137289732695 + ], + [ + "ur", + 0.0007311314693652093 + ], + [ + "bg", + 0.000695197784807533 + ], + [ + "eu", + 0.0005441734101623297 + ], + [ + "hr", + 0.0004312059027142823 + ], + [ + "sl", + 0.0004269620985724032 + ], + [ + "fo", + 0.00038641990977339447 + ], + [ + "af", + 0.000331822142470628 + ], + [ + "no", + 0.0003316291549708694 + ], + [ + "my", + 0.00031328442855738103 + ], + [ + "tl", + 0.00027318537468090653 + ], + [ + "bs", + 0.0002692292327992618 + ], + [ + "yi", + 0.00024950431543402374 + ], + [ + "mn", + 0.00024202950589824468 + ], + [ + "az", + 0.00021917068806942552 + ], + [ + "sk", + 0.00020947805023752153 + ], + [ + "ne", + 0.00020235382544342428 + ], + [ + "sr", + 0.0001879734336398542 + ], + [ + "ht", + 0.0001864101504907012 + ], + [ + "oc", + 0.0001844368816819042 + ], + [ + "be", + 0.0001775887212716043 + ], + [ + "lt", + 0.00013429981481749564 + ], + [ + "sd", + 0.00012911477824673057 + ], + [ + "is", + 0.00010892335558310151 + ], + [ + "pa", + 9.756845247466117e-05 + ], + [ + "sq", + 9.457524720346555e-05 + ], + [ + "mk", + 9.2326634330675e-05 + ], + [ + "mr", + 7.776313577778637e-05 + ], + [ + "ps", + 7.548009307356551e-05 + ], + [ + "hy", + 7.365928468061611e-05 + ], + [ + "lv", + 6.607783143408597e-05 + ], + [ + "mt", + 6.539625610457733e-05 + ], + [ + "et", + 6.393730291165411e-05 + ], + [ + "gu", + 4.735660331789404e-05 + ], + [ + "ka", + 4.6489964006468654e-05 + ], + [ + "kn", + 3.211794683011249e-05 + ], + [ + "lo", + 3.088561425101943e-05 + ], + [ + "as", + 2.7807591322925873e-05 + ], + [ + "kk", + 2.5295639716205187e-05 + ], + [ + "am", + 2.479039176250808e-05 + ], + [ + "so", + 1.860335578385275e-05 + ], + [ + "ln", + 1.4299822396424133e-05 + ], + [ + "tg", + 9.60720967668749e-07 + ], + [ + "tt", + 6.956781817279989e-07 + ], + [ + "lb", + 3.706700795191864e-07 + ], + [ + "ha", + 2.8613706604119216e-07 + ], + [ + "su", + 2.6732325864031736e-07 + ], + [ + "mg", + 1.1841115110655664e-07 + ], + [ + "tk", + 8.603510792681845e-08 + ], + [ + "ba", + 6.101110727740888e-08 + ], + [ + "uz", + 1.4534106362873445e-08 + ] + ], + "transcription_options": { + "beam_size": 5, + "best_of": 5, + "patience": 1, + "length_penalty": 1, + "repetition_penalty": 1, + "no_repeat_ngram_size": 0, + "log_prob_threshold": -1.0, + "no_speech_threshold": 0.6, + "compression_ratio_threshold": 2.4, + "condition_on_previous_text": true, + "prompt_reset_on_temperature": 0.5, + "temperatures": [ + 0.0, + 0.2, + 0.4, + 0.6, + 0.8, + 1.0 + ], + "initial_prompt": null, + "prefix": null, + "suppress_blank": true, + "suppress_tokens": [ + 1, + 2, + 7, + 8, + 9, + 10, + 14, + 25, + 26, + 27, + 28, + 29, + 31, + 58, + 59, + 60, + 61, + 62, + 63, + 90, + 91, + 92, + 93, + 359, + 503, + 522, + 542, + 873, + 893, + 902, + 918, + 922, + 931, + 1350, + 1853, + 1982, + 2460, + 2627, + 3246, + 3253, + 3268, + 3536, + 3846, + 3961, + 4183, + 4667, + 6585, + 6647, + 7273, + 9061, + 9383, + 10428, + 10929, + 11938, + 12033, + 12331, + 12562, + 13793, + 14157, + 14635, + 15265, + 15618, + 16553, + 16604, + 18362, + 18956, + 20075, + 21675, + 22520, + 26130, + 26161, + 26435, + 28279, + 29464, + 31650, + 32302, + 32470, + 36865, + 42863, + 47425, + 49870, + 50254, + 50258, + 50358, + 50359, + 50360, + 50361, + 50362 + ], + "without_timestamps": false, + "max_initial_timestamp": 1.0, + "word_timestamps": false, + "prepend_punctuations": "\"'“¿([{-", + "append_punctuations": "\"'.。,,!!??::”)]}、", + "multilingual": false, + "max_new_tokens": null, + "clip_timestamps": [ + 0.0 + ], + "hallucination_silence_threshold": null, + "hotwords": null + }, + "vad_options": { + "threshold": 0.5, + "neg_threshold": null, + "min_speech_duration_ms": 0, + "max_speech_duration_s": { + "nonFiniteFloat": "Infinity" + }, + "min_silence_duration_ms": 2000, + "speech_pad_ms": 400 + } + } + }, + { + "environmentId": "theater", + "file": "public/ambience/theater.wav", + "sha256": "2d6a444fb7874cdf6b2d8a741a69175299b112eb66834912c025437d8277d635", + "bytes": 576044, + "durationSeconds": 12.0, + "selectedSegmentStartSeconds": 45, + "sourceSha256": "05c3ece7c088f34700b7610f791c0ad848a24c77be2c32fd1503a78356739a43", + "language": "en", + "languageProbability": 0.3020564913749695, + "segments": [], + "text": "", + "info": { + "language": "en", + "language_probability": 0.3020564913749695, + "duration": 12.0, + "duration_after_vad": 0.0, + "all_language_probs": [ + [ + "en", + 0.3020564913749695 + ], + [ + "cy", + 0.21030105650424957 + ], + [ + "nn", + 0.14189758896827698 + ], + [ + "zh", + 0.04061942175030708 + ], + [ + "ja", + 0.03452612832188606 + ], + [ + "ru", + 0.03396379575133324 + ], + [ + "la", + 0.030456941574811935 + ], + [ + "pl", + 0.02258244901895523 + ], + [ + "es", + 0.021157776936888695 + ], + [ + "pt", + 0.017485281452536583 + ], + [ + "fr", + 0.015300172381103039 + ], + [ + "ko", + 0.01108497753739357 + ], + [ + "it", + 0.010035485960543156 + ], + [ + "de", + 0.007656001951545477 + ], + [ + "ar", + 0.006853005383163691 + ], + [ + "nl", + 0.006296808365732431 + ], + [ + "tr", + 0.005499983672052622 + ], + [ + "haw", + 0.005389326252043247 + ], + [ + "sv", + 0.004781618714332581 + ], + [ + "th", + 0.004685405641794205 + ], + [ + "el", + 0.004048524424433708 + ], + [ + "hi", + 0.0036309813149273396 + ], + [ + "fi", + 0.0033149493392556906 + ], + [ + "id", + 0.003307837527245283 + ], + [ + "ms", + 0.0032469655852764845 + ], + [ + "jw", + 0.0031340355053544044 + ], + [ + "ro", + 0.0029805265367031097 + ], + [ + "br", + 0.0029171525966376066 + ], + [ + "mi", + 0.0028367217164486647 + ], + [ + "vi", + 0.0028196300845593214 + ], + [ + "gl", + 0.0025912728160619736 + ], + [ + "km", + 0.002590385964140296 + ], + [ + "sn", + 0.0024162698537111282 + ], + [ + "hu", + 0.002406821819022298 + ], + [ + "uk", + 0.0018103669863194227 + ], + [ + "cs", + 0.0016262015560641885 + ], + [ + "yo", + 0.001625207718461752 + ], + [ + "bo", + 0.0015162129420787096 + ], + [ + "sa", + 0.00130862754303962 + ], + [ + "he", + 0.0011921327095478773 + ], + [ + "si", + 0.0011325259692966938 + ], + [ + "ml", + 0.0010853250278159976 + ], + [ + "bn", + 0.0010256647365167737 + ], + [ + "ta", + 0.0009075920679606497 + ], + [ + "sw", + 0.000845721981022507 + ], + [ + "da", + 0.0008275281288661063 + ], + [ + "fa", + 0.0007775731501169503 + ], + [ + "te", + 0.0007719157729297876 + ], + [ + "ca", + 0.0007328137289732695 + ], + [ + "ur", + 0.0007311314693652093 + ], + [ + "bg", + 0.000695197784807533 + ], + [ + "eu", + 0.0005441734101623297 + ], + [ + "hr", + 0.0004312059027142823 + ], + [ + "sl", + 0.0004269620985724032 + ], + [ + "fo", + 0.00038641990977339447 + ], + [ + "af", + 0.000331822142470628 + ], + [ + "no", + 0.0003316291549708694 + ], + [ + "my", + 0.00031328442855738103 + ], + [ + "tl", + 0.00027318537468090653 + ], + [ + "bs", + 0.0002692292327992618 + ], + [ + "yi", + 0.00024950431543402374 + ], + [ + "mn", + 0.00024202950589824468 + ], + [ + "az", + 0.00021917068806942552 + ], + [ + "sk", + 0.00020947805023752153 + ], + [ + "ne", + 0.00020235382544342428 + ], + [ + "sr", + 0.0001879734336398542 + ], + [ + "ht", + 0.0001864101504907012 + ], + [ + "oc", + 0.0001844368816819042 + ], + [ + "be", + 0.0001775887212716043 + ], + [ + "lt", + 0.00013429981481749564 + ], + [ + "sd", + 0.00012911477824673057 + ], + [ + "is", + 0.00010892335558310151 + ], + [ + "pa", + 9.756845247466117e-05 + ], + [ + "sq", + 9.457524720346555e-05 + ], + [ + "mk", + 9.2326634330675e-05 + ], + [ + "mr", + 7.776313577778637e-05 + ], + [ + "ps", + 7.548009307356551e-05 + ], + [ + "hy", + 7.365928468061611e-05 + ], + [ + "lv", + 6.607783143408597e-05 + ], + [ + "mt", + 6.539625610457733e-05 + ], + [ + "et", + 6.393730291165411e-05 + ], + [ + "gu", + 4.735660331789404e-05 + ], + [ + "ka", + 4.6489964006468654e-05 + ], + [ + "kn", + 3.211794683011249e-05 + ], + [ + "lo", + 3.088561425101943e-05 + ], + [ + "as", + 2.7807591322925873e-05 + ], + [ + "kk", + 2.5295639716205187e-05 + ], + [ + "am", + 2.479039176250808e-05 + ], + [ + "so", + 1.860335578385275e-05 + ], + [ + "ln", + 1.4299822396424133e-05 + ], + [ + "tg", + 9.60720967668749e-07 + ], + [ + "tt", + 6.956781817279989e-07 + ], + [ + "lb", + 3.706700795191864e-07 + ], + [ + "ha", + 2.8613706604119216e-07 + ], + [ + "su", + 2.6732325864031736e-07 + ], + [ + "mg", + 1.1841115110655664e-07 + ], + [ + "tk", + 8.603510792681845e-08 + ], + [ + "ba", + 6.101110727740888e-08 + ], + [ + "uz", + 1.4534106362873445e-08 + ] + ], + "transcription_options": { + "beam_size": 5, + "best_of": 5, + "patience": 1, + "length_penalty": 1, + "repetition_penalty": 1, + "no_repeat_ngram_size": 0, + "log_prob_threshold": -1.0, + "no_speech_threshold": 0.6, + "compression_ratio_threshold": 2.4, + "condition_on_previous_text": true, + "prompt_reset_on_temperature": 0.5, + "temperatures": [ + 0.0, + 0.2, + 0.4, + 0.6, + 0.8, + 1.0 + ], + "initial_prompt": null, + "prefix": null, + "suppress_blank": true, + "suppress_tokens": [ + 1, + 2, + 7, + 8, + 9, + 10, + 14, + 25, + 26, + 27, + 28, + 29, + 31, + 58, + 59, + 60, + 61, + 62, + 63, + 90, + 91, + 92, + 93, + 359, + 503, + 522, + 542, + 873, + 893, + 902, + 918, + 922, + 931, + 1350, + 1853, + 1982, + 2460, + 2627, + 3246, + 3253, + 3268, + 3536, + 3846, + 3961, + 4183, + 4667, + 6585, + 6647, + 7273, + 9061, + 9383, + 10428, + 10929, + 11938, + 12033, + 12331, + 12562, + 13793, + 14157, + 14635, + 15265, + 15618, + 16553, + 16604, + 18362, + 18956, + 20075, + 21675, + 22520, + 26130, + 26161, + 26435, + 28279, + 29464, + 31650, + 32302, + 32470, + 36865, + 42863, + 47425, + 49870, + 50254, + 50258, + 50358, + 50359, + 50360, + 50361, + 50362 + ], + "without_timestamps": false, + "max_initial_timestamp": 1.0, + "word_timestamps": false, + "prepend_punctuations": "\"'“¿([{-", + "append_punctuations": "\"'.。,,!!??::”)]}、", + "multilingual": false, + "max_new_tokens": null, + "clip_timestamps": [ + 0.0 + ], + "hallucination_silence_threshold": null, + "hotwords": null + }, + "vad_options": { + "threshold": 0.5, + "neg_threshold": null, + "min_speech_duration_ms": 0, + "max_speech_duration_s": { + "nonFiniteFloat": "Infinity" + }, + "min_silence_duration_ms": 2000, + "speech_pad_ms": 400 + } + } + }, + { + "environmentId": "department", + "file": "public/ambience/department.wav", + "sha256": "aa43f3d1d3e7c2b1f8ace24ecbda45d0ea3a031db941c39506dc6c1665b8efa7", + "bytes": 576044, + "durationSeconds": 12.0, + "selectedSegmentStartSeconds": 90, + "sourceSha256": "261fda28722fba623483a90b32e7a2ec388c59887f56a5247156b53f1ffb6ccd", + "language": "en", + "languageProbability": 0.3020564913749695, + "segments": [], + "text": "", + "info": { + "language": "en", + "language_probability": 0.3020564913749695, + "duration": 12.0, + "duration_after_vad": 0.0, + "all_language_probs": [ + [ + "en", + 0.3020564913749695 + ], + [ + "cy", + 0.21030105650424957 + ], + [ + "nn", + 0.14189758896827698 + ], + [ + "zh", + 0.04061942175030708 + ], + [ + "ja", + 0.03452612832188606 + ], + [ + "ru", + 0.03396379575133324 + ], + [ + "la", + 0.030456941574811935 + ], + [ + "pl", + 0.02258244901895523 + ], + [ + "es", + 0.021157776936888695 + ], + [ + "pt", + 0.017485281452536583 + ], + [ + "fr", + 0.015300172381103039 + ], + [ + "ko", + 0.01108497753739357 + ], + [ + "it", + 0.010035485960543156 + ], + [ + "de", + 0.007656001951545477 + ], + [ + "ar", + 0.006853005383163691 + ], + [ + "nl", + 0.006296808365732431 + ], + [ + "tr", + 0.005499983672052622 + ], + [ + "haw", + 0.005389326252043247 + ], + [ + "sv", + 0.004781618714332581 + ], + [ + "th", + 0.004685405641794205 + ], + [ + "el", + 0.004048524424433708 + ], + [ + "hi", + 0.0036309813149273396 + ], + [ + "fi", + 0.0033149493392556906 + ], + [ + "id", + 0.003307837527245283 + ], + [ + "ms", + 0.0032469655852764845 + ], + [ + "jw", + 0.0031340355053544044 + ], + [ + "ro", + 0.0029805265367031097 + ], + [ + "br", + 0.0029171525966376066 + ], + [ + "mi", + 0.0028367217164486647 + ], + [ + "vi", + 0.0028196300845593214 + ], + [ + "gl", + 0.0025912728160619736 + ], + [ + "km", + 0.002590385964140296 + ], + [ + "sn", + 0.0024162698537111282 + ], + [ + "hu", + 0.002406821819022298 + ], + [ + "uk", + 0.0018103669863194227 + ], + [ + "cs", + 0.0016262015560641885 + ], + [ + "yo", + 0.001625207718461752 + ], + [ + "bo", + 0.0015162129420787096 + ], + [ + "sa", + 0.00130862754303962 + ], + [ + "he", + 0.0011921327095478773 + ], + [ + "si", + 0.0011325259692966938 + ], + [ + "ml", + 0.0010853250278159976 + ], + [ + "bn", + 0.0010256647365167737 + ], + [ + "ta", + 0.0009075920679606497 + ], + [ + "sw", + 0.000845721981022507 + ], + [ + "da", + 0.0008275281288661063 + ], + [ + "fa", + 0.0007775731501169503 + ], + [ + "te", + 0.0007719157729297876 + ], + [ + "ca", + 0.0007328137289732695 + ], + [ + "ur", + 0.0007311314693652093 + ], + [ + "bg", + 0.000695197784807533 + ], + [ + "eu", + 0.0005441734101623297 + ], + [ + "hr", + 0.0004312059027142823 + ], + [ + "sl", + 0.0004269620985724032 + ], + [ + "fo", + 0.00038641990977339447 + ], + [ + "af", + 0.000331822142470628 + ], + [ + "no", + 0.0003316291549708694 + ], + [ + "my", + 0.00031328442855738103 + ], + [ + "tl", + 0.00027318537468090653 + ], + [ + "bs", + 0.0002692292327992618 + ], + [ + "yi", + 0.00024950431543402374 + ], + [ + "mn", + 0.00024202950589824468 + ], + [ + "az", + 0.00021917068806942552 + ], + [ + "sk", + 0.00020947805023752153 + ], + [ + "ne", + 0.00020235382544342428 + ], + [ + "sr", + 0.0001879734336398542 + ], + [ + "ht", + 0.0001864101504907012 + ], + [ + "oc", + 0.0001844368816819042 + ], + [ + "be", + 0.0001775887212716043 + ], + [ + "lt", + 0.00013429981481749564 + ], + [ + "sd", + 0.00012911477824673057 + ], + [ + "is", + 0.00010892335558310151 + ], + [ + "pa", + 9.756845247466117e-05 + ], + [ + "sq", + 9.457524720346555e-05 + ], + [ + "mk", + 9.2326634330675e-05 + ], + [ + "mr", + 7.776313577778637e-05 + ], + [ + "ps", + 7.548009307356551e-05 + ], + [ + "hy", + 7.365928468061611e-05 + ], + [ + "lv", + 6.607783143408597e-05 + ], + [ + "mt", + 6.539625610457733e-05 + ], + [ + "et", + 6.393730291165411e-05 + ], + [ + "gu", + 4.735660331789404e-05 + ], + [ + "ka", + 4.6489964006468654e-05 + ], + [ + "kn", + 3.211794683011249e-05 + ], + [ + "lo", + 3.088561425101943e-05 + ], + [ + "as", + 2.7807591322925873e-05 + ], + [ + "kk", + 2.5295639716205187e-05 + ], + [ + "am", + 2.479039176250808e-05 + ], + [ + "so", + 1.860335578385275e-05 + ], + [ + "ln", + 1.4299822396424133e-05 + ], + [ + "tg", + 9.60720967668749e-07 + ], + [ + "tt", + 6.956781817279989e-07 + ], + [ + "lb", + 3.706700795191864e-07 + ], + [ + "ha", + 2.8613706604119216e-07 + ], + [ + "su", + 2.6732325864031736e-07 + ], + [ + "mg", + 1.1841115110655664e-07 + ], + [ + "tk", + 8.603510792681845e-08 + ], + [ + "ba", + 6.101110727740888e-08 + ], + [ + "uz", + 1.4534106362873445e-08 + ] + ], + "transcription_options": { + "beam_size": 5, + "best_of": 5, + "patience": 1, + "length_penalty": 1, + "repetition_penalty": 1, + "no_repeat_ngram_size": 0, + "log_prob_threshold": -1.0, + "no_speech_threshold": 0.6, + "compression_ratio_threshold": 2.4, + "condition_on_previous_text": true, + "prompt_reset_on_temperature": 0.5, + "temperatures": [ + 0.0, + 0.2, + 0.4, + 0.6, + 0.8, + 1.0 + ], + "initial_prompt": null, + "prefix": null, + "suppress_blank": true, + "suppress_tokens": [ + 1, + 2, + 7, + 8, + 9, + 10, + 14, + 25, + 26, + 27, + 28, + 29, + 31, + 58, + 59, + 60, + 61, + 62, + 63, + 90, + 91, + 92, + 93, + 359, + 503, + 522, + 542, + 873, + 893, + 902, + 918, + 922, + 931, + 1350, + 1853, + 1982, + 2460, + 2627, + 3246, + 3253, + 3268, + 3536, + 3846, + 3961, + 4183, + 4667, + 6585, + 6647, + 7273, + 9061, + 9383, + 10428, + 10929, + 11938, + 12033, + 12331, + 12562, + 13793, + 14157, + 14635, + 15265, + 15618, + 16553, + 16604, + 18362, + 18956, + 20075, + 21675, + 22520, + 26130, + 26161, + 26435, + 28279, + 29464, + 31650, + 32302, + 32470, + 36865, + 42863, + 47425, + 49870, + 50254, + 50258, + 50358, + 50359, + 50360, + 50361, + 50362 + ], + "without_timestamps": false, + "max_initial_timestamp": 1.0, + "word_timestamps": false, + "prepend_punctuations": "\"'“¿([{-", + "append_punctuations": "\"'.。,,!!??::”)]}、", + "multilingual": false, + "max_new_tokens": null, + "clip_timestamps": [ + 0.0 + ], + "hallucination_silence_threshold": null, + "hotwords": null + }, + "vad_options": { + "threshold": 0.5, + "neg_threshold": null, + "min_speech_duration_ms": 0, + "max_speech_duration_s": { + "nonFiniteFloat": "Infinity" + }, + "min_silence_duration_ms": 2000, + "speech_pad_ms": 400 + } + } + }, + { + "environmentId": "market", + "file": "public/ambience/market.wav", + "sha256": "7a7a980845a4aade2a7e8a108eae746220a4688e92792ee93d3deb76b2a762f6", + "bytes": 576044, + "durationSeconds": 12.0, + "selectedSegmentStartSeconds": 60, + "sourceSha256": "fc0075dce8ad05b56460c9f18754c27b2021f21f1c780a595ccda648d33c941d", + "language": "en", + "languageProbability": 0.1462402045726776, + "segments": [ + { + "id": 1, + "seek": 0, + "start": 0.43, + "end": 2.43, + "text": " I'm going to take a picture of you.", + "tokens": [ + 50364, + 286, + 478, + 516, + 281, + 747, + 257, + 3036, + 295, + 291, + 13, + 50464 + ], + "avg_logprob": -0.7898735548998859, + "compression_ratio": 2.276595744680851, + "no_speech_prob": 0.4569862484931946, + "words": null, + "temperature": 0.2 + }, + { + "id": 2, + "seek": 0, + "start": 2.43, + "end": 4.43, + "text": " I'm going to take a picture of you.", + "tokens": [ + 50464, + 286, + 478, + 516, + 281, + 747, + 257, + 3036, + 295, + 291, + 13, + 50564 + ], + "avg_logprob": -0.7898735548998859, + "compression_ratio": 2.276595744680851, + "no_speech_prob": 0.4569862484931946, + "words": null, + "temperature": 0.2 + }, + { + "id": 3, + "seek": 0, + "start": 4.43, + "end": 6.43, + "text": " I'm going to take a picture of you.", + "tokens": [ + 50564, + 286, + 478, + 516, + 281, + 747, + 257, + 3036, + 295, + 291, + 13, + 50664 + ], + "avg_logprob": -0.7898735548998859, + "compression_ratio": 2.276595744680851, + "no_speech_prob": 0.4569862484931946, + "words": null, + "temperature": 0.2 + } + ], + "text": " I'm going to take a picture of you. I'm going to take a picture of you. I'm going to take a picture of you.", + "info": { + "language": "en", + "language_probability": 0.1462402045726776, + "duration": 12.0, + "duration_after_vad": 7.632, + "all_language_probs": [ + [ + "en", + 0.1462402045726776 + ], + [ + "ko", + 0.09125689417123795 + ], + [ + "jw", + 0.06349238008260727 + ], + [ + "zh", + 0.06216014176607132 + ], + [ + "nn", + 0.05377691239118576 + ], + [ + "sv", + 0.04750790819525719 + ], + [ + "ja", + 0.04320787265896797 + ], + [ + "it", + 0.040818795561790466 + ], + [ + "pt", + 0.03467221185564995 + ], + [ + "pl", + 0.032439686357975006 + ], + [ + "cy", + 0.029088648036122322 + ], + [ + "ru", + 0.026260465383529663 + ], + [ + "fr", + 0.026000872254371643 + ], + [ + "fi", + 0.0228334441781044 + ], + [ + "ms", + 0.01782340183854103 + ], + [ + "nl", + 0.017794562503695488 + ], + [ + "la", + 0.01680913195014 + ], + [ + "id", + 0.014569583348929882 + ], + [ + "vi", + 0.013311735354363918 + ], + [ + "de", + 0.011117185465991497 + ], + [ + "es", + 0.010801391676068306 + ], + [ + "th", + 0.010544356890022755 + ], + [ + "tr", + 0.01040473859757185 + ], + [ + "hi", + 0.010344947688281536 + ], + [ + "ta", + 0.009589308872818947 + ], + [ + "ar", + 0.009228651411831379 + ], + [ + "haw", + 0.008996508084237576 + ], + [ + "uk", + 0.008151584304869175 + ], + [ + "hu", + 0.007725843228399754 + ], + [ + "ur", + 0.007315630093216896 + ], + [ + "ro", + 0.006146734114736319 + ], + [ + "el", + 0.005892232060432434 + ], + [ + "cs", + 0.00584299536421895 + ], + [ + "tl", + 0.005496340803802013 + ], + [ + "km", + 0.00545788649469614 + ], + [ + "no", + 0.0043253530748188496 + ], + [ + "mi", + 0.003732462180778384 + ], + [ + "br", + 0.003285591257736087 + ], + [ + "gl", + 0.0032584713771939278 + ], + [ + "ml", + 0.002991339424625039 + ], + [ + "sl", + 0.0029724398627877235 + ], + [ + "te", + 0.00288944598287344 + ], + [ + "bs", + 0.0027429715264588594 + ], + [ + "hr", + 0.002582759130746126 + ], + [ + "bg", + 0.0025825914926826954 + ], + [ + "da", + 0.0025355543475598097 + ], + [ + "sa", + 0.0023232034873217344 + ], + [ + "ca", + 0.0022765377070754766 + ], + [ + "fa", + 0.0022252844646573067 + ], + [ + "fo", + 0.0020739855244755745 + ], + [ + "sn", + 0.0016923487419262528 + ], + [ + "et", + 0.0016508548287674785 + ], + [ + "mn", + 0.0016261986456811428 + ], + [ + "sd", + 0.0014909537276253104 + ], + [ + "he", + 0.0014722042251378298 + ], + [ + "bn", + 0.0012728951405733824 + ], + [ + "bo", + 0.0011926309671252966 + ], + [ + "sr", + 0.0010747471824288368 + ], + [ + "ne", + 0.001048243953846395 + ], + [ + "eu", + 0.0008691594703122973 + ], + [ + "my", + 0.0008484855061396956 + ], + [ + "ht", + 0.0008290149853564799 + ], + [ + "yo", + 0.0007669291808269918 + ], + [ + "lv", + 0.0006492154789157212 + ], + [ + "lt", + 0.0006309697637334466 + ], + [ + "oc", + 0.0006017489358782768 + ], + [ + "is", + 0.0005513105425052345 + ], + [ + "si", + 0.0005408597062341869 + ], + [ + "pa", + 0.0005118442350067198 + ], + [ + "sk", + 0.00047659469419158995 + ], + [ + "af", + 0.0004641121195163578 + ], + [ + "sw", + 0.00044007744872942567 + ], + [ + "az", + 0.0004215185181237757 + ], + [ + "be", + 0.0003851516230497509 + ], + [ + "sq", + 0.0003739707462955266 + ], + [ + "yi", + 0.00033855027868412435 + ], + [ + "gu", + 0.00026842401712201536 + ], + [ + "mr", + 0.0002241125621367246 + ], + [ + "mt", + 0.00019877230806741863 + ], + [ + "mk", + 0.0001744384499033913 + ], + [ + "ka", + 0.00015660894860047847 + ], + [ + "kn", + 0.0001449166884412989 + ], + [ + "hy", + 0.00013766401389148086 + ], + [ + "kk", + 0.0001313115790253505 + ], + [ + "ps", + 0.00011002948303939775 + ], + [ + "as", + 9.962244075722992e-05 + ], + [ + "ln", + 7.94121078797616e-05 + ], + [ + "lo", + 6.809568003518507e-05 + ], + [ + "am", + 3.6004272260470316e-05 + ], + [ + "so", + 2.159732139261905e-05 + ], + [ + "tg", + 2.8902627491333988e-06 + ], + [ + "tt", + 1.9275457816547714e-06 + ], + [ + "su", + 1.8252542304253438e-06 + ], + [ + "lb", + 8.99388169273152e-07 + ], + [ + "ha", + 5.512860070666648e-07 + ], + [ + "mg", + 4.503792752075242e-07 + ], + [ + "tk", + 3.622048154738877e-07 + ], + [ + "ba", + 3.3116981512648636e-07 + ], + [ + "uz", + 3.843206641818142e-08 + ] + ], + "transcription_options": { + "beam_size": 5, + "best_of": 5, + "patience": 1, + "length_penalty": 1, + "repetition_penalty": 1, + "no_repeat_ngram_size": 0, + "log_prob_threshold": -1.0, + "no_speech_threshold": 0.6, + "compression_ratio_threshold": 2.4, + "condition_on_previous_text": true, + "prompt_reset_on_temperature": 0.5, + "temperatures": [ + 0.0, + 0.2, + 0.4, + 0.6, + 0.8, + 1.0 + ], + "initial_prompt": null, + "prefix": null, + "suppress_blank": true, + "suppress_tokens": [ + 1, + 2, + 7, + 8, + 9, + 10, + 14, + 25, + 26, + 27, + 28, + 29, + 31, + 58, + 59, + 60, + 61, + 62, + 63, + 90, + 91, + 92, + 93, + 359, + 503, + 522, + 542, + 873, + 893, + 902, + 918, + 922, + 931, + 1350, + 1853, + 1982, + 2460, + 2627, + 3246, + 3253, + 3268, + 3536, + 3846, + 3961, + 4183, + 4667, + 6585, + 6647, + 7273, + 9061, + 9383, + 10428, + 10929, + 11938, + 12033, + 12331, + 12562, + 13793, + 14157, + 14635, + 15265, + 15618, + 16553, + 16604, + 18362, + 18956, + 20075, + 21675, + 22520, + 26130, + 26161, + 26435, + 28279, + 29464, + 31650, + 32302, + 32470, + 36865, + 42863, + 47425, + 49870, + 50254, + 50258, + 50358, + 50359, + 50360, + 50361, + 50362 + ], + "without_timestamps": false, + "max_initial_timestamp": 1.0, + "word_timestamps": false, + "prepend_punctuations": "\"'“¿([{-", + "append_punctuations": "\"'.。,,!!??::”)]}、", + "multilingual": false, + "max_new_tokens": null, + "clip_timestamps": [ + 0.0 + ], + "hallucination_silence_threshold": null, + "hotwords": null + }, + "vad_options": { + "threshold": 0.5, + "neg_threshold": null, + "min_speech_duration_ms": 0, + "max_speech_duration_s": { + "nonFiniteFloat": "Infinity" + }, + "min_silence_duration_ms": 2000, + "speech_pad_ms": 400 + } + } + }, + { + "environmentId": "subway", + "file": "public/ambience/subway.wav", + "sha256": "9faf70b68617d267b367a0f3692ed90015458543ab4b0844f6c704e6a724728f", + "bytes": 576044, + "durationSeconds": 12.0, + "selectedSegmentStartSeconds": 65, + "sourceSha256": "41fcf064cde53cef1528fe98721347851e60c070d8ff9f213f354025cf272d4c", + "language": "en", + "languageProbability": 0.3020564913749695, + "segments": [], + "text": "", + "info": { + "language": "en", + "language_probability": 0.3020564913749695, + "duration": 12.0, + "duration_after_vad": 0.0, + "all_language_probs": [ + [ + "en", + 0.3020564913749695 + ], + [ + "cy", + 0.21030105650424957 + ], + [ + "nn", + 0.14189758896827698 + ], + [ + "zh", + 0.04061942175030708 + ], + [ + "ja", + 0.03452612832188606 + ], + [ + "ru", + 0.03396379575133324 + ], + [ + "la", + 0.030456941574811935 + ], + [ + "pl", + 0.02258244901895523 + ], + [ + "es", + 0.021157776936888695 + ], + [ + "pt", + 0.017485281452536583 + ], + [ + "fr", + 0.015300172381103039 + ], + [ + "ko", + 0.01108497753739357 + ], + [ + "it", + 0.010035485960543156 + ], + [ + "de", + 0.007656001951545477 + ], + [ + "ar", + 0.006853005383163691 + ], + [ + "nl", + 0.006296808365732431 + ], + [ + "tr", + 0.005499983672052622 + ], + [ + "haw", + 0.005389326252043247 + ], + [ + "sv", + 0.004781618714332581 + ], + [ + "th", + 0.004685405641794205 + ], + [ + "el", + 0.004048524424433708 + ], + [ + "hi", + 0.0036309813149273396 + ], + [ + "fi", + 0.0033149493392556906 + ], + [ + "id", + 0.003307837527245283 + ], + [ + "ms", + 0.0032469655852764845 + ], + [ + "jw", + 0.0031340355053544044 + ], + [ + "ro", + 0.0029805265367031097 + ], + [ + "br", + 0.0029171525966376066 + ], + [ + "mi", + 0.0028367217164486647 + ], + [ + "vi", + 0.0028196300845593214 + ], + [ + "gl", + 0.0025912728160619736 + ], + [ + "km", + 0.002590385964140296 + ], + [ + "sn", + 0.0024162698537111282 + ], + [ + "hu", + 0.002406821819022298 + ], + [ + "uk", + 0.0018103669863194227 + ], + [ + "cs", + 0.0016262015560641885 + ], + [ + "yo", + 0.001625207718461752 + ], + [ + "bo", + 0.0015162129420787096 + ], + [ + "sa", + 0.00130862754303962 + ], + [ + "he", + 0.0011921327095478773 + ], + [ + "si", + 0.0011325259692966938 + ], + [ + "ml", + 0.0010853250278159976 + ], + [ + "bn", + 0.0010256647365167737 + ], + [ + "ta", + 0.0009075920679606497 + ], + [ + "sw", + 0.000845721981022507 + ], + [ + "da", + 0.0008275281288661063 + ], + [ + "fa", + 0.0007775731501169503 + ], + [ + "te", + 0.0007719157729297876 + ], + [ + "ca", + 0.0007328137289732695 + ], + [ + "ur", + 0.0007311314693652093 + ], + [ + "bg", + 0.000695197784807533 + ], + [ + "eu", + 0.0005441734101623297 + ], + [ + "hr", + 0.0004312059027142823 + ], + [ + "sl", + 0.0004269620985724032 + ], + [ + "fo", + 0.00038641990977339447 + ], + [ + "af", + 0.000331822142470628 + ], + [ + "no", + 0.0003316291549708694 + ], + [ + "my", + 0.00031328442855738103 + ], + [ + "tl", + 0.00027318537468090653 + ], + [ + "bs", + 0.0002692292327992618 + ], + [ + "yi", + 0.00024950431543402374 + ], + [ + "mn", + 0.00024202950589824468 + ], + [ + "az", + 0.00021917068806942552 + ], + [ + "sk", + 0.00020947805023752153 + ], + [ + "ne", + 0.00020235382544342428 + ], + [ + "sr", + 0.0001879734336398542 + ], + [ + "ht", + 0.0001864101504907012 + ], + [ + "oc", + 0.0001844368816819042 + ], + [ + "be", + 0.0001775887212716043 + ], + [ + "lt", + 0.00013429981481749564 + ], + [ + "sd", + 0.00012911477824673057 + ], + [ + "is", + 0.00010892335558310151 + ], + [ + "pa", + 9.756845247466117e-05 + ], + [ + "sq", + 9.457524720346555e-05 + ], + [ + "mk", + 9.2326634330675e-05 + ], + [ + "mr", + 7.776313577778637e-05 + ], + [ + "ps", + 7.548009307356551e-05 + ], + [ + "hy", + 7.365928468061611e-05 + ], + [ + "lv", + 6.607783143408597e-05 + ], + [ + "mt", + 6.539625610457733e-05 + ], + [ + "et", + 6.393730291165411e-05 + ], + [ + "gu", + 4.735660331789404e-05 + ], + [ + "ka", + 4.6489964006468654e-05 + ], + [ + "kn", + 3.211794683011249e-05 + ], + [ + "lo", + 3.088561425101943e-05 + ], + [ + "as", + 2.7807591322925873e-05 + ], + [ + "kk", + 2.5295639716205187e-05 + ], + [ + "am", + 2.479039176250808e-05 + ], + [ + "so", + 1.860335578385275e-05 + ], + [ + "ln", + 1.4299822396424133e-05 + ], + [ + "tg", + 9.60720967668749e-07 + ], + [ + "tt", + 6.956781817279989e-07 + ], + [ + "lb", + 3.706700795191864e-07 + ], + [ + "ha", + 2.8613706604119216e-07 + ], + [ + "su", + 2.6732325864031736e-07 + ], + [ + "mg", + 1.1841115110655664e-07 + ], + [ + "tk", + 8.603510792681845e-08 + ], + [ + "ba", + 6.101110727740888e-08 + ], + [ + "uz", + 1.4534106362873445e-08 + ] + ], + "transcription_options": { + "beam_size": 5, + "best_of": 5, + "patience": 1, + "length_penalty": 1, + "repetition_penalty": 1, + "no_repeat_ngram_size": 0, + "log_prob_threshold": -1.0, + "no_speech_threshold": 0.6, + "compression_ratio_threshold": 2.4, + "condition_on_previous_text": true, + "prompt_reset_on_temperature": 0.5, + "temperatures": [ + 0.0, + 0.2, + 0.4, + 0.6, + 0.8, + 1.0 + ], + "initial_prompt": null, + "prefix": null, + "suppress_blank": true, + "suppress_tokens": [ + 1, + 2, + 7, + 8, + 9, + 10, + 14, + 25, + 26, + 27, + 28, + 29, + 31, + 58, + 59, + 60, + 61, + 62, + 63, + 90, + 91, + 92, + 93, + 359, + 503, + 522, + 542, + 873, + 893, + 902, + 918, + 922, + 931, + 1350, + 1853, + 1982, + 2460, + 2627, + 3246, + 3253, + 3268, + 3536, + 3846, + 3961, + 4183, + 4667, + 6585, + 6647, + 7273, + 9061, + 9383, + 10428, + 10929, + 11938, + 12033, + 12331, + 12562, + 13793, + 14157, + 14635, + 15265, + 15618, + 16553, + 16604, + 18362, + 18956, + 20075, + 21675, + 22520, + 26130, + 26161, + 26435, + 28279, + 29464, + 31650, + 32302, + 32470, + 36865, + 42863, + 47425, + 49870, + 50254, + 50258, + 50358, + 50359, + 50360, + 50361, + 50362 + ], + "without_timestamps": false, + "max_initial_timestamp": 1.0, + "word_timestamps": false, + "prepend_punctuations": "\"'“¿([{-", + "append_punctuations": "\"'.。,,!!??::”)]}、", + "multilingual": false, + "max_new_tokens": null, + "clip_timestamps": [ + 0.0 + ], + "hallucination_silence_threshold": null, + "hotwords": null + }, + "vad_options": { + "threshold": 0.5, + "neg_threshold": null, + "min_speech_duration_ms": 0, + "max_speech_duration_s": { + "nonFiniteFloat": "Infinity" + }, + "min_silence_duration_ms": 2000, + "speech_pad_ms": 400 + } + } + }, + { + "environmentId": "cafe", + "file": "public/ambience/cafe.wav", + "sha256": "802a956e91b85a2fdd0e1f161d75bfada7a53499bcb57ba7f578411480ded216", + "bytes": 576044, + "durationSeconds": 12.0, + "selectedSegmentStartSeconds": 180, + "sourceSha256": "6360791fdcee1f64638f0fc9abd6d2c7a1aa75fd3d2b80033170a02d025099dc", + "language": "en", + "languageProbability": 0.23059327900409698, + "segments": [ + { + "id": 1, + "seek": 0, + "start": 3.02, + "end": 4.02, + "text": " Thank you.", + "tokens": [ + 50364, + 1044, + 291, + 13, + 50414 + ], + "avg_logprob": -0.8587487538655599, + "compression_ratio": 0.5555555555555556, + "no_speech_prob": 0.7639055252075195, + "words": null, + "temperature": 0.0 + } + ], + "text": " Thank you.", + "info": { + "language": "en", + "language_probability": 0.23059327900409698, + "duration": 12.0, + "duration_after_vad": 0.832, + "all_language_probs": [ + [ + "en", + 0.23059327900409698 + ], + [ + "ko", + 0.10768233984708786 + ], + [ + "cy", + 0.09878340363502502 + ], + [ + "nn", + 0.06013887748122215 + ], + [ + "ru", + 0.051455751061439514 + ], + [ + "nl", + 0.04398445039987564 + ], + [ + "fr", + 0.043724894523620605 + ], + [ + "pt", + 0.029648728668689728 + ], + [ + "zh", + 0.029484961181879044 + ], + [ + "ja", + 0.0282453466206789 + ], + [ + "de", + 0.028025701642036438 + ], + [ + "pl", + 0.022455355152487755 + ], + [ + "es", + 0.01809718646109104 + ], + [ + "it", + 0.016139425337314606 + ], + [ + "th", + 0.0141221284866333 + ], + [ + "la", + 0.013799252919852734 + ], + [ + "jw", + 0.012723322957754135 + ], + [ + "hi", + 0.012220309115946293 + ], + [ + "sv", + 0.009650525636970997 + ], + [ + "ar", + 0.009599416516721249 + ], + [ + "id", + 0.0091822175309062 + ], + [ + "vi", + 0.008841878734529018 + ], + [ + "tr", + 0.007997415959835052 + ], + [ + "haw", + 0.007822943851351738 + ], + [ + "mi", + 0.006917108781635761 + ], + [ + "el", + 0.005985396448522806 + ], + [ + "cs", + 0.005591819528490305 + ], + [ + "uk", + 0.005463769193738699 + ], + [ + "ro", + 0.004281565546989441 + ], + [ + "ms", + 0.004038570914417505 + ], + [ + "ta", + 0.003985685296356678 + ], + [ + "ml", + 0.0036976623814553022 + ], + [ + "km", + 0.0036670260597020388 + ], + [ + "gl", + 0.0027118027210235596 + ], + [ + "br", + 0.00260931346565485 + ], + [ + "ur", + 0.0025061522610485554 + ], + [ + "hu", + 0.0021765190176665783 + ], + [ + "bn", + 0.0021247868426144123 + ], + [ + "he", + 0.0021094519179314375 + ], + [ + "fi", + 0.0019039108883589506 + ], + [ + "sn", + 0.0017862337408587337 + ], + [ + "da", + 0.0015532971592620015 + ], + [ + "si", + 0.0015032633673399687 + ], + [ + "te", + 0.0015010385541245341 + ], + [ + "no", + 0.0014885991113260388 + ], + [ + "bg", + 0.001441853353753686 + ], + [ + "tl", + 0.0014305931981652975 + ], + [ + "ca", + 0.0010633146157488227 + ], + [ + "hr", + 0.0010228499304503202 + ], + [ + "mn", + 0.0010194123024120927 + ], + [ + "sa", + 0.0009165729279629886 + ], + [ + "bs", + 0.0008326646639034152 + ], + [ + "sl", + 0.0007572082686237991 + ], + [ + "fo", + 0.0007299946737475693 + ], + [ + "yo", + 0.0005525849992409348 + ], + [ + "ne", + 0.000504477764479816 + ], + [ + "bo", + 0.0004712988738901913 + ], + [ + "ht", + 0.00046634432510472834 + ], + [ + "fa", + 0.00046467265929095447 + ], + [ + "af", + 0.0004631467745639384 + ], + [ + "eu", + 0.00044833144056610763 + ], + [ + "sw", + 0.0003767851449083537 + ], + [ + "my", + 0.0003736487415153533 + ], + [ + "sr", + 0.0003633034648373723 + ], + [ + "sk", + 0.0003619193739723414 + ], + [ + "be", + 0.0003505735658109188 + ], + [ + "sd", + 0.00034350971691310406 + ], + [ + "yi", + 0.0003129581455141306 + ], + [ + "mr", + 0.0002829359145835042 + ], + [ + "is", + 0.00025066707166843116 + ], + [ + "oc", + 0.00024232974101323634 + ], + [ + "lt", + 0.00021299987565726042 + ], + [ + "az", + 0.0002011689357459545 + ], + [ + "et", + 0.00018031513900496066 + ], + [ + "hy", + 0.00014210246445145458 + ], + [ + "sq", + 0.0001402739726472646 + ], + [ + "ka", + 0.00013886448869016021 + ], + [ + "pa", + 0.00013789162039756775 + ], + [ + "mk", + 0.00013360097364056855 + ], + [ + "gu", + 0.00013133382890373468 + ], + [ + "kn", + 0.000113979636807926 + ], + [ + "mt", + 0.00010317371925339103 + ], + [ + "as", + 8.399326907237992e-05 + ], + [ + "kk", + 8.36012841318734e-05 + ], + [ + "ps", + 8.158440323313698e-05 + ], + [ + "lv", + 7.959690265124664e-05 + ], + [ + "lo", + 7.874640141380951e-05 + ], + [ + "ln", + 3.659053982119076e-05 + ], + [ + "am", + 3.550680048647337e-05 + ], + [ + "so", + 1.54619847307913e-05 + ], + [ + "tg", + 8.908430118026445e-07 + ], + [ + "tt", + 6.434192414417339e-07 + ], + [ + "lb", + 6.270254857554391e-07 + ], + [ + "su", + 4.3245799474789237e-07 + ], + [ + "ha", + 2.0690143287538376e-07 + ], + [ + "mg", + 1.6981812223093584e-07 + ], + [ + "tk", + 1.4274068860231637e-07 + ], + [ + "ba", + 1.0855172405399571e-07 + ], + [ + "uz", + 1.695198292850364e-08 + ] + ], + "transcription_options": { + "beam_size": 5, + "best_of": 5, + "patience": 1, + "length_penalty": 1, + "repetition_penalty": 1, + "no_repeat_ngram_size": 0, + "log_prob_threshold": -1.0, + "no_speech_threshold": 0.6, + "compression_ratio_threshold": 2.4, + "condition_on_previous_text": true, + "prompt_reset_on_temperature": 0.5, + "temperatures": [ + 0.0, + 0.2, + 0.4, + 0.6, + 0.8, + 1.0 + ], + "initial_prompt": null, + "prefix": null, + "suppress_blank": true, + "suppress_tokens": [ + 1, + 2, + 7, + 8, + 9, + 10, + 14, + 25, + 26, + 27, + 28, + 29, + 31, + 58, + 59, + 60, + 61, + 62, + 63, + 90, + 91, + 92, + 93, + 359, + 503, + 522, + 542, + 873, + 893, + 902, + 918, + 922, + 931, + 1350, + 1853, + 1982, + 2460, + 2627, + 3246, + 3253, + 3268, + 3536, + 3846, + 3961, + 4183, + 4667, + 6585, + 6647, + 7273, + 9061, + 9383, + 10428, + 10929, + 11938, + 12033, + 12331, + 12562, + 13793, + 14157, + 14635, + 15265, + 15618, + 16553, + 16604, + 18362, + 18956, + 20075, + 21675, + 22520, + 26130, + 26161, + 26435, + 28279, + 29464, + 31650, + 32302, + 32470, + 36865, + 42863, + 47425, + 49870, + 50254, + 50258, + 50358, + 50359, + 50360, + 50361, + 50362 + ], + "without_timestamps": false, + "max_initial_timestamp": 1.0, + "word_timestamps": false, + "prepend_punctuations": "\"'“¿([{-", + "append_punctuations": "\"'.。,,!!??::”)]}、", + "multilingual": false, + "max_new_tokens": null, + "clip_timestamps": [ + 0.0 + ], + "hallucination_silence_threshold": null, + "hotwords": null + }, + "vad_options": { + "threshold": 0.5, + "neg_threshold": null, + "min_speech_duration_ms": 0, + "max_speech_duration_s": { + "nonFiniteFloat": "Infinity" + }, + "min_silence_duration_ms": 2000, + "speech_pad_ms": 400 + } + } + }, + { + "environmentId": "rain", + "file": "public/ambience/rain.wav", + "sha256": "f4315084e820f742b0709de5bb0d1abd3d5af1730620e08c2948b70347356dd9", + "bytes": 576044, + "durationSeconds": 12.0, + "selectedSegmentStartSeconds": 180, + "sourceSha256": "ef0511593b1bb0ba47d5c5dafd83eb07ba854b5a65fd5d41b8c76a1b3ff2c22a", + "language": "en", + "languageProbability": 0.3020564913749695, + "segments": [], + "text": "", + "info": { + "language": "en", + "language_probability": 0.3020564913749695, + "duration": 12.0, + "duration_after_vad": 0.0, + "all_language_probs": [ + [ + "en", + 0.3020564913749695 + ], + [ + "cy", + 0.21030105650424957 + ], + [ + "nn", + 0.14189758896827698 + ], + [ + "zh", + 0.04061942175030708 + ], + [ + "ja", + 0.03452612832188606 + ], + [ + "ru", + 0.03396379575133324 + ], + [ + "la", + 0.030456941574811935 + ], + [ + "pl", + 0.02258244901895523 + ], + [ + "es", + 0.021157776936888695 + ], + [ + "pt", + 0.017485281452536583 + ], + [ + "fr", + 0.015300172381103039 + ], + [ + "ko", + 0.01108497753739357 + ], + [ + "it", + 0.010035485960543156 + ], + [ + "de", + 0.007656001951545477 + ], + [ + "ar", + 0.006853005383163691 + ], + [ + "nl", + 0.006296808365732431 + ], + [ + "tr", + 0.005499983672052622 + ], + [ + "haw", + 0.005389326252043247 + ], + [ + "sv", + 0.004781618714332581 + ], + [ + "th", + 0.004685405641794205 + ], + [ + "el", + 0.004048524424433708 + ], + [ + "hi", + 0.0036309813149273396 + ], + [ + "fi", + 0.0033149493392556906 + ], + [ + "id", + 0.003307837527245283 + ], + [ + "ms", + 0.0032469655852764845 + ], + [ + "jw", + 0.0031340355053544044 + ], + [ + "ro", + 0.0029805265367031097 + ], + [ + "br", + 0.0029171525966376066 + ], + [ + "mi", + 0.0028367217164486647 + ], + [ + "vi", + 0.0028196300845593214 + ], + [ + "gl", + 0.0025912728160619736 + ], + [ + "km", + 0.002590385964140296 + ], + [ + "sn", + 0.0024162698537111282 + ], + [ + "hu", + 0.002406821819022298 + ], + [ + "uk", + 0.0018103669863194227 + ], + [ + "cs", + 0.0016262015560641885 + ], + [ + "yo", + 0.001625207718461752 + ], + [ + "bo", + 0.0015162129420787096 + ], + [ + "sa", + 0.00130862754303962 + ], + [ + "he", + 0.0011921327095478773 + ], + [ + "si", + 0.0011325259692966938 + ], + [ + "ml", + 0.0010853250278159976 + ], + [ + "bn", + 0.0010256647365167737 + ], + [ + "ta", + 0.0009075920679606497 + ], + [ + "sw", + 0.000845721981022507 + ], + [ + "da", + 0.0008275281288661063 + ], + [ + "fa", + 0.0007775731501169503 + ], + [ + "te", + 0.0007719157729297876 + ], + [ + "ca", + 0.0007328137289732695 + ], + [ + "ur", + 0.0007311314693652093 + ], + [ + "bg", + 0.000695197784807533 + ], + [ + "eu", + 0.0005441734101623297 + ], + [ + "hr", + 0.0004312059027142823 + ], + [ + "sl", + 0.0004269620985724032 + ], + [ + "fo", + 0.00038641990977339447 + ], + [ + "af", + 0.000331822142470628 + ], + [ + "no", + 0.0003316291549708694 + ], + [ + "my", + 0.00031328442855738103 + ], + [ + "tl", + 0.00027318537468090653 + ], + [ + "bs", + 0.0002692292327992618 + ], + [ + "yi", + 0.00024950431543402374 + ], + [ + "mn", + 0.00024202950589824468 + ], + [ + "az", + 0.00021917068806942552 + ], + [ + "sk", + 0.00020947805023752153 + ], + [ + "ne", + 0.00020235382544342428 + ], + [ + "sr", + 0.0001879734336398542 + ], + [ + "ht", + 0.0001864101504907012 + ], + [ + "oc", + 0.0001844368816819042 + ], + [ + "be", + 0.0001775887212716043 + ], + [ + "lt", + 0.00013429981481749564 + ], + [ + "sd", + 0.00012911477824673057 + ], + [ + "is", + 0.00010892335558310151 + ], + [ + "pa", + 9.756845247466117e-05 + ], + [ + "sq", + 9.457524720346555e-05 + ], + [ + "mk", + 9.2326634330675e-05 + ], + [ + "mr", + 7.776313577778637e-05 + ], + [ + "ps", + 7.548009307356551e-05 + ], + [ + "hy", + 7.365928468061611e-05 + ], + [ + "lv", + 6.607783143408597e-05 + ], + [ + "mt", + 6.539625610457733e-05 + ], + [ + "et", + 6.393730291165411e-05 + ], + [ + "gu", + 4.735660331789404e-05 + ], + [ + "ka", + 4.6489964006468654e-05 + ], + [ + "kn", + 3.211794683011249e-05 + ], + [ + "lo", + 3.088561425101943e-05 + ], + [ + "as", + 2.7807591322925873e-05 + ], + [ + "kk", + 2.5295639716205187e-05 + ], + [ + "am", + 2.479039176250808e-05 + ], + [ + "so", + 1.860335578385275e-05 + ], + [ + "ln", + 1.4299822396424133e-05 + ], + [ + "tg", + 9.60720967668749e-07 + ], + [ + "tt", + 6.956781817279989e-07 + ], + [ + "lb", + 3.706700795191864e-07 + ], + [ + "ha", + 2.8613706604119216e-07 + ], + [ + "su", + 2.6732325864031736e-07 + ], + [ + "mg", + 1.1841115110655664e-07 + ], + [ + "tk", + 8.603510792681845e-08 + ], + [ + "ba", + 6.101110727740888e-08 + ], + [ + "uz", + 1.4534106362873445e-08 + ] + ], + "transcription_options": { + "beam_size": 5, + "best_of": 5, + "patience": 1, + "length_penalty": 1, + "repetition_penalty": 1, + "no_repeat_ngram_size": 0, + "log_prob_threshold": -1.0, + "no_speech_threshold": 0.6, + "compression_ratio_threshold": 2.4, + "condition_on_previous_text": true, + "prompt_reset_on_temperature": 0.5, + "temperatures": [ + 0.0, + 0.2, + 0.4, + 0.6, + 0.8, + 1.0 + ], + "initial_prompt": null, + "prefix": null, + "suppress_blank": true, + "suppress_tokens": [ + 1, + 2, + 7, + 8, + 9, + 10, + 14, + 25, + 26, + 27, + 28, + 29, + 31, + 58, + 59, + 60, + 61, + 62, + 63, + 90, + 91, + 92, + 93, + 359, + 503, + 522, + 542, + 873, + 893, + 902, + 918, + 922, + 931, + 1350, + 1853, + 1982, + 2460, + 2627, + 3246, + 3253, + 3268, + 3536, + 3846, + 3961, + 4183, + 4667, + 6585, + 6647, + 7273, + 9061, + 9383, + 10428, + 10929, + 11938, + 12033, + 12331, + 12562, + 13793, + 14157, + 14635, + 15265, + 15618, + 16553, + 16604, + 18362, + 18956, + 20075, + 21675, + 22520, + 26130, + 26161, + 26435, + 28279, + 29464, + 31650, + 32302, + 32470, + 36865, + 42863, + 47425, + 49870, + 50254, + 50258, + 50358, + 50359, + 50360, + 50361, + 50362 + ], + "without_timestamps": false, + "max_initial_timestamp": 1.0, + "word_timestamps": false, + "prepend_punctuations": "\"'“¿([{-", + "append_punctuations": "\"'.。,,!!??::”)]}、", + "multilingual": false, + "max_new_tokens": null, + "clip_timestamps": [ + 0.0 + ], + "hallucination_silence_threshold": null, + "hotwords": null + }, + "vad_options": { + "threshold": 0.5, + "neg_threshold": null, + "min_speech_duration_ms": 0, + "max_speech_duration_s": { + "nonFiniteFloat": "Infinity" + }, + "min_silence_duration_ms": 2000, + "speech_pad_ms": 400 + } + } + } + ] +} diff --git a/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/mobile-audio-integrity.json b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/mobile-audio-integrity.json new file mode 100644 index 0000000..d6db5ea --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/mobile-audio-integrity.json @@ -0,0 +1,1098 @@ +{ + "chrome": "146.0.7680.80", + "external": [], + "errors": [], + "failed": [], + "files": [ + { + "url": "http://127.0.0.1:4173/audio/intro.wav?v=0.2.3", + "sha256": "90d9f46e6e3f9c8a0c1a781096df54d7809ef4ad38b289508ef7b8c0411465ce", + "bytes": 338732, + "sampleRate": 24000, + "channels": 1, + "duration": 7.056, + "rms": 0.10000144992850359, + "peak": 0.4998626708984375 + }, + { + "url": "http://127.0.0.1:4173/ambience/street.wav?v=0.2.3", + "sha256": "a8bffa201b174618955bc51b860167169125304811aabe2086b0bb35b06c3ae1", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.07999880181401388, + "peak": 0.3967711329460144 + }, + { + "url": "http://127.0.0.1:4173/ambience/mall.wav?v=0.2.3", + "sha256": "680a769940c08f0d12c6c954c08366598dd8b5745e276f39c82b10d1a88261a1", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.07999875178666456, + "peak": 0.7191991806030273 + }, + { + "url": "http://127.0.0.1:4173/ambience/theater.wav?v=0.2.3", + "sha256": "2d6a444fb7874cdf6b2d8a741a69175299b112eb66834912c025437d8277d635", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.07999878601263052, + "peak": 0.495086669921875 + }, + { + "url": "http://127.0.0.1:4173/ambience/department.wav?v=0.2.3", + "sha256": "aa43f3d1d3e7c2b1f8ace24ecbda45d0ea3a031db941c39506dc6c1665b8efa7", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.07999879026023995, + "peak": 0.4749900698661804 + }, + { + "url": "http://127.0.0.1:4173/ambience/market.wav?v=0.2.3", + "sha256": "7a7a980845a4aade2a7e8a108eae746220a4688e92792ee93d3deb76b2a762f6", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.07999876626924392, + "peak": 0.507232666015625 + }, + { + "url": "http://127.0.0.1:4173/ambience/subway.wav?v=0.2.3", + "sha256": "9faf70b68617d267b367a0f3692ed90015458543ab4b0844f6c704e6a724728f", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.079998775670051, + "peak": 0.42530596256256104 + }, + { + "url": "http://127.0.0.1:4173/ambience/cafe.wav?v=0.2.3", + "sha256": "802a956e91b85a2fdd0e1f161d75bfada7a53499bcb57ba7f578411480ded216", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.0799987945764348, + "peak": 0.44708251953125 + }, + { + "url": "http://127.0.0.1:4173/ambience/rain.wav?v=0.2.3", + "sha256": "f4315084e820f742b0709de5bb0d1abd3d5af1730620e08c2948b70347356dd9", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.011384798571746246, + "peak": 0.1024169921875 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-apple.wav?v=0.2.3", + "sha256": "cb7da4e9a1288cac64d168b241f27d7d2bc2dfecace58744f9bbf2792dfad04e", + "bytes": 397484, + "sampleRate": 24000, + "channels": 1, + "duration": 8.28, + "rms": 0.10000142448574952, + "peak": 0.6414685249328613 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-market.wav?v=0.2.3", + "sha256": "b8d25b867497adcd0fe7c8b6a8a8d2e7a52965956738a83e53f58735708773f9", + "bytes": 405548, + "sampleRate": 24000, + "channels": 1, + "duration": 8.448, + "rms": 0.10000141405173993, + "peak": 0.491485595703125 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-sound.wav?v=0.2.3", + "sha256": "34e4d9758d2ed448646fda364610e34779c84794403d9051ab3d8c1d33e2c80c", + "bytes": 184364, + "sampleRate": 24000, + "channels": 1, + "duration": 3.84, + "rms": 0.10000138709171018, + "peak": 0.386322021484375 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-furniture.wav?v=0.2.3", + "sha256": "b45b1afc8d9b534ff3e0a2a2ecb99efc1f4e40d41f89f55c4ed8ba94ad6d76d4", + "bytes": 354860, + "sampleRate": 24000, + "channels": 1, + "duration": 7.392, + "rms": 0.1000015072973225, + "peak": 0.5576171875 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-market.wav?v=0.2.3", + "sha256": "cefa0e95649ea6bd1df4c8dfccd2b74b4f4c028714420ce1087b61db2f2a8d47", + "bytes": 248876, + "sampleRate": 24000, + "channels": 1, + "duration": 5.184, + "rms": 0.10000142548167161, + "peak": 0.4857020676136017 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-oil.wav?v=0.2.3", + "sha256": "f6eff0cdddcad9790351491e60c53cb2a70d222033a583652f2de0b8cd6abcc7", + "bytes": 406700, + "sampleRate": 24000, + "channels": 1, + "duration": 8.472, + "rms": 0.10000139122025363, + "peak": 0.470794677734375 + }, + { + "url": "http://127.0.0.1:4173/audio/first-hat.wav?v=0.2.3", + "sha256": "17c8cde90567e7574b0c0702663bd70713054089ee920241b5444d9b7869eef5", + "bytes": 357164, + "sampleRate": 24000, + "channels": 1, + "duration": 7.44, + "rms": 0.10000152904790521, + "peak": 0.5312662124633789 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-furniture.wav?v=0.2.3", + "sha256": "af82e03b686635c3356e706fe5b05c1231aeaaeab33f275aa5b8714988c65d43", + "bytes": 241964, + "sampleRate": 24000, + "channels": 1, + "duration": 5.04, + "rms": 0.10000137346142077, + "peak": 0.4852443039417267 + }, + { + "url": "http://127.0.0.1:4173/audio/password-sound.wav?v=0.2.3", + "sha256": "044aafff08a19e39f21e58b963644715a987cd155896998769ef8e9ce6449628", + "bytes": 236204, + "sampleRate": 24000, + "channels": 1, + "duration": 4.92, + "rms": 0.10000156641621728, + "peak": 0.4621112644672394 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-hat.wav?v=0.2.3", + "sha256": "f9f98c91cfbcfcb106eef7d5d3795a9cf3c3aab7e19a60f13d7dffe284d19f86", + "bytes": 398636, + "sampleRate": 24000, + "channels": 1, + "duration": 8.304, + "rms": 0.10000141071544869, + "peak": 0.470977783203125 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-apple.wav?v=0.2.3", + "sha256": "7c8f413f4b7e164f090e508ba090448f1376c6012649bbb6a917d45851313883", + "bytes": 188972, + "sampleRate": 24000, + "channels": 1, + "duration": 3.936, + "rms": 0.10000130469939268, + "peak": 0.401641845703125 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-sea.wav?v=0.2.3", + "sha256": "db2f235bee26ac804b5362e8e013b8f40c8da24fd3a34e0fb3b43c6d264feb36", + "bytes": 382508, + "sampleRate": 24000, + "channels": 1, + "duration": 7.968, + "rms": 0.10000145042993039, + "peak": 0.6843470335006714 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-furniture.wav?v=0.2.3", + "sha256": "442bdcb956f120c270e1f321feae0415c897de0183e468980fcc119b898b2a67", + "bytes": 403244, + "sampleRate": 24000, + "channels": 1, + "duration": 8.4, + "rms": 0.10000149119200713, + "peak": 0.5619068145751953 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-sea.wav?v=0.2.3", + "sha256": "b6dbe0af143ea775f05bd59a3d6af348bcc770ab378ac91ea75a56e06c326edf", + "bytes": 346796, + "sampleRate": 24000, + "channels": 1, + "duration": 7.224, + "rms": 0.10000144532868623, + "peak": 0.56494140625 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-sound.wav?v=0.2.3", + "sha256": "e9d636ff7f4777f38b1ff15bebdcec6fbde95b4b4b05625a7415b4cfa0025b59", + "bytes": 395180, + "sampleRate": 24000, + "channels": 1, + "duration": 8.232, + "rms": 0.10000164955559301, + "peak": 0.6114688515663147 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-apple.wav?v=0.2.3", + "sha256": "3ef42e276ff3500c3e197d149f29f79d6a0c1d5516ed1d5a2c57210333fded9c", + "bytes": 246572, + "sampleRate": 24000, + "channels": 1, + "duration": 5.136, + "rms": 0.10000144279302126, + "peak": 0.4701681435108185 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-market.wav?v=0.2.3", + "sha256": "356af25332bf2000ed349671f3ff39767929e1f4599af622c021f907d11fb7bf", + "bytes": 194732, + "sampleRate": 24000, + "channels": 1, + "duration": 4.056, + "rms": 0.10000132629820717, + "peak": 0.4022216796875 + }, + { + "url": "http://127.0.0.1:4173/audio/message-sea.wav?v=0.2.3", + "sha256": "28a461fbe03bffe2560030dea8b60715f7c0fe262dcf85b5b7f7daf483836382", + "bytes": 517292, + "sampleRate": 24000, + "channels": 1, + "duration": 10.776, + "rms": 0.10000130584401576, + "peak": 0.53521728515625 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-umbrella.wav?v=0.2.3", + "sha256": "c8988e604ba05d52597e561389541e8f9cda86e052279f1862bbf8399ead314e", + "bytes": 403244, + "sampleRate": 24000, + "channels": 1, + "duration": 8.4, + "rms": 0.10000148262660476, + "peak": 0.557830810546875 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-hat.wav?v=0.2.3", + "sha256": "308278ec2bd27d4224976a55632d1f7fa1edabb0792126d9d858a699c287aee4", + "bytes": 245420, + "sampleRate": 24000, + "channels": 1, + "duration": 5.112, + "rms": 0.10000140702099906, + "peak": 0.4498428404331207 + }, + { + "url": "http://127.0.0.1:4173/audio/password-furniture.wav?v=0.2.3", + "sha256": "fb2b631dd4e12120d08a84cce6450f9cd9cd68105d13d7001d808e7deaa1df4a", + "bytes": 233900, + "sampleRate": 24000, + "channels": 1, + "duration": 4.872, + "rms": 0.10000146718546903, + "peak": 0.4836573302745819 + }, + { + "url": "http://127.0.0.1:4173/audio/first-market.wav?v=0.2.3", + "sha256": "1e00b8f70a796cdebb0feb00c605fece7488b06915e6e036f54206f05e201e0c", + "bytes": 359468, + "sampleRate": 24000, + "channels": 1, + "duration": 7.488, + "rms": 0.10000152633991319, + "peak": 0.6390880942344666 + }, + { + "url": "http://127.0.0.1:4173/audio/first-meat.wav?v=0.2.3", + "sha256": "f51a37c1722fef581f7d642a4dcae7fcb9953b3c318dce971bf616cd1a81fecc", + "bytes": 345644, + "sampleRate": 24000, + "channels": 1, + "duration": 7.2, + "rms": 0.10000152244411063, + "peak": 0.5131382346153259 + }, + { + "url": "http://127.0.0.1:4173/audio/password-sea.wav?v=0.2.3", + "sha256": "03f45b8cb5b3dc72faf5c6e3d0e2a10cea6b60301ea400d0a4453596d2f0b337", + "bytes": 232748, + "sampleRate": 24000, + "channels": 1, + "duration": 4.848, + "rms": 0.10000144821976133, + "peak": 0.5339213013648987 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-sound.wav?v=0.2.3", + "sha256": "98387ccc7aab566f6487d4c250b2128082cc527e013a6f7b7bc4d0266ac295df", + "bytes": 394028, + "sampleRate": 24000, + "channels": 1, + "duration": 8.208, + "rms": 0.10000158053850364, + "peak": 0.5377971529960632 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-umbrella.wav?v=0.2.3", + "sha256": "5e59ef39113c3d5e106862356d715f4cef2862ef8ee02654a97e532675c1ac6d", + "bytes": 410156, + "sampleRate": 24000, + "channels": 1, + "duration": 8.544, + "rms": 0.10000147499132286, + "peak": 0.6748558282852173 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-hat.wav?v=0.2.3", + "sha256": "b01ef9762ac84e3eb757243bc9286c62f7d45444a821ae35ac36a8b095e1598a", + "bytes": 353708, + "sampleRate": 24000, + "channels": 1, + "duration": 7.368, + "rms": 0.10000153089787694, + "peak": 0.555206298828125 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-market.wav?v=0.2.3", + "sha256": "d89792da51c83ac49d27e55aa6d822a338899a5ee487b34b552748201e1522f6", + "bytes": 398636, + "sampleRate": 24000, + "channels": 1, + "duration": 8.304, + "rms": 0.10000149710778367, + "peak": 0.5728324055671692 + }, + { + "url": "http://127.0.0.1:4173/audio/password-umbrella.wav?v=0.2.3", + "sha256": "ab3ca6398c879971dc793eb25b472fcc0db72d76e386f11ef4d32c639f37c69d", + "bytes": 239660, + "sampleRate": 24000, + "channels": 1, + "duration": 4.992, + "rms": 0.100001426973271, + "peak": 0.4776757061481476 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-meat.wav?v=0.2.3", + "sha256": "48e91b3932d3798e852041a854b3ee08c72127e092c62083a47af6b99adff241", + "bytes": 403244, + "sampleRate": 24000, + "channels": 1, + "duration": 8.4, + "rms": 0.10000140336390047, + "peak": 0.481536865234375 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-hat.wav?v=0.2.3", + "sha256": "6e089a42fd7e65e82eec7186d369c926fb7fdac794365b2bd7658822fd92437c", + "bytes": 396332, + "sampleRate": 24000, + "channels": 1, + "duration": 8.256, + "rms": 0.1000015662548192, + "peak": 0.616748571395874 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-sound.wav?v=0.2.3", + "sha256": "4d00aa6114327f450a00dacbc7e7b572ebf1de4ce9dc2fe4b5505766cca71ce9", + "bytes": 353708, + "sampleRate": 24000, + "channels": 1, + "duration": 7.368, + "rms": 0.10000162019345048, + "peak": 0.5348368883132935 + }, + { + "url": "http://127.0.0.1:4173/audio/last-oil.wav?v=0.2.3", + "sha256": "b5ce34950b8b31b1baf6ce55410797f0d8aa5478a670d6eace87cf76d134d6d3", + "bytes": 337580, + "sampleRate": 24000, + "channels": 1, + "duration": 7.032, + "rms": 0.10000149980584365, + "peak": 0.55706787109375 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-sea.wav?v=0.2.3", + "sha256": "47aa31d757c9fb49c9b53a1c052d90a5ced4be57549d649850d9b48f8864045b", + "bytes": 191276, + "sampleRate": 24000, + "channels": 1, + "duration": 3.984, + "rms": 0.10000129182106483, + "peak": 0.388702392578125 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-sound.wav?v=0.2.3", + "sha256": "659eb0e2b06e6b165b46744769743e032e2282519f8486c57bc45e0f7d07a069", + "bytes": 240812, + "sampleRate": 24000, + "channels": 1, + "duration": 5.016, + "rms": 0.10000152909529536, + "peak": 0.45481735467910767 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-meat.wav?v=0.2.3", + "sha256": "6599d2fac73ea616a793151b4ce6f51af673988d630bac6219a77e78ae6cb34e", + "bytes": 380204, + "sampleRate": 24000, + "channels": 1, + "duration": 7.92, + "rms": 0.1000016061190976, + "peak": 0.5921201109886169 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-market.wav?v=0.2.3", + "sha256": "c855b449e0d4ace74681bfe68e5e7f0b063568827ae872017234dbe8ae119e4c", + "bytes": 356012, + "sampleRate": 24000, + "channels": 1, + "duration": 7.416, + "rms": 0.10000151456676445, + "peak": 0.5949888825416565 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-furniture.wav?v=0.2.3", + "sha256": "bf84dc6cff1f227924a3a62158d2fc18769fb0ca40b91418fa19e534dbf92f00", + "bytes": 397484, + "sampleRate": 24000, + "channels": 1, + "duration": 8.28, + "rms": 0.10000155255948041, + "peak": 0.6670430898666382 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-sound.wav?v=0.2.3", + "sha256": "5a603bc69979603afddcaeb6edf500a7c540b72405daeb33f5335d746b327da1", + "bytes": 397484, + "sampleRate": 24000, + "channels": 1, + "duration": 8.28, + "rms": 0.10000146491234768, + "peak": 0.469268798828125 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-meat.wav?v=0.2.3", + "sha256": "9183ef90b64f5ceaf3bb0178c689231ff3e9981d6ce889124a15f2a6e2b7a344", + "bytes": 395180, + "sampleRate": 24000, + "channels": 1, + "duration": 8.232, + "rms": 0.10000155087122137, + "peak": 0.5193029642105103 + }, + { + "url": "http://127.0.0.1:4173/audio/last-sound.wav?v=0.2.3", + "sha256": "ec9c49802aebeb6a8b898a1c0d8ad1daa127d2d64c905c197ed49a8e0c4eb64a", + "bytes": 354860, + "sampleRate": 24000, + "channels": 1, + "duration": 7.392, + "rms": 0.10000165748716579, + "peak": 0.5641041398048401 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-oil.wav?v=0.2.3", + "sha256": "5fb63e04520c312aa6b7b48b70c2f7c140b5ab480e5c6992edbc2ba85b9a06e7", + "bytes": 241964, + "sampleRate": 24000, + "channels": 1, + "duration": 5.04, + "rms": 0.10000143720418167, + "peak": 0.443586528301239 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-umbrella.wav?v=0.2.3", + "sha256": "92b54f04884ab915783945077efd8f3bd443849a1720f72168b6348cae1f8e85", + "bytes": 406700, + "sampleRate": 24000, + "channels": 1, + "duration": 8.472, + "rms": 0.10000140257790288, + "peak": 0.479034423828125 + }, + { + "url": "http://127.0.0.1:4173/audio/message-sound.wav?v=0.2.3", + "sha256": "1e682147dae8026ba78dc8f256c7f24acb3a6743bfd88a0fcc86096930eef078", + "bytes": 521900, + "sampleRate": 24000, + "channels": 1, + "duration": 10.872, + "rms": 0.10000138583471241, + "peak": 0.51953125 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-apple.wav?v=0.2.3", + "sha256": "ccd7327a3fb54d3320d049ffdced3bc17595861cee69429c0ee97182d454195b", + "bytes": 402092, + "sampleRate": 24000, + "channels": 1, + "duration": 8.376, + "rms": 0.10000140667715379, + "peak": 0.490325927734375 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-sea.wav?v=0.2.3", + "sha256": "5c91a36496e274d2be9c6fa8d9b506cd04f2a1b7ceb05ed1b7bb03fe7fca99d9", + "bytes": 399788, + "sampleRate": 24000, + "channels": 1, + "duration": 8.328, + "rms": 0.10000144241513113, + "peak": 0.5465559959411621 + }, + { + "url": "http://127.0.0.1:4173/audio/message-hat.wav?v=0.2.3", + "sha256": "5a713a8522b231bb8276805c014b385b9150b79f58ff2618446607e2b442495e", + "bytes": 518444, + "sampleRate": 24000, + "channels": 1, + "duration": 10.8, + "rms": 0.10000136927555209, + "peak": 0.587005615234375 + }, + { + "url": "http://127.0.0.1:4173/audio/password-meat.wav?v=0.2.3", + "sha256": "b009caadd56350d6a641ff17f0973e2b2724c183e1f45ae0bf3c483e237fa99e", + "bytes": 240812, + "sampleRate": 24000, + "channels": 1, + "duration": 5.016, + "rms": 0.10000148386024335, + "peak": 0.4978789687156677 + }, + { + "url": "http://127.0.0.1:4173/audio/message-market.wav?v=0.2.3", + "sha256": "9242d4cd6e0030e6b073e4d2360f84aa8a454d1749711cdb2d64c14f28a7ea20", + "bytes": 523052, + "sampleRate": 24000, + "channels": 1, + "duration": 10.896, + "rms": 0.10000133805787564, + "peak": 0.534820556640625 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-apple.wav?v=0.2.3", + "sha256": "8832f1b793ab3eedbe663875ea8dbeabb122c329bd5879437c71230b0418c3c8", + "bytes": 360620, + "sampleRate": 24000, + "channels": 1, + "duration": 7.512, + "rms": 0.10000145024648589, + "peak": 0.553558349609375 + }, + { + "url": "http://127.0.0.1:4173/audio/last-umbrella.wav?v=0.2.3", + "sha256": "c801293a34013a8d93d3289a2cc87cd3eed83f97ba4647f5060efa00b117a9ad", + "bytes": 370988, + "sampleRate": 24000, + "channels": 1, + "duration": 7.728, + "rms": 0.10000149360501835, + "peak": 0.59765625 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-sea.wav?v=0.2.3", + "sha256": "9233431d78ab4b144e3c33ad0cf0d49fc0fb91b29514343230ba32987b794bb3", + "bytes": 398636, + "sampleRate": 24000, + "channels": 1, + "duration": 8.304, + "rms": 0.10000134688905045, + "peak": 0.49616992473602295 + }, + { + "url": "http://127.0.0.1:4173/audio/password-apple.wav?v=0.2.3", + "sha256": "b6f5de3fe571fe3a7fdb722fe49250bcfeedef49475271e0ec76a7630907edd5", + "bytes": 235052, + "sampleRate": 24000, + "channels": 1, + "duration": 4.896, + "rms": 0.10000148212193387, + "peak": 0.4834437072277069 + }, + { + "url": "http://127.0.0.1:4173/audio/first-furniture.wav?v=0.2.3", + "sha256": "29f007b385b7182db1d8aeccad4fc3c260df5e66e14e52a46b0ef0fcd0ff3a0a", + "bytes": 364076, + "sampleRate": 24000, + "channels": 1, + "duration": 7.584, + "rms": 0.1000014551820741, + "peak": 0.5700552463531494 + }, + { + "url": "http://127.0.0.1:4173/audio/password-hat.wav?v=0.2.3", + "sha256": "e91bfc97df90a1675b6cd856880ac15c54de32cfc3b23603bdd1c2c5ac3ce6b8", + "bytes": 235052, + "sampleRate": 24000, + "channels": 1, + "duration": 4.896, + "rms": 0.10000146155157119, + "peak": 0.5059053301811218 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-oil.wav?v=0.2.3", + "sha256": "7a6b122b11c07da86c95fb78e2db2a70681b5219c63d6441fe56da1979ac1dc3", + "bytes": 334124, + "sampleRate": 24000, + "channels": 1, + "duration": 6.96, + "rms": 0.1000014880654183, + "peak": 0.539933443069458 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-meat.wav?v=0.2.3", + "sha256": "d416107cc05e7c5b92ca27100a10a8a9689de913346179945d5542de4a6bac0c", + "bytes": 342188, + "sampleRate": 24000, + "channels": 1, + "duration": 7.128, + "rms": 0.10000157422522808, + "peak": 0.510833740234375 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-apple.wav?v=0.2.3", + "sha256": "1bf2aef9a9f030af1a8fd7dee8f44aa420a397b3ba99b575feeb3dc7a63ec191", + "bytes": 395180, + "sampleRate": 24000, + "channels": 1, + "duration": 8.232, + "rms": 0.10000148399213096, + "peak": 0.563568115234375 + }, + { + "url": "http://127.0.0.1:4173/audio/first-oil.wav?v=0.2.3", + "sha256": "f415195e0cfc7ee711d09de7519e88eab62cc8b58d70772c83c3f5c27c267819", + "bytes": 335276, + "sampleRate": 24000, + "channels": 1, + "duration": 6.984, + "rms": 0.10000145886808136, + "peak": 0.5347453355789185 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-hat.wav?v=0.2.3", + "sha256": "31a6a4270bf368cda419094d87a303ac3cd5c22539786cb165f8044b0b8e9d6e", + "bytes": 402092, + "sampleRate": 24000, + "channels": 1, + "duration": 8.376, + "rms": 0.10000145804818952, + "peak": 0.541778564453125 + }, + { + "url": "http://127.0.0.1:4173/audio/message-furniture.wav?v=0.2.3", + "sha256": "26c331b7e12311236f4bb48f88918dfbf53cccd2f50b55741ea6ff4473e71dd8", + "bytes": 521900, + "sampleRate": 24000, + "channels": 1, + "duration": 10.872, + "rms": 0.10000134596838128, + "peak": 0.529327392578125 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-oil.wav?v=0.2.3", + "sha256": "3fa1e662a3af8f2726b17b2baa5bec2934406e6595ebc243c8380dd16e190977", + "bytes": 190124, + "sampleRate": 24000, + "channels": 1, + "duration": 3.96, + "rms": 0.10000134375667624, + "peak": 0.3817255198955536 + }, + { + "url": "http://127.0.0.1:4173/audio/last-sea.wav?v=0.2.3", + "sha256": "f755452e1da44674aa1df7d12edffa988091b89a394e7eb6d4a00eb721f07cbf", + "bytes": 345644, + "sampleRate": 24000, + "channels": 1, + "duration": 7.2, + "rms": 0.10000140162255576, + "peak": 0.591033935546875 + }, + { + "url": "http://127.0.0.1:4173/audio/password-oil.wav?v=0.2.3", + "sha256": "b472957b27ff98ea7b8894fa1ff12653f7e9f66f77870faa9e52a1c1bf116c41", + "bytes": 240812, + "sampleRate": 24000, + "channels": 1, + "duration": 5.016, + "rms": 0.10000146772662066, + "peak": 0.4945219159126282 + }, + { + "url": "http://127.0.0.1:4173/audio/first-umbrella.wav?v=0.2.3", + "sha256": "878e0bd2e6e4105f175aef51a028f6b141f3a2072be20f783193f3ba897a3ee0", + "bytes": 366380, + "sampleRate": 24000, + "channels": 1, + "duration": 7.632, + "rms": 0.10000147647908036, + "peak": 0.5700247287750244 + }, + { + "url": "http://127.0.0.1:4173/audio/last-apple.wav?v=0.2.3", + "sha256": "4cb2a8579fa3a7b91bb36363826ce8ca0d6d86e96e16a479e226a2802edd82f7", + "bytes": 356012, + "sampleRate": 24000, + "channels": 1, + "duration": 7.416, + "rms": 0.10000144523423521, + "peak": 0.622528076171875 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-market.wav?v=0.2.3", + "sha256": "68a5b899115a66ab225d610ec47b4de56cc8793657362bc38f533c06f741e4cc", + "bytes": 402092, + "sampleRate": 24000, + "channels": 1, + "duration": 8.376, + "rms": 0.10000160159844854, + "peak": 0.6822717785835266 + }, + { + "url": "http://127.0.0.1:4173/audio/message-oil.wav?v=0.2.3", + "sha256": "a2a71a7e5e07c81871a25c6cb7540c39aa0b32fc44f78cda66b5f34ace98d805", + "bytes": 509228, + "sampleRate": 24000, + "channels": 1, + "duration": 10.608, + "rms": 0.10000135184106136, + "peak": 0.51812744140625 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-meat.wav?v=0.2.3", + "sha256": "d36dfc395a5c53fbfa4abe9980db7bb59adfdac59e40318c4aca365365e3f2ab", + "bytes": 187820, + "sampleRate": 24000, + "channels": 1, + "duration": 3.912, + "rms": 0.1000013329979738, + "peak": 0.371124267578125 + }, + { + "url": "http://127.0.0.1:4173/audio/password-market.wav?v=0.2.3", + "sha256": "02e325fb753ef7a3ee585a03d2ca2aa3f1fbc58523b062222ae1136eeed7a95c", + "bytes": 230444, + "sampleRate": 24000, + "channels": 1, + "duration": 4.8, + "rms": 0.10000151520861549, + "peak": 0.48170414566993713 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-hat.wav?v=0.2.3", + "sha256": "4ff43dd042f4b5451e9fdeb3edd59f1e389a7d1dd488094587a3a9fc7dfffa44", + "bytes": 191276, + "sampleRate": 24000, + "channels": 1, + "duration": 3.984, + "rms": 0.10000132502946775, + "peak": 0.417083740234375 + }, + { + "url": "http://127.0.0.1:4173/audio/last-market.wav?v=0.2.3", + "sha256": "7857e87e9dbfe8fe849cc0b18c1d45b60916cb337328099c7a87a42c82e2821e", + "bytes": 359468, + "sampleRate": 24000, + "channels": 1, + "duration": 7.488, + "rms": 0.10000148064140717, + "peak": 0.600555419921875 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-meat.wav?v=0.2.3", + "sha256": "94f8a4f9e116a787e5ed052661d6de9ecf3ad8629db476661dd59ad03014b0c9", + "bytes": 244268, + "sampleRate": 24000, + "channels": 1, + "duration": 5.088, + "rms": 0.10000146176253134, + "peak": 0.44187748432159424 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-oil.wav?v=0.2.3", + "sha256": "55b2c7d6aa8bbce04edf8661882c9781da81c57f56217f99b80457a3bb895da0", + "bytes": 369836, + "sampleRate": 24000, + "channels": 1, + "duration": 7.704, + "rms": 0.10000146897241707, + "peak": 0.6239814162254333 + }, + { + "url": "http://127.0.0.1:4173/audio/first-sound.wav?v=0.2.3", + "sha256": "46f6adeed928a16af0700f1e8626cf8049f124632a04a5d10604426fb06f9596", + "bytes": 353708, + "sampleRate": 24000, + "channels": 1, + "duration": 7.368, + "rms": 0.10000157588418972, + "peak": 0.5189672708511353 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-umbrella.wav?v=0.2.3", + "sha256": "4b4c858a25659540f9dbc524664496fc6de61ab8c1627f3cfee8c9c744e11d5b", + "bytes": 247724, + "sampleRate": 24000, + "channels": 1, + "duration": 5.16, + "rms": 0.10000144286672341, + "peak": 0.46534621715545654 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-oil.wav?v=0.2.3", + "sha256": "3ca98682ff06d1d6b8af02c0fd5b2124f42266ac989884223eff4a9bbde1287a", + "bytes": 399788, + "sampleRate": 24000, + "channels": 1, + "duration": 8.328, + "rms": 0.10000149133669024, + "peak": 0.5243995189666748 + }, + { + "url": "http://127.0.0.1:4173/audio/first-sea.wav?v=0.2.3", + "sha256": "0f0b39314c5f7d7168d4854003c0c284e7bc3438cdc4d1d1c5adab7cb5ed30e5", + "bytes": 349100, + "sampleRate": 24000, + "channels": 1, + "duration": 7.272, + "rms": 0.10000142148394393, + "peak": 0.5717948079109192 + }, + { + "url": "http://127.0.0.1:4173/audio/last-meat.wav?v=0.2.3", + "sha256": "10f8ad4259ed8945c9da831e80b3902303c09caef96d400298599168fb1efed4", + "bytes": 346796, + "sampleRate": 24000, + "channels": 1, + "duration": 7.224, + "rms": 0.10000155834091913, + "peak": 0.537200927734375 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-umbrella.wav?v=0.2.3", + "sha256": "399ea2f681f755918f1117c8baba42739ceca64b307b999342f457a9235050b6", + "bytes": 368684, + "sampleRate": 24000, + "channels": 1, + "duration": 7.68, + "rms": 0.10000155028684544, + "peak": 0.569549560546875 + }, + { + "url": "http://127.0.0.1:4173/audio/message-meat.wav?v=0.2.3", + "sha256": "ce19735df079b54c171e775b6b365385a80160b9033442abab95b2b9c8505e1a", + "bytes": 512684, + "sampleRate": 24000, + "channels": 1, + "duration": 10.68, + "rms": 0.10000140834686953, + "peak": 0.5147705078125 + }, + { + "url": "http://127.0.0.1:4173/audio/message-umbrella.wav?v=0.2.3", + "sha256": "41d5866dae66600df4694a8312b531571d44cece6dba0e423e7c43d09d184819", + "bytes": 523052, + "sampleRate": 24000, + "channels": 1, + "duration": 10.896, + "rms": 0.10000120668553683, + "peak": 0.530364990234375 + }, + { + "url": "http://127.0.0.1:4173/audio/last-furniture.wav?v=0.2.3", + "sha256": "5ad4f776e35439d408abed0e66567d6b5cdc80fc54d579165472e474f1238776", + "bytes": 357164, + "sampleRate": 24000, + "channels": 1, + "duration": 7.44, + "rms": 0.10000152394963031, + "peak": 0.583587646484375 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-sea.wav?v=0.2.3", + "sha256": "8838d6a1ee8a790427dc5aa761e70b3d8872af62086efeed743297ff7f8b8a06", + "bytes": 243116, + "sampleRate": 24000, + "channels": 1, + "duration": 5.064, + "rms": 0.10000138788281714, + "peak": 0.45013427734375 + }, + { + "url": "http://127.0.0.1:4173/audio/message-apple.wav?v=0.2.3", + "sha256": "d85e6f47d871369f00de2274139e5ad6b4b5686b5e20e248df0ed6b9a320d942", + "bytes": 517292, + "sampleRate": 24000, + "channels": 1, + "duration": 10.776, + "rms": 0.10000133916854889, + "peak": 0.525360107421875 + }, + { + "url": "http://127.0.0.1:4173/audio/last-hat.wav?v=0.2.3", + "sha256": "bdaf8fbc54df8061e9e58aa8c14b3044a6e863dc54973ee3ee6ae2c5ae1a28f1", + "bytes": 354860, + "sampleRate": 24000, + "channels": 1, + "duration": 7.392, + "rms": 0.10000152378078818, + "peak": 0.550079345703125 + }, + { + "url": "http://127.0.0.1:4173/audio/first-apple.wav?v=0.2.3", + "sha256": "7c1dbcb3082055df2b8f087f7e906ec867c92f679de0894c34740c05e61a4bc1", + "bytes": 359468, + "sampleRate": 24000, + "channels": 1, + "duration": 7.488, + "rms": 0.10000143468253914, + "peak": 0.57977294921875 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-umbrella.wav?v=0.2.3", + "sha256": "8d3e8e8bc97e5fe3f3362184c4abb12f01a882a1f1174d2644f0f70aac677c0a", + "bytes": 192428, + "sampleRate": 24000, + "channels": 1, + "duration": 4.008, + "rms": 0.10000131475711933, + "peak": 0.385650634765625 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-furniture.wav?v=0.2.3", + "sha256": "5c004a7b2f5a4a918c9f689f1a2dcb219a620ed14313f40a9655b36dbf64948d", + "bytes": 398636, + "sampleRate": 24000, + "channels": 1, + "duration": 8.304, + "rms": 0.10000141690978645, + "peak": 0.487396240234375 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-tree.wav?v=0.2.3", + "sha256": "122f496834fb16d6da47f801e50e46e272e4e934af959467d1db4e490f79be7a", + "bytes": 183212, + "sampleRate": 24000, + "channels": 1, + "duration": 3.816, + "rms": 0.10000140751524371, + "peak": 0.36920166015625 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-tree.wav?v=0.2.3", + "sha256": "00d8e77ec0371971d632724d91f8cf8d947bfb83c582a513b6421be4c457a1da", + "bytes": 241964, + "sampleRate": 24000, + "channels": 1, + "duration": 5.04, + "rms": 0.10000146153372488, + "peak": 0.4585406184196472 + }, + { + "url": "http://127.0.0.1:4173/audio/message-tree.wav?v=0.2.3", + "sha256": "5d684aa710a63d36ed8dcc2a8bfbdd5c71b0b1c63dad2a324adecb76591e85b8", + "bytes": 540332, + "sampleRate": 24000, + "channels": 1, + "duration": 11.256, + "rms": 0.10000132424453942, + "peak": 0.5262451171875 + }, + { + "url": "http://127.0.0.1:4173/audio/last-tree.wav?v=0.2.3", + "sha256": "589e56d940a3c9e80ec02ae0b2dd93463fdc85ef019a753fcd0fded0752055f9", + "bytes": 382508, + "sampleRate": 24000, + "channels": 1, + "duration": 7.968, + "rms": 0.10000149781706567, + "peak": 0.5807672142982483 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-tree.wav?v=0.2.3", + "sha256": "341888c75275c13eb31058f53a1d4276be0daa0a1b5a3a45522036928b83b0c1", + "bytes": 382508, + "sampleRate": 24000, + "channels": 1, + "duration": 7.968, + "rms": 0.1000014873304774, + "peak": 0.600024402141571 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-tree.wav?v=0.2.3", + "sha256": "8735c3d9672561ca237fa87317beec2878492eb9063d6048d5b214423561acc1", + "bytes": 423980, + "sampleRate": 24000, + "channels": 1, + "duration": 8.832, + "rms": 0.10000150947389638, + "peak": 0.6187627911567688 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-furniture.wav?v=0.2.3", + "sha256": "52cb92cdb8ee92b6f581c9d68dbc346f180c470564809ba57185429c9eb84127", + "bytes": 186668, + "sampleRate": 24000, + "channels": 1, + "duration": 3.888, + "rms": 0.1000013480244084, + "peak": 0.387054443359375 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-tree.wav?v=0.2.3", + "sha256": "bc8e54f5407e8866bf1ca1ddfd4f6c63d85fee29bd9e430c7dd33e87974fc5b8", + "bytes": 409004, + "sampleRate": 24000, + "channels": 1, + "duration": 8.52, + "rms": 0.10000146559822108, + "peak": 0.5486617684364319 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-tree.wav?v=0.2.3", + "sha256": "b8e8bbe6b8b14727efd953fae9d4aed2caeb004055d52f611c6378322847edbe", + "bytes": 400940, + "sampleRate": 24000, + "channels": 1, + "duration": 8.352, + "rms": 0.10000144970799159, + "peak": 0.470611572265625 + }, + { + "url": "http://127.0.0.1:4173/audio/first-tree.wav?v=0.2.3", + "sha256": "3178230fd5850b6277a2153b438ec5289720e3db7ac929914cc213964f004bd5", + "bytes": 379052, + "sampleRate": 24000, + "channels": 1, + "duration": 7.896, + "rms": 0.10000144270360484, + "peak": 0.5833613276481628 + }, + { + "url": "http://127.0.0.1:4173/audio/password-tree.wav?v=0.2.3", + "sha256": "67da8147296e35134ec254bc82b58317630061b2c64d2d63c4be197ce8692d50", + "bytes": 233900, + "sampleRate": 24000, + "channels": 1, + "duration": 4.872, + "rms": 0.10000156310809623, + "peak": 0.4904019236564636 + } + ] +} diff --git a/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/no-vad-asr.json b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/no-vad-asr.json new file mode 100644 index 0000000..5e5fb31 --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/no-vad-asr.json @@ -0,0 +1,4616 @@ +{ + "schemaVersion": 1, + "startedAtUtc": "2026-10-14T09:16:48.127493+00:00", + "completedAtUtc": "2026-10-14T09:17:06.531103+00:00", + "tool": { + "name": "faster-whisper", + "version": "1.2.1", + "python": "3.11.16", + "dependencies": { + "ctranslate2": "4.8.3", + "av": "18.1.0", + "numpy": "2.4.6", + "tokenizers": "0.23.3", + "huggingface-hub": "2.2.0" + } + }, + "model": { + "name": "tiny", + "multilingual": true, + "repository": "Systran/faster-whisper-tiny", + "revision": "d90ca5fe260221311c53c58e660288d3deb8d356", + "files": { + "config.json": "a73a28cdfe1c43ccc7202fa333d1f89c202477271407ae9a7f19afa52039cac8", + "model.bin": "dcb76c6586fc06cbdac6dd21f14cfd129cc4cdd9dce19bf4ffa62e59cbe6e6d1", + "tokenizer.json": "fb7b63191e9bb045082c79fd742a3106a12c99513ab30df4a0d47fa6cb6fd0ab", + "vocabulary.txt": "34ce3fe1c5041027b3f8d42912270993f986dbc4bb34cf27f951e34a1e453913" + } + }, + "method": { + "input": "Exact final 12-second public/ambience WAV files, hash verified before and after inference; no source scan, VAD, text editing or manual filtering.", + "device": "cpu", + "computeType": "int8", + "cpuThreads": 4, + "numWorkers": 1, + "randomSeed": 0, + "offline": true, + "parameters": { + "language": null, + "task": "transcribe", + "log_progress": false, + "beam_size": 5, + "best_of": 5, + "patience": 1, + "length_penalty": 1, + "repetition_penalty": 1, + "no_repeat_ngram_size": 0, + "temperature": [ + 0.0, + 0.2, + 0.4, + 0.6, + 0.8, + 1.0 + ], + "compression_ratio_threshold": 2.4, + "log_prob_threshold": -1.0, + "no_speech_threshold": 0.6, + "condition_on_previous_text": true, + "prompt_reset_on_temperature": 0.5, + "initial_prompt": null, + "prefix": null, + "suppress_blank": true, + "suppress_tokens": [ + -1 + ], + "without_timestamps": false, + "max_initial_timestamp": 1.0, + "word_timestamps": false, + "prepend_punctuations": "\"'“¿([{-", + "append_punctuations": "\"'.。,,!!??::”)]}、", + "multilingual": false, + "vad_filter": false, + "vad_parameters": null, + "max_new_tokens": null, + "chunk_length": null, + "clip_timestamps": "0", + "hallucination_silence_threshold": null, + "hotwords": null, + "language_detection_threshold": 0.5, + "language_detection_segments": 1 + }, + "manifestSha256": "4f21df1c046e545553319889218c29b3efe0da0d49d45d3e09a36fb7759a617c", + "scriptSha256": "9aa0912152952179f0a541e7dfb06a893114a2d5361e266fd24fff567fb60183", + "command": "/tmp/findword-asr-venv/bin/python .agent/evidence-v0.2.3/privacy-screening/screen-final.py" + }, + "limitations": { + "screeningOnly": true, + "humanListeningAcceptance": false, + "legalPrivacyClearance": false, + "textIsVerifiedTranscript": false, + "explanation": "Tiny-model ASR is only a screening signal. Empty segments do not prove absence of speech, music or private conversation. Candidate text and language guesses may be hallucinated and are not faithful transcripts. This is NOT human listening acceptance or legal/privacy clearance." + }, + "requiredEmptyEnvironmentIds": [ + "mall", + "market", + "cafe" + ], + "requiredEmptyPassed": false, + "files": [ + { + "environmentId": "street", + "file": "public/ambience/street.wav", + "sha256": "a8bffa201b174618955bc51b860167169125304811aabe2086b0bb35b06c3ae1", + "bytes": 576044, + "durationSeconds": 12.0, + "selectedSegmentStartSeconds": 35, + "sourceSha256": "0ddb0be7eb3427f781c8268bcbc74b8ad7e1fbf75b9f6966e65274dbe85f3d9d", + "language": "en", + "languageProbability": 0.3898167014122009, + "segments": [], + "text": "", + "info": { + "language": "en", + "language_probability": 0.3898167014122009, + "duration": 12.0, + "duration_after_vad": 12.0, + "all_language_probs": [ + [ + "en", + 0.3898167014122009 + ], + [ + "nn", + 0.3773292601108551 + ], + [ + "ja", + 0.06501289457082748 + ], + [ + "la", + 0.023608574643731117 + ], + [ + "ru", + 0.022245649248361588 + ], + [ + "zh", + 0.017556218430399895 + ], + [ + "pl", + 0.015413372777402401 + ], + [ + "fr", + 0.011790702119469643 + ], + [ + "ko", + 0.008136247284710407 + ], + [ + "it", + 0.00798924919217825 + ], + [ + "cy", + 0.006835925858467817 + ], + [ + "es", + 0.005992465186864138 + ], + [ + "de", + 0.005646164529025555 + ], + [ + "pt", + 0.0055279298685491085 + ], + [ + "jw", + 0.0039305430836975574 + ], + [ + "ms", + 0.003485121764242649 + ], + [ + "nl", + 0.0032830832060426474 + ], + [ + "tr", + 0.003047135192900896 + ], + [ + "haw", + 0.0022543524391949177 + ], + [ + "id", + 0.0020179746206849813 + ], + [ + "ar", + 0.0017123047728091478 + ], + [ + "br", + 0.0014755696756765246 + ], + [ + "sv", + 0.0012604424264281988 + ], + [ + "vi", + 0.001172330928966403 + ], + [ + "hu", + 0.0010453202994540334 + ], + [ + "ro", + 0.0010091399308294058 + ], + [ + "th", + 0.0009070205851458013 + ], + [ + "fi", + 0.0008353945449925959 + ], + [ + "uk", + 0.0007772117387503386 + ], + [ + "cs", + 0.0006651243311353028 + ], + [ + "ml", + 0.0006492466200143099 + ], + [ + "hi", + 0.0006309545715339482 + ], + [ + "km", + 0.0005552098737098277 + ], + [ + "mi", + 0.0005535497330129147 + ], + [ + "he", + 0.00034290700568817556 + ], + [ + "bn", + 0.00033340704976581037 + ], + [ + "fa", + 0.00033155339770019054 + ], + [ + "gl", + 0.00031247417791746557 + ], + [ + "bg", + 0.00030625364161096513 + ], + [ + "el", + 0.00029560347320511937 + ], + [ + "ur", + 0.0002897378581110388 + ], + [ + "no", + 0.00022572425950784236 + ], + [ + "sa", + 0.00021767226280644536 + ], + [ + "tl", + 0.0002080294507322833 + ], + [ + "ta", + 0.00019707648607436568 + ], + [ + "mn", + 0.00019343286112416536 + ], + [ + "sn", + 0.00018949534569401294 + ], + [ + "fo", + 0.00018244943930767477 + ], + [ + "si", + 0.00016089763084892184 + ], + [ + "ca", + 0.00014699241728521883 + ], + [ + "sk", + 0.00013925577513873577 + ], + [ + "sl", + 0.00013076419418212026 + ], + [ + "eu", + 0.00012416201934684068 + ], + [ + "hr", + 0.0001171264229924418 + ], + [ + "my", + 0.0001115358027163893 + ], + [ + "da", + 0.00010515708709135652 + ], + [ + "oc", + 9.845638851402327e-05 + ], + [ + "bo", + 9.779151878319681e-05 + ], + [ + "te", + 9.539799793856218e-05 + ], + [ + "bs", + 8.616797276772559e-05 + ], + [ + "yo", + 7.896757597336546e-05 + ], + [ + "af", + 5.53969330212567e-05 + ], + [ + "ne", + 5.2842075092485175e-05 + ], + [ + "be", + 4.986268322682008e-05 + ], + [ + "sr", + 4.168130544712767e-05 + ], + [ + "yi", + 4.163950870861299e-05 + ], + [ + "sw", + 4.1316412534797564e-05 + ], + [ + "ht", + 3.948143785237335e-05 + ], + [ + "mr", + 3.505341737763956e-05 + ], + [ + "sq", + 3.3929929486475885e-05 + ], + [ + "lt", + 3.364408985362388e-05 + ], + [ + "az", + 3.3502285077702254e-05 + ], + [ + "et", + 3.185659079463221e-05 + ], + [ + "ka", + 2.797528577502817e-05 + ], + [ + "is", + 2.2226044166018255e-05 + ], + [ + "hy", + 2.203913936682511e-05 + ], + [ + "lv", + 2.149387182726059e-05 + ], + [ + "mk", + 2.0967792806914076e-05 + ], + [ + "sd", + 2.017345468630083e-05 + ], + [ + "kn", + 1.5103326404641848e-05 + ], + [ + "pa", + 1.3008128007641062e-05 + ], + [ + "mt", + 1.166138918051729e-05 + ], + [ + "as", + 9.951302672561724e-06 + ], + [ + "kk", + 9.138066161540337e-06 + ], + [ + "ps", + 7.828160960343666e-06 + ], + [ + "lo", + 5.198997769184643e-06 + ], + [ + "gu", + 5.1800725486828014e-06 + ], + [ + "ln", + 5.022172899771249e-06 + ], + [ + "am", + 3.1193615086522186e-06 + ], + [ + "so", + 2.339740831303061e-06 + ], + [ + "tg", + 1.8183044403485837e-07 + ], + [ + "lb", + 1.3595980874470115e-07 + ], + [ + "tt", + 9.28747709849631e-08 + ], + [ + "su", + 3.691809524752898e-08 + ], + [ + "mg", + 2.2037571767441477e-08 + ], + [ + "tk", + 2.1740069300335563e-08 + ], + [ + "ha", + 1.4544235149571705e-08 + ], + [ + "ba", + 1.4421503102823863e-08 + ], + [ + "uz", + 2.3822739336765153e-09 + ] + ], + "transcription_options": { + "beam_size": 5, + "best_of": 5, + "patience": 1, + "length_penalty": 1, + "repetition_penalty": 1, + "no_repeat_ngram_size": 0, + "log_prob_threshold": -1.0, + "no_speech_threshold": 0.6, + "compression_ratio_threshold": 2.4, + "condition_on_previous_text": true, + "prompt_reset_on_temperature": 0.5, + "temperatures": [ + 0.0, + 0.2, + 0.4, + 0.6, + 0.8, + 1.0 + ], + "initial_prompt": null, + "prefix": null, + "suppress_blank": true, + "suppress_tokens": [ + 1, + 2, + 7, + 8, + 9, + 10, + 14, + 25, + 26, + 27, + 28, + 29, + 31, + 58, + 59, + 60, + 61, + 62, + 63, + 90, + 91, + 92, + 93, + 359, + 503, + 522, + 542, + 873, + 893, + 902, + 918, + 922, + 931, + 1350, + 1853, + 1982, + 2460, + 2627, + 3246, + 3253, + 3268, + 3536, + 3846, + 3961, + 4183, + 4667, + 6585, + 6647, + 7273, + 9061, + 9383, + 10428, + 10929, + 11938, + 12033, + 12331, + 12562, + 13793, + 14157, + 14635, + 15265, + 15618, + 16553, + 16604, + 18362, + 18956, + 20075, + 21675, + 22520, + 26130, + 26161, + 26435, + 28279, + 29464, + 31650, + 32302, + 32470, + 36865, + 42863, + 47425, + 49870, + 50254, + 50258, + 50358, + 50359, + 50360, + 50361, + 50362 + ], + "without_timestamps": false, + "max_initial_timestamp": 1.0, + "word_timestamps": false, + "prepend_punctuations": "\"'“¿([{-", + "append_punctuations": "\"'.。,,!!??::”)]}、", + "multilingual": false, + "max_new_tokens": null, + "clip_timestamps": [ + 0.0 + ], + "hallucination_silence_threshold": null, + "hotwords": null + }, + "vad_options": null + } + }, + { + "environmentId": "mall", + "file": "public/ambience/mall.wav", + "sha256": "680a769940c08f0d12c6c954c08366598dd8b5745e276f39c82b10d1a88261a1", + "bytes": 576044, + "durationSeconds": 12.0, + "selectedSegmentStartSeconds": 36, + "sourceSha256": "bb066e130e5d665db57cb5f88e820d053c724d8f777b275213998d2074c6529a", + "language": "en", + "languageProbability": 0.21966177225112915, + "segments": [ + { + "id": 1, + "seek": 0, + "start": 0.0, + "end": 12.0, + "text": " It's so beautiful, it's so beautiful, it's so beautiful.", + "tokens": [ + 50364, + 467, + 311, + 370, + 2238, + 11, + 309, + 311, + 370, + 2238, + 11, + 309, + 311, + 370, + 2238, + 13, + 50964 + ], + "avg_logprob": -0.93099288476838, + "compression_ratio": 1.8064516129032258, + "no_speech_prob": 0.33958810567855835, + "words": null, + "temperature": 0.0 + } + ], + "text": " It's so beautiful, it's so beautiful, it's so beautiful.", + "info": { + "language": "en", + "language_probability": 0.21966177225112915, + "duration": 12.0, + "duration_after_vad": 12.0, + "all_language_probs": [ + [ + "en", + 0.21966177225112915 + ], + [ + "nn", + 0.20048785209655762 + ], + [ + "ja", + 0.1832902729511261 + ], + [ + "ko", + 0.07881028950214386 + ], + [ + "ru", + 0.04566512629389763 + ], + [ + "fr", + 0.04488835111260414 + ], + [ + "zh", + 0.04111019894480705 + ], + [ + "de", + 0.02999817207455635 + ], + [ + "pt", + 0.020327338948845863 + ], + [ + "jw", + 0.014624389819800854 + ], + [ + "pl", + 0.012955095618963242 + ], + [ + "nl", + 0.011913426220417023 + ], + [ + "it", + 0.011344920843839645 + ], + [ + "es", + 0.01083869393914938 + ], + [ + "tr", + 0.007394611835479736 + ], + [ + "la", + 0.005497111473232508 + ], + [ + "fi", + 0.005356523673981428 + ], + [ + "sv", + 0.005069385282695293 + ], + [ + "cy", + 0.004953988827764988 + ], + [ + "ar", + 0.003675843821838498 + ], + [ + "ms", + 0.0036368872970342636 + ], + [ + "haw", + 0.0031657186336815357 + ], + [ + "hu", + 0.002980473218485713 + ], + [ + "vi", + 0.002515817992389202 + ], + [ + "br", + 0.002150120912119746 + ], + [ + "el", + 0.0018931026570498943 + ], + [ + "uk", + 0.001883664052002132 + ], + [ + "hi", + 0.0017830500146374106 + ], + [ + "id", + 0.0017218312714248896 + ], + [ + "th", + 0.0016264189034700394 + ], + [ + "ro", + 0.0016007105587050319 + ], + [ + "mi", + 0.001287355669774115 + ], + [ + "gl", + 0.0009323647827841341 + ], + [ + "tl", + 0.0008865129784680903 + ], + [ + "cs", + 0.0008816801710054278 + ], + [ + "ml", + 0.0008646623464301229 + ], + [ + "he", + 0.0008049929747357965 + ], + [ + "ur", + 0.0007774599362164736 + ], + [ + "no", + 0.0007416324806399643 + ], + [ + "bg", + 0.0006987852975726128 + ], + [ + "ta", + 0.0006921759340912104 + ], + [ + "km", + 0.0005918823881074786 + ], + [ + "eu", + 0.0005695742438547313 + ], + [ + "bn", + 0.0005263357306830585 + ], + [ + "da", + 0.0004909778945147991 + ], + [ + "ca", + 0.00044265686301514506 + ], + [ + "mn", + 0.0004419540928211063 + ], + [ + "sn", + 0.0003312236804049462 + ], + [ + "bs", + 0.0003276210627518594 + ], + [ + "fo", + 0.00030943361343815923 + ], + [ + "fa", + 0.00030567432986572385 + ], + [ + "sl", + 0.0002744648954831064 + ], + [ + "yo", + 0.00026633613742887974 + ], + [ + "hr", + 0.00025839084992185235 + ], + [ + "oc", + 0.00024790645693428814 + ], + [ + "sk", + 0.00024523813044652343 + ], + [ + "te", + 0.0002360738581046462 + ], + [ + "sa", + 0.0002153849636670202 + ], + [ + "ht", + 0.00017466516874264926 + ], + [ + "si", + 0.00016840934404172003 + ], + [ + "et", + 0.00015254245954565704 + ], + [ + "ne", + 0.00015035398246254772 + ], + [ + "my", + 0.00014237570576369762 + ], + [ + "lt", + 0.00013660606055054814 + ], + [ + "is", + 0.00013516019680537283 + ], + [ + "bo", + 0.00011880997044499964 + ], + [ + "sd", + 0.0001166374422609806 + ], + [ + "sr", + 0.00011378010094631463 + ], + [ + "az", + 0.0001137428916990757 + ], + [ + "lv", + 0.00010423151252325624 + ], + [ + "yi", + 9.866827167570591e-05 + ], + [ + "af", + 9.182556823361665e-05 + ], + [ + "mr", + 8.575600804761052e-05 + ], + [ + "hy", + 8.489808533340693e-05 + ], + [ + "be", + 8.107295434456319e-05 + ], + [ + "kn", + 6.670861330348998e-05 + ], + [ + "sw", + 6.008188211126253e-05 + ], + [ + "ka", + 5.256141230347566e-05 + ], + [ + "sq", + 4.322655877331272e-05 + ], + [ + "pa", + 3.9258553442778066e-05 + ], + [ + "gu", + 3.1651990866521373e-05 + ], + [ + "mk", + 2.82938690361334e-05 + ], + [ + "kk", + 2.5134293537121266e-05 + ], + [ + "ln", + 2.4052482331171632e-05 + ], + [ + "as", + 2.212878825957887e-05 + ], + [ + "mt", + 2.0021916498080827e-05 + ], + [ + "ps", + 1.5601564882672392e-05 + ], + [ + "am", + 1.2714222066279035e-05 + ], + [ + "lo", + 1.180485742224846e-05 + ], + [ + "so", + 5.36604102308047e-06 + ], + [ + "tg", + 6.787650477235729e-07 + ], + [ + "lb", + 5.378560103963537e-07 + ], + [ + "tt", + 3.324554995742801e-07 + ], + [ + "su", + 1.394218998029828e-07 + ], + [ + "tk", + 7.062937612545284e-08 + ], + [ + "mg", + 6.728463119998196e-08 + ], + [ + "ba", + 6.125172546944668e-08 + ], + [ + "ha", + 4.273148945799221e-08 + ], + [ + "uz", + 6.1873790535571516e-09 + ] + ], + "transcription_options": { + "beam_size": 5, + "best_of": 5, + "patience": 1, + "length_penalty": 1, + "repetition_penalty": 1, + "no_repeat_ngram_size": 0, + "log_prob_threshold": -1.0, + "no_speech_threshold": 0.6, + "compression_ratio_threshold": 2.4, + "condition_on_previous_text": true, + "prompt_reset_on_temperature": 0.5, + "temperatures": [ + 0.0, + 0.2, + 0.4, + 0.6, + 0.8, + 1.0 + ], + "initial_prompt": null, + "prefix": null, + "suppress_blank": true, + "suppress_tokens": [ + 1, + 2, + 7, + 8, + 9, + 10, + 14, + 25, + 26, + 27, + 28, + 29, + 31, + 58, + 59, + 60, + 61, + 62, + 63, + 90, + 91, + 92, + 93, + 359, + 503, + 522, + 542, + 873, + 893, + 902, + 918, + 922, + 931, + 1350, + 1853, + 1982, + 2460, + 2627, + 3246, + 3253, + 3268, + 3536, + 3846, + 3961, + 4183, + 4667, + 6585, + 6647, + 7273, + 9061, + 9383, + 10428, + 10929, + 11938, + 12033, + 12331, + 12562, + 13793, + 14157, + 14635, + 15265, + 15618, + 16553, + 16604, + 18362, + 18956, + 20075, + 21675, + 22520, + 26130, + 26161, + 26435, + 28279, + 29464, + 31650, + 32302, + 32470, + 36865, + 42863, + 47425, + 49870, + 50254, + 50258, + 50358, + 50359, + 50360, + 50361, + 50362 + ], + "without_timestamps": false, + "max_initial_timestamp": 1.0, + "word_timestamps": false, + "prepend_punctuations": "\"'“¿([{-", + "append_punctuations": "\"'.。,,!!??::”)]}、", + "multilingual": false, + "max_new_tokens": null, + "clip_timestamps": [ + 0.0 + ], + "hallucination_silence_threshold": null, + "hotwords": null + }, + "vad_options": null + } + }, + { + "environmentId": "theater", + "file": "public/ambience/theater.wav", + "sha256": "2d6a444fb7874cdf6b2d8a741a69175299b112eb66834912c025437d8277d635", + "bytes": 576044, + "durationSeconds": 12.0, + "selectedSegmentStartSeconds": 45, + "sourceSha256": "05c3ece7c088f34700b7610f791c0ad848a24c77be2c32fd1503a78356739a43", + "language": "en", + "languageProbability": 0.25658440589904785, + "segments": [ + { + "id": 1, + "seek": 0, + "start": 0.0, + "end": 7.0, + "text": " Thank you for watching.", + "tokens": [ + 50364, + 1044, + 291, + 337, + 1976, + 13, + 50714 + ], + "avg_logprob": -1.1992912590503693, + "compression_ratio": 0.7419354838709677, + "no_speech_prob": 0.30440080165863037, + "words": null, + "temperature": 1.0 + } + ], + "text": " Thank you for watching.", + "info": { + "language": "en", + "language_probability": 0.25658440589904785, + "duration": 12.0, + "duration_after_vad": 12.0, + "all_language_probs": [ + [ + "en", + 0.25658440589904785 + ], + [ + "ja", + 0.23184935748577118 + ], + [ + "ko", + 0.09546845406293869 + ], + [ + "nn", + 0.08174467086791992 + ], + [ + "jw", + 0.0703263208270073 + ], + [ + "zh", + 0.04401009902358055 + ], + [ + "ru", + 0.038175057619810104 + ], + [ + "pt", + 0.01649031788110733 + ], + [ + "de", + 0.01647750660777092 + ], + [ + "ms", + 0.011080930940806866 + ], + [ + "nl", + 0.010125449858605862 + ], + [ + "uk", + 0.009597202762961388 + ], + [ + "fr", + 0.009521645493805408 + ], + [ + "pl", + 0.009438506327569485 + ], + [ + "es", + 0.008012594655156136 + ], + [ + "cy", + 0.007730530574917793 + ], + [ + "id", + 0.007728775963187218 + ], + [ + "vi", + 0.007016035262495279 + ], + [ + "tr", + 0.005587395746260881 + ], + [ + "mi", + 0.004987203981727362 + ], + [ + "sv", + 0.004844923038035631 + ], + [ + "it", + 0.004436506424099207 + ], + [ + "haw", + 0.0040049199014902115 + ], + [ + "fi", + 0.003751539858058095 + ], + [ + "th", + 0.003548419801518321 + ], + [ + "ar", + 0.003016221337020397 + ], + [ + "tl", + 0.0030112003441900015 + ], + [ + "la", + 0.0029862569645047188 + ], + [ + "km", + 0.002937627723440528 + ], + [ + "hu", + 0.001824148464947939 + ], + [ + "el", + 0.0016183037078008056 + ], + [ + "ta", + 0.0016079534543678164 + ], + [ + "ro", + 0.0016029407270252705 + ], + [ + "br", + 0.0013944837264716625 + ], + [ + "no", + 0.0012173464056104422 + ], + [ + "hi", + 0.0012170689878985286 + ], + [ + "ml", + 0.0011766506358981133 + ], + [ + "ur", + 0.0011379546485841274 + ], + [ + "gl", + 0.000845160917378962 + ], + [ + "ca", + 0.0008344284142367542 + ], + [ + "bg", + 0.0008042094414122403 + ], + [ + "bn", + 0.0007770298980176449 + ], + [ + "da", + 0.0007242404390126467 + ], + [ + "cs", + 0.0006454521208070219 + ], + [ + "he", + 0.0005184219335205853 + ], + [ + "eu", + 0.0005049262545071542 + ], + [ + "sn", + 0.00044171643094159663 + ], + [ + "sa", + 0.00043918981100432575 + ], + [ + "fo", + 0.0004253097577020526 + ], + [ + "mn", + 0.00041701211011968553 + ], + [ + "sl", + 0.00032301811734214425 + ], + [ + "ne", + 0.0003220700891688466 + ], + [ + "te", + 0.00030137671274133027 + ], + [ + "is", + 0.00026753998827189207 + ], + [ + "yo", + 0.00025998425553552806 + ], + [ + "be", + 0.00024122752074617893 + ], + [ + "bo", + 0.00022840149176772684 + ], + [ + "si", + 0.00022692228958476335 + ], + [ + "bs", + 0.0002250628749607131 + ], + [ + "hr", + 0.0002109643683070317 + ], + [ + "fa", + 0.00020420261716935784 + ], + [ + "my", + 0.00018192057905253023 + ], + [ + "et", + 0.0001797510776668787 + ], + [ + "mr", + 0.00017272122204303741 + ], + [ + "az", + 0.00016600842354819179 + ], + [ + "hy", + 0.0001651565544307232 + ], + [ + "oc", + 0.00016470340779051185 + ], + [ + "yi", + 0.00016019893519114703 + ], + [ + "lt", + 0.00012619022163562477 + ], + [ + "sk", + 0.00012606913514900953 + ], + [ + "sd", + 0.00011918327072635293 + ], + [ + "ht", + 0.00011089287727372721 + ], + [ + "lv", + 0.0001014478038996458 + ], + [ + "sr", + 9.155579027719796e-05 + ], + [ + "af", + 7.459888729499653e-05 + ], + [ + "kk", + 7.042823563097045e-05 + ], + [ + "sw", + 6.69257715344429e-05 + ], + [ + "kn", + 6.0597471019718796e-05 + ], + [ + "sq", + 4.746643753605895e-05 + ], + [ + "ka", + 4.628757596947253e-05 + ], + [ + "pa", + 4.3485764763318e-05 + ], + [ + "gu", + 4.154017733526416e-05 + ], + [ + "mk", + 3.943002229789272e-05 + ], + [ + "as", + 3.73153634427581e-05 + ], + [ + "ps", + 3.4734672226477414e-05 + ], + [ + "mt", + 2.6269663067068905e-05 + ], + [ + "lo", + 2.2949066988076083e-05 + ], + [ + "ln", + 1.9508688637870364e-05 + ], + [ + "am", + 1.8636617824085988e-05 + ], + [ + "so", + 6.972647497605067e-06 + ], + [ + "tg", + 8.662918844493106e-07 + ], + [ + "lb", + 4.17871575564277e-07 + ], + [ + "tt", + 4.16549028159352e-07 + ], + [ + "su", + 3.2217803891398944e-07 + ], + [ + "ha", + 9.557776081692282e-08 + ], + [ + "mg", + 9.28918311160487e-08 + ], + [ + "tk", + 8.901650261350369e-08 + ], + [ + "ba", + 8.200404266744954e-08 + ], + [ + "uz", + 1.0368610858790817e-08 + ] + ], + "transcription_options": { + "beam_size": 5, + "best_of": 5, + "patience": 1, + "length_penalty": 1, + "repetition_penalty": 1, + "no_repeat_ngram_size": 0, + "log_prob_threshold": -1.0, + "no_speech_threshold": 0.6, + "compression_ratio_threshold": 2.4, + "condition_on_previous_text": true, + "prompt_reset_on_temperature": 0.5, + "temperatures": [ + 0.0, + 0.2, + 0.4, + 0.6, + 0.8, + 1.0 + ], + "initial_prompt": null, + "prefix": null, + "suppress_blank": true, + "suppress_tokens": [ + 1, + 2, + 7, + 8, + 9, + 10, + 14, + 25, + 26, + 27, + 28, + 29, + 31, + 58, + 59, + 60, + 61, + 62, + 63, + 90, + 91, + 92, + 93, + 359, + 503, + 522, + 542, + 873, + 893, + 902, + 918, + 922, + 931, + 1350, + 1853, + 1982, + 2460, + 2627, + 3246, + 3253, + 3268, + 3536, + 3846, + 3961, + 4183, + 4667, + 6585, + 6647, + 7273, + 9061, + 9383, + 10428, + 10929, + 11938, + 12033, + 12331, + 12562, + 13793, + 14157, + 14635, + 15265, + 15618, + 16553, + 16604, + 18362, + 18956, + 20075, + 21675, + 22520, + 26130, + 26161, + 26435, + 28279, + 29464, + 31650, + 32302, + 32470, + 36865, + 42863, + 47425, + 49870, + 50254, + 50258, + 50358, + 50359, + 50360, + 50361, + 50362 + ], + "without_timestamps": false, + "max_initial_timestamp": 1.0, + "word_timestamps": false, + "prepend_punctuations": "\"'“¿([{-", + "append_punctuations": "\"'.。,,!!??::”)]}、", + "multilingual": false, + "max_new_tokens": null, + "clip_timestamps": [ + 0.0 + ], + "hallucination_silence_threshold": null, + "hotwords": null + }, + "vad_options": null + } + }, + { + "environmentId": "department", + "file": "public/ambience/department.wav", + "sha256": "aa43f3d1d3e7c2b1f8ace24ecbda45d0ea3a031db941c39506dc6c1665b8efa7", + "bytes": 576044, + "durationSeconds": 12.0, + "selectedSegmentStartSeconds": 90, + "sourceSha256": "261fda28722fba623483a90b32e7a2ec388c59887f56a5247156b53f1ffb6ccd", + "language": "en", + "languageProbability": 0.29920145869255066, + "segments": [ + { + "id": 1, + "seek": 0, + "start": 0.0, + "end": 12.0, + "text": " Thank you for watching!", + "tokens": [ + 50364, + 1044, + 291, + 337, + 1976, + 0, + 50964 + ], + "avg_logprob": -1.3012538105249405, + "compression_ratio": 0.7419354838709677, + "no_speech_prob": 0.3079261779785156, + "words": null, + "temperature": 1.0 + } + ], + "text": " Thank you for watching!", + "info": { + "language": "en", + "language_probability": 0.29920145869255066, + "duration": 12.0, + "duration_after_vad": 12.0, + "all_language_probs": [ + [ + "en", + 0.29920145869255066 + ], + [ + "ko", + 0.13077178597450256 + ], + [ + "ja", + 0.08216732740402222 + ], + [ + "nn", + 0.05335356295108795 + ], + [ + "haw", + 0.05278017371892929 + ], + [ + "jw", + 0.05180064216256142 + ], + [ + "zh", + 0.03412758931517601 + ], + [ + "la", + 0.031167756766080856 + ], + [ + "cy", + 0.030520116910338402 + ], + [ + "ru", + 0.029879210516810417 + ], + [ + "pt", + 0.025679297745227814 + ], + [ + "fr", + 0.016433652490377426 + ], + [ + "nl", + 0.01522440928965807 + ], + [ + "mi", + 0.014679675921797752 + ], + [ + "br", + 0.013814248144626617 + ], + [ + "es", + 0.007651722524315119 + ], + [ + "pl", + 0.007551968097686768 + ], + [ + "it", + 0.006900260224938393 + ], + [ + "tr", + 0.006672652903944254 + ], + [ + "de", + 0.0063318898901343346 + ], + [ + "uk", + 0.005810707341879606 + ], + [ + "sv", + 0.005656195338815451 + ], + [ + "vi", + 0.004295499064028263 + ], + [ + "id", + 0.0041047632694244385 + ], + [ + "fi", + 0.0040479558520019054 + ], + [ + "el", + 0.003759220475330949 + ], + [ + "ta", + 0.003565498162060976 + ], + [ + "ms", + 0.0034342403523623943 + ], + [ + "ar", + 0.0030276787001639605 + ], + [ + "km", + 0.0029730794485658407 + ], + [ + "gl", + 0.0025620260275900364 + ], + [ + "hu", + 0.002382095670327544 + ], + [ + "th", + 0.0023046790156513453 + ], + [ + "ca", + 0.002283673267811537 + ], + [ + "hi", + 0.002234259620308876 + ], + [ + "sn", + 0.0020846931729465723 + ], + [ + "bg", + 0.001775069860741496 + ], + [ + "ro", + 0.0017373685259371996 + ], + [ + "eu", + 0.0015633192379027605 + ], + [ + "tl", + 0.001451939926482737 + ], + [ + "da", + 0.0013117047492414713 + ], + [ + "no", + 0.0012505694758147001 + ], + [ + "ml", + 0.0012334388447925448 + ], + [ + "cs", + 0.0012045778566971421 + ], + [ + "bs", + 0.0011189855867996812 + ], + [ + "he", + 0.001106909243389964 + ], + [ + "yo", + 0.0010252654319629073 + ], + [ + "be", + 0.0009590881527401507 + ], + [ + "sa", + 0.0009540633764117956 + ], + [ + "te", + 0.000939254998229444 + ], + [ + "ur", + 0.0008043444831855595 + ], + [ + "hr", + 0.0006379004917107522 + ], + [ + "bn", + 0.000623481348156929 + ], + [ + "yi", + 0.0005946899182163179 + ], + [ + "si", + 0.0005925304722040892 + ], + [ + "mn", + 0.0004781913885381073 + ], + [ + "sl", + 0.0004579683591146022 + ], + [ + "oc", + 0.0004500890790950507 + ], + [ + "fo", + 0.00043965334771201015 + ], + [ + "is", + 0.0004292931407690048 + ], + [ + "fa", + 0.00040210550650954247 + ], + [ + "sr", + 0.00040090319816954434 + ], + [ + "ht", + 0.0003952806582674384 + ], + [ + "az", + 0.0003518332086969167 + ], + [ + "my", + 0.00034088798565790057 + ], + [ + "sd", + 0.00032111845212057233 + ], + [ + "ne", + 0.00031109474366530776 + ], + [ + "bo", + 0.0002920033875852823 + ], + [ + "lv", + 0.00024331724853254855 + ], + [ + "af", + 0.00023626428446732461 + ], + [ + "et", + 0.00022913435532245785 + ], + [ + "hy", + 0.00022630962484981865 + ], + [ + "lt", + 0.00020122549904044718 + ], + [ + "pa", + 0.00018300843657925725 + ], + [ + "kk", + 0.0001793812116375193 + ], + [ + "sk", + 0.00016666867304593325 + ], + [ + "sw", + 0.00016268905892502517 + ], + [ + "gu", + 0.00015051703667268157 + ], + [ + "ka", + 0.00013314718671608716 + ], + [ + "mk", + 0.00011886131687788293 + ], + [ + "sq", + 0.00010333908721804619 + ], + [ + "ps", + 0.00010103143722517416 + ], + [ + "kn", + 9.907769708661363e-05 + ], + [ + "mr", + 8.715104922885075e-05 + ], + [ + "as", + 5.379655340220779e-05 + ], + [ + "ln", + 3.995518636656925e-05 + ], + [ + "mt", + 3.835763345705345e-05 + ], + [ + "lo", + 1.858499672380276e-05 + ], + [ + "am", + 1.763097861839924e-05 + ], + [ + "so", + 1.4705210560350679e-05 + ], + [ + "tg", + 1.7199388366861967e-06 + ], + [ + "tt", + 1.2082668945367914e-06 + ], + [ + "su", + 7.245001825140207e-07 + ], + [ + "lb", + 6.479691023741907e-07 + ], + [ + "ha", + 3.4815778349184257e-07 + ], + [ + "mg", + 2.493364092970296e-07 + ], + [ + "tk", + 1.8413479097034724e-07 + ], + [ + "ba", + 1.617330838143971e-07 + ], + [ + "uz", + 1.495402202067453e-08 + ] + ], + "transcription_options": { + "beam_size": 5, + "best_of": 5, + "patience": 1, + "length_penalty": 1, + "repetition_penalty": 1, + "no_repeat_ngram_size": 0, + "log_prob_threshold": -1.0, + "no_speech_threshold": 0.6, + "compression_ratio_threshold": 2.4, + "condition_on_previous_text": true, + "prompt_reset_on_temperature": 0.5, + "temperatures": [ + 0.0, + 0.2, + 0.4, + 0.6, + 0.8, + 1.0 + ], + "initial_prompt": null, + "prefix": null, + "suppress_blank": true, + "suppress_tokens": [ + 1, + 2, + 7, + 8, + 9, + 10, + 14, + 25, + 26, + 27, + 28, + 29, + 31, + 58, + 59, + 60, + 61, + 62, + 63, + 90, + 91, + 92, + 93, + 359, + 503, + 522, + 542, + 873, + 893, + 902, + 918, + 922, + 931, + 1350, + 1853, + 1982, + 2460, + 2627, + 3246, + 3253, + 3268, + 3536, + 3846, + 3961, + 4183, + 4667, + 6585, + 6647, + 7273, + 9061, + 9383, + 10428, + 10929, + 11938, + 12033, + 12331, + 12562, + 13793, + 14157, + 14635, + 15265, + 15618, + 16553, + 16604, + 18362, + 18956, + 20075, + 21675, + 22520, + 26130, + 26161, + 26435, + 28279, + 29464, + 31650, + 32302, + 32470, + 36865, + 42863, + 47425, + 49870, + 50254, + 50258, + 50358, + 50359, + 50360, + 50361, + 50362 + ], + "without_timestamps": false, + "max_initial_timestamp": 1.0, + "word_timestamps": false, + "prepend_punctuations": "\"'“¿([{-", + "append_punctuations": "\"'.。,,!!??::”)]}、", + "multilingual": false, + "max_new_tokens": null, + "clip_timestamps": [ + 0.0 + ], + "hallucination_silence_threshold": null, + "hotwords": null + }, + "vad_options": null + } + }, + { + "environmentId": "market", + "file": "public/ambience/market.wav", + "sha256": "7a7a980845a4aade2a7e8a108eae746220a4688e92792ee93d3deb76b2a762f6", + "bytes": 576044, + "durationSeconds": 12.0, + "selectedSegmentStartSeconds": 60, + "sourceSha256": "fc0075dce8ad05b56460c9f18754c27b2021f21f1c780a595ccda648d33c941d", + "language": "ja", + "languageProbability": 0.15124011039733887, + "segments": [ + { + "id": 1, + "seek": 0, + "start": 0.0, + "end": 12.0, + "text": "ご視聴ありがとうございました", + "tokens": [ + 50364, + 9991, + 27333, + 8171, + 112, + 38538, + 50964 + ], + "avg_logprob": -1.0916412025690079, + "compression_ratio": 0.8571428571428571, + "no_speech_prob": 0.4130496084690094, + "words": null, + "temperature": 1.0 + } + ], + "text": "ご視聴ありがとうございました", + "info": { + "language": "ja", + "language_probability": 0.15124011039733887, + "duration": 12.0, + "duration_after_vad": 12.0, + "all_language_probs": [ + [ + "ja", + 0.15124011039733887 + ], + [ + "nn", + 0.13070914149284363 + ], + [ + "en", + 0.11620879173278809 + ], + [ + "jw", + 0.11289668828248978 + ], + [ + "ko", + 0.09580211341381073 + ], + [ + "zh", + 0.04083317145705223 + ], + [ + "ru", + 0.03127654641866684 + ], + [ + "fi", + 0.021822286769747734 + ], + [ + "pt", + 0.021365273743867874 + ], + [ + "fr", + 0.01927967555820942 + ], + [ + "cy", + 0.01737522892653942 + ], + [ + "vi", + 0.01640322618186474 + ], + [ + "it", + 0.015666015446186066 + ], + [ + "es", + 0.014876625500619411 + ], + [ + "de", + 0.014002110809087753 + ], + [ + "pl", + 0.01348754670470953 + ], + [ + "haw", + 0.01290903426706791 + ], + [ + "nl", + 0.012659870088100433 + ], + [ + "sv", + 0.01201621349900961 + ], + [ + "la", + 0.010100001469254494 + ], + [ + "id", + 0.010013015009462833 + ], + [ + "ms", + 0.007854966446757317 + ], + [ + "tr", + 0.0070586539804935455 + ], + [ + "ar", + 0.006666849367320538 + ], + [ + "km", + 0.006551101803779602 + ], + [ + "hu", + 0.0063847885467112064 + ], + [ + "th", + 0.006031486671417952 + ], + [ + "uk", + 0.005842127371579409 + ], + [ + "tl", + 0.005200542509555817 + ], + [ + "mi", + 0.004365543834865093 + ], + [ + "hi", + 0.0037120836786925793 + ], + [ + "br", + 0.003678116714581847 + ], + [ + "ta", + 0.003176128026098013 + ], + [ + "el", + 0.0028096726164221764 + ], + [ + "ml", + 0.002742454409599304 + ], + [ + "ro", + 0.0026684049516916275 + ], + [ + "gl", + 0.0024123424664139748 + ], + [ + "ur", + 0.0023023190442472696 + ], + [ + "te", + 0.0018027938203886151 + ], + [ + "no", + 0.001716580125503242 + ], + [ + "ne", + 0.0016587411519140005 + ], + [ + "sn", + 0.0014760340563952923 + ], + [ + "fo", + 0.00137498346157372 + ], + [ + "mn", + 0.0013414076529443264 + ], + [ + "sa", + 0.0012950410600751638 + ], + [ + "cs", + 0.00122535799164325 + ], + [ + "bg", + 0.0011755574960261583 + ], + [ + "ca", + 0.0011516399681568146 + ], + [ + "bs", + 0.001053916639648378 + ], + [ + "bn", + 0.0010007816599681973 + ], + [ + "hr", + 0.0009785117581486702 + ], + [ + "eu", + 0.0008765786769799888 + ], + [ + "fa", + 0.0007921901997178793 + ], + [ + "et", + 0.0007305101025849581 + ], + [ + "sl", + 0.0007276523974724114 + ], + [ + "da", + 0.000695452035870403 + ], + [ + "si", + 0.0006407470209524035 + ], + [ + "he", + 0.0005937076057307422 + ], + [ + "sd", + 0.0005933340871706605 + ], + [ + "yo", + 0.0005284252692945302 + ], + [ + "bo", + 0.0005179877043701708 + ], + [ + "is", + 0.0004880581982433796 + ], + [ + "my", + 0.00047765023191459477 + ], + [ + "lt", + 0.00037075637374073267 + ], + [ + "ht", + 0.0003670670266728848 + ], + [ + "oc", + 0.0003156816528644413 + ], + [ + "be", + 0.00031381953158415854 + ], + [ + "lv", + 0.0002926933520939201 + ], + [ + "sr", + 0.0002914203505497426 + ], + [ + "mr", + 0.0002775697212200612 + ], + [ + "yi", + 0.00024965734337456524 + ], + [ + "az", + 0.00021990398818161339 + ], + [ + "sw", + 0.00021845825540367514 + ], + [ + "sk", + 0.00021347928850445896 + ], + [ + "gu", + 0.00018636215827427804 + ], + [ + "pa", + 0.00018254252790939063 + ], + [ + "hy", + 0.00017403163656126708 + ], + [ + "af", + 0.00015788109158165753 + ], + [ + "kn", + 0.00014060130342841148 + ], + [ + "ka", + 0.00012093139230273664 + ], + [ + "sq", + 9.019481512950733e-05 + ], + [ + "mk", + 8.083099237410352e-05 + ], + [ + "kk", + 8.047294249990955e-05 + ], + [ + "as", + 6.985951768001541e-05 + ], + [ + "ps", + 5.751569551648572e-05 + ], + [ + "mt", + 5.6755830883048475e-05 + ], + [ + "lo", + 5.058529495727271e-05 + ], + [ + "ln", + 4.556696876534261e-05 + ], + [ + "am", + 3.88264270441141e-05 + ], + [ + "so", + 1.8411701603326946e-05 + ], + [ + "tg", + 1.45881188018393e-06 + ], + [ + "tt", + 8.214946660700662e-07 + ], + [ + "su", + 8.056078399931721e-07 + ], + [ + "lb", + 4.6446947976619413e-07 + ], + [ + "ha", + 2.509659395855124e-07 + ], + [ + "mg", + 2.0448656812277477e-07 + ], + [ + "tk", + 1.6693353188657056e-07 + ], + [ + "ba", + 1.3689005129435827e-07 + ], + [ + "uz", + 1.826842677132845e-08 + ] + ], + "transcription_options": { + "beam_size": 5, + "best_of": 5, + "patience": 1, + "length_penalty": 1, + "repetition_penalty": 1, + "no_repeat_ngram_size": 0, + "log_prob_threshold": -1.0, + "no_speech_threshold": 0.6, + "compression_ratio_threshold": 2.4, + "condition_on_previous_text": true, + "prompt_reset_on_temperature": 0.5, + "temperatures": [ + 0.0, + 0.2, + 0.4, + 0.6, + 0.8, + 1.0 + ], + "initial_prompt": null, + "prefix": null, + "suppress_blank": true, + "suppress_tokens": [ + 1, + 2, + 7, + 8, + 9, + 10, + 14, + 25, + 26, + 27, + 28, + 29, + 31, + 58, + 59, + 60, + 61, + 62, + 63, + 90, + 91, + 92, + 93, + 359, + 503, + 522, + 542, + 873, + 893, + 902, + 918, + 922, + 931, + 1350, + 1853, + 1982, + 2460, + 2627, + 3246, + 3253, + 3268, + 3536, + 3846, + 3961, + 4183, + 4667, + 6585, + 6647, + 7273, + 9061, + 9383, + 10428, + 10929, + 11938, + 12033, + 12331, + 12562, + 13793, + 14157, + 14635, + 15265, + 15618, + 16553, + 16604, + 18362, + 18956, + 20075, + 21675, + 22520, + 26130, + 26161, + 26435, + 28279, + 29464, + 31650, + 32302, + 32470, + 36865, + 42863, + 47425, + 49870, + 50254, + 50258, + 50358, + 50359, + 50360, + 50361, + 50362 + ], + "without_timestamps": false, + "max_initial_timestamp": 1.0, + "word_timestamps": false, + "prepend_punctuations": "\"'“¿([{-", + "append_punctuations": "\"'.。,,!!??::”)]}、", + "multilingual": false, + "max_new_tokens": null, + "clip_timestamps": [ + 0.0 + ], + "hallucination_silence_threshold": null, + "hotwords": null + }, + "vad_options": null + } + }, + { + "environmentId": "subway", + "file": "public/ambience/subway.wav", + "sha256": "9faf70b68617d267b367a0f3692ed90015458543ab4b0844f6c704e6a724728f", + "bytes": 576044, + "durationSeconds": 12.0, + "selectedSegmentStartSeconds": 65, + "sourceSha256": "41fcf064cde53cef1528fe98721347851e60c070d8ff9f213f354025cf272d4c", + "language": "en", + "languageProbability": 0.28915584087371826, + "segments": [ + { + "id": 1, + "seek": 0, + "start": 0.0, + "end": 7.0, + "text": " Thank you for watching.", + "tokens": [ + 50364, + 1044, + 291, + 337, + 1976, + 13, + 50714 + ], + "avg_logprob": -1.1550373882055283, + "compression_ratio": 0.7419354838709677, + "no_speech_prob": 0.5948910713195801, + "words": null, + "temperature": 1.0 + } + ], + "text": " Thank you for watching.", + "info": { + "language": "en", + "language_probability": 0.28915584087371826, + "duration": 12.0, + "duration_after_vad": 12.0, + "all_language_probs": [ + [ + "en", + 0.28915584087371826 + ], + [ + "nn", + 0.1693631410598755 + ], + [ + "ja", + 0.11803476512432098 + ], + [ + "jw", + 0.05933638662099838 + ], + [ + "ko", + 0.03362409397959709 + ], + [ + "ru", + 0.03096536174416542 + ], + [ + "zh", + 0.030727406963706017 + ], + [ + "cy", + 0.022334739565849304 + ], + [ + "de", + 0.021087361499667168 + ], + [ + "pt", + 0.01779017224907875 + ], + [ + "es", + 0.01759237051010132 + ], + [ + "fr", + 0.015626264736056328 + ], + [ + "la", + 0.015205309726297855 + ], + [ + "pl", + 0.014201360754668713 + ], + [ + "uk", + 0.010455281473696232 + ], + [ + "nl", + 0.01011310052126646 + ], + [ + "vi", + 0.008710349909961224 + ], + [ + "ms", + 0.007713954895734787 + ], + [ + "km", + 0.007671126630157232 + ], + [ + "mi", + 0.007628215476870537 + ], + [ + "ar", + 0.007582304533571005 + ], + [ + "ro", + 0.007096337620168924 + ], + [ + "it", + 0.00608866149559617 + ], + [ + "tr", + 0.005928776226937771 + ], + [ + "haw", + 0.00468703918159008 + ], + [ + "id", + 0.004124944563955069 + ], + [ + "th", + 0.004044169560074806 + ], + [ + "hu", + 0.003919548820704222 + ], + [ + "fi", + 0.0034936442971229553 + ], + [ + "sv", + 0.0034291110932826996 + ], + [ + "tl", + 0.0030384904239326715 + ], + [ + "gl", + 0.002831952413544059 + ], + [ + "br", + 0.0024798137601464987 + ], + [ + "el", + 0.002284045098349452 + ], + [ + "mn", + 0.0019520550267770886 + ], + [ + "cs", + 0.0019138115458190441 + ], + [ + "ur", + 0.0018359908135607839 + ], + [ + "ml", + 0.001799243618734181 + ], + [ + "hi", + 0.0016817081486806273 + ], + [ + "sn", + 0.0016395524144172668 + ], + [ + "he", + 0.0015351868933066726 + ], + [ + "fo", + 0.0012798592215403914 + ], + [ + "bn", + 0.0011803082888945937 + ], + [ + "bg", + 0.0011647996725514531 + ], + [ + "sa", + 0.0010189915774390101 + ], + [ + "ca", + 0.0009957606671378016 + ], + [ + "ta", + 0.0009402522700838745 + ], + [ + "no", + 0.0007946531404741108 + ], + [ + "fa", + 0.0007732976810075343 + ], + [ + "da", + 0.0006840363494120538 + ], + [ + "sl", + 0.0006514036795124412 + ], + [ + "eu", + 0.0006392901414074004 + ], + [ + "ne", + 0.0006373554933816195 + ], + [ + "te", + 0.0005383870447985828 + ], + [ + "yo", + 0.0005277472082525492 + ], + [ + "mr", + 0.00044607152813114226 + ], + [ + "yi", + 0.00043996257591061294 + ], + [ + "my", + 0.0004386372456792742 + ], + [ + "hr", + 0.0004154419293627143 + ], + [ + "sd", + 0.0004072552255820483 + ], + [ + "bo", + 0.00040412391535937786 + ], + [ + "be", + 0.00039997833664529026 + ], + [ + "ht", + 0.0003732247569132596 + ], + [ + "bs", + 0.0003598557668738067 + ], + [ + "oc", + 0.0003569869149941951 + ], + [ + "hy", + 0.0003474977856967598 + ], + [ + "si", + 0.0002904074499383569 + ], + [ + "af", + 0.0002772034495137632 + ], + [ + "az", + 0.00027386227156966925 + ], + [ + "ka", + 0.00022625118435826153 + ], + [ + "is", + 0.00021034516976214945 + ], + [ + "sk", + 0.00020800353377126157 + ], + [ + "sw", + 0.00020667693752329797 + ], + [ + "et", + 0.00016407888324465603 + ], + [ + "lv", + 0.00014712949632667005 + ], + [ + "sr", + 0.00012570350372698158 + ], + [ + "lt", + 0.0001211818671436049 + ], + [ + "ps", + 0.00010412423580419272 + ], + [ + "kk", + 8.892994810594246e-05 + ], + [ + "pa", + 7.666285091545433e-05 + ], + [ + "gu", + 7.527173147536814e-05 + ], + [ + "sq", + 7.081842340994626e-05 + ], + [ + "mt", + 6.48959685349837e-05 + ], + [ + "kn", + 5.677832814399153e-05 + ], + [ + "as", + 5.6724744354141876e-05 + ], + [ + "mk", + 5.6454689911333844e-05 + ], + [ + "ln", + 4.989469744032249e-05 + ], + [ + "lo", + 4.770006489707157e-05 + ], + [ + "am", + 4.289328717277385e-05 + ], + [ + "so", + 1.4930556972103659e-05 + ], + [ + "tg", + 1.655060032135225e-06 + ], + [ + "lb", + 1.020634613269067e-06 + ], + [ + "tt", + 7.866203759476775e-07 + ], + [ + "su", + 5.193603556108428e-07 + ], + [ + "ha", + 3.4847025176532043e-07 + ], + [ + "mg", + 1.8038738858194847e-07 + ], + [ + "tk", + 1.423035058678579e-07 + ], + [ + "ba", + 1.1261751353686122e-07 + ], + [ + "uz", + 2.322839343094074e-08 + ] + ], + "transcription_options": { + "beam_size": 5, + "best_of": 5, + "patience": 1, + "length_penalty": 1, + "repetition_penalty": 1, + "no_repeat_ngram_size": 0, + "log_prob_threshold": -1.0, + "no_speech_threshold": 0.6, + "compression_ratio_threshold": 2.4, + "condition_on_previous_text": true, + "prompt_reset_on_temperature": 0.5, + "temperatures": [ + 0.0, + 0.2, + 0.4, + 0.6, + 0.8, + 1.0 + ], + "initial_prompt": null, + "prefix": null, + "suppress_blank": true, + "suppress_tokens": [ + 1, + 2, + 7, + 8, + 9, + 10, + 14, + 25, + 26, + 27, + 28, + 29, + 31, + 58, + 59, + 60, + 61, + 62, + 63, + 90, + 91, + 92, + 93, + 359, + 503, + 522, + 542, + 873, + 893, + 902, + 918, + 922, + 931, + 1350, + 1853, + 1982, + 2460, + 2627, + 3246, + 3253, + 3268, + 3536, + 3846, + 3961, + 4183, + 4667, + 6585, + 6647, + 7273, + 9061, + 9383, + 10428, + 10929, + 11938, + 12033, + 12331, + 12562, + 13793, + 14157, + 14635, + 15265, + 15618, + 16553, + 16604, + 18362, + 18956, + 20075, + 21675, + 22520, + 26130, + 26161, + 26435, + 28279, + 29464, + 31650, + 32302, + 32470, + 36865, + 42863, + 47425, + 49870, + 50254, + 50258, + 50358, + 50359, + 50360, + 50361, + 50362 + ], + "without_timestamps": false, + "max_initial_timestamp": 1.0, + "word_timestamps": false, + "prepend_punctuations": "\"'“¿([{-", + "append_punctuations": "\"'.。,,!!??::”)]}、", + "multilingual": false, + "max_new_tokens": null, + "clip_timestamps": [ + 0.0 + ], + "hallucination_silence_threshold": null, + "hotwords": null + }, + "vad_options": null + } + }, + { + "environmentId": "cafe", + "file": "public/ambience/cafe.wav", + "sha256": "802a956e91b85a2fdd0e1f161d75bfada7a53499bcb57ba7f578411480ded216", + "bytes": 576044, + "durationSeconds": 12.0, + "selectedSegmentStartSeconds": 180, + "sourceSha256": "6360791fdcee1f64638f0fc9abd6d2c7a1aa75fd3d2b80033170a02d025099dc", + "language": "en", + "languageProbability": 0.25277179479599, + "segments": [ + { + "id": 1, + "seek": 0, + "start": 0.0, + "end": 12.0, + "text": " Thank you for watching.", + "tokens": [ + 50364, + 1044, + 291, + 337, + 1976, + 13, + 50964 + ], + "avg_logprob": -1.174854263663292, + "compression_ratio": 0.7419354838709677, + "no_speech_prob": 0.46528390049934387, + "words": null, + "temperature": 1.0 + } + ], + "text": " Thank you for watching.", + "info": { + "language": "en", + "language_probability": 0.25277179479599, + "duration": 12.0, + "duration_after_vad": 12.0, + "all_language_probs": [ + [ + "en", + 0.25277179479599 + ], + [ + "ja", + 0.1837129145860672 + ], + [ + "nn", + 0.08806584030389786 + ], + [ + "ko", + 0.06835765391588211 + ], + [ + "jw", + 0.06396833807229996 + ], + [ + "zh", + 0.04461584985256195 + ], + [ + "ru", + 0.043603695929050446 + ], + [ + "pt", + 0.02162773907184601 + ], + [ + "de", + 0.016684655100107193 + ], + [ + "pl", + 0.01636171154677868 + ], + [ + "fr", + 0.01596103236079216 + ], + [ + "la", + 0.01374192163348198 + ], + [ + "nl", + 0.012101612985134125 + ], + [ + "cy", + 0.01083532627671957 + ], + [ + "uk", + 0.008698850870132446 + ], + [ + "it", + 0.008505879901349545 + ], + [ + "vi", + 0.007539062760770321 + ], + [ + "km", + 0.00729911495000124 + ], + [ + "ro", + 0.006897915620356798 + ], + [ + "ms", + 0.0065629007294774055 + ], + [ + "es", + 0.006429711356759071 + ], + [ + "th", + 0.00632438575848937 + ], + [ + "haw", + 0.00609162263572216 + ], + [ + "br", + 0.006054451689124107 + ], + [ + "tr", + 0.005411623511463404 + ], + [ + "sv", + 0.0047093648463487625 + ], + [ + "id", + 0.004478011280298233 + ], + [ + "ar", + 0.004346380475908518 + ], + [ + "hi", + 0.004210968967527151 + ], + [ + "el", + 0.0036163439508527517 + ], + [ + "ta", + 0.0036158128641545773 + ], + [ + "mi", + 0.00321488780900836 + ], + [ + "sn", + 0.0030714115127921104 + ], + [ + "bg", + 0.002895898884162307 + ], + [ + "fi", + 0.002685027662664652 + ], + [ + "hu", + 0.002524691866710782 + ], + [ + "he", + 0.0019229239551350474 + ], + [ + "ur", + 0.0018139759777113795 + ], + [ + "ml", + 0.0018090730300173163 + ], + [ + "sa", + 0.0017924869898706675 + ], + [ + "cs", + 0.0017915265634655952 + ], + [ + "tl", + 0.0017146705649793148 + ], + [ + "bn", + 0.0015494510298594832 + ], + [ + "gl", + 0.0014434319455176592 + ], + [ + "te", + 0.0013925954699516296 + ], + [ + "mn", + 0.0012634304584935308 + ], + [ + "yo", + 0.0011347881518304348 + ], + [ + "ca", + 0.0009590118424966931 + ], + [ + "fo", + 0.0009055256959982216 + ], + [ + "hr", + 0.0006694837938994169 + ], + [ + "fa", + 0.0006535256979987025 + ], + [ + "eu", + 0.0006242599920369685 + ], + [ + "sl", + 0.0006145315710455179 + ], + [ + "yi", + 0.0006012419471517205 + ], + [ + "oc", + 0.0005972378421574831 + ], + [ + "no", + 0.0005867576692253351 + ], + [ + "bo", + 0.000586249225307256 + ], + [ + "hy", + 0.0005702449707314372 + ], + [ + "ne", + 0.0005623158649541438 + ], + [ + "bs", + 0.000536212872248143 + ], + [ + "sd", + 0.000528552511241287 + ], + [ + "my", + 0.0005036703660152853 + ], + [ + "be", + 0.00047387342783622444 + ], + [ + "da", + 0.00043586918036453426 + ], + [ + "ht", + 0.0003941136528737843 + ], + [ + "mr", + 0.00039173997356556356 + ], + [ + "si", + 0.0003665560798253864 + ], + [ + "sr", + 0.0002610220399219543 + ], + [ + "az", + 0.0002525894669815898 + ], + [ + "sw", + 0.0002367393026361242 + ], + [ + "sk", + 0.00023118137323763222 + ], + [ + "gu", + 0.0001958012580871582 + ], + [ + "lv", + 0.00019452799460850656 + ], + [ + "af", + 0.0001830396067816764 + ], + [ + "lt", + 0.00017543336434755474 + ], + [ + "ka", + 0.0001753017568262294 + ], + [ + "et", + 0.00016050174599513412 + ], + [ + "is", + 0.00015617643657606095 + ], + [ + "kn", + 0.0001334395637968555 + ], + [ + "pa", + 0.00011736652959370986 + ], + [ + "ps", + 0.00011018916848115623 + ], + [ + "kk", + 0.00010950383875751868 + ], + [ + "sq", + 0.00010514975292608142 + ], + [ + "mk", + 9.644175588618964e-05 + ], + [ + "as", + 9.391592175234109e-05 + ], + [ + "lo", + 7.69794060033746e-05 + ], + [ + "mt", + 6.017489795340225e-05 + ], + [ + "ln", + 4.337861901149154e-05 + ], + [ + "am", + 3.270348679507151e-05 + ], + [ + "so", + 1.0643788300512824e-05 + ], + [ + "tg", + 1.5167303217822337e-06 + ], + [ + "tt", + 7.135560622373305e-07 + ], + [ + "lb", + 5.991132070448657e-07 + ], + [ + "su", + 5.15013482527138e-07 + ], + [ + "ha", + 2.236176754877306e-07 + ], + [ + "mg", + 1.6373378741718625e-07 + ], + [ + "tk", + 1.588871754165666e-07 + ], + [ + "ba", + 1.38831097729053e-07 + ], + [ + "uz", + 1.7030190591071914e-08 + ] + ], + "transcription_options": { + "beam_size": 5, + "best_of": 5, + "patience": 1, + "length_penalty": 1, + "repetition_penalty": 1, + "no_repeat_ngram_size": 0, + "log_prob_threshold": -1.0, + "no_speech_threshold": 0.6, + "compression_ratio_threshold": 2.4, + "condition_on_previous_text": true, + "prompt_reset_on_temperature": 0.5, + "temperatures": [ + 0.0, + 0.2, + 0.4, + 0.6, + 0.8, + 1.0 + ], + "initial_prompt": null, + "prefix": null, + "suppress_blank": true, + "suppress_tokens": [ + 1, + 2, + 7, + 8, + 9, + 10, + 14, + 25, + 26, + 27, + 28, + 29, + 31, + 58, + 59, + 60, + 61, + 62, + 63, + 90, + 91, + 92, + 93, + 359, + 503, + 522, + 542, + 873, + 893, + 902, + 918, + 922, + 931, + 1350, + 1853, + 1982, + 2460, + 2627, + 3246, + 3253, + 3268, + 3536, + 3846, + 3961, + 4183, + 4667, + 6585, + 6647, + 7273, + 9061, + 9383, + 10428, + 10929, + 11938, + 12033, + 12331, + 12562, + 13793, + 14157, + 14635, + 15265, + 15618, + 16553, + 16604, + 18362, + 18956, + 20075, + 21675, + 22520, + 26130, + 26161, + 26435, + 28279, + 29464, + 31650, + 32302, + 32470, + 36865, + 42863, + 47425, + 49870, + 50254, + 50258, + 50358, + 50359, + 50360, + 50361, + 50362 + ], + "without_timestamps": false, + "max_initial_timestamp": 1.0, + "word_timestamps": false, + "prepend_punctuations": "\"'“¿([{-", + "append_punctuations": "\"'.。,,!!??::”)]}、", + "multilingual": false, + "max_new_tokens": null, + "clip_timestamps": [ + 0.0 + ], + "hallucination_silence_threshold": null, + "hotwords": null + }, + "vad_options": null + } + }, + { + "environmentId": "rain", + "file": "public/ambience/rain.wav", + "sha256": "f4315084e820f742b0709de5bb0d1abd3d5af1730620e08c2948b70347356dd9", + "bytes": 576044, + "durationSeconds": 12.0, + "selectedSegmentStartSeconds": 180, + "sourceSha256": "ef0511593b1bb0ba47d5c5dafd83eb07ba854b5a65fd5d41b8c76a1b3ff2c22a", + "language": "nn", + "languageProbability": 0.5633389949798584, + "segments": [ + { + "id": 1, + "seek": 0, + "start": 0.0, + "end": 2.0, + "text": " Let's go!", + "tokens": [ + 50364, + 961, + 311, + 352, + 0, + 50464 + ], + "avg_logprob": -1.2815486363002233, + "compression_ratio": 0.5294117647058824, + "no_speech_prob": 0.4753601849079132, + "words": null, + "temperature": 1.0 + } + ], + "text": " Let's go!", + "info": { + "language": "nn", + "language_probability": 0.5633389949798584, + "duration": 12.0, + "duration_after_vad": 12.0, + "all_language_probs": [ + [ + "nn", + 0.5633389949798584 + ], + [ + "en", + 0.19288070499897003 + ], + [ + "ja", + 0.061488956212997437 + ], + [ + "ru", + 0.043278153985738754 + ], + [ + "zh", + 0.019148217514157295 + ], + [ + "fr", + 0.016931571066379547 + ], + [ + "ko", + 0.014599142596125603 + ], + [ + "cy", + 0.012626229785382748 + ], + [ + "de", + 0.011386370286345482 + ], + [ + "pl", + 0.00954439491033554 + ], + [ + "la", + 0.008334594778716564 + ], + [ + "nl", + 0.006606897339224815 + ], + [ + "pt", + 0.005276457406580448 + ], + [ + "it", + 0.004949106834828854 + ], + [ + "es", + 0.004673764109611511 + ], + [ + "haw", + 0.002406542655080557 + ], + [ + "sv", + 0.002192482352256775 + ], + [ + "jw", + 0.0021281337831169367 + ], + [ + "tr", + 0.0020784807857125998 + ], + [ + "ar", + 0.0020567572209984064 + ], + [ + "ms", + 0.0015225106617435813 + ], + [ + "fi", + 0.0011349720880389214 + ], + [ + "br", + 0.001013672212138772 + ], + [ + "th", + 0.0008699038298800588 + ], + [ + "ro", + 0.000826466828584671 + ], + [ + "hu", + 0.0007259942358359694 + ], + [ + "uk", + 0.0006152127170935273 + ], + [ + "hi", + 0.0005684337229467928 + ], + [ + "el", + 0.0004689405905082822 + ], + [ + "vi", + 0.00042304364615119994 + ], + [ + "bg", + 0.0003978074819315225 + ], + [ + "ml", + 0.00034311338094994426 + ], + [ + "id", + 0.00032494988408870995 + ], + [ + "gl", + 0.0003136785817332566 + ], + [ + "cs", + 0.00030518416315317154 + ], + [ + "km", + 0.0002988689229823649 + ], + [ + "fo", + 0.00029011329752393067 + ], + [ + "mi", + 0.0002769167476799339 + ], + [ + "he", + 0.00026465015253052115 + ], + [ + "mn", + 0.0001690880162641406 + ], + [ + "bn", + 0.00015718871145509183 + ], + [ + "sn", + 0.00015648781845811754 + ], + [ + "ta", + 0.00015420574345625937 + ], + [ + "no", + 0.00015255316975526512 + ], + [ + "ur", + 0.00013181152462493628 + ], + [ + "ca", + 0.0001280055003007874 + ], + [ + "sa", + 0.00012102258915547282 + ], + [ + "sk", + 0.00011742245260393247 + ], + [ + "oc", + 0.00011698463640641421 + ], + [ + "da", + 0.00010923911759164184 + ], + [ + "sl", + 0.00010754060349427164 + ], + [ + "hr", + 9.633848094381392e-05 + ], + [ + "tl", + 9.61712357820943e-05 + ], + [ + "fa", + 9.236453479388729e-05 + ], + [ + "eu", + 9.038725693244487e-05 + ], + [ + "yo", + 8.429165609413758e-05 + ], + [ + "te", + 7.94818697613664e-05 + ], + [ + "af", + 7.879852637415752e-05 + ], + [ + "bo", + 7.65777804190293e-05 + ], + [ + "bs", + 6.30081704002805e-05 + ], + [ + "lv", + 5.4819400247652084e-05 + ], + [ + "yi", + 5.301545752445236e-05 + ], + [ + "lt", + 4.902454747934826e-05 + ], + [ + "my", + 4.7195757360896096e-05 + ], + [ + "be", + 4.419935430632904e-05 + ], + [ + "si", + 4.3933672714047134e-05 + ], + [ + "ne", + 4.141459794482216e-05 + ], + [ + "is", + 4.0472477849107236e-05 + ], + [ + "ht", + 3.84630766347982e-05 + ], + [ + "et", + 3.508515146677382e-05 + ], + [ + "sw", + 2.6730247554951347e-05 + ], + [ + "az", + 2.4934372049756348e-05 + ], + [ + "mr", + 2.473204949637875e-05 + ], + [ + "sd", + 2.317014877917245e-05 + ], + [ + "sq", + 2.260103792650625e-05 + ], + [ + "sr", + 2.11072874662932e-05 + ], + [ + "hy", + 1.8475568140274845e-05 + ], + [ + "ka", + 1.3406631296675187e-05 + ], + [ + "pa", + 1.2741802493110299e-05 + ], + [ + "mk", + 1.2546652214950882e-05 + ], + [ + "kk", + 1.1858737707370892e-05 + ], + [ + "mt", + 1.1552896467037499e-05 + ], + [ + "kn", + 1.030369912768947e-05 + ], + [ + "lo", + 5.989861165289767e-06 + ], + [ + "am", + 4.996818915969925e-06 + ], + [ + "as", + 4.2156239032919984e-06 + ], + [ + "ps", + 4.1910830077540595e-06 + ], + [ + "gu", + 3.876265964208869e-06 + ], + [ + "ln", + 3.7434938349178992e-06 + ], + [ + "so", + 1.2643891977859312e-06 + ], + [ + "tg", + 1.9545284146715858e-07 + ], + [ + "lb", + 1.6405122948981443e-07 + ], + [ + "tt", + 1.3962724665361748e-07 + ], + [ + "su", + 1.825249285047903e-08 + ], + [ + "tk", + 1.807128668929181e-08 + ], + [ + "mg", + 1.5554581622723163e-08 + ], + [ + "ba", + 1.3870384840686256e-08 + ], + [ + "ha", + 7.379866051593353e-09 + ], + [ + "uz", + 2.0299140146562422e-09 + ] + ], + "transcription_options": { + "beam_size": 5, + "best_of": 5, + "patience": 1, + "length_penalty": 1, + "repetition_penalty": 1, + "no_repeat_ngram_size": 0, + "log_prob_threshold": -1.0, + "no_speech_threshold": 0.6, + "compression_ratio_threshold": 2.4, + "condition_on_previous_text": true, + "prompt_reset_on_temperature": 0.5, + "temperatures": [ + 0.0, + 0.2, + 0.4, + 0.6, + 0.8, + 1.0 + ], + "initial_prompt": null, + "prefix": null, + "suppress_blank": true, + "suppress_tokens": [ + 1, + 2, + 7, + 8, + 9, + 10, + 14, + 25, + 26, + 27, + 28, + 29, + 31, + 58, + 59, + 60, + 61, + 62, + 63, + 90, + 91, + 92, + 93, + 359, + 503, + 522, + 542, + 873, + 893, + 902, + 918, + 922, + 931, + 1350, + 1853, + 1982, + 2460, + 2627, + 3246, + 3253, + 3268, + 3536, + 3846, + 3961, + 4183, + 4667, + 6585, + 6647, + 7273, + 9061, + 9383, + 10428, + 10929, + 11938, + 12033, + 12331, + 12562, + 13793, + 14157, + 14635, + 15265, + 15618, + 16553, + 16604, + 18362, + 18956, + 20075, + 21675, + 22520, + 26130, + 26161, + 26435, + 28279, + 29464, + 31650, + 32302, + 32470, + 36865, + 42863, + 47425, + 49870, + 50254, + 50258, + 50358, + 50359, + 50360, + 50361, + 50362 + ], + "without_timestamps": false, + "max_initial_timestamp": 1.0, + "word_timestamps": false, + "prepend_punctuations": "\"'“¿([{-", + "append_punctuations": "\"'.。,,!!??::”)]}、", + "multilingual": false, + "max_new_tokens": null, + "clip_timestamps": [ + 0.0 + ], + "hallucination_silence_threshold": null, + "hotwords": null + }, + "vad_options": null + } + } + ] +} diff --git a/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/npm-audit.json b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/npm-audit.json new file mode 100644 index 0000000..c046bc2 --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/npm-audit.json @@ -0,0 +1,22 @@ +{ + "auditReportVersion": 2, + "vulnerabilities": {}, + "metadata": { + "vulnerabilities": { + "info": 0, + "low": 0, + "moderate": 0, + "high": 0, + "critical": 0, + "total": 0 + }, + "dependencies": { + "prod": 4, + "dev": 260, + "optional": 27, + "peer": 8, + "peerOptional": 0, + "total": 263 + } + } +} diff --git a/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/preservation.json b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/preservation.json new file mode 100644 index 0000000..1780d5c --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/preservation.json @@ -0,0 +1,3268 @@ +{ + "verifiedAtUtc": "2026-10-14T09:23:08.802618+00:00", + "unchangedVoiceWavs": 101, + "unchangedAmbienceWavs": 5, + "changedAmbienceWavs": [ + "public/ambience/cafe.wav", + "public/ambience/mall.wav", + "public/ambience/market.wav" + ], + "historicalAgentFilesUnchanged": 397, + "trackedHistoricalAgentFilesMatchHead": 180, + "priorAgentFiles": [ + { + "file": ".agent/ACCEPTANCE-v0.1.1.md", + "beforeSha256": "7e9d5aa5c608d3d86c0c30a51a8322713a2c5d072e57002ac5af9b63127c68a5", + "afterSha256": "7e9d5aa5c608d3d86c0c30a51a8322713a2c5d072e57002ac5af9b63127c68a5" + }, + { + "file": ".agent/ACCEPTANCE-v0.2.3.md", + "beforeSha256": "4698a24cf492562c0f10b243c06a0ed2f930a9f0828f3ac08e0507d7a1cf7267", + "afterSha256": "4698a24cf492562c0f10b243c06a0ed2f930a9f0828f3ac08e0507d7a1cf7267" + }, + { + "file": ".agent/ACCEPTANCE.md", + "beforeSha256": "57598e4c5c37a658ce5fe366826983987178ed9c565355413ab3669c839eec78", + "afterSha256": "57598e4c5c37a658ce5fe366826983987178ed9c565355413ab3669c839eec78" + }, + { + "file": ".agent/CONTEXT.md", + "beforeSha256": "712bd056cfc8d0254d6c96e7a604d364779d3734d14899111792e7f343e6819b", + "afterSha256": "712bd056cfc8d0254d6c96e7a604d364779d3734d14899111792e7f343e6819b" + }, + { + "file": ".agent/RESULT-v0.1.1.md", + "beforeSha256": "d5d7077d4977d70a89086801dd8e7d5ae04e16a8e8009e41f3216008b743ac5b", + "afterSha256": "d5d7077d4977d70a89086801dd8e7d5ae04e16a8e8009e41f3216008b743ac5b" + }, + { + "file": ".agent/RESULT.md", + "beforeSha256": "eef6d73a67a8a7e90cd7b4747debc5976cc51571bc268328634413f698d0e311", + "afterSha256": "eef6d73a67a8a7e90cd7b4747debc5976cc51571bc268328634413f698d0e311" + }, + { + "file": ".agent/TASK-v0.1.1.md", + "beforeSha256": "4e4a81c02cf16ae8a2a6b53da8501de512b6a6387d7d4eaf932833c63ada4aa7", + "afterSha256": "4e4a81c02cf16ae8a2a6b53da8501de512b6a6387d7d4eaf932833c63ada4aa7" + }, + { + "file": ".agent/TASK-v0.2.3.md", + "beforeSha256": "46ae8118506c756b97e29424e580843d0557c2f663f069e9ae71c04904fafb18", + "afterSha256": "46ae8118506c756b97e29424e580843d0557c2f663f069e9ae71c04904fafb18" + }, + { + "file": ".agent/TASK.md", + "beforeSha256": "7e52739d5de3161aa60004ca8e65b5a5041d62c1b6a0e50c6c72ad8f6b183d61", + "afterSha256": "7e52739d5de3161aa60004ca8e65b5a5041d62c1b6a0e50c6c72ad8f6b183d61" + }, + { + "file": ".agent/evidence/01-content-green.log", + "beforeSha256": "5585acd257b49225218835acd69a1d240c7737d12dba62949f31a5b7c1c9ed2a", + "afterSha256": "5585acd257b49225218835acd69a1d240c7737d12dba62949f31a5b7c1c9ed2a" + }, + { + "file": ".agent/evidence/01-content-red.log", + "beforeSha256": "0f28fe2ae2c4669a52ba2fc15bfa6285e4922474dc2b2571098b522679948e12", + "afterSha256": "0f28fe2ae2c4669a52ba2fc15bfa6285e4922474dc2b2571098b522679948e12" + }, + { + "file": ".agent/evidence/02-game-green.log", + "beforeSha256": "5ca5895f8a09f4e9de7a846bf9ab37fb3715623e8e7654dab095505c097fc0c7", + "afterSha256": "5ca5895f8a09f4e9de7a846bf9ab37fb3715623e8e7654dab095505c097fc0c7" + }, + { + "file": ".agent/evidence/02-game-red.log", + "beforeSha256": "78468ee5c25c1685f3613926f636b6fb4569227533feda3547afc6b8123d6452", + "afterSha256": "78468ee5c25c1685f3613926f636b6fb4569227533feda3547afc6b8123d6452" + }, + { + "file": ".agent/evidence/03-dsp-green.log", + "beforeSha256": "d3d08683a1426b845a2e987572861b82b3ac978b8c352991950c0f32a473d3de", + "afterSha256": "d3d08683a1426b845a2e987572861b82b3ac978b8c352991950c0f32a473d3de" + }, + { + "file": ".agent/evidence/03-dsp-intermediate.log", + "beforeSha256": "084a52294f718718256eb1516048a672d045a5f7dcb5d11c646092d29efbab58", + "afterSha256": "084a52294f718718256eb1516048a672d045a5f7dcb5d11c646092d29efbab58" + }, + { + "file": ".agent/evidence/03-dsp-red.log", + "beforeSha256": "bacf42e5c808d32702b9bcd30523d1fcf17d5ff75b281233d9e84f33b6e42589", + "afterSha256": "bacf42e5c808d32702b9bcd30523d1fcf17d5ff75b281233d9e84f33b6e42589" + }, + { + "file": ".agent/evidence/04-audio-green.log", + "beforeSha256": "d48c93fa7d32315ed4f719dee19222e7398bc4c4bceb8cf345e0e221a9ac89d8", + "afterSha256": "d48c93fa7d32315ed4f719dee19222e7398bc4c4bceb8cf345e0e221a9ac89d8" + }, + { + "file": ".agent/evidence/04-audio-red.log", + "beforeSha256": "58bbf8eae572f83e408dd101eac738a5f6963550e21c8265f42a7eeba18be7a7", + "afterSha256": "58bbf8eae572f83e408dd101eac738a5f6963550e21c8265f42a7eeba18be7a7" + }, + { + "file": ".agent/evidence/05-assets-red.log", + "beforeSha256": "04388acb098f7dabe9a35783b496075ee7c39757d3fde5361c9ac080188ac371", + "afterSha256": "04388acb098f7dabe9a35783b496075ee7c39757d3fde5361c9ac080188ac371" + }, + { + "file": ".agent/evidence/06-ui-05-assets-green.log", + "beforeSha256": "ced2ad738cda673b24308dcb9d99d59e3ae918709eeb32de359d6ab1022133e2", + "afterSha256": "ced2ad738cda673b24308dcb9d99d59e3ae918709eeb32de359d6ab1022133e2" + }, + { + "file": ".agent/evidence/06-ui-intermediate.log", + "beforeSha256": "3295b3ae691dadb8feb7f0aaf604a1aa56cbfae27b5dbdd486cb5645f5edabe9", + "afterSha256": "3295b3ae691dadb8feb7f0aaf604a1aa56cbfae27b5dbdd486cb5645f5edabe9" + }, + { + "file": ".agent/evidence/06-ui-red.log", + "beforeSha256": "1f1ed6bd440af22f5abf59e4be194f969bee1d115d436a155d879d8cffddb747", + "afterSha256": "1f1ed6bd440af22f5abf59e4be194f969bee1d115d436a155d879d8cffddb747" + }, + { + "file": ".agent/evidence/07-build-green.log", + "beforeSha256": "ec98087d20a68c5b81c6c23406316f1e5f19c6124498e1fc005d04bb78894a57", + "afterSha256": "ec98087d20a68c5b81c6c23406316f1e5f19c6124498e1fc005d04bb78894a57" + }, + { + "file": ".agent/evidence/07-build-red.log", + "beforeSha256": "138802de7bc67c1535668efe7a915424a70d5d7994acb7f366a139e89c1da77f", + "afterSha256": "138802de7bc67c1535668efe7a915424a70d5d7994acb7f366a139e89c1da77f" + }, + { + "file": ".agent/evidence/08-rule-green.log", + "beforeSha256": "91b7ce3fda181fbe51cbe4e6debb61dd44dd55226dcfa81ed73559ba76811f3f", + "afterSha256": "91b7ce3fda181fbe51cbe4e6debb61dd44dd55226dcfa81ed73559ba76811f3f" + }, + { + "file": ".agent/evidence/08-rule-red.log", + "beforeSha256": "2cc1854cf6a4b9e8d53a7a36b1dde1fb6c6970b89f841b9e8f404e6e42bb929e", + "afterSha256": "2cc1854cf6a4b9e8d53a7a36b1dde1fb6c6970b89f841b9e8f404e6e42bb929e" + }, + { + "file": ".agent/evidence/09-ime-green.log", + "beforeSha256": "e5d5d1cfa2b6db724ded97d5f3309a517bcf637d9b2b417e9110dc9da0a48d72", + "afterSha256": "e5d5d1cfa2b6db724ded97d5f3309a517bcf637d9b2b417e9110dc9da0a48d72" + }, + { + "file": ".agent/evidence/09-ime-red.log", + "beforeSha256": "10e5f9f99609044c768cd338df0d574a06a7442e0debe0e61ca16a6b5873adf3", + "afterSha256": "10e5f9f99609044c768cd338df0d574a06a7442e0debe0e61ca16a6b5873adf3" + }, + { + "file": ".agent/evidence/10-ime-reset-green.log", + "beforeSha256": "e12761b3a2814a79d1448e7452474a086bf371921287718eb72dd9b0f6b8fc82", + "afterSha256": "e12761b3a2814a79d1448e7452474a086bf371921287718eb72dd9b0f6b8fc82" + }, + { + "file": ".agent/evidence/10-ime-reset-red.log", + "beforeSha256": "f6cb7c1724b8f9c410385e9970051577c03527fb7e719f43a77c967ca08ef18f", + "afterSha256": "f6cb7c1724b8f9c410385e9970051577c03527fb7e719f43a77c967ca08ef18f" + }, + { + "file": ".agent/evidence/11-provenance-green.log", + "beforeSha256": "54dcc417b97f82422c5c3e0ae11caa1f15a60412853ea1dc0152d15031bcd935", + "afterSha256": "54dcc417b97f82422c5c3e0ae11caa1f15a60412853ea1dc0152d15031bcd935" + }, + { + "file": ".agent/evidence/11-provenance-red.log", + "beforeSha256": "e69fa7989223e659c16b8030f8668e562ad5b0daa060fbb1c9eff41a37fd56fd", + "afterSha256": "e69fa7989223e659c16b8030f8668e562ad5b0daa060fbb1c9eff41a37fd56fd" + }, + { + "file": ".agent/evidence/12-ime-replay-green.log", + "beforeSha256": "a93d9f16c7d81ed5e9a7c0b70ffee1e393d2943ddf3149a5bb115c5517327c44", + "afterSha256": "a93d9f16c7d81ed5e9a7c0b70ffee1e393d2943ddf3149a5bb115c5517327c44" + }, + { + "file": ".agent/evidence/12-ime-replay-red.log", + "beforeSha256": "8cf5dab06d93cc544c21276ee633829f8b137b4b6d7c5fe47aadcad6fc2afb71", + "afterSha256": "8cf5dab06d93cc544c21276ee633829f8b137b4b6d7c5fe47aadcad6fc2afb71" + }, + { + "file": ".agent/evidence/13-heading-build-after.log", + "beforeSha256": "19829ac264f97aa023baf7d5e1fd429343272f3bd952e8b6dfb9eec0f594b453", + "afterSha256": "19829ac264f97aa023baf7d5e1fd429343272f3bd952e8b6dfb9eec0f594b453" + }, + { + "file": ".agent/evidence/13-heading-build-before.log", + "beforeSha256": "646d197d2ef93c19fec4719e20297de1b22eff54f3e6155ba2125fd3dd372c46", + "afterSha256": "646d197d2ef93c19fec4719e20297de1b22eff54f3e6155ba2125fd3dd372c46" + }, + { + "file": ".agent/evidence/13-heading-green.log", + "beforeSha256": "d59fa8546083e9d371c7a552287f27bf3acd572bd0cce3da8eba860da5c05880", + "afterSha256": "d59fa8546083e9d371c7a552287f27bf3acd572bd0cce3da8eba860da5c05880" + }, + { + "file": ".agent/evidence/13-heading-red.log", + "beforeSha256": "33acc2838786a87b8ecc170a1ac0a9d7521daf8e5b9aed2195e76e45ea327f76", + "afterSha256": "33acc2838786a87b8ecc170a1ac0a9d7521daf8e5b9aed2195e76e45ea327f76" + }, + { + "file": ".agent/evidence/14-snr-browser-green.log", + "beforeSha256": "fcb82296e9af4b96112fae0bbb77c6ba41230c117021243e85916ae1130a462d", + "afterSha256": "fcb82296e9af4b96112fae0bbb77c6ba41230c117021243e85916ae1130a462d" + }, + { + "file": ".agent/evidence/14-snr-browser-red.log", + "beforeSha256": "36298e5bb1f45a69b0ca75e5cbce85ee1455c4485759670268fbbcf55bacd4d4", + "afterSha256": "36298e5bb1f45a69b0ca75e5cbce85ee1455c4485759670268fbbcf55bacd4d4" + }, + { + "file": ".agent/evidence/14-snr-build.log", + "beforeSha256": "1e9ce36a48904a58195f9d1c2d9ca6cf2895fcb8bd0b5ab9b72f76e92c6b2585", + "afterSha256": "1e9ce36a48904a58195f9d1c2d9ca6cf2895fcb8bd0b5ab9b72f76e92c6b2585" + }, + { + "file": ".agent/evidence/14-snr-green.log", + "beforeSha256": "ae74e57cea20841299a8c1ee5eaf60efad34bda697339f45527cdec83578e6df", + "afterSha256": "ae74e57cea20841299a8c1ee5eaf60efad34bda697339f45527cdec83578e6df" + }, + { + "file": ".agent/evidence/14-snr-red.log", + "beforeSha256": "b39bdbd8815d0d9cfcedc41c61124afece2011ea6c6c250b0ee0139eae7e9edd", + "afterSha256": "b39bdbd8815d0d9cfcedc41c61124afece2011ea6c6c250b0ee0139eae7e9edd" + }, + { + "file": ".agent/evidence/15-volume-browser-green.log", + "beforeSha256": "aeccd5f13eb9db4062cbf2c70eee332d0c39540d580e113d0a79a899b2ef02de", + "afterSha256": "aeccd5f13eb9db4062cbf2c70eee332d0c39540d580e113d0a79a899b2ef02de" + }, + { + "file": ".agent/evidence/15-volume-browser-red.log", + "beforeSha256": "84954280c1729703f9e9c2680c8933c3b0752b19fb9c3562e7dbf2ea1b4a548c", + "afterSha256": "84954280c1729703f9e9c2680c8933c3b0752b19fb9c3562e7dbf2ea1b4a548c" + }, + { + "file": ".agent/evidence/15-volume-build.log", + "beforeSha256": "2767b794124804b3447f529eef025e2530975fcc506e1cbe8994acf8243e6ba8", + "afterSha256": "2767b794124804b3447f529eef025e2530975fcc506e1cbe8994acf8243e6ba8" + }, + { + "file": ".agent/evidence/15-volume-green.log", + "beforeSha256": "0f9a90923f4fdc477c8f2436653eb2bf0e4b251bcb52e795701309ba14f23c7d", + "afterSha256": "0f9a90923f4fdc477c8f2436653eb2bf0e4b251bcb52e795701309ba14f23c7d" + }, + { + "file": ".agent/evidence/15-volume-red.log", + "beforeSha256": "9beae6305080cd0d869bf3fd2093beb6e2e25e5424223aa7e4ad4db96954f37e", + "afterSha256": "9beae6305080cd0d869bf3fd2093beb6e2e25e5424223aa7e4ad4db96954f37e" + }, + { + "file": ".agent/evidence/16-copy-green.log", + "beforeSha256": "dacbdbab5d4af2b6e19eb4e0502a70720aac9fb6cf3b9d6dfdc73a5bf7edabfe", + "afterSha256": "dacbdbab5d4af2b6e19eb4e0502a70720aac9fb6cf3b9d6dfdc73a5bf7edabfe" + }, + { + "file": ".agent/evidence/16-copy-red.log", + "beforeSha256": "ebe3d7c86938d33d7f1a4818b18c7e94ab8feb18bee099fcb535a93d8083861b", + "afterSha256": "ebe3d7c86938d33d7f1a4818b18c7e94ab8feb18bee099fcb535a93d8083861b" + }, + { + "file": ".agent/evidence/17-spacing-green.log", + "beforeSha256": "8ab85362ceadcdfecf4f7b1e95abfb4237e15018692e14f937be90265c351b11", + "afterSha256": "8ab85362ceadcdfecf4f7b1e95abfb4237e15018692e14f937be90265c351b11" + }, + { + "file": ".agent/evidence/17-spacing-red.log", + "beforeSha256": "12db8083cd8627a81a52cd32358780a3c2257cb3bd702350b190b39226f6550f", + "afterSha256": "12db8083cd8627a81a52cd32358780a3c2257cb3bd702350b190b39226f6550f" + }, + { + "file": ".agent/evidence/18-literal-green.log", + "beforeSha256": "878a8d788a8cedbf652fe0e819fe482099249a52ae7b5cc3d8826e64b32c6377", + "afterSha256": "878a8d788a8cedbf652fe0e819fe482099249a52ae7b5cc3d8826e64b32c6377" + }, + { + "file": ".agent/evidence/18-literal-red.log", + "beforeSha256": "ad23ae7be3d9aab83907c12849012a01f9d1b12e5a174c3acede89817a74d2d2", + "afterSha256": "ad23ae7be3d9aab83907c12849012a01f9d1b12e5a174c3acede89817a74d2d2" + }, + { + "file": ".agent/evidence/19-notices-green.log", + "beforeSha256": "efc51aca0738f3cb5264ec3c3ad0d17bb150d685f5fdb5e200bc1eedc0e3c02b", + "afterSha256": "efc51aca0738f3cb5264ec3c3ad0d17bb150d685f5fdb5e200bc1eedc0e3c02b" + }, + { + "file": ".agent/evidence/19-notices-red.log", + "beforeSha256": "8f34c583cb8563803828d72fe56622d84bcf59a9541d983d6c0b705225955794", + "afterSha256": "8f34c583cb8563803828d72fe56622d84bcf59a9541d983d6c0b705225955794" + }, + { + "file": ".agent/evidence/20-audio-generate.log", + "beforeSha256": "f864fc266f7ca50c600457399f198a77949e9ee1601b0d2fc19b64942a2030cb", + "afterSha256": "f864fc266f7ca50c600457399f198a77949e9ee1601b0d2fc19b64942a2030cb" + }, + { + "file": ".agent/evidence/20-audio-green.log", + "beforeSha256": "edb9b9f0aa1af11835960eee9bb6e8c013341aa528d2857bac0b89ac38457528", + "afterSha256": "edb9b9f0aa1af11835960eee9bb6e8c013341aa528d2857bac0b89ac38457528" + }, + { + "file": ".agent/evidence/20-audio-red.log", + "beforeSha256": "c1cbd5b585e8a70e23b88bfcee0c6479f85fdec0d1e06d13c81c689a140c0ac0", + "afterSha256": "c1cbd5b585e8a70e23b88bfcee0c6479f85fdec0d1e06d13c81c689a140c0ac0" + }, + { + "file": ".agent/evidence/20-mechanics-green.log", + "beforeSha256": "9776c68143f668e35df8b2e19884b25d2369e4800b4c264e635d0c260818c5f1", + "afterSha256": "9776c68143f668e35df8b2e19884b25d2369e4800b4c264e635d0c260818c5f1" + }, + { + "file": ".agent/evidence/20-mechanics-red.log", + "beforeSha256": "d25a1c844366e14fe1db9bb7c243fe0adb6857ee5b4548cf2865de96589af647", + "afterSha256": "d25a1c844366e14fe1db9bb7c243fe0adb6857ee5b4548cf2865de96589af647" + }, + { + "file": ".agent/evidence/21-node-green.log", + "beforeSha256": "3c36e9e45b6844ae2c184f943b61195482d9de53ceab06221093c8281d210d73", + "afterSha256": "3c36e9e45b6844ae2c184f943b61195482d9de53ceab06221093c8281d210d73" + }, + { + "file": ".agent/evidence/21-node-red.log", + "beforeSha256": "ee25556037bdbd6b099dbb087a522284e8df00bd573dfcf0e42c734e31e09e84", + "afterSha256": "ee25556037bdbd6b099dbb087a522284e8df00bd573dfcf0e42c734e31e09e84" + }, + { + "file": ".agent/evidence/22-sandbox-green.log", + "beforeSha256": "e8a1a17e49c22dea81d7f85111c744473427466791ddeda75047cd0082e7faba", + "afterSha256": "e8a1a17e49c22dea81d7f85111c744473427466791ddeda75047cd0082e7faba" + }, + { + "file": ".agent/evidence/22-sandbox-red.log", + "beforeSha256": "c8a97270f0f68367d6edb3e5ee10f34bbda1127f8dae2c5639afd482198e7bcd", + "afterSha256": "c8a97270f0f68367d6edb3e5ee10f34bbda1127f8dae2c5639afd482198e7bcd" + }, + { + "file": ".agent/evidence/23-delivery-browser-red.log", + "beforeSha256": "180a61bbacf85db9e52f721b50da683103b719bc350454cc99d4c8954b2ae86e", + "afterSha256": "180a61bbacf85db9e52f721b50da683103b719bc350454cc99d4c8954b2ae86e" + }, + { + "file": ".agent/evidence/24-retry-audio-budget.log", + "beforeSha256": "b9241872b4ecd80265df4c6c2be90b31e9de4d0754772655e50b7fb4f05e2d3b", + "afterSha256": "b9241872b4ecd80265df4c6c2be90b31e9de4d0754772655e50b7fb4f05e2d3b" + }, + { + "file": ".agent/evidence/24-retry-final-browser.log", + "beforeSha256": "68029aae89adf86fd60ee56a20a1e2f769cb4f894f27ae23963ca5b5b58c62c4", + "afterSha256": "68029aae89adf86fd60ee56a20a1e2f769cb4f894f27ae23963ca5b5b58c62c4" + }, + { + "file": ".agent/evidence/24-retry-final-build.log", + "beforeSha256": "702c20554872e437137097ca59a80d911188477f018bc48c4b49a770b73d5a84", + "afterSha256": "702c20554872e437137097ca59a80d911188477f018bc48c4b49a770b73d5a84" + }, + { + "file": ".agent/evidence/24-retry-final-lint.log", + "beforeSha256": "8682ca1f55e3ec58f13321cc339c8647ef72c1934d74ea9b980aee717e528819", + "afterSha256": "8682ca1f55e3ec58f13321cc339c8647ef72c1934d74ea9b980aee717e528819" + }, + { + "file": ".agent/evidence/24-retry-final-test.log", + "beforeSha256": "b71bb1375a039bcc3d7b3c5070da85ece3551f32ae1b8bb3a2abc5ef1edd57b8", + "afterSha256": "b71bb1375a039bcc3d7b3c5070da85ece3551f32ae1b8bb3a2abc5ef1edd57b8" + }, + { + "file": ".agent/evidence/24-retry-integrity.log", + "beforeSha256": "a188fe54dce05f6caa868b3d9f2c22a852f6a8cdc462355673316578be623a08", + "afterSha256": "a188fe54dce05f6caa868b3d9f2c22a852f6a8cdc462355673316578be623a08" + }, + { + "file": ".agent/evidence/24-retry-targeted-green.log", + "beforeSha256": "4e53f2de988040540f5075b2e4a483ca53b671486c35e864fbc3c2c9c5361c61", + "afterSha256": "4e53f2de988040540f5075b2e4a483ca53b671486c35e864fbc3c2c9c5361c61" + }, + { + "file": ".agent/evidence/audio-reproduce.log", + "beforeSha256": "5f5726f3ed6845882c7a6d6f9a8d898c2b73bf61fa6328e8bbafd25f61ed4268", + "afterSha256": "5f5726f3ed6845882c7a6d6f9a8d898c2b73bf61fa6328e8bbafd25f61ed4268" + }, + { + "file": ".agent/evidence/browser-final.log", + "beforeSha256": "9273c91613160e239027452894b3735f9657ccad97a52412eb889290aebd5adf", + "afterSha256": "9273c91613160e239027452894b3735f9657ccad97a52412eb889290aebd5adf" + }, + { + "file": ".agent/evidence/browser-first.log", + "beforeSha256": "f3087028d76aae36d61d7a14da488bd809079a9e121a2d8fb01fa034f99d4f05", + "afterSha256": "f3087028d76aae36d61d7a14da488bd809079a9e121a2d8fb01fa034f99d4f05" + }, + { + "file": ".agent/evidence/browser-second.log", + "beforeSha256": "2ff1d16f51b9384cf431d5923ad87d773510fe4b89bdf62f09cbda2efae20e3b", + "afterSha256": "2ff1d16f51b9384cf431d5923ad87d773510fe4b89bdf62f09cbda2efae20e3b" + }, + { + "file": ".agent/evidence/browser-third.log", + "beforeSha256": "1b6c264930da8934e7f1c8da6c998543f35e68b1c3159dad722cfe23a8e5244c", + "afterSha256": "1b6c264930da8934e7f1c8da6c998543f35e68b1c3159dad722cfe23a8e5244c" + }, + { + "file": ".agent/evidence/changed-files.txt", + "beforeSha256": "2b609231e5c7becd581f79413a4f7443312e71f0099ac6a51b2c5f0dfdee576f", + "afterSha256": "2b609231e5c7becd581f79413a4f7443312e71f0099ac6a51b2c5f0dfdee576f" + }, + { + "file": ".agent/evidence/desktop-game.png", + "beforeSha256": "42702e89264357257db8bf54c2b3743e3212e62cfd3476a8c25bad83fb59ff81", + "afterSha256": "42702e89264357257db8bf54c2b3743e3212e62cfd3476a8c25bad83fb59ff81" + }, + { + "file": ".agent/evidence/desktop-home.png", + "beforeSha256": "bf2f515fcd483cd5ca9a3b408f484d3556b75b1be0bb70360b7fd5f7c3404993", + "afterSha256": "bf2f515fcd483cd5ca9a3b408f484d3556b75b1be0bb70360b7fd5f7c3404993" + }, + { + "file": ".agent/evidence/desktop-results.png", + "beforeSha256": "003df3aeb08ce66618775377d9b2003809d696629f61cf54b7b86e7a0ed63593", + "afterSha256": "003df3aeb08ce66618775377d9b2003809d696629f61cf54b7b86e7a0ed63593" + }, + { + "file": ".agent/evidence/final-audit.log", + "beforeSha256": "6d8c5c8f3d7684adb070417bd608d01ae90aa3dc26a65af03ffda4955f38d9a3", + "afterSha256": "6d8c5c8f3d7684adb070417bd608d01ae90aa3dc26a65af03ffda4955f38d9a3" + }, + { + "file": ".agent/evidence/final-browser.log", + "beforeSha256": "5855691def462b23667a9d658338a0458a53d984b5b5f7e11b45f9a63092abcd", + "afterSha256": "5855691def462b23667a9d658338a0458a53d984b5b5f7e11b45f9a63092abcd" + }, + { + "file": ".agent/evidence/final-build.log", + "beforeSha256": "565a95a51a10f78bc08f256755afce5ef183440dcdea5e75b3aefde8d7c5b837", + "afterSha256": "565a95a51a10f78bc08f256755afce5ef183440dcdea5e75b3aefde8d7c5b837" + }, + { + "file": ".agent/evidence/final-lint.log", + "beforeSha256": "d2354c241320f11f07890cbf32f99a5d88f1c7f4f236d860e2cd26db739badd8", + "afterSha256": "d2354c241320f11f07890cbf32f99a5d88f1c7f4f236d860e2cd26db739badd8" + }, + { + "file": ".agent/evidence/final-security.log", + "beforeSha256": "c585566624a4596e97327fb1864b1ac2a3189c0794b1e25a9d6ff1abb86046cb", + "afterSha256": "c585566624a4596e97327fb1864b1ac2a3189c0794b1e25a9d6ff1abb86046cb" + }, + { + "file": ".agent/evidence/final-test.log", + "beforeSha256": "af03027cb22a090ecd107c10e3fc7e2f9ceb394122b0b73caa7d362310504170", + "afterSha256": "af03027cb22a090ecd107c10e3fc7e2f9ceb394122b0b73caa7d362310504170" + }, + { + "file": ".agent/evidence/mobile-game.png", + "beforeSha256": "20a3f02f70a28b2faae1b33d0d4d6fea10b77caa426e4bf9faa5ef6d4474a846", + "afterSha256": "20a3f02f70a28b2faae1b33d0d4d6fea10b77caa426e4bf9faa5ef6d4474a846" + }, + { + "file": ".agent/evidence/mobile-home.png", + "beforeSha256": "7f84bd54183fcdd03fe136b41145146ddfb323041c96a8b9e6b670c9a923033a", + "afterSha256": "7f84bd54183fcdd03fe136b41145146ddfb323041c96a8b9e6b670c9a923033a" + }, + { + "file": ".agent/evidence/mobile-results.png", + "beforeSha256": "ec2938c03ac03da8e33e25f043522b317b60c16be1c29f9dd325a81ae84513a8", + "afterSha256": "ec2938c03ac03da8e33e25f043522b317b60c16be1c29f9dd325a81ae84513a8" + }, + { + "file": ".agent/evidence/neo-before-spacing-browser.log", + "beforeSha256": "e5c214f14bd93ef1bb731f87ecfd3a02d299c9f9e5a788233f6eda5eb8946b4f", + "afterSha256": "e5c214f14bd93ef1bb731f87ecfd3a02d299c9f9e5a788233f6eda5eb8946b4f" + }, + { + "file": ".agent/evidence/neo-desktop-game.png", + "beforeSha256": "f5966688ba46f14fab5125452f935e55f6e6dc4355c876416729866129daea70", + "afterSha256": "f5966688ba46f14fab5125452f935e55f6e6dc4355c876416729866129daea70" + }, + { + "file": ".agent/evidence/neo-desktop-heading.png", + "beforeSha256": "db609f2f54af0e6b1bb96bce9bf839454403d6e2787e6520a2928fad31beb021", + "afterSha256": "db609f2f54af0e6b1bb96bce9bf839454403d6e2787e6520a2928fad31beb021" + }, + { + "file": ".agent/evidence/neo-desktop-home.png", + "beforeSha256": "826c5da794c4ea3c15bd6c13e81d1c021fbeb8a902fc4908b78f9c457f091c0f", + "afterSha256": "826c5da794c4ea3c15bd6c13e81d1c021fbeb8a902fc4908b78f9c457f091c0f" + }, + { + "file": ".agent/evidence/neo-desktop-results.png", + "beforeSha256": "98a68ca050a4e66c17dcc3f1bd5f0e86bfc88c2ebe9a75284766d17e10426632", + "afterSha256": "98a68ca050a4e66c17dcc3f1bd5f0e86bfc88c2ebe9a75284766d17e10426632" + }, + { + "file": ".agent/evidence/neo-final-browser.log", + "beforeSha256": "582e7cbb643201e4b197b566b021322448abaae0b383967ad0e816d0c351e96b", + "afterSha256": "582e7cbb643201e4b197b566b021322448abaae0b383967ad0e816d0c351e96b" + }, + { + "file": ".agent/evidence/neo-final-build.log", + "beforeSha256": "f30138e53b8c12e70e80e2cd5f4bdfcf8d1f6a095216a4f9ade6687bca1f0488", + "afterSha256": "f30138e53b8c12e70e80e2cd5f4bdfcf8d1f6a095216a4f9ade6687bca1f0488" + }, + { + "file": ".agent/evidence/neo-final-lint.log", + "beforeSha256": "d2354c241320f11f07890cbf32f99a5d88f1c7f4f236d860e2cd26db739badd8", + "afterSha256": "d2354c241320f11f07890cbf32f99a5d88f1c7f4f236d860e2cd26db739badd8" + }, + { + "file": ".agent/evidence/neo-final-test.log", + "beforeSha256": "f718e2acda255fcba67b272c7fa625af450714b384bb67a72f09328bf6964f0b", + "afterSha256": "f718e2acda255fcba67b272c7fa625af450714b384bb67a72f09328bf6964f0b" + }, + { + "file": ".agent/evidence/neo-intermediate-build.log", + "beforeSha256": "9d8a1f0586d58196e03e45330b6e8ff5522fdd3c27870aae2fb052199f8cf5cb", + "afterSha256": "9d8a1f0586d58196e03e45330b6e8ff5522fdd3c27870aae2fb052199f8cf5cb" + }, + { + "file": ".agent/evidence/neo-intermediate-lint.log", + "beforeSha256": "5e94ea847c3a092f4ff8e97ac5b61ebef805b3c859ad38461f4a437045d1b5b9", + "afterSha256": "5e94ea847c3a092f4ff8e97ac5b61ebef805b3c859ad38461f4a437045d1b5b9" + }, + { + "file": ".agent/evidence/neo-mobile-game.png", + "beforeSha256": "1a6733a3293204e4841ec8722a1ffe37033943097c691bcfadbcd907fde024ef", + "afterSha256": "1a6733a3293204e4841ec8722a1ffe37033943097c691bcfadbcd907fde024ef" + }, + { + "file": ".agent/evidence/neo-mobile-heading.png", + "beforeSha256": "ae07d0a1cb6f835525c7e0ef31655a543eaa9e10183596c2d409dead6faccf15", + "afterSha256": "ae07d0a1cb6f835525c7e0ef31655a543eaa9e10183596c2d409dead6faccf15" + }, + { + "file": ".agent/evidence/neo-mobile-home.png", + "beforeSha256": "9b3ba8b0a9f7b321882429e31ac4a0472fcc13a998dfadfc930c273bc37558d4", + "afterSha256": "9b3ba8b0a9f7b321882429e31ac4a0472fcc13a998dfadfc930c273bc37558d4" + }, + { + "file": ".agent/evidence/neo-mobile-results.png", + "beforeSha256": "d49fdf6ae9566d7a2003db3f252d84ed88ac4d73a0390ce404b47e7bab9c60df", + "afterSha256": "d49fdf6ae9566d7a2003db3f252d84ed88ac4d73a0390ce404b47e7bab9c60df" + }, + { + "file": ".agent/evidence/release-desktop-game.png", + "beforeSha256": "7300a06a507f651a587ed3deb36cc5bb728f4a36c30b7b1cf409a3b209ba564c", + "afterSha256": "7300a06a507f651a587ed3deb36cc5bb728f4a36c30b7b1cf409a3b209ba564c" + }, + { + "file": ".agent/evidence/release-desktop-heading.png", + "beforeSha256": "de454d77e29737e23c573646404489d5682004521deabfa01b439d607faa32ca", + "afterSha256": "de454d77e29737e23c573646404489d5682004521deabfa01b439d607faa32ca" + }, + { + "file": ".agent/evidence/release-desktop-home.png", + "beforeSha256": "f28f744e11b66373ee8db6eda2f7bdc384da4f7e763fbb467a4cda30090e869b", + "afterSha256": "f28f744e11b66373ee8db6eda2f7bdc384da4f7e763fbb467a4cda30090e869b" + }, + { + "file": ".agent/evidence/release-desktop-results.png", + "beforeSha256": "2ebb4056d0ecdadea8a3469500801065ae158c17cd2db27817e813e53adc71f3", + "afterSha256": "2ebb4056d0ecdadea8a3469500801065ae158c17cd2db27817e813e53adc71f3" + }, + { + "file": ".agent/evidence/release-docs-final.log", + "beforeSha256": "3529acce5befee536ec7d8e9d22cbbf27182297bb07408ab6e31551aaee76ed3", + "afterSha256": "3529acce5befee536ec7d8e9d22cbbf27182297bb07408ab6e31551aaee76ed3" + }, + { + "file": ".agent/evidence/release-final-audit.log", + "beforeSha256": "6d8c5c8f3d7684adb070417bd608d01ae90aa3dc26a65af03ffda4955f38d9a3", + "afterSha256": "6d8c5c8f3d7684adb070417bd608d01ae90aa3dc26a65af03ffda4955f38d9a3" + }, + { + "file": ".agent/evidence/release-final-browser.log", + "beforeSha256": "2a9881cef8c379f41abf5d69dd5ad21881988f78c0579c95e463121dc37f6e09", + "afterSha256": "2a9881cef8c379f41abf5d69dd5ad21881988f78c0579c95e463121dc37f6e09" + }, + { + "file": ".agent/evidence/release-final-build.log", + "beforeSha256": "3fba8356382341db9c562d985ca2229fd0b81969532746b0146bc489d54c321e", + "afterSha256": "3fba8356382341db9c562d985ca2229fd0b81969532746b0146bc489d54c321e" + }, + { + "file": ".agent/evidence/release-final-lint.log", + "beforeSha256": "d2354c241320f11f07890cbf32f99a5d88f1c7f4f236d860e2cd26db739badd8", + "afterSha256": "d2354c241320f11f07890cbf32f99a5d88f1c7f4f236d860e2cd26db739badd8" + }, + { + "file": ".agent/evidence/release-final-test.log", + "beforeSha256": "46d5d0fc0180adc00a734b64db4acb4cbaa37d12567d0224836306312213870c", + "afterSha256": "46d5d0fc0180adc00a734b64db4acb4cbaa37d12567d0224836306312213870c" + }, + { + "file": ".agent/evidence/release-format.log", + "beforeSha256": "57658c36cb3161b53cdf934017e4b7a733a273509ace184e0a2a6eaa046c742b", + "afterSha256": "57658c36cb3161b53cdf934017e4b7a733a273509ace184e0a2a6eaa046c742b" + }, + { + "file": ".agent/evidence/release-integrity.log", + "beforeSha256": "cc77121b43a6b24a358999cf1a3bbf701d467fcee9730095f318303c2e80602b", + "afterSha256": "cc77121b43a6b24a358999cf1a3bbf701d467fcee9730095f318303c2e80602b" + }, + { + "file": ".agent/evidence/release-intermediate-lint.log", + "beforeSha256": "ee597e984ebdf11ea247c8cb1551cda446580cbd7a3dc708f85fa78bb72700ad", + "afterSha256": "ee597e984ebdf11ea247c8cb1551cda446580cbd7a3dc708f85fa78bb72700ad" + }, + { + "file": ".agent/evidence/release-mobile-game.png", + "beforeSha256": "83a918e5ff2142e540cd12b85806b3e69a71bc66df5d241f4b2f5abdaf493f82", + "afterSha256": "83a918e5ff2142e540cd12b85806b3e69a71bc66df5d241f4b2f5abdaf493f82" + }, + { + "file": ".agent/evidence/release-mobile-heading.png", + "beforeSha256": "d5c92a3b62f749d5f064af12efa5a1a2ad13b177270ec01dd10a549a8437899d", + "afterSha256": "d5c92a3b62f749d5f064af12efa5a1a2ad13b177270ec01dd10a549a8437899d" + }, + { + "file": ".agent/evidence/release-mobile-home.png", + "beforeSha256": "c7fc37a247bbadba60de9dff3c8d87930a2e6ebb868f687a4135b3fd035ed1c3", + "afterSha256": "c7fc37a247bbadba60de9dff3c8d87930a2e6ebb868f687a4135b3fd035ed1c3" + }, + { + "file": ".agent/evidence/release-mobile-results.png", + "beforeSha256": "587956c9ad5eca054e4bb4b44748a2c637655e407427ba5b4c6ad7bf5a74539a", + "afterSha256": "587956c9ad5eca054e4bb4b44748a2c637655e407427ba5b4c6ad7bf5a74539a" + }, + { + "file": ".agent/evidence-v0.1.1/00-audio-venv.log", + "beforeSha256": "365f1b3cf48e7f6de9c24d28e4326a245d3a54eb329af4b41a9441ec546dabdc", + "afterSha256": "365f1b3cf48e7f6de9c24d28e4326a245d3a54eb329af4b41a9441ec546dabdc" + }, + { + "file": ".agent/evidence-v0.1.1/00-npm-ci.log", + "beforeSha256": "14a6e676c84fa9b2cc39a251aef0c593cda9903f9e5f2d9581bc4153c9f69e09", + "afterSha256": "14a6e676c84fa9b2cc39a251aef0c593cda9903f9e5f2d9581bc4153c9f69e09" + }, + { + "file": ".agent/evidence-v0.1.1/01-version-docs-red.log", + "beforeSha256": "edb26b949d0dc28340989601e781df3582cf784220235d19c16a46aeee97d302", + "afterSha256": "edb26b949d0dc28340989601e781df3582cf784220235d19c16a46aeee97d302" + }, + { + "file": ".agent/evidence-v0.1.1/02-assets-red.log", + "beforeSha256": "ccb8a354e2975c944fb2bde24492fe06a6c1b71add6ce65259d840c66836a1db", + "afterSha256": "ccb8a354e2975c944fb2bde24492fe06a6c1b71add6ce65259d840c66836a1db" + }, + { + "file": ".agent/evidence-v0.1.1/03-generator-red.log", + "beforeSha256": "d78b7c9237c18ba8a87a77a116ea7561ae79af6e88718f9c087c1d8e2c70b1f1", + "afterSha256": "d78b7c9237c18ba8a87a77a116ea7561ae79af6e88718f9c087c1d8e2c70b1f1" + }, + { + "file": ".agent/evidence-v0.1.1/04-generator-additional-red.log", + "beforeSha256": "9a519598915fbdd98108ee1b364f634905e29a5a01bfdd7ffec22a8b359e9217", + "afterSha256": "9a519598915fbdd98108ee1b364f634905e29a5a01bfdd7ffec22a8b359e9217" + }, + { + "file": ".agent/evidence-v0.1.1/05-generator-green.log", + "beforeSha256": "414464526a325b424e5c5305e3066b79c55527fb67b11a3b9eb3bb33dcecea93", + "afterSha256": "414464526a325b424e5c5305e3066b79c55527fb67b11a3b9eb3bb33dcecea93" + }, + { + "file": ".agent/evidence-v0.1.1/06-audio-generate.log", + "beforeSha256": "7b605184e89fd033378e6869236553a3d6e040087de23e8ae165f1e304f3b067", + "afterSha256": "7b605184e89fd033378e6869236553a3d6e040087de23e8ae165f1e304f3b067" + }, + { + "file": ".agent/evidence-v0.1.1/07-format.log", + "beforeSha256": "ce1a102d13a7dfd78130216cea192e3230efa3612e999cb8a6bfd55e8eb6d471", + "afterSha256": "ce1a102d13a7dfd78130216cea192e3230efa3612e999cb8a6bfd55e8eb6d471" + }, + { + "file": ".agent/evidence-v0.1.1/08-version-docs-green.log", + "beforeSha256": "671c2889a69c83ad24293d8e92d0076255bd00c5100c2a9eb764a570e1344edd", + "afterSha256": "671c2889a69c83ad24293d8e92d0076255bd00c5100c2a9eb764a570e1344edd" + }, + { + "file": ".agent/evidence-v0.1.1/09-lint.log", + "beforeSha256": "43d5238bc8e59b93cf3a9bc0f444f0165697b5584078973bd92efce056136c1e", + "afterSha256": "43d5238bc8e59b93cf3a9bc0f444f0165697b5584078973bd92efce056136c1e" + }, + { + "file": ".agent/evidence-v0.1.1/10-audit.log", + "beforeSha256": "6d8c5c8f3d7684adb070417bd608d01ae90aa3dc26a65af03ffda4955f38d9a3", + "afterSha256": "6d8c5c8f3d7684adb070417bd608d01ae90aa3dc26a65af03ffda4955f38d9a3" + }, + { + "file": ".agent/evidence-v0.1.1/11-full-test.log", + "beforeSha256": "65721fcf2b03f153274c9cc1da13c6a1f265ab6f084be8b5921a898fbfd6b40b", + "afterSha256": "65721fcf2b03f153274c9cc1da13c6a1f265ab6f084be8b5921a898fbfd6b40b" + }, + { + "file": ".agent/evidence-v0.1.1/12-independent-audio.log", + "beforeSha256": "5ffd6173941d75deb028741cdba549705b652218f418c6d40ceb7f4b216f2d9d", + "afterSha256": "5ffd6173941d75deb028741cdba549705b652218f418c6d40ceb7f4b216f2d9d" + }, + { + "file": ".agent/evidence-v0.1.1/13-build.log", + "beforeSha256": "42ac41188359699f5f24c7f86de9d7ca6503d714a7be9e277ac2fd01be21614c", + "afterSha256": "42ac41188359699f5f24c7f86de9d7ca6503d714a7be9e277ac2fd01be21614c" + }, + { + "file": ".agent/evidence-v0.1.1/14-browser.log", + "beforeSha256": "657ddc9f60ffa35684110766b2e459842cd1ab10a90b0002256a945f227a16b7", + "afterSha256": "657ddc9f60ffa35684110766b2e459842cd1ab10a90b0002256a945f227a16b7" + }, + { + "file": ".agent/evidence-v0.1.1/15-browser-audio.log", + "beforeSha256": "cb16ec7009a88f911632d0bef64692066873d81372e65fea8dac800d59304214", + "afterSha256": "cb16ec7009a88f911632d0bef64692066873d81372e65fea8dac800d59304214" + }, + { + "file": ".agent/evidence-v0.1.1/16-final-lint.log", + "beforeSha256": "43d5238bc8e59b93cf3a9bc0f444f0165697b5584078973bd92efce056136c1e", + "afterSha256": "43d5238bc8e59b93cf3a9bc0f444f0165697b5584078973bd92efce056136c1e" + }, + { + "file": ".agent/evidence-v0.1.1/17-security-history.json", + "beforeSha256": "5ba66683c3ae29e01f25cfae2ed832e33b07f866bfccd0e1d331a8f102d3d3c7", + "afterSha256": "5ba66683c3ae29e01f25cfae2ed832e33b07f866bfccd0e1d331a8f102d3d3c7" + }, + { + "file": ".agent/evidence-v0.1.1/18-environment.log", + "beforeSha256": "19a1da4298ba5a51f8dce5e6669205987bb48438e5c98f3ddcbc347ce0f91e46", + "afterSha256": "19a1da4298ba5a51f8dce5e6669205987bb48438e5c98f3ddcbc347ce0f91e46" + }, + { + "file": ".agent/evidence-v0.1.1/19-final-integrity.json", + "beforeSha256": "38f5af8927d95e9dae780decf146eb3d5feb610629202ef9ee67bf223647132f", + "afterSha256": "38f5af8927d95e9dae780decf146eb3d5feb610629202ef9ee67bf223647132f" + }, + { + "file": ".agent/evidence-v0.1.1/audio-integrity.json", + "beforeSha256": "d82b192602b1f054fce5f61479832666f237d7da2698afe84b09186dac90f321", + "afterSha256": "d82b192602b1f054fce5f61479832666f237d7da2698afe84b09186dac90f321" + }, + { + "file": ".agent/evidence-v0.1.1/baseline.json", + "beforeSha256": "085be97acb81dcc83477ebc5f42dd2fd5729d9f5821cbc659df9c00b648ceb34", + "afterSha256": "085be97acb81dcc83477ebc5f42dd2fd5729d9f5821cbc659df9c00b648ceb34" + }, + { + "file": ".agent/evidence-v0.1.1/browser-audio-integrity.json", + "beforeSha256": "2c0f59ed178285c0d338171328232351aab2b55e22371b3652453afa34849b65", + "afterSha256": "2c0f59ed178285c0d338171328232351aab2b55e22371b3652453afa34849b65" + }, + { + "file": ".agent/evidence-v0.1.1/cache-regression/00-baseline.json", + "beforeSha256": "66afb3cfa4b4ba46b24d08d046066b27e7bf7d7af382f3776339b41d15b41f3c", + "afterSha256": "66afb3cfa4b4ba46b24d08d046066b27e7bf7d7af382f3776339b41d15b41f3c" + }, + { + "file": ".agent/evidence-v0.1.1/cache-regression/01-unit-red.log", + "beforeSha256": "cfbe949c8b24cb2b1c699a2d456529ac017caa1df2307b0c8d05f1dc4e7d22cf", + "afterSha256": "cfbe949c8b24cb2b1c699a2d456529ac017caa1df2307b0c8d05f1dc4e7d22cf" + }, + { + "file": ".agent/evidence-v0.1.1/cache-regression/02-build-before-fix.log", + "beforeSha256": "2c2775dafb756ff1389b1c979c051b880929bf63b6286109c6ddc66d4ed75c6c", + "afterSha256": "2c2775dafb756ff1389b1c979c051b880929bf63b6286109c6ddc66d4ed75c6c" + }, + { + "file": ".agent/evidence-v0.1.1/cache-regression/03-browser-red.log", + "beforeSha256": "3af050a469281666912d91fc4c747b0135c636fbacc3094d8d823f96376509ed", + "afterSha256": "3af050a469281666912d91fc4c747b0135c636fbacc3094d8d823f96376509ed" + }, + { + "file": ".agent/evidence-v0.1.1/cache-regression/04-red-state.json", + "beforeSha256": "fd6eaad1aa47e8463bb020eb0de894a98871c4772ded56f370426c1903c20d3b", + "afterSha256": "fd6eaad1aa47e8463bb020eb0de894a98871c4772ded56f370426c1903c20d3b" + }, + { + "file": ".agent/evidence-v0.1.1/cache-regression/05-unit-green.log", + "beforeSha256": "0ecd4924f62abbb6a619faf3cabc6bfa02c020e83cb37af79449ffce88486428", + "afterSha256": "0ecd4924f62abbb6a619faf3cabc6bfa02c020e83cb37af79449ffce88486428" + }, + { + "file": ".agent/evidence-v0.1.1/cache-regression/06-lint.log", + "beforeSha256": "c85ee435a4f57d13173d4f4db27bdc9edbe6845a08d7d0b47de15c69ef715b71", + "afterSha256": "c85ee435a4f57d13173d4f4db27bdc9edbe6845a08d7d0b47de15c69ef715b71" + }, + { + "file": ".agent/evidence-v0.1.1/cache-regression/07-full-test.log", + "beforeSha256": "c8524e4c5e47a35a99d9cd2b23cf093e91d9fe1d557a78bfc7e4797fea659ba9", + "afterSha256": "c8524e4c5e47a35a99d9cd2b23cf093e91d9fe1d557a78bfc7e4797fea659ba9" + }, + { + "file": ".agent/evidence-v0.1.1/cache-regression/08-build.log", + "beforeSha256": "e01eb47b14d5e14a49afe5cd750daa9cf86fd3ba389c6ece366e667efa1a282f", + "afterSha256": "e01eb47b14d5e14a49afe5cd750daa9cf86fd3ba389c6ece366e667efa1a282f" + }, + { + "file": ".agent/evidence-v0.1.1/cache-regression/09-browser-green.log", + "beforeSha256": "1f422035d506da11683299cd31a7cdf48284d285623e846f8f3785ab3412be9d", + "afterSha256": "1f422035d506da11683299cd31a7cdf48284d285623e846f8f3785ab3412be9d" + }, + { + "file": ".agent/evidence-v0.1.1/cache-regression/10-sandbox.log", + "beforeSha256": "1ce93b0a638b60fd26d46a5f0fe2c124bc198d3e852ab4b6f94e9b3cf2f8cfb9", + "afterSha256": "1ce93b0a638b60fd26d46a5f0fe2c124bc198d3e852ab4b6f94e9b3cf2f8cfb9" + }, + { + "file": ".agent/evidence-v0.1.1/cache-regression/11-sandbox-green.log", + "beforeSha256": "f75b42f1b7e8570d8fc3845c1837bdef0d8e4d8977c192df786e91ec5c15f5f7", + "afterSha256": "f75b42f1b7e8570d8fc3845c1837bdef0d8e4d8977c192df786e91ec5c15f5f7" + }, + { + "file": ".agent/evidence-v0.1.1/cache-regression/12-cache-regression-result.log", + "beforeSha256": "65e37c6d39f77f2ffb3765a6508a8469a69d1443b304fe3082474d041105a840", + "afterSha256": "65e37c6d39f77f2ffb3765a6508a8469a69d1443b304fe3082474d041105a840" + }, + { + "file": ".agent/evidence-v0.1.1/cache-regression/13-final-integrity.json", + "beforeSha256": "60c8aa79c7c4d4a6cc42e71c6fc2e7af8f07473c69517da60481aa14b8d7cd0b", + "afterSha256": "60c8aa79c7c4d4a6cc42e71c6fc2e7af8f07473c69517da60481aa14b8d7cd0b" + }, + { + "file": ".agent/evidence-v0.1.1/cache-regression/artifacts/desktop-browser-audio-integrity.json", + "beforeSha256": "3aa78dfd8a3acb45a445306dae6d7517b16f32744b6f468e7e2a32a91a4ac9e0", + "afterSha256": "3aa78dfd8a3acb45a445306dae6d7517b16f32744b6f468e7e2a32a91a4ac9e0" + }, + { + "file": ".agent/evidence-v0.1.1/cache-regression/artifacts/desktop-game.png", + "beforeSha256": "d3ccf902a6865a781edd88da2df3ea5ae2cc30f79b32a574194a5e65c1b4bc10", + "afterSha256": "d3ccf902a6865a781edd88da2df3ea5ae2cc30f79b32a574194a5e65c1b4bc10" + }, + { + "file": ".agent/evidence-v0.1.1/cache-regression/artifacts/desktop-heading.png", + "beforeSha256": "a21b7af15a73f66589df7dacff7ce7424177a735969a39afff92b90fd51278b5", + "afterSha256": "a21b7af15a73f66589df7dacff7ce7424177a735969a39afff92b90fd51278b5" + }, + { + "file": ".agent/evidence-v0.1.1/cache-regression/artifacts/desktop-home.png", + "beforeSha256": "cec5a0a94df0c6896cfe7cc89e49bb6ac0eddadae598833b19ed158958e96beb", + "afterSha256": "cec5a0a94df0c6896cfe7cc89e49bb6ac0eddadae598833b19ed158958e96beb" + }, + { + "file": ".agent/evidence-v0.1.1/cache-regression/artifacts/desktop-results.png", + "beforeSha256": "fd3208180016a30b682d80cb73580aa3a9cf2d5a6f8f426958c409222adcf251", + "afterSha256": "fd3208180016a30b682d80cb73580aa3a9cf2d5a6f8f426958c409222adcf251" + }, + { + "file": ".agent/evidence-v0.1.1/cache-regression/artifacts/mobile-browser-audio-integrity.json", + "beforeSha256": "3aa78dfd8a3acb45a445306dae6d7517b16f32744b6f468e7e2a32a91a4ac9e0", + "afterSha256": "3aa78dfd8a3acb45a445306dae6d7517b16f32744b6f468e7e2a32a91a4ac9e0" + }, + { + "file": ".agent/evidence-v0.1.1/cache-regression/artifacts/mobile-game.png", + "beforeSha256": "c5d885f3cd8f51e3e0519459e3fd2bca801f2ac9703e15b11bb2d73628869e25", + "afterSha256": "c5d885f3cd8f51e3e0519459e3fd2bca801f2ac9703e15b11bb2d73628869e25" + }, + { + "file": ".agent/evidence-v0.1.1/cache-regression/artifacts/mobile-heading.png", + "beforeSha256": "4c8b1c4652dd3aff3703ee273695544d4948d39fa6b5c0b1df9313db47e1d537", + "afterSha256": "4c8b1c4652dd3aff3703ee273695544d4948d39fa6b5c0b1df9313db47e1d537" + }, + { + "file": ".agent/evidence-v0.1.1/cache-regression/artifacts/mobile-home.png", + "beforeSha256": "6a5b776c6111929c20a4800904c160c6c983b442f9ec9f8395061e9142c20d64", + "afterSha256": "6a5b776c6111929c20a4800904c160c6c983b442f9ec9f8395061e9142c20d64" + }, + { + "file": ".agent/evidence-v0.1.1/cache-regression/artifacts/mobile-results.png", + "beforeSha256": "a5bce60459ba2147fe080cba6666c1e39b6a97ade6f244a7b955f5371cb594e3", + "afterSha256": "a5bce60459ba2147fe080cba6666c1e39b6a97ade6f244a7b955f5371cb594e3" + }, + { + "file": ".agent/evidence-v0.1.1/changed-files.txt", + "beforeSha256": "4877f3d1003372868b5a9f72326ccf0870b22daf35a71b60b67dc761342fa50f", + "afterSha256": "4877f3d1003372868b5a9f72326ccf0870b22daf35a71b60b67dc761342fa50f" + }, + { + "file": ".agent/evidence-v0.1.1/desktop-game.png", + "beforeSha256": "02c59fa37c4d4f19e5c74e56fc889105b4d280a0a4cf2c14c1838947859a3a8b", + "afterSha256": "02c59fa37c4d4f19e5c74e56fc889105b4d280a0a4cf2c14c1838947859a3a8b" + }, + { + "file": ".agent/evidence-v0.1.1/desktop-heading.png", + "beforeSha256": "920d3d998d93f463be9ac6a682c1f7d5d9ac36944b52b715345c865ae46f566d", + "afterSha256": "920d3d998d93f463be9ac6a682c1f7d5d9ac36944b52b715345c865ae46f566d" + }, + { + "file": ".agent/evidence-v0.1.1/desktop-home.png", + "beforeSha256": "9c6f92b67db249b2a1d3e752052678d7ae0af6be426d976d12237d84c105bf76", + "afterSha256": "9c6f92b67db249b2a1d3e752052678d7ae0af6be426d976d12237d84c105bf76" + }, + { + "file": ".agent/evidence-v0.1.1/desktop-results.png", + "beforeSha256": "3811eae6f5827760499c9c64053a2cb2ecbb1d87ed2ddf11b757eb44e56c64bd", + "afterSha256": "3811eae6f5827760499c9c64053a2cb2ecbb1d87ed2ddf11b757eb44e56c64bd" + }, + { + "file": ".agent/evidence-v0.1.1/mobile-game.png", + "beforeSha256": "bb0dec7ec2c99b55caafd729e2f9c9c01875e3b6dd577cc377a76bbfd5c95a7e", + "afterSha256": "bb0dec7ec2c99b55caafd729e2f9c9c01875e3b6dd577cc377a76bbfd5c95a7e" + }, + { + "file": ".agent/evidence-v0.1.1/mobile-heading.png", + "beforeSha256": "d61f2d1b01c654a5cfe841e49e244af4e232b5fc9c899e77523b336411e99316", + "afterSha256": "d61f2d1b01c654a5cfe841e49e244af4e232b5fc9c899e77523b336411e99316" + }, + { + "file": ".agent/evidence-v0.1.1/mobile-home.png", + "beforeSha256": "7c4a4643a5222f45c6492ebf78780a317e26d423bf244fc16ea24a186a76f506", + "afterSha256": "7c4a4643a5222f45c6492ebf78780a317e26d423bf244fc16ea24a186a76f506" + }, + { + "file": ".agent/evidence-v0.1.1/mobile-results.png", + "beforeSha256": "f2a095ab1d2a3a95a1a275b652fcd31275a5803a926e01b5fcd1e9a9e127cfb9", + "afterSha256": "f2a095ab1d2a3a95a1a275b652fcd31275a5803a926e01b5fcd1e9a9e127cfb9" + }, + { + "file": ".agent/evidence-v0.1.1/verify_audio.py", + "beforeSha256": "7751c03b83dbbd3b222f6d5a68eb1d78dac2bbf82c0fd79345ccca86a15fcb69", + "afterSha256": "7751c03b83dbbd3b222f6d5a68eb1d78dac2bbf82c0fd79345ccca86a15fcb69" + }, + { + "file": ".agent/evidence-v0.1.1/verify_browser.mjs", + "beforeSha256": "53f0f6317274a91017a4f508ef9237e022f7d333ef4243f324720f8d7f85abeb", + "afterSha256": "53f0f6317274a91017a4f508ef9237e022f7d333ef4243f324720f8d7f85abeb" + }, + { + "file": ".agent/evidence-v0.2.3/01-round-GREEN.log", + "beforeSha256": "80beec689bea21086449b7edc9c61414af289722584478463fdd5deac9cba39d", + "afterSha256": "80beec689bea21086449b7edc9c61414af289722584478463fdd5deac9cba39d" + }, + { + "file": ".agent/evidence-v0.2.3/01-round-RED.log", + "beforeSha256": "986a49e5522b1c7dbadf97e0c308af87de589d7a9524ec85c4ba891deb603d3f", + "afterSha256": "986a49e5522b1c7dbadf97e0c308af87de589d7a9524ec85c4ba891deb603d3f" + }, + { + "file": ".agent/evidence-v0.2.3/01-round-sampling-regression.log", + "beforeSha256": "e71f6e853a00941decac3df722369f3bba38f177b8d4ceb7be326522326604f5", + "afterSha256": "e71f6e853a00941decac3df722369f3bba38f177b8d4ceb7be326522326604f5" + }, + { + "file": ".agent/evidence-v0.2.3/02-snr-exit-GREEN.log", + "beforeSha256": "6bbf48b3aef1b15de7576a8c4ee5608c382aa5cc92c95a844aca32d705208e23", + "afterSha256": "6bbf48b3aef1b15de7576a8c4ee5608c382aa5cc92c95a844aca32d705208e23" + }, + { + "file": ".agent/evidence-v0.2.3/02-snr-exit-RED.log", + "beforeSha256": "ac7bc8813ca67a1413678e97c36d05e03bd1f3d9c99656671e3a81bac38c89ac", + "afterSha256": "ac7bc8813ca67a1413678e97c36d05e03bd1f3d9c99656671e3a81bac38c89ac" + }, + { + "file": ".agent/evidence-v0.2.3/03-screen-GREEN.log", + "beforeSha256": "39564011526efb4ff5a277774394d26ae8e8d241e233d53a950cd258ed26c001", + "afterSha256": "39564011526efb4ff5a277774394d26ae8e8d241e233d53a950cd258ed26c001" + }, + { + "file": ".agent/evidence-v0.2.3/03-screen-RED.log", + "beforeSha256": "98e50844d757b9dee2426f93ed89ab6d158b30116212908fd098eda68f4b848b", + "afterSha256": "98e50844d757b9dee2426f93ed89ab6d158b30116212908fd098eda68f4b848b" + }, + { + "file": ".agent/evidence-v0.2.3/03-screen-duplicate-description-RED.log", + "beforeSha256": "186940b7e422c6096fdc3c3cf4280661a75d4f02d3b97e3015a070f5d8ff0323", + "afterSha256": "186940b7e422c6096fdc3c3cf4280661a75d4f02d3b97e3015a070f5d8ff0323" + }, + { + "file": ".agent/evidence-v0.2.3/04-recorded-mix-GREEN.log", + "beforeSha256": "323468e46e58b9f51340f63ecc41fc0bfd9fcd4a9e91e409550d484c49ff6b6e", + "afterSha256": "323468e46e58b9f51340f63ecc41fc0bfd9fcd4a9e91e409550d484c49ff6b6e" + }, + { + "file": ".agent/evidence-v0.2.3/04-recorded-mix-RED.log", + "beforeSha256": "b74bfd906276af2211ccbc8a6da10ebf86146fda613622c20e4a939ae45dd55f", + "afterSha256": "b74bfd906276af2211ccbc8a6da10ebf86146fda613622c20e4a939ae45dd55f" + }, + { + "file": ".agent/evidence-v0.2.3/05-playback-GREEN.log", + "beforeSha256": "4d43b75d4671d9aaffaa5db4d32299260a440978a3699c92d384443ba4766bea", + "afterSha256": "4d43b75d4671d9aaffaa5db4d32299260a440978a3699c92d384443ba4766bea" + }, + { + "file": ".agent/evidence-v0.2.3/05-playback-RED.log", + "beforeSha256": "02aa8f0a48af5b6f157451029963aa90664c5fedd89491e174e9b2d7bce1d159", + "afterSha256": "02aa8f0a48af5b6f157451029963aa90664c5fedd89491e174e9b2d7bce1d159" + }, + { + "file": ".agent/evidence-v0.2.3/05-playback-fixture-regression.log", + "beforeSha256": "925f6be228ab0eb568c27d79fb1b477a8737cfd94be34d0f7d79d1d7e4989bfa", + "afterSha256": "925f6be228ab0eb568c27d79fb1b477a8737cfd94be34d0f7d79d1d7e4989bfa" + }, + { + "file": ".agent/evidence-v0.2.3/06-node-import-GREEN.log", + "beforeSha256": "0bceb35eedea301af580ec093349973e9230d37921d5c4476587ee335e28554d", + "afterSha256": "0bceb35eedea301af580ec093349973e9230d37921d5c4476587ee335e28554d" + }, + { + "file": ".agent/evidence-v0.2.3/06-node-import-RED.log", + "beforeSha256": "9b7ed2c611e2e36041f8a34e3295ad2ff506f0feb427e4a51978ce9efc252cf1", + "afterSha256": "9b7ed2c611e2e36041f8a34e3295ad2ff506f0feb427e4a51978ce9efc252cf1" + }, + { + "file": ".agent/evidence-v0.2.3/07-asset-conversion.log", + "beforeSha256": "ce2e395db0bfce47953cd7c9ff3311a733376d8109941f7f04a919659f0d95f8", + "afterSha256": "ce2e395db0bfce47953cd7c9ff3311a733376d8109941f7f04a919659f0d95f8" + }, + { + "file": ".agent/evidence-v0.2.3/07-assets-GREEN.log", + "beforeSha256": "f04418ee6b67f14c62e17c53027e7ea1bde58d38a7cdc54f0edee15e1643847e", + "afterSha256": "f04418ee6b67f14c62e17c53027e7ea1bde58d38a7cdc54f0edee15e1643847e" + }, + { + "file": ".agent/evidence-v0.2.3/07-assets-RED.log", + "beforeSha256": "5c173b8b2c64b4c661cb58ab22788216b0d90799378a3fcf234087182f3b1d78", + "afterSha256": "5c173b8b2c64b4c661cb58ab22788216b0d90799378a3fcf234087182f3b1d78" + }, + { + "file": ".agent/evidence-v0.2.3/07-converter-GREEN.log", + "beforeSha256": "53a049e86064db709a80d1487a099fe154f99fb6a9821639a24390f88aacbf5a", + "afterSha256": "53a049e86064db709a80d1487a099fe154f99fb6a9821639a24390f88aacbf5a" + }, + { + "file": ".agent/evidence-v0.2.3/07-converter-RED.log", + "beforeSha256": "53cefcd04c8ac4354b5e891a4e65810c21ece90503a3f2ed3392c046feaeb9c9", + "afterSha256": "53cefcd04c8ac4354b5e891a4e65810c21ece90503a3f2ed3392c046feaeb9c9" + }, + { + "file": ".agent/evidence-v0.2.3/08-heard-snr-GREEN.log", + "beforeSha256": "347cdd6ceffa01e0227a17b5af604e96e8081aeaadfc95cf33155ab0af0f813b", + "afterSha256": "347cdd6ceffa01e0227a17b5af604e96e8081aeaadfc95cf33155ab0af0f813b" + }, + { + "file": ".agent/evidence-v0.2.3/08-heard-snr-RED.log", + "beforeSha256": "82b0d04bfd2e99ad36b59325581b5527fa1fa8ae8953db3ed402fb381356fd90", + "afterSha256": "82b0d04bfd2e99ad36b59325581b5527fa1fa8ae8953db3ed402fb381356fd90" + }, + { + "file": ".agent/evidence-v0.2.3/09-version-docs-GREEN.log", + "beforeSha256": "8ac6c86e13de85121607e93da4316c2220ad0edb95ac091048767a903f65152c", + "afterSha256": "8ac6c86e13de85121607e93da4316c2220ad0edb95ac091048767a903f65152c" + }, + { + "file": ".agent/evidence-v0.2.3/09-version-docs-RED.log", + "beforeSha256": "21733781658b1d6525746f6a3dd59337774990c53689f7883e7ff8ddc7c65398", + "afterSha256": "21733781658b1d6525746f6a3dd59337774990c53689f7883e7ff8ddc7c65398" + }, + { + "file": ".agent/evidence-v0.2.3/10-environment-rotation-GREEN.log", + "beforeSha256": "5dc34db413e4ed7918dad60a49ae97532d701aa52d10b49459e77f75c925231d", + "afterSha256": "5dc34db413e4ed7918dad60a49ae97532d701aa52d10b49459e77f75c925231d" + }, + { + "file": ".agent/evidence-v0.2.3/10-environment-rotation-RED.log", + "beforeSha256": "ae7914b7fca896a77478e36ea79bfc51d3a13f976e0f722c7c1615daf6e6837e", + "afterSha256": "ae7914b7fca896a77478e36ea79bfc51d3a13f976e0f722c7c1615daf6e6837e" + }, + { + "file": ".agent/evidence-v0.2.3/11-bundle-notice-GREEN.log", + "beforeSha256": "d6ba07866a02eab665c215f1ce6588e4f5a9157baf4be6e9befba0f945e379bd", + "afterSha256": "d6ba07866a02eab665c215f1ce6588e4f5a9157baf4be6e9befba0f945e379bd" + }, + { + "file": ".agent/evidence-v0.2.3/11-bundle-notice-RED.log", + "beforeSha256": "82d52d3905b35948abbaf7e912de5480a959780731fd04be4110674cf2d6ec63", + "afterSha256": "82d52d3905b35948abbaf7e912de5480a959780731fd04be4110674cf2d6ec63" + }, + { + "file": ".agent/evidence-v0.2.3/12-build-initial.log", + "beforeSha256": "508b0f60d2378679873fbd17784725323fe7ccc267fb3b8b180a7bd59b861176", + "afterSha256": "508b0f60d2378679873fbd17784725323fe7ccc267fb3b8b180a7bd59b861176" + }, + { + "file": ".agent/evidence-v0.2.3/12-lint-followup.log", + "beforeSha256": "058127eb4022e13fe809a0c56c3d3a43177b6088f284811e926452185772de6b", + "afterSha256": "058127eb4022e13fe809a0c56c3d3a43177b6088f284811e926452185772de6b" + }, + { + "file": ".agent/evidence-v0.2.3/12-lint-initial.log", + "beforeSha256": "7a5fdab53449ff945e4f8694164cbb1792f01a19d3d97c151590df5bdfb1506e", + "afterSha256": "7a5fdab53449ff945e4f8694164cbb1792f01a19d3d97c151590df5bdfb1506e" + }, + { + "file": ".agent/evidence-v0.2.3/13-static-404-GREEN.log", + "beforeSha256": "dee59b03d1eb3e0a59828d4f50ea372c78c231000cdd1c77965fcdf42864042b", + "afterSha256": "dee59b03d1eb3e0a59828d4f50ea372c78c231000cdd1c77965fcdf42864042b" + }, + { + "file": ".agent/evidence-v0.2.3/13-static-404-RED.log", + "beforeSha256": "7b4822f9d121f963dbab27155aaf0627fbbfbadd855adf4da4224388e35b230c", + "afterSha256": "7b4822f9d121f963dbab27155aaf0627fbbfbadd855adf4da4224388e35b230c" + }, + { + "file": ".agent/evidence-v0.2.3/14-browser-initial.log", + "beforeSha256": "d2178d18a7e1b2f84e4a430a884ca442070b1a455217f6f594ed4c5f160b426e", + "afterSha256": "d2178d18a7e1b2f84e4a430a884ca442070b1a455217f6f594ed4c5f160b426e" + }, + { + "file": ".agent/evidence-v0.2.3/14-full-test-initial.log", + "beforeSha256": "08a7d3bb30acbc04f9b63e49a0ba5a34628e00613a97660cfb6f467c74854aee", + "afterSha256": "08a7d3bb30acbc04f9b63e49a0ba5a34628e00613a97660cfb6f467c74854aee" + }, + { + "file": ".agent/evidence-v0.2.3/14-npm-audit.json", + "beforeSha256": "ea7bab3cc606a95eecdf538b0d02d3cf928bf0f3a1cfb1d2c8ddbe02846d5658", + "afterSha256": "ea7bab3cc606a95eecdf538b0d02d3cf928bf0f3a1cfb1d2c8ddbe02846d5658" + }, + { + "file": ".agent/evidence-v0.2.3/15-results-anchor-GREEN.log", + "beforeSha256": "48c5b15b6b2dc661a0410af2cfe501d9efafac55d085c29ab74f44ea76e7e8a3", + "afterSha256": "48c5b15b6b2dc661a0410af2cfe501d9efafac55d085c29ab74f44ea76e7e8a3" + }, + { + "file": ".agent/evidence-v0.2.3/15-results-anchor-RED.log", + "beforeSha256": "cb113c8ceeeb48d7573b1de0b9d8263e25e4f7a28dd811404a057d5d6c623157", + "afterSha256": "cb113c8ceeeb48d7573b1de0b9d8263e25e4f7a28dd811404a057d5d6c623157" + }, + { + "file": ".agent/evidence-v0.2.3/16-controls-build.log", + "beforeSha256": "ae8849619608d58763d2ce301bcdba420054bd29174b1bc8dca86790b82fc5e7", + "afterSha256": "ae8849619608d58763d2ce301bcdba420054bd29174b1bc8dca86790b82fc5e7" + }, + { + "file": ".agent/evidence-v0.2.3/16-controls-layout-GREEN.log", + "beforeSha256": "7be2b42602a98167b83c12bce3af7b0856ccd10be68d477e5dba39db99991c03", + "afterSha256": "7be2b42602a98167b83c12bce3af7b0856ccd10be68d477e5dba39db99991c03" + }, + { + "file": ".agent/evidence-v0.2.3/16-controls-layout-RED.log", + "beforeSha256": "9060a0e1d36a15a35b3b189f5b210fdab9fe9579b06e6b19f645bfe8f2914603", + "afterSha256": "9060a0e1d36a15a35b3b189f5b210fdab9fe9579b06e6b19f645bfe8f2914603" + }, + { + "file": ".agent/evidence-v0.2.3/17-bonus-copy-GREEN.log", + "beforeSha256": "f988cf9fda0bc4dd4b7818dde11094f6fb75b9540ccfcb9f964acec003ff3de7", + "afterSha256": "f988cf9fda0bc4dd4b7818dde11094f6fb75b9540ccfcb9f964acec003ff3de7" + }, + { + "file": ".agent/evidence-v0.2.3/17-bonus-copy-RED.log", + "beforeSha256": "fd11d5b64c06cfa28c839cdddb7e2f2ac2406f8c1101f1fb9e262ae9cfaf6b85", + "afterSha256": "fd11d5b64c06cfa28c839cdddb7e2f2ac2406f8c1101f1fb9e262ae9cfaf6b85" + }, + { + "file": ".agent/evidence-v0.2.3/18-browser.log", + "beforeSha256": "a92ba8db852111170403932bb8b4dbd49345936156fbbc3ef61f5c612609a55e", + "afterSha256": "a92ba8db852111170403932bb8b4dbd49345936156fbbc3ef61f5c612609a55e" + }, + { + "file": ".agent/evidence-v0.2.3/18-build.log", + "beforeSha256": "3f0bd258866ed4f29f8a8ab5d88fc7db68f67abe9bc51fed22563d51200d9f72", + "afterSha256": "3f0bd258866ed4f29f8a8ab5d88fc7db68f67abe9bc51fed22563d51200d9f72" + }, + { + "file": ".agent/evidence-v0.2.3/18-format.log", + "beforeSha256": "d78946d25140238f764ccf3fca989a0aa42b25162cfba7d92dbb10256db45401", + "afterSha256": "d78946d25140238f764ccf3fca989a0aa42b25162cfba7d92dbb10256db45401" + }, + { + "file": ".agent/evidence-v0.2.3/18-full-test.log", + "beforeSha256": "bf358255a30c2d18b82af8f8c5942d0b9ee7c100c40114fe8666e7f564829d79", + "afterSha256": "bf358255a30c2d18b82af8f8c5942d0b9ee7c100c40114fe8666e7f564829d79" + }, + { + "file": ".agent/evidence-v0.2.3/18-lint.log", + "beforeSha256": "058127eb4022e13fe809a0c56c3d3a43177b6088f284811e926452185772de6b", + "afterSha256": "058127eb4022e13fe809a0c56c3d3a43177b6088f284811e926452185772de6b" + }, + { + "file": ".agent/evidence-v0.2.3/18-python.log", + "beforeSha256": "911637068f7c09de38cd38b9d13cdb23b365812521ed8b1f75328b1960b085bf", + "afterSha256": "911637068f7c09de38cd38b9d13cdb23b365812521ed8b1f75328b1960b085bf" + }, + { + "file": ".agent/evidence-v0.2.3/19-favicon-GREEN.log", + "beforeSha256": "34fd3cd00d40ae5766b2364cef81fe90accc8f8ec03788959680d118ecbf9b13", + "afterSha256": "34fd3cd00d40ae5766b2364cef81fe90accc8f8ec03788959680d118ecbf9b13" + }, + { + "file": ".agent/evidence-v0.2.3/19-favicon-RED.log", + "beforeSha256": "49fc230ab2adeceb6613e6b9019f31f12b2dd3764096a85f391f91e83479e6cb", + "afterSha256": "49fc230ab2adeceb6613e6b9019f31f12b2dd3764096a85f391f91e83479e6cb" + }, + { + "file": ".agent/evidence-v0.2.3/20-browser.log", + "beforeSha256": "cfc61835f7061d6301b54ce07e8f1c1aaba5c3a29d7df85d767eb1cf898217a6", + "afterSha256": "cfc61835f7061d6301b54ce07e8f1c1aaba5c3a29d7df85d767eb1cf898217a6" + }, + { + "file": ".agent/evidence-v0.2.3/20-build.log", + "beforeSha256": "77a52828d2b1d1d46efa6a3f5b4ded7ca12da6db5896b1ee9a2fefebf50bcb85", + "afterSha256": "77a52828d2b1d1d46efa6a3f5b4ded7ca12da6db5896b1ee9a2fefebf50bcb85" + }, + { + "file": ".agent/evidence-v0.2.3/20-full-test.log", + "beforeSha256": "10c46b00ad407161154f57c060599dca379effef2c5c80e0d24edd366c08817a", + "afterSha256": "10c46b00ad407161154f57c060599dca379effef2c5c80e0d24edd366c08817a" + }, + { + "file": ".agent/evidence-v0.2.3/20-lint.log", + "beforeSha256": "058127eb4022e13fe809a0c56c3d3a43177b6088f284811e926452185772de6b", + "afterSha256": "058127eb4022e13fe809a0c56c3d3a43177b6088f284811e926452185772de6b" + }, + { + "file": ".agent/evidence-v0.2.3/21-format.log", + "beforeSha256": "48a148bd43ecea64bd7604be2431e2072fe390bbc578a71d65df4d1c0a369412", + "afterSha256": "48a148bd43ecea64bd7604be2431e2072fe390bbc578a71d65df4d1c0a369412" + }, + { + "file": ".agent/evidence-v0.2.3/21-select-label-GREEN.log", + "beforeSha256": "2ce474d915736281c05591c4753e23d555eda186b13c85a2ae96f8481cf35d86", + "afterSha256": "2ce474d915736281c05591c4753e23d555eda186b13c85a2ae96f8481cf35d86" + }, + { + "file": ".agent/evidence-v0.2.3/21-select-label-RED.log", + "beforeSha256": "149ee8ca004c8f63765d642305cf9e6b0ad3de5986bf0dcefaf656844c22a73d", + "afterSha256": "149ee8ca004c8f63765d642305cf9e6b0ad3de5986bf0dcefaf656844c22a73d" + }, + { + "file": ".agent/evidence-v0.2.3/22-browser.log", + "beforeSha256": "b2e4e82e78376042ea1297c930403889b22e8a275e226736c232b8cbaa74fadd", + "afterSha256": "b2e4e82e78376042ea1297c930403889b22e8a275e226736c232b8cbaa74fadd" + }, + { + "file": ".agent/evidence-v0.2.3/22-build.log", + "beforeSha256": "ed77e72c527fa7ab9d9c5c2447cd1bff34824ee6eac384bd18a50303607cbca9", + "afterSha256": "ed77e72c527fa7ab9d9c5c2447cd1bff34824ee6eac384bd18a50303607cbca9" + }, + { + "file": ".agent/evidence-v0.2.3/22-full-test.log", + "beforeSha256": "c3f38be3d6e00dc983e29a3cbfb632192a0fe64c151f06edcd8b35188edcde5c", + "afterSha256": "c3f38be3d6e00dc983e29a3cbfb632192a0fe64c151f06edcd8b35188edcde5c" + }, + { + "file": ".agent/evidence-v0.2.3/22-lint.log", + "beforeSha256": "058127eb4022e13fe809a0c56c3d3a43177b6088f284811e926452185772de6b", + "afterSha256": "058127eb4022e13fe809a0c56c3d3a43177b6088f284811e926452185772de6b" + }, + { + "file": ".agent/evidence-v0.2.3/browser/desktop-audio-integrity.json", + "beforeSha256": "3d6defdb7ad3b8d4d7949ffe476f4ebf685e5dcc1ad0868b98bb4e639b6dcadb", + "afterSha256": "3d6defdb7ad3b8d4d7949ffe476f4ebf685e5dcc1ad0868b98bb4e639b6dcadb" + }, + { + "file": ".agent/evidence-v0.2.3/browser/desktop-early-exit.png", + "beforeSha256": "a6a68bcc871939cd945f0b7a96dddd7c3b371b069efa7171fa6d3fe39e352d5f", + "afterSha256": "a6a68bcc871939cd945f0b7a96dddd7c3b371b069efa7171fa6d3fe39e352d5f" + }, + { + "file": ".agent/evidence-v0.2.3/browser/desktop-game.png", + "beforeSha256": "c7c5a04608075edf836718e6479cc776773fa22d2cd8fe3aa230bdf3ec82ccc1", + "afterSha256": "c7c5a04608075edf836718e6479cc776773fa22d2cd8fe3aa230bdf3ec82ccc1" + }, + { + "file": ".agent/evidence-v0.2.3/browser/desktop-normal-results.png", + "beforeSha256": "cf98d5168a96fac8a87718bd5a771d81e8e02dc4d46c93904556319033fe2bc0", + "afterSha256": "cf98d5168a96fac8a87718bd5a771d81e8e02dc4d46c93904556319033fe2bc0" + }, + { + "file": ".agent/evidence-v0.2.3/browser/desktop-runtime-audit.json", + "beforeSha256": "afdf38d83cf77e91b478bc806f4da007860c5db6e6146995d5d405883de8bc13", + "afterSha256": "afdf38d83cf77e91b478bc806f4da007860c5db6e6146995d5d405883de8bc13" + }, + { + "file": ".agent/evidence-v0.2.3/browser/desktop-start.png", + "beforeSha256": "911b923e3a68e8deb0063efd88ed43eb1ed6c597c14bd5b9ee71f6b5161b6d7b", + "afterSha256": "911b923e3a68e8deb0063efd88ed43eb1ed6c597c14bd5b9ee71f6b5161b6d7b" + }, + { + "file": ".agent/evidence-v0.2.3/browser/mobile-audio-integrity.json", + "beforeSha256": "3d6defdb7ad3b8d4d7949ffe476f4ebf685e5dcc1ad0868b98bb4e639b6dcadb", + "afterSha256": "3d6defdb7ad3b8d4d7949ffe476f4ebf685e5dcc1ad0868b98bb4e639b6dcadb" + }, + { + "file": ".agent/evidence-v0.2.3/browser/mobile-early-exit.png", + "beforeSha256": "5e2ef07c6c3b7672e0aa82f248a5a245d60a10f86633fab2b2dd45ecff81d7fa", + "afterSha256": "5e2ef07c6c3b7672e0aa82f248a5a245d60a10f86633fab2b2dd45ecff81d7fa" + }, + { + "file": ".agent/evidence-v0.2.3/browser/mobile-game.png", + "beforeSha256": "f4890f7d61b87c102c68f285108584ac58182186b685f73ea05f64bf51a64a0c", + "afterSha256": "f4890f7d61b87c102c68f285108584ac58182186b685f73ea05f64bf51a64a0c" + }, + { + "file": ".agent/evidence-v0.2.3/browser/mobile-normal-results.png", + "beforeSha256": "5eccd53853c27a7c1385f1219b0a9bb7af60070fbdd1469ef3265e40377f3eaa", + "afterSha256": "5eccd53853c27a7c1385f1219b0a9bb7af60070fbdd1469ef3265e40377f3eaa" + }, + { + "file": ".agent/evidence-v0.2.3/browser/mobile-runtime-audit.json", + "beforeSha256": "949c6829af7030728c7382c0ac8bde8a8cd8e3b46cf5a5919f5a6d281d4ba657", + "afterSha256": "949c6829af7030728c7382c0ac8bde8a8cd8e3b46cf5a5919f5a6d281d4ba657" + }, + { + "file": ".agent/evidence-v0.2.3/browser/mobile-start.png", + "beforeSha256": "c04abd43e93e46fde7e1591bde24a3073d584226e93ba5661bac1b5cd78a4695", + "afterSha256": "c04abd43e93e46fde7e1591bde24a3073d584226e93ba5661bac1b5cd78a4695" + }, + { + "file": ".agent/evidence-v0.2.3/browser-favicon-RED.json", + "beforeSha256": "036a734efcdff9481b3d10f1b07159ef6ca056d9245cffa469c5b1c8fe87f2bb", + "afterSha256": "036a734efcdff9481b3d10f1b07159ef6ca056d9245cffa469c5b1c8fe87f2bb" + }, + { + "file": ".agent/evidence-v0.2.3/browser-results.json", + "beforeSha256": "060d18bd74f7179884205117c6c853dc783ec7a818bdfcc8a490ef1a679c77f6", + "afterSha256": "060d18bd74f7179884205117c6c853dc783ec7a818bdfcc8a490ef1a679c77f6" + }, + { + "file": ".agent/evidence-v0.2.3/chrome-sandbox.json", + "beforeSha256": "0e0d0d3a4618e4c607a6cccd1ff04d9fdc9dcc70ff76e909e614e90b6607cae8", + "afterSha256": "0e0d0d3a4618e4c607a6cccd1ff04d9fdc9dcc70ff76e909e614e90b6607cae8" + }, + { + "file": ".agent/evidence-v0.2.3/commons-license-audit.json", + "beforeSha256": "2a36e3ac168d223849a2f171457ebd87b236301a65c8e13f5061f484c18e31d6", + "afterSha256": "2a36e3ac168d223849a2f171457ebd87b236301a65c8e13f5061f484c18e31d6" + }, + { + "file": ".agent/evidence-v0.2.3/environment.json", + "beforeSha256": "9e1c233d564982ef3b9712c2bcb5c85aef32d2276d0c3b6f5e02a009db76796e", + "afterSha256": "9e1c233d564982ef3b9712c2bcb5c85aef32d2276d0c3b6f5e02a009db76796e" + }, + { + "file": ".agent/evidence-v0.2.3/final-review.log", + "beforeSha256": "1692e79cc7e03cd3a71e10f4497914df13931aa08e1c5a66a84545ce318b5ea4", + "afterSha256": "1692e79cc7e03cd3a71e10f4497914df13931aa08e1c5a66a84545ce318b5ea4" + }, + { + "file": ".agent/evidence-v0.2.3/preservation.json", + "beforeSha256": "a938ce612b594f99e4bbd2457f3a2c665af4aeb6a465ca4c459d74c5375eb4ff", + "afterSha256": "a938ce612b594f99e4bbd2457f3a2c665af4aeb6a465ca4c459d74c5375eb4ff" + }, + { + "file": ".agent/evidence-v0.2.3/primary-page-verification.json", + "beforeSha256": "2b4a6fcaf55b51a10d378a888a634e7aeac8591d3dd5fa537f4a70806c536fd0", + "afterSha256": "2b4a6fcaf55b51a10d378a888a634e7aeac8591d3dd5fa537f4a70806c536fd0" + }, + { + "file": ".agent/evidence-v0.2.3/rain-download.log", + "beforeSha256": "701d47a1c31b5232d682641f05d71c01dc908b03b58ed1bc270a27ba9b32fea0", + "afterSha256": "701d47a1c31b5232d682641f05d71c01dc908b03b58ed1bc270a27ba9b32fea0" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/01-ui-GREEN-02.log", + "beforeSha256": "b64774bcb477aa04981b81d7764760202d0d3be110eeaa557623c3e519f9f157", + "afterSha256": "b64774bcb477aa04981b81d7764760202d0d3be110eeaa557623c3e519f9f157" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/01-ui-GREEN.log", + "beforeSha256": "ea5aff1ded1cd2dbea86f7d9e7aa7b0d69770706c98f3786722709d99aa9b5ee", + "afterSha256": "ea5aff1ded1cd2dbea86f7d9e7aa7b0d69770706c98f3786722709d99aa9b5ee" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/01-ui-RED.log", + "beforeSha256": "b0323edc4c9c13fcfd373185bd09f469b2d182fe0f4fb57cb504c228fca575b2", + "afterSha256": "b0323edc4c9c13fcfd373185bd09f469b2d182fe0f4fb57cb504c228fca575b2" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/02-browser-GREEN.log", + "beforeSha256": "1ae7f17b05363b418f42199c27d940cd5441a7e933ea6b069ee7932b89145662", + "afterSha256": "1ae7f17b05363b418f42199c27d940cd5441a7e933ea6b069ee7932b89145662" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/02-browser-RED.log", + "beforeSha256": "f8a13650707bfe2b40458eb315f481cd61a3e5289f4b7aa0a4c59a3fbcebaabe", + "afterSha256": "f8a13650707bfe2b40458eb315f481cd61a3e5289f4b7aa0a4c59a3fbcebaabe" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/02-progress-pixels-GREEN.log", + "beforeSha256": "66a53270ec9e2a28a07ba3883156085399c1a55959c3e8bb0b4a9c26648e1f46", + "afterSha256": "66a53270ec9e2a28a07ba3883156085399c1a55959c3e8bb0b4a9c26648e1f46" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/02-progress-pixels-RED.log", + "beforeSha256": "f6b7cec9c22947edc85b438ea6852884a6a6851f40c0fbd53371839942bc97e9", + "afterSha256": "f6b7cec9c22947edc85b438ea6852884a6a6851f40c0fbd53371839942bc97e9" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/02-ui-build.log", + "beforeSha256": "f147abc7cc99e466f4fb5d7414db343e8d3bb032c14ed85b8f4e85e98b83146c", + "afterSha256": "f147abc7cc99e466f4fb5d7414db343e8d3bb032c14ed85b8f4e85e98b83146c" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/03-voice-inventory-GREEN.log", + "beforeSha256": "e37b30669c6e20a575cca867cdb5e0526e1152b256a8d6e63c37c6186da48e49", + "afterSha256": "e37b30669c6e20a575cca867cdb5e0526e1152b256a8d6e63c37c6186da48e49" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/03-voice-inventory-RED.log", + "beforeSha256": "dad1ecd96671351fc95b481609a1eb2b124e377875813839e26da87cb781be60", + "afterSha256": "dad1ecd96671351fc95b481609a1eb2b124e377875813839e26da87cb781be60" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/04-source-plan-GREEN.log", + "beforeSha256": "f0186fee755ec5a6de817f1624ce3bc183c5869e052340980e0015baeef06951", + "afterSha256": "f0186fee755ec5a6de817f1624ce3bc183c5869e052340980e0015baeef06951" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/04-source-plan-RED.log", + "beforeSha256": "24e5cc322d42d76c16e203527ef26e8b7b3da527da6f474078cd6ca23e8cb49a", + "afterSha256": "24e5cc322d42d76c16e203527ef26e8b7b3da527da6f474078cd6ca23e8cb49a" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/05-source-guard-GREEN.log", + "beforeSha256": "02c54871fb1cfb26ea95314dfdc4fe8fa6faaaf6a7e19a2c0fb67a75ee0dd204", + "afterSha256": "02c54871fb1cfb26ea95314dfdc4fe8fa6faaaf6a7e19a2c0fb67a75ee0dd204" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/05-source-guard-RED.log", + "beforeSha256": "d0be14c43c6dbf4227b31721f6cb5ac66483759e4bd8da59f01b1df14b08d30f", + "afterSha256": "d0be14c43c6dbf4227b31721f6cb5ac66483759e4bd8da59f01b1df14b08d30f" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/06-atomic-GREEN.log", + "beforeSha256": "26c5dd649f0c0f479b42ba74f0e9cce2fb859f7e6b5823b4a02771fb7074d12f", + "afterSha256": "26c5dd649f0c0f479b42ba74f0e9cce2fb859f7e6b5823b4a02771fb7074d12f" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/06-atomic-RED.log", + "beforeSha256": "991397dd9a5f32440286f2bb6a3700b9c58668ebfecceffab0caa7164f69dc38", + "afterSha256": "991397dd9a5f32440286f2bb6a3700b9c58668ebfecceffab0caa7164f69dc38" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/07-notice-path-GREEN.log", + "beforeSha256": "fcd49f3a5c9808120843e11fcb229ff7fbb12c7280e27ef6a0632357ea05dd34", + "afterSha256": "fcd49f3a5c9808120843e11fcb229ff7fbb12c7280e27ef6a0632357ea05dd34" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/07-notice-path-RED.log", + "beforeSha256": "183bc30494bd1469cc06715835bff326b7032c6c9fb66ed737d7442acf07ac78", + "afterSha256": "183bc30494bd1469cc06715835bff326b7032c6c9fb66ed737d7442acf07ac78" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/08-09-build-GREEN.log", + "beforeSha256": "1a5db16769387ebbc54c55f62a78b28b5fd29cfdbcc4d480468386b0e11cac87", + "afterSha256": "1a5db16769387ebbc54c55f62a78b28b5fd29cfdbcc4d480468386b0e11cac87" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/08-notice-verifier-RED.log", + "beforeSha256": "854524d46b7eb1c21e9ca71b60e6521c81f8cc5f9d88fef3c3d5c43a0a4f7604", + "afterSha256": "854524d46b7eb1c21e9ca71b60e6521c81f8cc5f9d88fef3c3d5c43a0a4f7604" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/09-build-plan-RED.log", + "beforeSha256": "90c91a0fbe5e1e94ea6d0038e5e4a8d03b9a3d6b1351732b5fdc57e136560166", + "afterSha256": "90c91a0fbe5e1e94ea6d0038e5e4a8d03b9a3d6b1351732b5fdc57e136560166" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/10-atomic-additional.log", + "beforeSha256": "111dc0d42b1ce8bc943e8f703e299dfab403dd404a052b71d2f98135c0bdda4f", + "afterSha256": "111dc0d42b1ce8bc943e8f703e299dfab403dd404a052b71d2f98135c0bdda4f" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/11-audit.log", + "beforeSha256": "a04f4ab13e5181be11c7873e3049d1261dd797289ac0fcb1d91717a851eb51dd", + "afterSha256": "a04f4ab13e5181be11c7873e3049d1261dd797289ac0fcb1d91717a851eb51dd" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/11-build.log", + "beforeSha256": "eb8475c95e82d05326e49e21a456a55a8a696614a51a42df069f483fdadbc834", + "afterSha256": "eb8475c95e82d05326e49e21a456a55a8a696614a51a42df069f483fdadbc834" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/11-lint.log", + "beforeSha256": "72a25d6d1240a619ca103674b65757f4932f3001927ffd196789a6485045a947", + "afterSha256": "72a25d6d1240a619ca103674b65757f4932f3001927ffd196789a6485045a947" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/11-python.log", + "beforeSha256": "e8e018fc7a14b6eeece5f2b88da0b36bbdd6d351fcced327acbf06e1b0e11e6c", + "afterSha256": "e8e018fc7a14b6eeece5f2b88da0b36bbdd6d351fcced327acbf06e1b0e11e6c" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/11-unit.log", + "beforeSha256": "dcbfe3302e8e45b1b3a1a5c1e5edf107349427ac57fb0292a78cb217142eaaa8", + "afterSha256": "dcbfe3302e8e45b1b3a1a5c1e5edf107349427ac57fb0292a78cb217142eaaa8" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/12-browser.log", + "beforeSha256": "67f709fec8bab3b19fcbba0f04f919cf784cbb4fd1ac508f4f704835787c1481", + "afterSha256": "67f709fec8bab3b19fcbba0f04f919cf784cbb4fd1ac508f4f704835787c1481" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/13-diff-check.log", + "beforeSha256": "c39401a8c3e072c068daf658cbf95a8518a8186cb92da02cc6ac067de4ee0b6c", + "afterSha256": "c39401a8c3e072c068daf658cbf95a8518a8186cb92da02cc6ac067de4ee0b6c" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/14-final-review.log", + "beforeSha256": "0f2c5d1943a3a8c3d3cc02d2cd5d8c70c2d3b2ef080ec81fb839edadb47b6b82", + "afterSha256": "0f2c5d1943a3a8c3d3cc02d2cd5d8c70c2d3b2ef080ec81fb839edadb47b6b82" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/baseline-sha256.json", + "beforeSha256": "3e59389b32cdeafc2dcec3cb846a1d141d13935e09ea23c49a8fa119c1444704", + "afterSha256": "3e59389b32cdeafc2dcec3cb846a1d141d13935e09ea23c49a8fa119c1444704" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/browser-final/.last-run.json", + "beforeSha256": "91d1c43004802cd49950d78eb11c8fa7d05da8ffffe219a8b13b2f561bc00903", + "afterSha256": "91d1c43004802cd49950d78eb11c8fa7d05da8ffffe219a8b13b2f561bc00903" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/browser-final/audio-\uc74c\uc131\u00b7\ud604\uc7a5\uc74c-109\uac1c-versioned-WAV\ub97c-\uc2e4\uc81c-Chrome\uc5d0\uc11c-\ud574\uc2dc\u00b7\ub514\ucf54\ub4dc-\uac80\uc99d\ud55c\ub2e4-desktop/attachments/109-versioned-WAV-integrity-7406877c173ee35afff758c9c5f1645f0dc02fa5.json", + "beforeSha256": "3d6defdb7ad3b8d4d7949ffe476f4ebf685e5dcc1ad0868b98bb4e639b6dcadb", + "afterSha256": "3d6defdb7ad3b8d4d7949ffe476f4ebf685e5dcc1ad0868b98bb4e639b6dcadb" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/browser-final/audio-\uc74c\uc131\u00b7\ud604\uc7a5\uc74c-109\uac1c-versioned-WAV\ub97c-\uc2e4\uc81c-Chrome\uc5d0\uc11c-\ud574\uc2dc\u00b7\ub514\ucf54\ub4dc-\uac80\uc99d\ud55c\ub2e4-desktop/browser-audio-integrity.json", + "beforeSha256": "3d6defdb7ad3b8d4d7949ffe476f4ebf685e5dcc1ad0868b98bb4e639b6dcadb", + "afterSha256": "3d6defdb7ad3b8d4d7949ffe476f4ebf685e5dcc1ad0868b98bb4e639b6dcadb" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/browser-final/audio-\uc74c\uc131\u00b7\ud604\uc7a5\uc74c-109\uac1c-versioned-WAV\ub97c-\uc2e4\uc81c-Chrome\uc5d0\uc11c-\ud574\uc2dc\u00b7\ub514\ucf54\ub4dc-\uac80\uc99d\ud55c\ub2e4-mobile/attachments/109-versioned-WAV-integrity-9b9f8223b6524087ac395eb7a96ac0d386fbcb95.json", + "beforeSha256": "3d6defdb7ad3b8d4d7949ffe476f4ebf685e5dcc1ad0868b98bb4e639b6dcadb", + "afterSha256": "3d6defdb7ad3b8d4d7949ffe476f4ebf685e5dcc1ad0868b98bb4e639b6dcadb" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/browser-final/audio-\uc74c\uc131\u00b7\ud604\uc7a5\uc74c-109\uac1c-versioned-WAV\ub97c-\uc2e4\uc81c-Chrome\uc5d0\uc11c-\ud574\uc2dc\u00b7\ub514\ucf54\ub4dc-\uac80\uc99d\ud55c\ub2e4-mobile/browser-audio-integrity.json", + "beforeSha256": "3d6defdb7ad3b8d4d7949ffe476f4ebf685e5dcc1ad0868b98bb4e639b6dcadb", + "afterSha256": "3d6defdb7ad3b8d4d7949ffe476f4ebf685e5dcc1ad0868b98bb4e639b6dcadb" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/browser-final/game-\uc2e4\uc81c-\uc624\ub514\uc624\ub85c-\ud63c\ud569-\ubaa8\ub4dc-\uc644\uc8fc\u00b7\ub808\uc774\uc544\uc6c3\u00b7\uc811\uadfc\uc131\u00b7\uc678\ubd80-\uc694\uccad-\uc5c6\uc74c-desktop/game.png", + "beforeSha256": "17c22581f74ddcd78770ebfbb75f0041298baab336c17cd5b37ff5e29b8b6a7d", + "afterSha256": "17c22581f74ddcd78770ebfbb75f0041298baab336c17cd5b37ff5e29b8b6a7d" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/browser-final/game-\uc2e4\uc81c-\uc624\ub514\uc624\ub85c-\ud63c\ud569-\ubaa8\ub4dc-\uc644\uc8fc\u00b7\ub808\uc774\uc544\uc6c3\u00b7\uc811\uadfc\uc131\u00b7\uc678\ubd80-\uc694\uccad-\uc5c6\uc74c-desktop/home.png", + "beforeSha256": "911b923e3a68e8deb0063efd88ed43eb1ed6c597c14bd5b9ee71f6b5161b6d7b", + "afterSha256": "911b923e3a68e8deb0063efd88ed43eb1ed6c597c14bd5b9ee71f6b5161b6d7b" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/browser-final/game-\uc2e4\uc81c-\uc624\ub514\uc624\ub85c-\ud63c\ud569-\ubaa8\ub4dc-\uc644\uc8fc\u00b7\ub808\uc774\uc544\uc6c3\u00b7\uc811\uadfc\uc131\u00b7\uc678\ubd80-\uc694\uccad-\uc5c6\uc74c-desktop/results.png", + "beforeSha256": "51d34a4717075e8b516b2f334d6a30affecea776568052cc9ccb9d7518ecbebf", + "afterSha256": "51d34a4717075e8b516b2f334d6a30affecea776568052cc9ccb9d7518ecbebf" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/browser-final/game-\uc2e4\uc81c-\uc624\ub514\uc624\ub85c-\ud63c\ud569-\ubaa8\ub4dc-\uc644\uc8fc\u00b7\ub808\uc774\uc544\uc6c3\u00b7\uc811\uadfc\uc131\u00b7\uc678\ubd80-\uc694\uccad-\uc5c6\uc74c-mobile/game.png", + "beforeSha256": "13291f8ba632d1962611e25c99f73fa3d7732f7b8ef3a9222a5ddd5082576353", + "afterSha256": "13291f8ba632d1962611e25c99f73fa3d7732f7b8ef3a9222a5ddd5082576353" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/browser-final/game-\uc2e4\uc81c-\uc624\ub514\uc624\ub85c-\ud63c\ud569-\ubaa8\ub4dc-\uc644\uc8fc\u00b7\ub808\uc774\uc544\uc6c3\u00b7\uc811\uadfc\uc131\u00b7\uc678\ubd80-\uc694\uccad-\uc5c6\uc74c-mobile/home.png", + "beforeSha256": "a17b7cad00be132583d28f91a938a83f69663365575e1a91d17013e6d7369002", + "afterSha256": "a17b7cad00be132583d28f91a938a83f69663365575e1a91d17013e6d7369002" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/browser-final/game-\uc2e4\uc81c-\uc624\ub514\uc624\ub85c-\ud63c\ud569-\ubaa8\ub4dc-\uc644\uc8fc\u00b7\ub808\uc774\uc544\uc6c3\u00b7\uc811\uadfc\uc131\u00b7\uc678\ubd80-\uc694\uccad-\uc5c6\uc74c-mobile/results.png", + "beforeSha256": "2f973a00b336f2373cac53c79ae56eb7760cf4eeaff019bde949a86b7e92665a", + "afterSha256": "2f973a00b336f2373cac53c79ae56eb7760cf4eeaff019bde949a86b7e92665a" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/browser-final/review-fixes-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-desktop/normal-results.png", + "beforeSha256": "85e8b066ac128239de765f001c3542e6905018f5deaec7abac4a985006fb03b5", + "afterSha256": "85e8b066ac128239de765f001c3542e6905018f5deaec7abac4a985006fb03b5" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/browser-final/review-fixes-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-desktop/progress-1.png", + "beforeSha256": "4d130e9ea43bdfcd7b35e300224d1b54f2875aa8c24d5551c6627b7abd8ce1fc", + "afterSha256": "4d130e9ea43bdfcd7b35e300224d1b54f2875aa8c24d5551c6627b7abd8ce1fc" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/browser-final/review-fixes-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-desktop/progress-2.png", + "beforeSha256": "4508a9c9e5c7533e9bf8afe6653fb4e1cd111de71141f0fb5404ab4c4b168ac9", + "afterSha256": "4508a9c9e5c7533e9bf8afe6653fb4e1cd111de71141f0fb5404ab4c4b168ac9" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/browser-final/review-fixes-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-desktop/progress-3.png", + "beforeSha256": "fde834aa2f803612ef9cc7a68cea0c8d5a225289a82321ba0a59063d151e66a0", + "afterSha256": "fde834aa2f803612ef9cc7a68cea0c8d5a225289a82321ba0a59063d151e66a0" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/browser-final/review-fixes-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-mobile/normal-results.png", + "beforeSha256": "2f973a00b336f2373cac53c79ae56eb7760cf4eeaff019bde949a86b7e92665a", + "afterSha256": "2f973a00b336f2373cac53c79ae56eb7760cf4eeaff019bde949a86b7e92665a" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/browser-final/review-fixes-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-mobile/progress-1.png", + "beforeSha256": "f46672f555b73c705f838e6d1e1c3d25fe2f9ff29ad629903b85c9b129b83b3b", + "afterSha256": "f46672f555b73c705f838e6d1e1c3d25fe2f9ff29ad629903b85c9b129b83b3b" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/browser-final/review-fixes-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-mobile/progress-2.png", + "beforeSha256": "c39155a3c4d4ae096cb73a892e8e86b40a2d4129c670a7b44d4b24daf8030983", + "afterSha256": "c39155a3c4d4ae096cb73a892e8e86b40a2d4129c670a7b44d4b24daf8030983" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/browser-final/review-fixes-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-mobile/progress-3.png", + "beforeSha256": "9d198c8b07ea84e9f3d9ebad03831ffd61b98672a9e637e7ee9e9eead959cf28", + "afterSha256": "9d198c8b07ea84e9f3d9ebad03831ffd61b98672a9e637e7ee9e9eead959cf28" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/browser-final/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-desktop/copy-320-home.png", + "beforeSha256": "872c362713d2013c7021770e3c222458f56ba0ee2ea2d21cf28bd28df8a6d613", + "afterSha256": "872c362713d2013c7021770e3c222458f56ba0ee2ea2d21cf28bd28df8a6d613" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/browser-final/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-desktop/copy-320-results.png", + "beforeSha256": "fdf263c2c84c64beab026e2899b4b93a7b71b4fcf28b796e5782bb5bc17c2c78", + "afterSha256": "fdf263c2c84c64beab026e2899b4b93a7b71b4fcf28b796e5782bb5bc17c2c78" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/browser-final/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-desktop/copy-360-home.png", + "beforeSha256": "a17b7cad00be132583d28f91a938a83f69663365575e1a91d17013e6d7369002", + "afterSha256": "a17b7cad00be132583d28f91a938a83f69663365575e1a91d17013e6d7369002" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/browser-final/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-desktop/copy-360-results.png", + "beforeSha256": "b838f6bbb4392ef8aa941c66dec5bef6bb27f06acada06b67272be926db9d576", + "afterSha256": "b838f6bbb4392ef8aa941c66dec5bef6bb27f06acada06b67272be926db9d576" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/browser-final/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-mobile/copy-320-home.png", + "beforeSha256": "872c362713d2013c7021770e3c222458f56ba0ee2ea2d21cf28bd28df8a6d613", + "afterSha256": "872c362713d2013c7021770e3c222458f56ba0ee2ea2d21cf28bd28df8a6d613" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/browser-final/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-mobile/copy-320-results.png", + "beforeSha256": "fdf263c2c84c64beab026e2899b4b93a7b71b4fcf28b796e5782bb5bc17c2c78", + "afterSha256": "fdf263c2c84c64beab026e2899b4b93a7b71b4fcf28b796e5782bb5bc17c2c78" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/browser-final/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-mobile/copy-360-home.png", + "beforeSha256": "a17b7cad00be132583d28f91a938a83f69663365575e1a91d17013e6d7369002", + "afterSha256": "a17b7cad00be132583d28f91a938a83f69663365575e1a91d17013e6d7369002" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/browser-final/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-mobile/copy-360-results.png", + "beforeSha256": "b838f6bbb4392ef8aa941c66dec5bef6bb27f06acada06b67272be926db9d576", + "afterSha256": "b838f6bbb4392ef8aa941c66dec5bef6bb27f06acada06b67272be926db9d576" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/browser-final/rounds-\uc2dc\uc791-\ub2e8\uacc4\u00b7SNR\u00b73\ubb38\ud56d-\uc644\ub8cc\u2192\ub2e4\uc74c-\ub2e8\uacc4\u00b7\uc7ac\uc0dd-\uc911-\uc885\ub8cc\u00b7\uc751\ub2f5-\ud6c4-\uc885\ub8cc\u00b7\ud648-\ucd08\uae30\ud654-desktop/early-exit.png", + "beforeSha256": "47cf4429695d65ddad8d353aaa14dd5edcea3ef4c09c16b537d6a72c3e256533", + "afterSha256": "47cf4429695d65ddad8d353aaa14dd5edcea3ef4c09c16b537d6a72c3e256533" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/browser-final/rounds-\uc2dc\uc791-\ub2e8\uacc4\u00b7SNR\u00b73\ubb38\ud56d-\uc644\ub8cc\u2192\ub2e4\uc74c-\ub2e8\uacc4\u00b7\uc7ac\uc0dd-\uc911-\uc885\ub8cc\u00b7\uc751\ub2f5-\ud6c4-\uc885\ub8cc\u00b7\ud648-\ucd08\uae30\ud654-mobile/early-exit.png", + "beforeSha256": "b838f6bbb4392ef8aa941c66dec5bef6bb27f06acada06b67272be926db9d576", + "afterSha256": "b838f6bbb4392ef8aa941c66dec5bef6bb27f06acada06b67272be926db9d576" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/browser-final/ui-\ud55c\uad6d\uc5b4-\uc81c\ubaa9\uc740-\ub2e8\uc5b4-\uc911\uac04\uc5d0\uc11c-\uc904\ubc14\uafc8\ud558\uc9c0-\uc54a\ub294\ub2e4-desktop/heading.png", + "beforeSha256": "56fa16aa968018bcc3252168a0c9e7fd3b30d352cb831b29caed75329c96dac7", + "afterSha256": "56fa16aa968018bcc3252168a0c9e7fd3b30d352cb831b29caed75329c96dac7" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/browser-final/ui-\ud55c\uad6d\uc5b4-\uc81c\ubaa9\uc740-\ub2e8\uc5b4-\uc911\uac04\uc5d0\uc11c-\uc904\ubc14\uafc8\ud558\uc9c0-\uc54a\ub294\ub2e4-mobile/heading.png", + "beforeSha256": "8ae22f403cacecc1d4e59bfeb1faec5b1be1038f87e1bbd564a9e8b5065c693e", + "afterSha256": "8ae22f403cacecc1d4e59bfeb1faec5b1be1038f87e1bbd564a9e8b5065c693e" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/browser-green/.last-run.json", + "beforeSha256": "91d1c43004802cd49950d78eb11c8fa7d05da8ffffe219a8b13b2f561bc00903", + "afterSha256": "91d1c43004802cd49950d78eb11c8fa7d05da8ffffe219a8b13b2f561bc00903" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/browser-green/review-fixes-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-desktop/normal-results.png", + "beforeSha256": "85e8b066ac128239de765f001c3542e6905018f5deaec7abac4a985006fb03b5", + "afterSha256": "85e8b066ac128239de765f001c3542e6905018f5deaec7abac4a985006fb03b5" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/browser-green/review-fixes-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-desktop/progress-1.png", + "beforeSha256": "4d130e9ea43bdfcd7b35e300224d1b54f2875aa8c24d5551c6627b7abd8ce1fc", + "afterSha256": "4d130e9ea43bdfcd7b35e300224d1b54f2875aa8c24d5551c6627b7abd8ce1fc" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/browser-green/review-fixes-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-desktop/progress-2.png", + "beforeSha256": "4508a9c9e5c7533e9bf8afe6653fb4e1cd111de71141f0fb5404ab4c4b168ac9", + "afterSha256": "4508a9c9e5c7533e9bf8afe6653fb4e1cd111de71141f0fb5404ab4c4b168ac9" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/browser-green/review-fixes-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-desktop/progress-3.png", + "beforeSha256": "fde834aa2f803612ef9cc7a68cea0c8d5a225289a82321ba0a59063d151e66a0", + "afterSha256": "fde834aa2f803612ef9cc7a68cea0c8d5a225289a82321ba0a59063d151e66a0" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/browser-green/review-fixes-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-mobile/normal-results.png", + "beforeSha256": "2f973a00b336f2373cac53c79ae56eb7760cf4eeaff019bde949a86b7e92665a", + "afterSha256": "2f973a00b336f2373cac53c79ae56eb7760cf4eeaff019bde949a86b7e92665a" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/browser-green/review-fixes-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-mobile/progress-1.png", + "beforeSha256": "f46672f555b73c705f838e6d1e1c3d25fe2f9ff29ad629903b85c9b129b83b3b", + "afterSha256": "f46672f555b73c705f838e6d1e1c3d25fe2f9ff29ad629903b85c9b129b83b3b" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/browser-green/review-fixes-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-mobile/progress-2.png", + "beforeSha256": "c39155a3c4d4ae096cb73a892e8e86b40a2d4129c670a7b44d4b24daf8030983", + "afterSha256": "c39155a3c4d4ae096cb73a892e8e86b40a2d4129c670a7b44d4b24daf8030983" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/browser-green/review-fixes-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-mobile/progress-3.png", + "beforeSha256": "9d198c8b07ea84e9f3d9ebad03831ffd61b98672a9e637e7ee9e9eead959cf28", + "afterSha256": "9d198c8b07ea84e9f3d9ebad03831ffd61b98672a9e637e7ee9e9eead959cf28" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/browser-green/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-desktop/copy-320-home.png", + "beforeSha256": "872c362713d2013c7021770e3c222458f56ba0ee2ea2d21cf28bd28df8a6d613", + "afterSha256": "872c362713d2013c7021770e3c222458f56ba0ee2ea2d21cf28bd28df8a6d613" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/browser-green/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-desktop/copy-320-results.png", + "beforeSha256": "fdf263c2c84c64beab026e2899b4b93a7b71b4fcf28b796e5782bb5bc17c2c78", + "afterSha256": "fdf263c2c84c64beab026e2899b4b93a7b71b4fcf28b796e5782bb5bc17c2c78" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/browser-green/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-desktop/copy-360-home.png", + "beforeSha256": "a17b7cad00be132583d28f91a938a83f69663365575e1a91d17013e6d7369002", + "afterSha256": "a17b7cad00be132583d28f91a938a83f69663365575e1a91d17013e6d7369002" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/browser-green/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-desktop/copy-360-results.png", + "beforeSha256": "b838f6bbb4392ef8aa941c66dec5bef6bb27f06acada06b67272be926db9d576", + "afterSha256": "b838f6bbb4392ef8aa941c66dec5bef6bb27f06acada06b67272be926db9d576" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/browser-green/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-mobile/copy-320-home.png", + "beforeSha256": "872c362713d2013c7021770e3c222458f56ba0ee2ea2d21cf28bd28df8a6d613", + "afterSha256": "872c362713d2013c7021770e3c222458f56ba0ee2ea2d21cf28bd28df8a6d613" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/browser-green/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-mobile/copy-320-results.png", + "beforeSha256": "fdf263c2c84c64beab026e2899b4b93a7b71b4fcf28b796e5782bb5bc17c2c78", + "afterSha256": "fdf263c2c84c64beab026e2899b4b93a7b71b4fcf28b796e5782bb5bc17c2c78" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/browser-green/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-mobile/copy-360-home.png", + "beforeSha256": "a17b7cad00be132583d28f91a938a83f69663365575e1a91d17013e6d7369002", + "afterSha256": "a17b7cad00be132583d28f91a938a83f69663365575e1a91d17013e6d7369002" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/browser-green/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-mobile/copy-360-results.png", + "beforeSha256": "b838f6bbb4392ef8aa941c66dec5bef6bb27f06acada06b67272be926db9d576", + "afterSha256": "b838f6bbb4392ef8aa941c66dec5bef6bb27f06acada06b67272be926db9d576" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/browser-red/.last-run.json", + "beforeSha256": "78fe937fdabae861b58404e69d2faec459c97fbe435f74222101037f0b9a3315", + "afterSha256": "78fe937fdabae861b58404e69d2faec459c97fbe435f74222101037f0b9a3315" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-desktop/error-context.md", + "beforeSha256": "fa4b05c6fb8ec98c57ff96e2f0d568aeb7ed027d8763712e767e50e13b25b31c", + "afterSha256": "fa4b05c6fb8ec98c57ff96e2f0d568aeb7ed027d8763712e767e50e13b25b31c" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-desktop/normal-results.png", + "beforeSha256": "d3caf1e2d8625d6020e1e9061143b38843fa5698e7316b65a73569cce6026b73", + "afterSha256": "d3caf1e2d8625d6020e1e9061143b38843fa5698e7316b65a73569cce6026b73" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-desktop/progress-1.png", + "beforeSha256": "e4f413e3dd1379a913a1d94ec5f084f607a80fe375382eb74cee2ac515aa8590", + "afterSha256": "e4f413e3dd1379a913a1d94ec5f084f607a80fe375382eb74cee2ac515aa8590" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-desktop/progress-2.png", + "beforeSha256": "4d130e9ea43bdfcd7b35e300224d1b54f2875aa8c24d5551c6627b7abd8ce1fc", + "afterSha256": "4d130e9ea43bdfcd7b35e300224d1b54f2875aa8c24d5551c6627b7abd8ce1fc" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-desktop/progress-3.png", + "beforeSha256": "4508a9c9e5c7533e9bf8afe6653fb4e1cd111de71141f0fb5404ab4c4b168ac9", + "afterSha256": "4508a9c9e5c7533e9bf8afe6653fb4e1cd111de71141f0fb5404ab4c4b168ac9" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-desktop/trace.zip", + "beforeSha256": "f415eaae383b21d1fd059b3f99b2a1ec962a34facd2959406985e08710bf7a54", + "afterSha256": "f415eaae383b21d1fd059b3f99b2a1ec962a34facd2959406985e08710bf7a54" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-mobile/error-context.md", + "beforeSha256": "1a289b42d134b84701446f0bfe2f1e462121412930595617023c1cf93e2e0c40", + "afterSha256": "1a289b42d134b84701446f0bfe2f1e462121412930595617023c1cf93e2e0c40" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-mobile/normal-results.png", + "beforeSha256": "5eccd53853c27a7c1385f1219b0a9bb7af60070fbdd1469ef3265e40377f3eaa", + "afterSha256": "5eccd53853c27a7c1385f1219b0a9bb7af60070fbdd1469ef3265e40377f3eaa" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-mobile/progress-1.png", + "beforeSha256": "3597007bfc13a2a9dcb9477ce836b68cccb78f55957f1f460431b67fe90e0f13", + "afterSha256": "3597007bfc13a2a9dcb9477ce836b68cccb78f55957f1f460431b67fe90e0f13" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-mobile/progress-2.png", + "beforeSha256": "f46672f555b73c705f838e6d1e1c3d25fe2f9ff29ad629903b85c9b129b83b3b", + "afterSha256": "f46672f555b73c705f838e6d1e1c3d25fe2f9ff29ad629903b85c9b129b83b3b" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-mobile/progress-3.png", + "beforeSha256": "c39155a3c4d4ae096cb73a892e8e86b40a2d4129c670a7b44d4b24daf8030983", + "afterSha256": "c39155a3c4d4ae096cb73a892e8e86b40a2d4129c670a7b44d4b24daf8030983" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-mobile/trace.zip", + "beforeSha256": "022a0078453d25254bb6bb4af59fbd3696abd5acaaee750343adea3cd9b8aa0d", + "afterSha256": "022a0078453d25254bb6bb4af59fbd3696abd5acaaee750343adea3cd9b8aa0d" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-desktop/copy-320-home.png", + "beforeSha256": "872c362713d2013c7021770e3c222458f56ba0ee2ea2d21cf28bd28df8a6d613", + "afterSha256": "872c362713d2013c7021770e3c222458f56ba0ee2ea2d21cf28bd28df8a6d613" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-desktop/copy-320-results.png", + "beforeSha256": "b1dae69c908b9911d536d3e41553447bc71908a035f28bbc1f885d1def337b92", + "afterSha256": "b1dae69c908b9911d536d3e41553447bc71908a035f28bbc1f885d1def337b92" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-desktop/copy-360-home.png", + "beforeSha256": "c04abd43e93e46fde7e1591bde24a3073d584226e93ba5661bac1b5cd78a4695", + "afterSha256": "c04abd43e93e46fde7e1591bde24a3073d584226e93ba5661bac1b5cd78a4695" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-desktop/copy-360-results.png", + "beforeSha256": "5e2ef07c6c3b7672e0aa82f248a5a245d60a10f86633fab2b2dd45ecff81d7fa", + "afterSha256": "5e2ef07c6c3b7672e0aa82f248a5a245d60a10f86633fab2b2dd45ecff81d7fa" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-desktop/error-context.md", + "beforeSha256": "d186519b7904a6ef3096e49c18e5e410528df127a7de409e237e7571d8a89f1b", + "afterSha256": "d186519b7904a6ef3096e49c18e5e410528df127a7de409e237e7571d8a89f1b" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-desktop/trace.zip", + "beforeSha256": "6d2abede66a4b0784accca9a0fea36ea71cabb138855e84343a2cb7f64cdab71", + "afterSha256": "6d2abede66a4b0784accca9a0fea36ea71cabb138855e84343a2cb7f64cdab71" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-mobile/copy-320-home.png", + "beforeSha256": "872c362713d2013c7021770e3c222458f56ba0ee2ea2d21cf28bd28df8a6d613", + "afterSha256": "872c362713d2013c7021770e3c222458f56ba0ee2ea2d21cf28bd28df8a6d613" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-mobile/copy-320-results.png", + "beforeSha256": "b1dae69c908b9911d536d3e41553447bc71908a035f28bbc1f885d1def337b92", + "afterSha256": "b1dae69c908b9911d536d3e41553447bc71908a035f28bbc1f885d1def337b92" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-mobile/copy-360-home.png", + "beforeSha256": "c04abd43e93e46fde7e1591bde24a3073d584226e93ba5661bac1b5cd78a4695", + "afterSha256": "c04abd43e93e46fde7e1591bde24a3073d584226e93ba5661bac1b5cd78a4695" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-mobile/copy-360-results.png", + "beforeSha256": "5e2ef07c6c3b7672e0aa82f248a5a245d60a10f86633fab2b2dd45ecff81d7fa", + "afterSha256": "5e2ef07c6c3b7672e0aa82f248a5a245d60a10f86633fab2b2dd45ecff81d7fa" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-mobile/error-context.md", + "beforeSha256": "d186519b7904a6ef3096e49c18e5e410528df127a7de409e237e7571d8a89f1b", + "afterSha256": "d186519b7904a6ef3096e49c18e5e410528df127a7de409e237e7571d8a89f1b" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-mobile/trace.zip", + "beforeSha256": "8ced8d12bbceb962456728ce1e2fe7c687503594ab0e14774f13368705b3ac6f", + "afterSha256": "8ced8d12bbceb962456728ce1e2fe7c687503594ab0e14774f13368705b3ac6f" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/browser-results.json", + "beforeSha256": "81cb42ae097d36878f0263e41f3a9e4fb2f5f2394d4331332517818b434ba521", + "afterSha256": "81cb42ae097d36878f0263e41f3a9e4fb2f5f2394d4331332517818b434ba521" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/chrome-sandbox.json", + "beforeSha256": "915067209786cb6fe2c83e90fb8f9d9d9b3f7af876786819a9a54ee6a96aab6d", + "afterSha256": "915067209786cb6fe2c83e90fb8f9d9d9b3f7af876786819a9a54ee6a96aab6d" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/desktop-audio-integrity.json", + "beforeSha256": "3d6defdb7ad3b8d4d7949ffe476f4ebf685e5dcc1ad0868b98bb4e639b6dcadb", + "afterSha256": "3d6defdb7ad3b8d4d7949ffe476f4ebf685e5dcc1ad0868b98bb4e639b6dcadb" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/desktop-runtime-audit.json", + "beforeSha256": "61b9c48518a9cad75f53b8084ddf18910d6e028b2c8696cdda338a37f5bc283c", + "afterSha256": "61b9c48518a9cad75f53b8084ddf18910d6e028b2c8696cdda338a37f5bc283c" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/environment.json", + "beforeSha256": "924a9c62b6f0da242b09c9374f6e9f5ef75b09a5f7c0eb8776ad1e701b31436e", + "afterSha256": "924a9c62b6f0da242b09c9374f6e9f5ef75b09a5f7c0eb8776ad1e701b31436e" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/mobile-audio-integrity.json", + "beforeSha256": "3d6defdb7ad3b8d4d7949ffe476f4ebf685e5dcc1ad0868b98bb4e639b6dcadb", + "afterSha256": "3d6defdb7ad3b8d4d7949ffe476f4ebf685e5dcc1ad0868b98bb4e639b6dcadb" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/mobile-runtime-audit.json", + "beforeSha256": "9059b42becd1dc1a3923053a5792c83ca9574f185b9a82c1cf1f6aa48296a055", + "afterSha256": "9059b42becd1dc1a3923053a5792c83ca9574f185b9a82c1cf1f6aa48296a055" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/npm-audit.json", + "beforeSha256": "ea7bab3cc606a95eecdf538b0d02d3cf928bf0f3a1cfb1d2c8ddbe02846d5658", + "afterSha256": "ea7bab3cc606a95eecdf538b0d02d3cf928bf0f3a1cfb1d2c8ddbe02846d5658" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/preservation.json", + "beforeSha256": "5057edde3be25fb79d8dcbcaf54eaee315f40b4852064fc6509814da2e70b7bf", + "afterSha256": "5057edde3be25fb79d8dcbcaf54eaee315f40b4852064fc6509814da2e70b7bf" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/screenshots/desktop-early-exit.png", + "beforeSha256": "47cf4429695d65ddad8d353aaa14dd5edcea3ef4c09c16b537d6a72c3e256533", + "afterSha256": "47cf4429695d65ddad8d353aaa14dd5edcea3ef4c09c16b537d6a72c3e256533" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/screenshots/desktop-game.png", + "beforeSha256": "17c22581f74ddcd78770ebfbb75f0041298baab336c17cd5b37ff5e29b8b6a7d", + "afterSha256": "17c22581f74ddcd78770ebfbb75f0041298baab336c17cd5b37ff5e29b8b6a7d" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/screenshots/desktop-normal-results.png", + "beforeSha256": "85e8b066ac128239de765f001c3542e6905018f5deaec7abac4a985006fb03b5", + "afterSha256": "85e8b066ac128239de765f001c3542e6905018f5deaec7abac4a985006fb03b5" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/screenshots/desktop-progress-1.png", + "beforeSha256": "4d130e9ea43bdfcd7b35e300224d1b54f2875aa8c24d5551c6627b7abd8ce1fc", + "afterSha256": "4d130e9ea43bdfcd7b35e300224d1b54f2875aa8c24d5551c6627b7abd8ce1fc" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/screenshots/desktop-progress-2.png", + "beforeSha256": "4508a9c9e5c7533e9bf8afe6653fb4e1cd111de71141f0fb5404ab4c4b168ac9", + "afterSha256": "4508a9c9e5c7533e9bf8afe6653fb4e1cd111de71141f0fb5404ab4c4b168ac9" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/screenshots/desktop-progress-3.png", + "beforeSha256": "fde834aa2f803612ef9cc7a68cea0c8d5a225289a82321ba0a59063d151e66a0", + "afterSha256": "fde834aa2f803612ef9cc7a68cea0c8d5a225289a82321ba0a59063d151e66a0" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/screenshots/desktop-start.png", + "beforeSha256": "911b923e3a68e8deb0063efd88ed43eb1ed6c597c14bd5b9ee71f6b5161b6d7b", + "afterSha256": "911b923e3a68e8deb0063efd88ed43eb1ed6c597c14bd5b9ee71f6b5161b6d7b" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/screenshots/mobile-early-exit.png", + "beforeSha256": "b838f6bbb4392ef8aa941c66dec5bef6bb27f06acada06b67272be926db9d576", + "afterSha256": "b838f6bbb4392ef8aa941c66dec5bef6bb27f06acada06b67272be926db9d576" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/screenshots/mobile-game.png", + "beforeSha256": "13291f8ba632d1962611e25c99f73fa3d7732f7b8ef3a9222a5ddd5082576353", + "afterSha256": "13291f8ba632d1962611e25c99f73fa3d7732f7b8ef3a9222a5ddd5082576353" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/screenshots/mobile-normal-results.png", + "beforeSha256": "2f973a00b336f2373cac53c79ae56eb7760cf4eeaff019bde949a86b7e92665a", + "afterSha256": "2f973a00b336f2373cac53c79ae56eb7760cf4eeaff019bde949a86b7e92665a" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/screenshots/mobile-progress-1.png", + "beforeSha256": "f46672f555b73c705f838e6d1e1c3d25fe2f9ff29ad629903b85c9b129b83b3b", + "afterSha256": "f46672f555b73c705f838e6d1e1c3d25fe2f9ff29ad629903b85c9b129b83b3b" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/screenshots/mobile-progress-2.png", + "beforeSha256": "c39155a3c4d4ae096cb73a892e8e86b40a2d4129c670a7b44d4b24daf8030983", + "afterSha256": "c39155a3c4d4ae096cb73a892e8e86b40a2d4129c670a7b44d4b24daf8030983" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/screenshots/mobile-progress-3.png", + "beforeSha256": "9d198c8b07ea84e9f3d9ebad03831ffd61b98672a9e637e7ee9e9eead959cf28", + "afterSha256": "9d198c8b07ea84e9f3d9ebad03831ffd61b98672a9e637e7ee9e9eead959cf28" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/screenshots/mobile-start.png", + "beforeSha256": "a17b7cad00be132583d28f91a938a83f69663365575e1a91d17013e6d7369002", + "afterSha256": "a17b7cad00be132583d28f91a938a83f69663365575e1a91d17013e6d7369002" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/source-reverification.json", + "beforeSha256": "f92d3d9a6d613eb7432b59c5587f39be4c23090566ae0f01bd0bd2fe2d25feaa", + "afterSha256": "f92d3d9a6d613eb7432b59c5587f39be4c23090566ae0f01bd0bd2fe2d25feaa" + }, + { + "file": ".agent/evidence-v0.2.3/review-fixes/verified-code-sha256.json", + "beforeSha256": "3002de6366d74baa493d28fa1009b04c09926d379d67da44e077cee3f6ec93cd", + "afterSha256": "3002de6366d74baa493d28fa1009b04c09926d379d67da44e077cee3f6ec93cd" + }, + { + "file": ".agent/evidence-v0.2.3/secret-scan.json", + "beforeSha256": "8928209f4e2bef083901f845ae3fd8e949c0a266cefa15ff4563eef337a008d2", + "afterSha256": "8928209f4e2bef083901f845ae3fd8e949c0a266cefa15ff4563eef337a008d2" + }, + { + "file": ".agent/evidence-v0.2.3/source-downloads.log", + "beforeSha256": "c49692acca2fddc1cdbea155ef0ae6191a9f7eeee3508d3bf608a71bec349e46", + "afterSha256": "c49692acca2fddc1cdbea155ef0ae6191a9f7eeee3508d3bf608a71bec349e46" + }, + { + "file": ".agent/evidence-v0.2.3/source-integrity.json", + "beforeSha256": "61c080d80081a3fdc9b2c78a4183805df6293184add2bca9534aee8d82bd5b96", + "afterSha256": "61c080d80081a3fdc9b2c78a4183805df6293184add2bca9534aee8d82bd5b96" + } + ], + "wavFiles": [ + { + "file": "public/audio/correction-apple.wav", + "beforeSha256": "ccd7327a3fb54d3320d049ffdced3bc17595861cee69429c0ee97182d454195b", + "afterSha256": "ccd7327a3fb54d3320d049ffdced3bc17595861cee69429c0ee97182d454195b" + }, + { + "file": "public/audio/correction-furniture.wav", + "beforeSha256": "5c004a7b2f5a4a918c9f689f1a2dcb219a620ed14313f40a9655b36dbf64948d", + "afterSha256": "5c004a7b2f5a4a918c9f689f1a2dcb219a620ed14313f40a9655b36dbf64948d" + }, + { + "file": "public/audio/correction-hat.wav", + "beforeSha256": "f9f98c91cfbcfcb106eef7d5d3795a9cf3c3aab7e19a60f13d7dffe284d19f86", + "afterSha256": "f9f98c91cfbcfcb106eef7d5d3795a9cf3c3aab7e19a60f13d7dffe284d19f86" + }, + { + "file": "public/audio/correction-market.wav", + "beforeSha256": "b8d25b867497adcd0fe7c8b6a8a8d2e7a52965956738a83e53f58735708773f9", + "afterSha256": "b8d25b867497adcd0fe7c8b6a8a8d2e7a52965956738a83e53f58735708773f9" + }, + { + "file": "public/audio/correction-meat.wav", + "beforeSha256": "48e91b3932d3798e852041a854b3ee08c72127e092c62083a47af6b99adff241", + "afterSha256": "48e91b3932d3798e852041a854b3ee08c72127e092c62083a47af6b99adff241" + }, + { + "file": "public/audio/correction-oil.wav", + "beforeSha256": "f6eff0cdddcad9790351491e60c53cb2a70d222033a583652f2de0b8cd6abcc7", + "afterSha256": "f6eff0cdddcad9790351491e60c53cb2a70d222033a583652f2de0b8cd6abcc7" + }, + { + "file": "public/audio/correction-sea.wav", + "beforeSha256": "9233431d78ab4b144e3c33ad0cf0d49fc0fb91b29514343230ba32987b794bb3", + "afterSha256": "9233431d78ab4b144e3c33ad0cf0d49fc0fb91b29514343230ba32987b794bb3" + }, + { + "file": "public/audio/correction-sound.wav", + "beforeSha256": "5a603bc69979603afddcaeb6edf500a7c540b72405daeb33f5335d746b327da1", + "afterSha256": "5a603bc69979603afddcaeb6edf500a7c540b72405daeb33f5335d746b327da1" + }, + { + "file": "public/audio/correction-tree.wav", + "beforeSha256": "b8e8bbe6b8b14727efd953fae9d4aed2caeb004055d52f611c6378322847edbe", + "afterSha256": "b8e8bbe6b8b14727efd953fae9d4aed2caeb004055d52f611c6378322847edbe" + }, + { + "file": "public/audio/correction-umbrella.wav", + "beforeSha256": "92b54f04884ab915783945077efd8f3bd443849a1720f72168b6348cae1f8e85", + "afterSha256": "92b54f04884ab915783945077efd8f3bd443849a1720f72168b6348cae1f8e85" + }, + { + "file": "public/audio/first-apple.wav", + "beforeSha256": "7c1dbcb3082055df2b8f087f7e906ec867c92f679de0894c34740c05e61a4bc1", + "afterSha256": "7c1dbcb3082055df2b8f087f7e906ec867c92f679de0894c34740c05e61a4bc1" + }, + { + "file": "public/audio/first-furniture.wav", + "beforeSha256": "29f007b385b7182db1d8aeccad4fc3c260df5e66e14e52a46b0ef0fcd0ff3a0a", + "afterSha256": "29f007b385b7182db1d8aeccad4fc3c260df5e66e14e52a46b0ef0fcd0ff3a0a" + }, + { + "file": "public/audio/first-hat.wav", + "beforeSha256": "17c8cde90567e7574b0c0702663bd70713054089ee920241b5444d9b7869eef5", + "afterSha256": "17c8cde90567e7574b0c0702663bd70713054089ee920241b5444d9b7869eef5" + }, + { + "file": "public/audio/first-market.wav", + "beforeSha256": "1e00b8f70a796cdebb0feb00c605fece7488b06915e6e036f54206f05e201e0c", + "afterSha256": "1e00b8f70a796cdebb0feb00c605fece7488b06915e6e036f54206f05e201e0c" + }, + { + "file": "public/audio/first-meat.wav", + "beforeSha256": "f51a37c1722fef581f7d642a4dcae7fcb9953b3c318dce971bf616cd1a81fecc", + "afterSha256": "f51a37c1722fef581f7d642a4dcae7fcb9953b3c318dce971bf616cd1a81fecc" + }, + { + "file": "public/audio/first-oil.wav", + "beforeSha256": "f415195e0cfc7ee711d09de7519e88eab62cc8b58d70772c83c3f5c27c267819", + "afterSha256": "f415195e0cfc7ee711d09de7519e88eab62cc8b58d70772c83c3f5c27c267819" + }, + { + "file": "public/audio/first-sea.wav", + "beforeSha256": "0f0b39314c5f7d7168d4854003c0c284e7bc3438cdc4d1d1c5adab7cb5ed30e5", + "afterSha256": "0f0b39314c5f7d7168d4854003c0c284e7bc3438cdc4d1d1c5adab7cb5ed30e5" + }, + { + "file": "public/audio/first-sound.wav", + "beforeSha256": "46f6adeed928a16af0700f1e8626cf8049f124632a04a5d10604426fb06f9596", + "afterSha256": "46f6adeed928a16af0700f1e8626cf8049f124632a04a5d10604426fb06f9596" + }, + { + "file": "public/audio/first-tree.wav", + "beforeSha256": "3178230fd5850b6277a2153b438ec5289720e3db7ac929914cc213964f004bd5", + "afterSha256": "3178230fd5850b6277a2153b438ec5289720e3db7ac929914cc213964f004bd5" + }, + { + "file": "public/audio/first-umbrella.wav", + "beforeSha256": "878e0bd2e6e4105f175aef51a028f6b141f3a2072be20f783193f3ba897a3ee0", + "afterSha256": "878e0bd2e6e4105f175aef51a028f6b141f3a2072be20f783193f3ba897a3ee0" + }, + { + "file": "public/audio/intro.wav", + "beforeSha256": "90d9f46e6e3f9c8a0c1a781096df54d7809ef4ad38b289508ef7b8c0411465ce", + "afterSha256": "90d9f46e6e3f9c8a0c1a781096df54d7809ef4ad38b289508ef7b8c0411465ce" + }, + { + "file": "public/audio/last-apple.wav", + "beforeSha256": "4cb2a8579fa3a7b91bb36363826ce8ca0d6d86e96e16a479e226a2802edd82f7", + "afterSha256": "4cb2a8579fa3a7b91bb36363826ce8ca0d6d86e96e16a479e226a2802edd82f7" + }, + { + "file": "public/audio/last-furniture.wav", + "beforeSha256": "5ad4f776e35439d408abed0e66567d6b5cdc80fc54d579165472e474f1238776", + "afterSha256": "5ad4f776e35439d408abed0e66567d6b5cdc80fc54d579165472e474f1238776" + }, + { + "file": "public/audio/last-hat.wav", + "beforeSha256": "bdaf8fbc54df8061e9e58aa8c14b3044a6e863dc54973ee3ee6ae2c5ae1a28f1", + "afterSha256": "bdaf8fbc54df8061e9e58aa8c14b3044a6e863dc54973ee3ee6ae2c5ae1a28f1" + }, + { + "file": "public/audio/last-market.wav", + "beforeSha256": "7857e87e9dbfe8fe849cc0b18c1d45b60916cb337328099c7a87a42c82e2821e", + "afterSha256": "7857e87e9dbfe8fe849cc0b18c1d45b60916cb337328099c7a87a42c82e2821e" + }, + { + "file": "public/audio/last-meat.wav", + "beforeSha256": "10f8ad4259ed8945c9da831e80b3902303c09caef96d400298599168fb1efed4", + "afterSha256": "10f8ad4259ed8945c9da831e80b3902303c09caef96d400298599168fb1efed4" + }, + { + "file": "public/audio/last-oil.wav", + "beforeSha256": "b5ce34950b8b31b1baf6ce55410797f0d8aa5478a670d6eace87cf76d134d6d3", + "afterSha256": "b5ce34950b8b31b1baf6ce55410797f0d8aa5478a670d6eace87cf76d134d6d3" + }, + { + "file": "public/audio/last-sea.wav", + "beforeSha256": "f755452e1da44674aa1df7d12edffa988091b89a394e7eb6d4a00eb721f07cbf", + "afterSha256": "f755452e1da44674aa1df7d12edffa988091b89a394e7eb6d4a00eb721f07cbf" + }, + { + "file": "public/audio/last-sound.wav", + "beforeSha256": "ec9c49802aebeb6a8b898a1c0d8ad1daa127d2d64c905c197ed49a8e0c4eb64a", + "afterSha256": "ec9c49802aebeb6a8b898a1c0d8ad1daa127d2d64c905c197ed49a8e0c4eb64a" + }, + { + "file": "public/audio/last-tree.wav", + "beforeSha256": "589e56d940a3c9e80ec02ae0b2dd93463fdc85ef019a753fcd0fded0752055f9", + "afterSha256": "589e56d940a3c9e80ec02ae0b2dd93463fdc85ef019a753fcd0fded0752055f9" + }, + { + "file": "public/audio/last-umbrella.wav", + "beforeSha256": "c801293a34013a8d93d3289a2cc87cd3eed83f97ba4647f5060efa00b117a9ad", + "afterSha256": "c801293a34013a8d93d3289a2cc87cd3eed83f97ba4647f5060efa00b117a9ad" + }, + { + "file": "public/audio/luck-apple.wav", + "beforeSha256": "7c8f413f4b7e164f090e508ba090448f1376c6012649bbb6a917d45851313883", + "afterSha256": "7c8f413f4b7e164f090e508ba090448f1376c6012649bbb6a917d45851313883" + }, + { + "file": "public/audio/luck-furniture.wav", + "beforeSha256": "52cb92cdb8ee92b6f581c9d68dbc346f180c470564809ba57185429c9eb84127", + "afterSha256": "52cb92cdb8ee92b6f581c9d68dbc346f180c470564809ba57185429c9eb84127" + }, + { + "file": "public/audio/luck-hat.wav", + "beforeSha256": "4ff43dd042f4b5451e9fdeb3edd59f1e389a7d1dd488094587a3a9fc7dfffa44", + "afterSha256": "4ff43dd042f4b5451e9fdeb3edd59f1e389a7d1dd488094587a3a9fc7dfffa44" + }, + { + "file": "public/audio/luck-market.wav", + "beforeSha256": "356af25332bf2000ed349671f3ff39767929e1f4599af622c021f907d11fb7bf", + "afterSha256": "356af25332bf2000ed349671f3ff39767929e1f4599af622c021f907d11fb7bf" + }, + { + "file": "public/audio/luck-meat.wav", + "beforeSha256": "d36dfc395a5c53fbfa4abe9980db7bb59adfdac59e40318c4aca365365e3f2ab", + "afterSha256": "d36dfc395a5c53fbfa4abe9980db7bb59adfdac59e40318c4aca365365e3f2ab" + }, + { + "file": "public/audio/luck-oil.wav", + "beforeSha256": "3fa1e662a3af8f2726b17b2baa5bec2934406e6595ebc243c8380dd16e190977", + "afterSha256": "3fa1e662a3af8f2726b17b2baa5bec2934406e6595ebc243c8380dd16e190977" + }, + { + "file": "public/audio/luck-sea.wav", + "beforeSha256": "47aa31d757c9fb49c9b53a1c052d90a5ced4be57549d649850d9b48f8864045b", + "afterSha256": "47aa31d757c9fb49c9b53a1c052d90a5ced4be57549d649850d9b48f8864045b" + }, + { + "file": "public/audio/luck-sound.wav", + "beforeSha256": "34e4d9758d2ed448646fda364610e34779c84794403d9051ab3d8c1d33e2c80c", + "afterSha256": "34e4d9758d2ed448646fda364610e34779c84794403d9051ab3d8c1d33e2c80c" + }, + { + "file": "public/audio/luck-tree.wav", + "beforeSha256": "122f496834fb16d6da47f801e50e46e272e4e934af959467d1db4e490f79be7a", + "afterSha256": "122f496834fb16d6da47f801e50e46e272e4e934af959467d1db4e490f79be7a" + }, + { + "file": "public/audio/luck-umbrella.wav", + "beforeSha256": "8d3e8e8bc97e5fe3f3362184c4abb12f01a882a1f1174d2644f0f70aac677c0a", + "afterSha256": "8d3e8e8bc97e5fe3f3362184c4abb12f01a882a1f1174d2644f0f70aac677c0a" + }, + { + "file": "public/audio/message-apple.wav", + "beforeSha256": "d85e6f47d871369f00de2274139e5ad6b4b5686b5e20e248df0ed6b9a320d942", + "afterSha256": "d85e6f47d871369f00de2274139e5ad6b4b5686b5e20e248df0ed6b9a320d942" + }, + { + "file": "public/audio/message-furniture.wav", + "beforeSha256": "26c331b7e12311236f4bb48f88918dfbf53cccd2f50b55741ea6ff4473e71dd8", + "afterSha256": "26c331b7e12311236f4bb48f88918dfbf53cccd2f50b55741ea6ff4473e71dd8" + }, + { + "file": "public/audio/message-hat.wav", + "beforeSha256": "5a713a8522b231bb8276805c014b385b9150b79f58ff2618446607e2b442495e", + "afterSha256": "5a713a8522b231bb8276805c014b385b9150b79f58ff2618446607e2b442495e" + }, + { + "file": "public/audio/message-market.wav", + "beforeSha256": "9242d4cd6e0030e6b073e4d2360f84aa8a454d1749711cdb2d64c14f28a7ea20", + "afterSha256": "9242d4cd6e0030e6b073e4d2360f84aa8a454d1749711cdb2d64c14f28a7ea20" + }, + { + "file": "public/audio/message-meat.wav", + "beforeSha256": "ce19735df079b54c171e775b6b365385a80160b9033442abab95b2b9c8505e1a", + "afterSha256": "ce19735df079b54c171e775b6b365385a80160b9033442abab95b2b9c8505e1a" + }, + { + "file": "public/audio/message-oil.wav", + "beforeSha256": "a2a71a7e5e07c81871a25c6cb7540c39aa0b32fc44f78cda66b5f34ace98d805", + "afterSha256": "a2a71a7e5e07c81871a25c6cb7540c39aa0b32fc44f78cda66b5f34ace98d805" + }, + { + "file": "public/audio/message-sea.wav", + "beforeSha256": "28a461fbe03bffe2560030dea8b60715f7c0fe262dcf85b5b7f7daf483836382", + "afterSha256": "28a461fbe03bffe2560030dea8b60715f7c0fe262dcf85b5b7f7daf483836382" + }, + { + "file": "public/audio/message-sound.wav", + "beforeSha256": "1e682147dae8026ba78dc8f256c7f24acb3a6743bfd88a0fcc86096930eef078", + "afterSha256": "1e682147dae8026ba78dc8f256c7f24acb3a6743bfd88a0fcc86096930eef078" + }, + { + "file": "public/audio/message-tree.wav", + "beforeSha256": "5d684aa710a63d36ed8dcc2a8bfbdd5c71b0b1c63dad2a324adecb76591e85b8", + "afterSha256": "5d684aa710a63d36ed8dcc2a8bfbdd5c71b0b1c63dad2a324adecb76591e85b8" + }, + { + "file": "public/audio/message-umbrella.wav", + "beforeSha256": "41d5866dae66600df4694a8312b531571d44cece6dba0e423e7c43d09d184819", + "afterSha256": "41d5866dae66600df4694a8312b531571d44cece6dba0e423e7c43d09d184819" + }, + { + "file": "public/audio/middle-apple.wav", + "beforeSha256": "8832f1b793ab3eedbe663875ea8dbeabb122c329bd5879437c71230b0418c3c8", + "afterSha256": "8832f1b793ab3eedbe663875ea8dbeabb122c329bd5879437c71230b0418c3c8" + }, + { + "file": "public/audio/middle-furniture.wav", + "beforeSha256": "b45b1afc8d9b534ff3e0a2a2ecb99efc1f4e40d41f89f55c4ed8ba94ad6d76d4", + "afterSha256": "b45b1afc8d9b534ff3e0a2a2ecb99efc1f4e40d41f89f55c4ed8ba94ad6d76d4" + }, + { + "file": "public/audio/middle-hat.wav", + "beforeSha256": "b01ef9762ac84e3eb757243bc9286c62f7d45444a821ae35ac36a8b095e1598a", + "afterSha256": "b01ef9762ac84e3eb757243bc9286c62f7d45444a821ae35ac36a8b095e1598a" + }, + { + "file": "public/audio/middle-market.wav", + "beforeSha256": "c855b449e0d4ace74681bfe68e5e7f0b063568827ae872017234dbe8ae119e4c", + "afterSha256": "c855b449e0d4ace74681bfe68e5e7f0b063568827ae872017234dbe8ae119e4c" + }, + { + "file": "public/audio/middle-meat.wav", + "beforeSha256": "d416107cc05e7c5b92ca27100a10a8a9689de913346179945d5542de4a6bac0c", + "afterSha256": "d416107cc05e7c5b92ca27100a10a8a9689de913346179945d5542de4a6bac0c" + }, + { + "file": "public/audio/middle-oil.wav", + "beforeSha256": "7a6b122b11c07da86c95fb78e2db2a70681b5219c63d6441fe56da1979ac1dc3", + "afterSha256": "7a6b122b11c07da86c95fb78e2db2a70681b5219c63d6441fe56da1979ac1dc3" + }, + { + "file": "public/audio/middle-sea.wav", + "beforeSha256": "b6dbe0af143ea775f05bd59a3d6af348bcc770ab378ac91ea75a56e06c326edf", + "afterSha256": "b6dbe0af143ea775f05bd59a3d6af348bcc770ab378ac91ea75a56e06c326edf" + }, + { + "file": "public/audio/middle-sound.wav", + "beforeSha256": "4d00aa6114327f450a00dacbc7e7b572ebf1de4ce9dc2fe4b5505766cca71ce9", + "afterSha256": "4d00aa6114327f450a00dacbc7e7b572ebf1de4ce9dc2fe4b5505766cca71ce9" + }, + { + "file": "public/audio/middle-tree.wav", + "beforeSha256": "341888c75275c13eb31058f53a1d4276be0daa0a1b5a3a45522036928b83b0c1", + "afterSha256": "341888c75275c13eb31058f53a1d4276be0daa0a1b5a3a45522036928b83b0c1" + }, + { + "file": "public/audio/middle-umbrella.wav", + "beforeSha256": "399ea2f681f755918f1117c8baba42739ceca64b307b999342f457a9235050b6", + "afterSha256": "399ea2f681f755918f1117c8baba42739ceca64b307b999342f457a9235050b6" + }, + { + "file": "public/audio/mission-apple.wav", + "beforeSha256": "3ef42e276ff3500c3e197d149f29f79d6a0c1d5516ed1d5a2c57210333fded9c", + "afterSha256": "3ef42e276ff3500c3e197d149f29f79d6a0c1d5516ed1d5a2c57210333fded9c" + }, + { + "file": "public/audio/mission-furniture.wav", + "beforeSha256": "af82e03b686635c3356e706fe5b05c1231aeaaeab33f275aa5b8714988c65d43", + "afterSha256": "af82e03b686635c3356e706fe5b05c1231aeaaeab33f275aa5b8714988c65d43" + }, + { + "file": "public/audio/mission-hat.wav", + "beforeSha256": "308278ec2bd27d4224976a55632d1f7fa1edabb0792126d9d858a699c287aee4", + "afterSha256": "308278ec2bd27d4224976a55632d1f7fa1edabb0792126d9d858a699c287aee4" + }, + { + "file": "public/audio/mission-market.wav", + "beforeSha256": "cefa0e95649ea6bd1df4c8dfccd2b74b4f4c028714420ce1087b61db2f2a8d47", + "afterSha256": "cefa0e95649ea6bd1df4c8dfccd2b74b4f4c028714420ce1087b61db2f2a8d47" + }, + { + "file": "public/audio/mission-meat.wav", + "beforeSha256": "94f8a4f9e116a787e5ed052661d6de9ecf3ad8629db476661dd59ad03014b0c9", + "afterSha256": "94f8a4f9e116a787e5ed052661d6de9ecf3ad8629db476661dd59ad03014b0c9" + }, + { + "file": "public/audio/mission-oil.wav", + "beforeSha256": "5fb63e04520c312aa6b7b48b70c2f7c140b5ab480e5c6992edbc2ba85b9a06e7", + "afterSha256": "5fb63e04520c312aa6b7b48b70c2f7c140b5ab480e5c6992edbc2ba85b9a06e7" + }, + { + "file": "public/audio/mission-sea.wav", + "beforeSha256": "8838d6a1ee8a790427dc5aa761e70b3d8872af62086efeed743297ff7f8b8a06", + "afterSha256": "8838d6a1ee8a790427dc5aa761e70b3d8872af62086efeed743297ff7f8b8a06" + }, + { + "file": "public/audio/mission-sound.wav", + "beforeSha256": "659eb0e2b06e6b165b46744769743e032e2282519f8486c57bc45e0f7d07a069", + "afterSha256": "659eb0e2b06e6b165b46744769743e032e2282519f8486c57bc45e0f7d07a069" + }, + { + "file": "public/audio/mission-tree.wav", + "beforeSha256": "00d8e77ec0371971d632724d91f8cf8d947bfb83c582a513b6421be4c457a1da", + "afterSha256": "00d8e77ec0371971d632724d91f8cf8d947bfb83c582a513b6421be4c457a1da" + }, + { + "file": "public/audio/mission-umbrella.wav", + "beforeSha256": "4b4c858a25659540f9dbc524664496fc6de61ab8c1627f3cfee8c9c744e11d5b", + "afterSha256": "4b4c858a25659540f9dbc524664496fc6de61ab8c1627f3cfee8c9c744e11d5b" + }, + { + "file": "public/audio/password-apple.wav", + "beforeSha256": "b6f5de3fe571fe3a7fdb722fe49250bcfeedef49475271e0ec76a7630907edd5", + "afterSha256": "b6f5de3fe571fe3a7fdb722fe49250bcfeedef49475271e0ec76a7630907edd5" + }, + { + "file": "public/audio/password-furniture.wav", + "beforeSha256": "fb2b631dd4e12120d08a84cce6450f9cd9cd68105d13d7001d808e7deaa1df4a", + "afterSha256": "fb2b631dd4e12120d08a84cce6450f9cd9cd68105d13d7001d808e7deaa1df4a" + }, + { + "file": "public/audio/password-hat.wav", + "beforeSha256": "e91bfc97df90a1675b6cd856880ac15c54de32cfc3b23603bdd1c2c5ac3ce6b8", + "afterSha256": "e91bfc97df90a1675b6cd856880ac15c54de32cfc3b23603bdd1c2c5ac3ce6b8" + }, + { + "file": "public/audio/password-market.wav", + "beforeSha256": "02e325fb753ef7a3ee585a03d2ca2aa3f1fbc58523b062222ae1136eeed7a95c", + "afterSha256": "02e325fb753ef7a3ee585a03d2ca2aa3f1fbc58523b062222ae1136eeed7a95c" + }, + { + "file": "public/audio/password-meat.wav", + "beforeSha256": "b009caadd56350d6a641ff17f0973e2b2724c183e1f45ae0bf3c483e237fa99e", + "afterSha256": "b009caadd56350d6a641ff17f0973e2b2724c183e1f45ae0bf3c483e237fa99e" + }, + { + "file": "public/audio/password-oil.wav", + "beforeSha256": "b472957b27ff98ea7b8894fa1ff12653f7e9f66f77870faa9e52a1c1bf116c41", + "afterSha256": "b472957b27ff98ea7b8894fa1ff12653f7e9f66f77870faa9e52a1c1bf116c41" + }, + { + "file": "public/audio/password-sea.wav", + "beforeSha256": "03f45b8cb5b3dc72faf5c6e3d0e2a10cea6b60301ea400d0a4453596d2f0b337", + "afterSha256": "03f45b8cb5b3dc72faf5c6e3d0e2a10cea6b60301ea400d0a4453596d2f0b337" + }, + { + "file": "public/audio/password-sound.wav", + "beforeSha256": "044aafff08a19e39f21e58b963644715a987cd155896998769ef8e9ce6449628", + "afterSha256": "044aafff08a19e39f21e58b963644715a987cd155896998769ef8e9ce6449628" + }, + { + "file": "public/audio/password-tree.wav", + "beforeSha256": "67da8147296e35134ec254bc82b58317630061b2c64d2d63c4be197ce8692d50", + "afterSha256": "67da8147296e35134ec254bc82b58317630061b2c64d2d63c4be197ce8692d50" + }, + { + "file": "public/audio/password-umbrella.wav", + "beforeSha256": "ab3ca6398c879971dc793eb25b472fcc0db72d76e386f11ef4d32c639f37c69d", + "afterSha256": "ab3ca6398c879971dc793eb25b472fcc0db72d76e386f11ef4d32c639f37c69d" + }, + { + "file": "public/audio/remember-apple.wav", + "beforeSha256": "1bf2aef9a9f030af1a8fd7dee8f44aa420a397b3ba99b575feeb3dc7a63ec191", + "afterSha256": "1bf2aef9a9f030af1a8fd7dee8f44aa420a397b3ba99b575feeb3dc7a63ec191" + }, + { + "file": "public/audio/remember-furniture.wav", + "beforeSha256": "442bdcb956f120c270e1f321feae0415c897de0183e468980fcc119b898b2a67", + "afterSha256": "442bdcb956f120c270e1f321feae0415c897de0183e468980fcc119b898b2a67" + }, + { + "file": "public/audio/remember-hat.wav", + "beforeSha256": "31a6a4270bf368cda419094d87a303ac3cd5c22539786cb165f8044b0b8e9d6e", + "afterSha256": "31a6a4270bf368cda419094d87a303ac3cd5c22539786cb165f8044b0b8e9d6e" + }, + { + "file": "public/audio/remember-market.wav", + "beforeSha256": "d89792da51c83ac49d27e55aa6d822a338899a5ee487b34b552748201e1522f6", + "afterSha256": "d89792da51c83ac49d27e55aa6d822a338899a5ee487b34b552748201e1522f6" + }, + { + "file": "public/audio/remember-meat.wav", + "beforeSha256": "9183ef90b64f5ceaf3bb0178c689231ff3e9981d6ce889124a15f2a6e2b7a344", + "afterSha256": "9183ef90b64f5ceaf3bb0178c689231ff3e9981d6ce889124a15f2a6e2b7a344" + }, + { + "file": "public/audio/remember-oil.wav", + "beforeSha256": "3ca98682ff06d1d6b8af02c0fd5b2124f42266ac989884223eff4a9bbde1287a", + "afterSha256": "3ca98682ff06d1d6b8af02c0fd5b2124f42266ac989884223eff4a9bbde1287a" + }, + { + "file": "public/audio/remember-sea.wav", + "beforeSha256": "5c91a36496e274d2be9c6fa8d9b506cd04f2a1b7ceb05ed1b7bb03fe7fca99d9", + "afterSha256": "5c91a36496e274d2be9c6fa8d9b506cd04f2a1b7ceb05ed1b7bb03fe7fca99d9" + }, + { + "file": "public/audio/remember-sound.wav", + "beforeSha256": "98387ccc7aab566f6487d4c250b2128082cc527e013a6f7b7bc4d0266ac295df", + "afterSha256": "98387ccc7aab566f6487d4c250b2128082cc527e013a6f7b7bc4d0266ac295df" + }, + { + "file": "public/audio/remember-tree.wav", + "beforeSha256": "bc8e54f5407e8866bf1ca1ddfd4f6c63d85fee29bd9e430c7dd33e87974fc5b8", + "afterSha256": "bc8e54f5407e8866bf1ca1ddfd4f6c63d85fee29bd9e430c7dd33e87974fc5b8" + }, + { + "file": "public/audio/remember-umbrella.wav", + "beforeSha256": "c8988e604ba05d52597e561389541e8f9cda86e052279f1862bbf8399ead314e", + "afterSha256": "c8988e604ba05d52597e561389541e8f9cda86e052279f1862bbf8399ead314e" + }, + { + "file": "public/audio/repeat-apple.wav", + "beforeSha256": "cb7da4e9a1288cac64d168b241f27d7d2bc2dfecace58744f9bbf2792dfad04e", + "afterSha256": "cb7da4e9a1288cac64d168b241f27d7d2bc2dfecace58744f9bbf2792dfad04e" + }, + { + "file": "public/audio/repeat-furniture.wav", + "beforeSha256": "bf84dc6cff1f227924a3a62158d2fc18769fb0ca40b91418fa19e534dbf92f00", + "afterSha256": "bf84dc6cff1f227924a3a62158d2fc18769fb0ca40b91418fa19e534dbf92f00" + }, + { + "file": "public/audio/repeat-hat.wav", + "beforeSha256": "6e089a42fd7e65e82eec7186d369c926fb7fdac794365b2bd7658822fd92437c", + "afterSha256": "6e089a42fd7e65e82eec7186d369c926fb7fdac794365b2bd7658822fd92437c" + }, + { + "file": "public/audio/repeat-market.wav", + "beforeSha256": "68a5b899115a66ab225d610ec47b4de56cc8793657362bc38f533c06f741e4cc", + "afterSha256": "68a5b899115a66ab225d610ec47b4de56cc8793657362bc38f533c06f741e4cc" + }, + { + "file": "public/audio/repeat-meat.wav", + "beforeSha256": "6599d2fac73ea616a793151b4ce6f51af673988d630bac6219a77e78ae6cb34e", + "afterSha256": "6599d2fac73ea616a793151b4ce6f51af673988d630bac6219a77e78ae6cb34e" + }, + { + "file": "public/audio/repeat-oil.wav", + "beforeSha256": "55b2c7d6aa8bbce04edf8661882c9781da81c57f56217f99b80457a3bb895da0", + "afterSha256": "55b2c7d6aa8bbce04edf8661882c9781da81c57f56217f99b80457a3bb895da0" + }, + { + "file": "public/audio/repeat-sea.wav", + "beforeSha256": "db2f235bee26ac804b5362e8e013b8f40c8da24fd3a34e0fb3b43c6d264feb36", + "afterSha256": "db2f235bee26ac804b5362e8e013b8f40c8da24fd3a34e0fb3b43c6d264feb36" + }, + { + "file": "public/audio/repeat-sound.wav", + "beforeSha256": "e9d636ff7f4777f38b1ff15bebdcec6fbde95b4b4b05625a7415b4cfa0025b59", + "afterSha256": "e9d636ff7f4777f38b1ff15bebdcec6fbde95b4b4b05625a7415b4cfa0025b59" + }, + { + "file": "public/audio/repeat-tree.wav", + "beforeSha256": "8735c3d9672561ca237fa87317beec2878492eb9063d6048d5b214423561acc1", + "afterSha256": "8735c3d9672561ca237fa87317beec2878492eb9063d6048d5b214423561acc1" + }, + { + "file": "public/audio/repeat-umbrella.wav", + "beforeSha256": "5e59ef39113c3d5e106862356d715f4cef2862ef8ee02654a97e532675c1ac6d", + "afterSha256": "5e59ef39113c3d5e106862356d715f4cef2862ef8ee02654a97e532675c1ac6d" + }, + { + "file": "public/ambience/cafe.wav", + "beforeSha256": "8db06f3f09bbd8409573ba4874c7ccdd1e7e825c8a61989a4efe66206a66c2d2", + "afterSha256": "802a956e91b85a2fdd0e1f161d75bfada7a53499bcb57ba7f578411480ded216" + }, + { + "file": "public/ambience/department.wav", + "beforeSha256": "aa43f3d1d3e7c2b1f8ace24ecbda45d0ea3a031db941c39506dc6c1665b8efa7", + "afterSha256": "aa43f3d1d3e7c2b1f8ace24ecbda45d0ea3a031db941c39506dc6c1665b8efa7" + }, + { + "file": "public/ambience/mall.wav", + "beforeSha256": "6e9171f549cacadfaeedd57a41c8e2a76b0e789f5c9a97af029a8d3558c9f145", + "afterSha256": "680a769940c08f0d12c6c954c08366598dd8b5745e276f39c82b10d1a88261a1" + }, + { + "file": "public/ambience/market.wav", + "beforeSha256": "4287e971a12767f70da714e0c1aff30125268f9c3faf07ebfbcc0d2904f4a312", + "afterSha256": "7a7a980845a4aade2a7e8a108eae746220a4688e92792ee93d3deb76b2a762f6" + }, + { + "file": "public/ambience/rain.wav", + "beforeSha256": "f4315084e820f742b0709de5bb0d1abd3d5af1730620e08c2948b70347356dd9", + "afterSha256": "f4315084e820f742b0709de5bb0d1abd3d5af1730620e08c2948b70347356dd9" + }, + { + "file": "public/ambience/street.wav", + "beforeSha256": "a8bffa201b174618955bc51b860167169125304811aabe2086b0bb35b06c3ae1", + "afterSha256": "a8bffa201b174618955bc51b860167169125304811aabe2086b0bb35b06c3ae1" + }, + { + "file": "public/ambience/subway.wav", + "beforeSha256": "9faf70b68617d267b367a0f3692ed90015458543ab4b0844f6c704e6a724728f", + "afterSha256": "9faf70b68617d267b367a0f3692ed90015458543ab4b0844f6c704e6a724728f" + }, + { + "file": "public/ambience/theater.wav", + "beforeSha256": "2d6a444fb7874cdf6b2d8a741a69175299b112eb66834912c025437d8277d635", + "afterSha256": "2d6a444fb7874cdf6b2d8a741a69175299b112eb66834912c025437d8277d635" + } + ], + "trackedAgentFiles": [ + { + "file": ".agent/ACCEPTANCE-v0.1.1.md", + "gitBlobSha1": "a5489ca9f4dc5ce13adc11d1437fd4aa88d6044a" + }, + { + "file": ".agent/ACCEPTANCE.md", + "gitBlobSha1": "675f45de09fc8448aece19aebfd969cbf207f9a2" + }, + { + "file": ".agent/CONTEXT.md", + "gitBlobSha1": "8d5600bb1023fadac0e9c2b30cb16115d8d54baf" + }, + { + "file": ".agent/RESULT-v0.1.1.md", + "gitBlobSha1": "e61a8e1c74aa6b3c158bb3aa7a572a02b41c9fc4" + }, + { + "file": ".agent/RESULT.md", + "gitBlobSha1": "2629084567fa71484f415309fc892329ffc7319c" + }, + { + "file": ".agent/TASK-v0.1.1.md", + "gitBlobSha1": "abaf78a0d1c5d300af4bd341de329705baa3d2b8" + }, + { + "file": ".agent/TASK.md", + "gitBlobSha1": "cd2e40d10bbe9feaff94123a54ebec9b9d747ab0" + }, + { + "file": ".agent/evidence-v0.1.1/00-audio-venv.log", + "gitBlobSha1": "2a0294dbbbc9cf8b395badc21f7e0c4eb456b5c3" + }, + { + "file": ".agent/evidence-v0.1.1/00-npm-ci.log", + "gitBlobSha1": "d06cb331f6acdb6bd14fc4712ad4b9b311d7fc07" + }, + { + "file": ".agent/evidence-v0.1.1/01-version-docs-red.log", + "gitBlobSha1": "6a344e74758db58220587290638ec0ad72804360" + }, + { + "file": ".agent/evidence-v0.1.1/02-assets-red.log", + "gitBlobSha1": "d38c28f1aefad423c2ec6f53f5e5e57116bd5477" + }, + { + "file": ".agent/evidence-v0.1.1/03-generator-red.log", + "gitBlobSha1": "69c7c86152ddbc28a2a41cebb7920835a8e76abc" + }, + { + "file": ".agent/evidence-v0.1.1/04-generator-additional-red.log", + "gitBlobSha1": "97c9f9296036298e8e421ff4b0b6aa865927e10a" + }, + { + "file": ".agent/evidence-v0.1.1/05-generator-green.log", + "gitBlobSha1": "6e24b5be563c9f832a5811c3aedc72a91de71b44" + }, + { + "file": ".agent/evidence-v0.1.1/06-audio-generate.log", + "gitBlobSha1": "75cca1fbd07344006300929e1aa26bbaa62c9c85" + }, + { + "file": ".agent/evidence-v0.1.1/07-format.log", + "gitBlobSha1": "d29ca142e1c8a6fd42b7b3454681941754416510" + }, + { + "file": ".agent/evidence-v0.1.1/08-version-docs-green.log", + "gitBlobSha1": "46f874caf20b36321fb79fb306bb126c94ea284f" + }, + { + "file": ".agent/evidence-v0.1.1/09-lint.log", + "gitBlobSha1": "bc96f272b289798d0fd1183c945c21b85cb7aef9" + }, + { + "file": ".agent/evidence-v0.1.1/10-audit.log", + "gitBlobSha1": "f372dee584a34135b0868d2d419ac8b2ce1c2314" + }, + { + "file": ".agent/evidence-v0.1.1/11-full-test.log", + "gitBlobSha1": "be3ea27ff3f151459e4cbbd7477831f4e1e387c7" + }, + { + "file": ".agent/evidence-v0.1.1/12-independent-audio.log", + "gitBlobSha1": "4663f25f6caa227a54c3df688ef6572052e4c5f2" + }, + { + "file": ".agent/evidence-v0.1.1/13-build.log", + "gitBlobSha1": "1b6ace525238ff63d5ad774551ff01ba9005aea5" + }, + { + "file": ".agent/evidence-v0.1.1/14-browser.log", + "gitBlobSha1": "c3bb779a9d6207af262661e7b52ee31ed8ca615a" + }, + { + "file": ".agent/evidence-v0.1.1/15-browser-audio.log", + "gitBlobSha1": "c8c957ffa508f8fb4026e087d6f8d793ccfaebdb" + }, + { + "file": ".agent/evidence-v0.1.1/16-final-lint.log", + "gitBlobSha1": "bc96f272b289798d0fd1183c945c21b85cb7aef9" + }, + { + "file": ".agent/evidence-v0.1.1/17-security-history.json", + "gitBlobSha1": "2a85598da0005f3e5db6a9d4d8f470d1d82344b1" + }, + { + "file": ".agent/evidence-v0.1.1/18-environment.log", + "gitBlobSha1": "38f72eaf1c8d37ec6c51424be5fc6b9bcb5f8dd2" + }, + { + "file": ".agent/evidence-v0.1.1/19-final-integrity.json", + "gitBlobSha1": "f830465ba39d1988e87ef1340612effd3e82f12f" + }, + { + "file": ".agent/evidence-v0.1.1/audio-integrity.json", + "gitBlobSha1": "3c680d139b826ff209bbc2110426e66e9615f90c" + }, + { + "file": ".agent/evidence-v0.1.1/baseline.json", + "gitBlobSha1": "d938817ac184df4faa6114b3ed8ca6ed84724ab5" + }, + { + "file": ".agent/evidence-v0.1.1/browser-audio-integrity.json", + "gitBlobSha1": "91f85378d1465d7ec2e391c74d08b6400c488ce2" + }, + { + "file": ".agent/evidence-v0.1.1/cache-regression/00-baseline.json", + "gitBlobSha1": "a28b5f3751dedcc6c92ca0f85ab3a5a531c361b8" + }, + { + "file": ".agent/evidence-v0.1.1/cache-regression/01-unit-red.log", + "gitBlobSha1": "d90a57f8802368bf6fe1e1ec053b778e91aed3e1" + }, + { + "file": ".agent/evidence-v0.1.1/cache-regression/02-build-before-fix.log", + "gitBlobSha1": "0dbc9efc1ad5444eb1af5ca106febc94ae987b23" + }, + { + "file": ".agent/evidence-v0.1.1/cache-regression/03-browser-red.log", + "gitBlobSha1": "5feccd6209a6df184ae3869925e21509aacef776" + }, + { + "file": ".agent/evidence-v0.1.1/cache-regression/04-red-state.json", + "gitBlobSha1": "cfb525d54c96113da1ae2fcfac45fd885920fb6e" + }, + { + "file": ".agent/evidence-v0.1.1/cache-regression/05-unit-green.log", + "gitBlobSha1": "121ca896d9d5dd4b0eee7d7396f61ca632bb1f5f" + }, + { + "file": ".agent/evidence-v0.1.1/cache-regression/06-lint.log", + "gitBlobSha1": "4406964c3981f77b29348da50090b21cb22b1311" + }, + { + "file": ".agent/evidence-v0.1.1/cache-regression/07-full-test.log", + "gitBlobSha1": "ae05c4ef08617b8f481b861e802b80d58939b281" + }, + { + "file": ".agent/evidence-v0.1.1/cache-regression/08-build.log", + "gitBlobSha1": "2d2a7ff7c5d3388d08bb7ffa7b2d637c35bf464c" + }, + { + "file": ".agent/evidence-v0.1.1/cache-regression/09-browser-green.log", + "gitBlobSha1": "14af53dfedbaf1c334841493baf22e631c0a2e07" + }, + { + "file": ".agent/evidence-v0.1.1/cache-regression/10-sandbox.log", + "gitBlobSha1": "e0b3c4244724d1892e20866a04d0a3268f4b67f3" + }, + { + "file": ".agent/evidence-v0.1.1/cache-regression/11-sandbox-green.log", + "gitBlobSha1": "8c34b24ed48ee27011a6501c6e9934f26e73d8f4" + }, + { + "file": ".agent/evidence-v0.1.1/cache-regression/12-cache-regression-result.log", + "gitBlobSha1": "d3661dfcd77840e5d925c7e280cfafd32236c9a0" + }, + { + "file": ".agent/evidence-v0.1.1/cache-regression/13-final-integrity.json", + "gitBlobSha1": "97431f3413f72719f4fbb31e79b2c50ff75b641a" + }, + { + "file": ".agent/evidence-v0.1.1/cache-regression/artifacts/desktop-browser-audio-integrity.json", + "gitBlobSha1": "0673089ec0b8286422bb0946bfe1bc48f2bdcc76" + }, + { + "file": ".agent/evidence-v0.1.1/cache-regression/artifacts/desktop-game.png", + "gitBlobSha1": "0d2f171d46f4ed39ef5b966a851b612eec4439ba" + }, + { + "file": ".agent/evidence-v0.1.1/cache-regression/artifacts/desktop-heading.png", + "gitBlobSha1": "62cf90b8c281472dcfebea616e1617feb2a9ef15" + }, + { + "file": ".agent/evidence-v0.1.1/cache-regression/artifacts/desktop-home.png", + "gitBlobSha1": "386bb2be76419e3386844842fdebe7af64e7e6b4" + }, + { + "file": ".agent/evidence-v0.1.1/cache-regression/artifacts/desktop-results.png", + "gitBlobSha1": "22468d877b3ea4710e55eb4c96dc44d53eac24cf" + }, + { + "file": ".agent/evidence-v0.1.1/cache-regression/artifacts/mobile-browser-audio-integrity.json", + "gitBlobSha1": "0673089ec0b8286422bb0946bfe1bc48f2bdcc76" + }, + { + "file": ".agent/evidence-v0.1.1/cache-regression/artifacts/mobile-game.png", + "gitBlobSha1": "2b54a6bca03c7763388e021214acd72e35cad13f" + }, + { + "file": ".agent/evidence-v0.1.1/cache-regression/artifacts/mobile-heading.png", + "gitBlobSha1": "ef1f38b2eb07ed76251ab7e83e19c9cae6a2e4f8" + }, + { + "file": ".agent/evidence-v0.1.1/cache-regression/artifacts/mobile-home.png", + "gitBlobSha1": "fda5ab600274a88e40813d6b8f189edc5de35f7d" + }, + { + "file": ".agent/evidence-v0.1.1/cache-regression/artifacts/mobile-results.png", + "gitBlobSha1": "8dce46afec66692bd61e135765f721b9f7ffd298" + }, + { + "file": ".agent/evidence-v0.1.1/changed-files.txt", + "gitBlobSha1": "2f43313a60bdcf5e61c8d7401a3487d20d704743" + }, + { + "file": ".agent/evidence-v0.1.1/desktop-game.png", + "gitBlobSha1": "7c319c62954b3e889f0bdcf833d74c628ff29210" + }, + { + "file": ".agent/evidence-v0.1.1/desktop-heading.png", + "gitBlobSha1": "c60a60a28b5986d5d43dee33312e9f8932c12969" + }, + { + "file": ".agent/evidence-v0.1.1/desktop-home.png", + "gitBlobSha1": "1b6d36d99ac20e257bd82fc4037756eb6ab05cd3" + }, + { + "file": ".agent/evidence-v0.1.1/desktop-results.png", + "gitBlobSha1": "d91fe665dec9f7a65d574e852127d47792a80a81" + }, + { + "file": ".agent/evidence-v0.1.1/mobile-game.png", + "gitBlobSha1": "c033b1d229ef1353f2967d9025677a8bfc789746" + }, + { + "file": ".agent/evidence-v0.1.1/mobile-heading.png", + "gitBlobSha1": "423961b71e7d47c58bbd1263d8e81dfd7e968ff4" + }, + { + "file": ".agent/evidence-v0.1.1/mobile-home.png", + "gitBlobSha1": "1347e17c3b55fb42f858099b1351b49aca841209" + }, + { + "file": ".agent/evidence-v0.1.1/mobile-results.png", + "gitBlobSha1": "917dd912fd90b042e95e4ea6622fa644886f2d5e" + }, + { + "file": ".agent/evidence-v0.1.1/verify_audio.py", + "gitBlobSha1": "135e6204fb447255a45d354d395e8942a5b8631c" + }, + { + "file": ".agent/evidence-v0.1.1/verify_browser.mjs", + "gitBlobSha1": "1a020fc8d4bd2b79f58e0ee64b8e6ab2d6a6582f" + }, + { + "file": ".agent/evidence/01-content-green.log", + "gitBlobSha1": "4f9c11700ff7103980808422a57833efd39d9503" + }, + { + "file": ".agent/evidence/01-content-red.log", + "gitBlobSha1": "a9c8fc8de3014bc42dd039d274f261a02c880b96" + }, + { + "file": ".agent/evidence/02-game-green.log", + "gitBlobSha1": "b387310be2ac183396dbb9dbad4cc6641eb18055" + }, + { + "file": ".agent/evidence/02-game-red.log", + "gitBlobSha1": "dbf070178094e828a8805aa3a0230c0e55fc7a14" + }, + { + "file": ".agent/evidence/03-dsp-green.log", + "gitBlobSha1": "799d98f6628ea1719d7962b9dfc30b6e58154a81" + }, + { + "file": ".agent/evidence/03-dsp-intermediate.log", + "gitBlobSha1": "ff73efa8a064e2b737349be0014ea1e2c43e7cd5" + }, + { + "file": ".agent/evidence/03-dsp-red.log", + "gitBlobSha1": "7f8fb140b3bda7c4206e162be1c31e0489c23fa7" + }, + { + "file": ".agent/evidence/04-audio-green.log", + "gitBlobSha1": "bb8fc6a046dd4726250bfda2d85ed9598a509d05" + }, + { + "file": ".agent/evidence/04-audio-red.log", + "gitBlobSha1": "e2287b223d13c69a10e9bea668d0074f5eeb2be5" + }, + { + "file": ".agent/evidence/05-assets-red.log", + "gitBlobSha1": "1b6b8cb21f981f2d5508de7c5f34dd34c620e6d2" + }, + { + "file": ".agent/evidence/06-ui-05-assets-green.log", + "gitBlobSha1": "358dd512751f012ccf0890fa89885bd8b301d3ba" + }, + { + "file": ".agent/evidence/06-ui-intermediate.log", + "gitBlobSha1": "c50c8da5b83cbc807a3c67fa5aad67e711ad190b" + }, + { + "file": ".agent/evidence/06-ui-red.log", + "gitBlobSha1": "d7e3ac9f9e3231f00ca59222a86ad9767600fdcb" + }, + { + "file": ".agent/evidence/07-build-green.log", + "gitBlobSha1": "8168d3df85e7bd27be58a9af5ca137c083451e4c" + }, + { + "file": ".agent/evidence/07-build-red.log", + "gitBlobSha1": "751fe55d26e43f63e67a6d5a8db306b94001f8bf" + }, + { + "file": ".agent/evidence/08-rule-green.log", + "gitBlobSha1": "b3821fb0dd6a732d882cef24cc9ffe2897295f5c" + }, + { + "file": ".agent/evidence/08-rule-red.log", + "gitBlobSha1": "eda458878a5bf08b128bbb5043f58be8d0361b40" + }, + { + "file": ".agent/evidence/09-ime-green.log", + "gitBlobSha1": "1fd648a1046eddc4c8967e71615c2c2c003cb255" + }, + { + "file": ".agent/evidence/09-ime-red.log", + "gitBlobSha1": "ef374dcfe5f021da608cf17749df63e10a7c8740" + }, + { + "file": ".agent/evidence/10-ime-reset-green.log", + "gitBlobSha1": "c02446ef230769b53cedc9ccad03ff580e0e7c95" + }, + { + "file": ".agent/evidence/10-ime-reset-red.log", + "gitBlobSha1": "4d813e07f9b80c8ef7428ec03f5fec8e1e80e733" + }, + { + "file": ".agent/evidence/11-provenance-green.log", + "gitBlobSha1": "7e2af894633746b50b7dae3e3db4cd2f484561b7" + }, + { + "file": ".agent/evidence/11-provenance-red.log", + "gitBlobSha1": "cbbe1d5a2beecd22c03c57ebd478c3e5b193ca22" + }, + { + "file": ".agent/evidence/12-ime-replay-green.log", + "gitBlobSha1": "f3fc60f7d5a8207923f19e663fcf810f90d0593a" + }, + { + "file": ".agent/evidence/12-ime-replay-red.log", + "gitBlobSha1": "4601ffa7b6376194b5a613a6a36a54f1696e1803" + }, + { + "file": ".agent/evidence/13-heading-build-after.log", + "gitBlobSha1": "995fabff013e6788faa5f12e54376210d6cc9b4e" + }, + { + "file": ".agent/evidence/13-heading-build-before.log", + "gitBlobSha1": "eb058eff9867ff52c49ddaeeeeb18876e501b05d" + }, + { + "file": ".agent/evidence/13-heading-green.log", + "gitBlobSha1": "7657bff6d169167d5aec9f8951ad1d0d2a6c87f6" + }, + { + "file": ".agent/evidence/13-heading-red.log", + "gitBlobSha1": "311485a53063adfec66e09cd42213051081680b7" + }, + { + "file": ".agent/evidence/14-snr-browser-green.log", + "gitBlobSha1": "5324883d79ed3547d1a1ded26d2db1509bb7e4f8" + }, + { + "file": ".agent/evidence/14-snr-browser-red.log", + "gitBlobSha1": "c9534cd4617b3a3105a0635d7a4948f609a4868e" + }, + { + "file": ".agent/evidence/14-snr-build.log", + "gitBlobSha1": "e08f04bc433bb2df1e506b3a945f0b221c3cdee6" + }, + { + "file": ".agent/evidence/14-snr-green.log", + "gitBlobSha1": "70c13b8cb5e6dc203d56a79cfb538c58db45e615" + }, + { + "file": ".agent/evidence/14-snr-red.log", + "gitBlobSha1": "4b9ace1ab081e88dd01e3b3c2acc41377460c512" + }, + { + "file": ".agent/evidence/15-volume-browser-green.log", + "gitBlobSha1": "7fb864c0ce3bab04338b14a3d4fec58934e08287" + }, + { + "file": ".agent/evidence/15-volume-browser-red.log", + "gitBlobSha1": "a3d0905076736da54b86f1c9464f42fe833ed9d2" + }, + { + "file": ".agent/evidence/15-volume-build.log", + "gitBlobSha1": "558552af1033ba40c99de1687fcaa2093dbb5b4f" + }, + { + "file": ".agent/evidence/15-volume-green.log", + "gitBlobSha1": "36bda275dfc54b122c3604a3f6010b62558b5998" + }, + { + "file": ".agent/evidence/15-volume-red.log", + "gitBlobSha1": "c14834ef57704d057de019e52df87eb44e99a94b" + }, + { + "file": ".agent/evidence/16-copy-green.log", + "gitBlobSha1": "88b925b2febf52d764d7d93699caf6a16e0292ea" + }, + { + "file": ".agent/evidence/16-copy-red.log", + "gitBlobSha1": "141efbc0e8af8f45b829fb656c375a59f4a1307e" + }, + { + "file": ".agent/evidence/17-spacing-green.log", + "gitBlobSha1": "ba570e87ed4e48f72f26e1c6525003d7fd6b093e" + }, + { + "file": ".agent/evidence/17-spacing-red.log", + "gitBlobSha1": "8b18570dcd38144b94f201226e633ea0bfa78002" + }, + { + "file": ".agent/evidence/18-literal-green.log", + "gitBlobSha1": "7047c8324ceb982bd8a33133b07f7bd15422846e" + }, + { + "file": ".agent/evidence/18-literal-red.log", + "gitBlobSha1": "69668062c9825e82fed2fb63103cb74f51537f76" + }, + { + "file": ".agent/evidence/19-notices-green.log", + "gitBlobSha1": "69f428572682fc30a83a28bd802aa0c7b479793d" + }, + { + "file": ".agent/evidence/19-notices-red.log", + "gitBlobSha1": "c30222de64929395b5da9c6f9ef4728beec23aeb" + }, + { + "file": ".agent/evidence/20-audio-generate.log", + "gitBlobSha1": "f01b4f019667ed5396bc22fa9bc2961b0f050e69" + }, + { + "file": ".agent/evidence/20-audio-green.log", + "gitBlobSha1": "e4bf2be0f2cbfafe1e393ca6413a8f72762af4aa" + }, + { + "file": ".agent/evidence/20-audio-red.log", + "gitBlobSha1": "54ad5ad0cd803cd2d668c6dfacdc21f9795c0ade" + }, + { + "file": ".agent/evidence/20-mechanics-green.log", + "gitBlobSha1": "7dedf46b2c76b8c3c477579ddba56ce644a982e6" + }, + { + "file": ".agent/evidence/20-mechanics-red.log", + "gitBlobSha1": "be3c196b8337546988d31effe415ddf1a0f5d9fd" + }, + { + "file": ".agent/evidence/21-node-green.log", + "gitBlobSha1": "ccc7721c15b7134697e200c3875cd85ee8c77880" + }, + { + "file": ".agent/evidence/21-node-red.log", + "gitBlobSha1": "3226a36dad4019db219e3d7bd085d0e03630041c" + }, + { + "file": ".agent/evidence/22-sandbox-green.log", + "gitBlobSha1": "302939cbde4f3c5eacf1b85f1d44f202e8d5e085" + }, + { + "file": ".agent/evidence/22-sandbox-red.log", + "gitBlobSha1": "7c1a4704e85cf5b534ea6a0ec3cdddaa14fb64b2" + }, + { + "file": ".agent/evidence/23-delivery-browser-red.log", + "gitBlobSha1": "2059849234696a2a5bb125151d652fb7e3530302" + }, + { + "file": ".agent/evidence/24-retry-audio-budget.log", + "gitBlobSha1": "6d06ab7b134fcbe6e9a1b175f71550a5fbaf786e" + }, + { + "file": ".agent/evidence/24-retry-final-browser.log", + "gitBlobSha1": "e4082022f3240b6b9470d1b2d07916c4b77518ca" + }, + { + "file": ".agent/evidence/24-retry-final-build.log", + "gitBlobSha1": "4bac01044b8195a62d0c507c7ea24148dde31e08" + }, + { + "file": ".agent/evidence/24-retry-final-lint.log", + "gitBlobSha1": "2db7661f79c49af33f25e8e86708e36e830bc921" + }, + { + "file": ".agent/evidence/24-retry-final-test.log", + "gitBlobSha1": "892698fd134159742a19a354c74838c1f077b87b" + }, + { + "file": ".agent/evidence/24-retry-integrity.log", + "gitBlobSha1": "bdd370b0edcaf1b79f089c259583b03dd82ba7e4" + }, + { + "file": ".agent/evidence/24-retry-targeted-green.log", + "gitBlobSha1": "40d6ffc9f655c337b1296fe48c926c0f736ea437" + }, + { + "file": ".agent/evidence/audio-reproduce.log", + "gitBlobSha1": "ad7cf97e5bdbf10a90bb7ee78849c416df7e7a6a" + }, + { + "file": ".agent/evidence/browser-final.log", + "gitBlobSha1": "00e9641898f254833f31cb46ea4a69e3fc27984e" + }, + { + "file": ".agent/evidence/browser-first.log", + "gitBlobSha1": "29e9f5ec4fc2779b8eaa503a9ff02525cad05fd9" + }, + { + "file": ".agent/evidence/browser-second.log", + "gitBlobSha1": "8088ec25b84ec17b8b215d52cc886285caec8ce9" + }, + { + "file": ".agent/evidence/browser-third.log", + "gitBlobSha1": "631309ed650696c6ab3b90bd721388378c5444d7" + }, + { + "file": ".agent/evidence/changed-files.txt", + "gitBlobSha1": "3b8e739d5ae343908decac4d79ec8a2d1891182e" + }, + { + "file": ".agent/evidence/desktop-game.png", + "gitBlobSha1": "f13175613bd70dd4a8ab48c3f8f63c7f2de3d8d2" + }, + { + "file": ".agent/evidence/desktop-home.png", + "gitBlobSha1": "6b7235e489650bf9f0a55ef7bed79a45f7942564" + }, + { + "file": ".agent/evidence/desktop-results.png", + "gitBlobSha1": "3e992f640307f8fd9e497acd63d4c5d239988135" + }, + { + "file": ".agent/evidence/final-audit.log", + "gitBlobSha1": "f372dee584a34135b0868d2d419ac8b2ce1c2314" + }, + { + "file": ".agent/evidence/final-browser.log", + "gitBlobSha1": "da9eb709f94c480935aa2c53e4bb5cd3c92795e2" + }, + { + "file": ".agent/evidence/final-build.log", + "gitBlobSha1": "d476e9757f4bc75b415fc49c11ea61db2a98556e" + }, + { + "file": ".agent/evidence/final-lint.log", + "gitBlobSha1": "6551b952e4b58e47af8471746f80c8a6f4a8a6d5" + }, + { + "file": ".agent/evidence/final-security.log", + "gitBlobSha1": "bccb5c1c0416e8cd2d8b03a83566903f6b5f57a7" + }, + { + "file": ".agent/evidence/final-test.log", + "gitBlobSha1": "22a17cf4d259666a1b5799256ad383695c1f21ea" + }, + { + "file": ".agent/evidence/mobile-game.png", + "gitBlobSha1": "149c5e95d939bbb16f04b64fede3fdb016a7e7df" + }, + { + "file": ".agent/evidence/mobile-home.png", + "gitBlobSha1": "66b1c1d0408ef44133d3a25ccef9f7f845502287" + }, + { + "file": ".agent/evidence/mobile-results.png", + "gitBlobSha1": "176c4680366fffd8542c980864382422e46303c5" + }, + { + "file": ".agent/evidence/neo-before-spacing-browser.log", + "gitBlobSha1": "fe693ce1aec1ab3cddc8c31e197de8f3d873e2d7" + }, + { + "file": ".agent/evidence/neo-desktop-game.png", + "gitBlobSha1": "21eb85afb33f52c3ee21c78991f256ed478a511d" + }, + { + "file": ".agent/evidence/neo-desktop-heading.png", + "gitBlobSha1": "0a478294f883536b3628f5ebe1740a3da366c7ac" + }, + { + "file": ".agent/evidence/neo-desktop-home.png", + "gitBlobSha1": "f9ea85a17002ff1cf36d57c552810fa6ed37b776" + }, + { + "file": ".agent/evidence/neo-desktop-results.png", + "gitBlobSha1": "e0e97a319876b46e3df9358124f9e0304f623508" + }, + { + "file": ".agent/evidence/neo-final-browser.log", + "gitBlobSha1": "a27437c2b86ad9ba3cf50746490319dea537f46d" + }, + { + "file": ".agent/evidence/neo-final-build.log", + "gitBlobSha1": "2c6c350e78dac4dfbcdfe6784073155ff8d6ed35" + }, + { + "file": ".agent/evidence/neo-final-lint.log", + "gitBlobSha1": "6551b952e4b58e47af8471746f80c8a6f4a8a6d5" + }, + { + "file": ".agent/evidence/neo-final-test.log", + "gitBlobSha1": "8036a925d0a63b6e470666b68546e0588a390877" + }, + { + "file": ".agent/evidence/neo-intermediate-build.log", + "gitBlobSha1": "47ee7305375d52bf0efda8b65fd410514002c6f0" + }, + { + "file": ".agent/evidence/neo-intermediate-lint.log", + "gitBlobSha1": "2f8a51786275fe49e4f0452c1f532a464a72be0e" + }, + { + "file": ".agent/evidence/neo-mobile-game.png", + "gitBlobSha1": "ea5c59b06f5c1571c46d634ec0c0c425cf4bddde" + }, + { + "file": ".agent/evidence/neo-mobile-heading.png", + "gitBlobSha1": "b082c661921a019c47026a6b3c67e023732db3d8" + }, + { + "file": ".agent/evidence/neo-mobile-home.png", + "gitBlobSha1": "a06de9c1374aeb670f3da567871e5fb74f12e9de" + }, + { + "file": ".agent/evidence/neo-mobile-results.png", + "gitBlobSha1": "d600346b74ef20023a6582230a066d0229ea7426" + }, + { + "file": ".agent/evidence/release-desktop-game.png", + "gitBlobSha1": "56c8d0194a550ca965e80568e10568fe9c3b01c1" + }, + { + "file": ".agent/evidence/release-desktop-heading.png", + "gitBlobSha1": "44fb51ed18c6095696ce3ceac716f5819c994df8" + }, + { + "file": ".agent/evidence/release-desktop-home.png", + "gitBlobSha1": "f357ab168267a71f5abc02a5417a4073ea0e7549" + }, + { + "file": ".agent/evidence/release-desktop-results.png", + "gitBlobSha1": "d537dd35d05d647cc1d9fd0b15c883695d8e7227" + }, + { + "file": ".agent/evidence/release-docs-final.log", + "gitBlobSha1": "b362a8a88e87eb78df6de9fc7467079fba046ad7" + }, + { + "file": ".agent/evidence/release-final-audit.log", + "gitBlobSha1": "f372dee584a34135b0868d2d419ac8b2ce1c2314" + }, + { + "file": ".agent/evidence/release-final-browser.log", + "gitBlobSha1": "d990bad61aa6979a81d48d8e3d90c9b76b1dd868" + }, + { + "file": ".agent/evidence/release-final-build.log", + "gitBlobSha1": "c3e94dc3ccf89c06c5f4918a8ead2a538042eefc" + }, + { + "file": ".agent/evidence/release-final-lint.log", + "gitBlobSha1": "6551b952e4b58e47af8471746f80c8a6f4a8a6d5" + }, + { + "file": ".agent/evidence/release-final-test.log", + "gitBlobSha1": "d14839db8e70ad23892362f4c6f25fc1dad4d33f" + }, + { + "file": ".agent/evidence/release-format.log", + "gitBlobSha1": "04f107ae1552b247133b0d0f01a2b2c4fb96fa4c" + }, + { + "file": ".agent/evidence/release-integrity.log", + "gitBlobSha1": "1aa8751fba85e49d1d341c688f89baefd9e1a395" + }, + { + "file": ".agent/evidence/release-intermediate-lint.log", + "gitBlobSha1": "ac298f24b0a1e8378a33a3c454b62d6abdeb020e" + }, + { + "file": ".agent/evidence/release-mobile-game.png", + "gitBlobSha1": "0772d6a7f6025a213e721442144547926c164034" + }, + { + "file": ".agent/evidence/release-mobile-heading.png", + "gitBlobSha1": "d6a246bbc95e7b8679a5c05cee1e31240ed5ff6d" + }, + { + "file": ".agent/evidence/release-mobile-home.png", + "gitBlobSha1": "0d4f76b8c17bff4df191e060609795221917815a" + }, + { + "file": ".agent/evidence/release-mobile-results.png", + "gitBlobSha1": "7c9baa85bca07d0cd2c0fe2db6ca1b530619ef56" + } + ] +} diff --git a/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/prior-derivatives-asr-original.json b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/prior-derivatives-asr-original.json new file mode 100644 index 0000000..5051e98 --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/prior-derivatives-asr-original.json @@ -0,0 +1,68 @@ +{ + "cafe.wav": { + "language": "en", + "probability": 0.20470842719078064, + "segments": [ + { + "start": 0.46, + "end": 1.46, + "text": "Thank you." + } + ], + "text": "Thank you." + }, + "department.wav": { + "language": "en", + "probability": 0.3020564913749695, + "segments": [], + "text": "" + }, + "mall.wav": { + "language": "en", + "probability": 0.39363399147987366, + "segments": [ + { + "start": 1.2, + "end": 3.2, + "text": "Thanks for watching!" + } + ], + "text": "Thanks for watching!" + }, + "market.wav": { + "language": "es", + "probability": 0.13287761807441711, + "segments": [ + { + "start": 0.0, + "end": 6.86, + "text": "¡Van a la chana! ¡Van a la chana! ¡Van a la chana!" + } + ], + "text": "¡Van a la chana! ¡Van a la chana! ¡Van a la chana!" + }, + "rain.wav": { + "language": "en", + "probability": 0.3020564913749695, + "segments": [], + "text": "" + }, + "street.wav": { + "language": "en", + "probability": 0.3020564913749695, + "segments": [], + "text": "" + }, + "subway.wav": { + "language": "en", + "probability": 0.3020564913749695, + "segments": [], + "text": "" + }, + "theater.wav": { + "language": "en", + "probability": 0.3020564913749695, + "segments": [], + "text": "" + } +} diff --git a/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/regenerate.py b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/regenerate.py new file mode 100644 index 0000000..1c68ad0 --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/regenerate.py @@ -0,0 +1,37 @@ +"""Rebuild through the hardened generator; keep this run's source/output audit.""" +import json +from datetime import datetime, timezone +from pathlib import Path +import subprocess +import sys + +ROOT = Path(__file__).resolve().parents[3] +sys.path.insert(0, str(ROOT / 'scripts')) +import ambience_audio as audio + +EVIDENCE = Path(__file__).resolve().parent +plan_path = ROOT / '.agent/AMBIENCE-SOURCES-v0.2.3.json' +plan_bytes = plan_path.read_bytes() +plan = json.loads(plan_bytes) +source_directory = Path('/tmp/findword-ambience-sources') +records = [] +for asset in plan['assets']: + path = audio.source_path(source_directory, asset['environmentId']) + probe = json.loads(subprocess.check_output(['ffprobe', '-v', 'error', '-show_entries', 'format=duration', '-of', 'json', str(path)], text=True)) + record = {'environmentId': asset['environmentId'], 'sha256': audio.digest(path), 'bytes': path.stat().st_size, + 'directMediaDurationSeconds': float(probe['format']['duration']), 'selectedSegmentStartSeconds': asset['selectedSegmentStartSeconds']} + assert record['sha256'] == asset['expectedSourceSha256'] + assert record['bytes'] == asset['sourceBytes'] + assert record['directMediaDurationSeconds'] == asset['directMediaDurationSeconds'] + records.append(record) +print('All eight source SHA-256, byte counts and direct-media durations match before conversion.', flush=True) +manifest = audio.generate(plan, source_directory, ROOT / 'public/ambience') +assert plan_path.read_bytes() == plan_bytes +assert plan == json.loads(plan_bytes) +audio.validate_bundle(ROOT / 'public/ambience', plan) +record = {'completedAtUtc': datetime.now(timezone.utc).isoformat(), 'method': 'ambience_audio.generate: source preflight, full staged bundle validation, atomic directory exchange', + 'allSourcesMatchedBeforeConversion': True, 'planUnmodified': True, 'sources': records, 'manifestSha256': audio.digest(ROOT / 'public/ambience/manifest.json'), + 'toolVersions': manifest['toolVersions'], 'outputs': [{k: e[k] for k in ('environmentId', 'selectedSegmentStartSeconds', 'sha256', 'bytes', 'duration', 'rms', 'peak', 'conversion')} for e in manifest['files']]} +with (EVIDENCE / 'regeneration.json').open('x') as stream: + stream.write(json.dumps(record, ensure_ascii=False, indent=2) + '\n') +print(json.dumps(record, ensure_ascii=False, indent=2)) diff --git a/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/regeneration.json b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/regeneration.json new file mode 100644 index 0000000..82dc8a0 --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/regeneration.json @@ -0,0 +1,254 @@ +{ + "completedAtUtc": "2026-10-14T09:16:20.220194+00:00", + "method": "ambience_audio.generate: source preflight, full staged bundle validation, atomic directory exchange", + "allSourcesMatchedBeforeConversion": true, + "planUnmodified": true, + "sources": [ + { + "environmentId": "street", + "sha256": "0ddb0be7eb3427f781c8268bcbc74b8ad7e1fbf75b9f6966e65274dbe85f3d9d", + "bytes": 3414104, + "directMediaDurationSeconds": 264.254694, + "selectedSegmentStartSeconds": 35 + }, + { + "environmentId": "mall", + "sha256": "bb066e130e5d665db57cb5f88e820d053c724d8f777b275213998d2074c6529a", + "bytes": 1666896, + "directMediaDurationSeconds": 60.05551, + "selectedSegmentStartSeconds": 36 + }, + { + "environmentId": "theater", + "sha256": "05c3ece7c088f34700b7610f791c0ad848a24c77be2c32fd1503a78356739a43", + "bytes": 1485015, + "directMediaDurationSeconds": 176.901224, + "selectedSegmentStartSeconds": 45 + }, + { + "environmentId": "department", + "sha256": "261fda28722fba623483a90b32e7a2ec388c59887f56a5247156b53f1ffb6ccd", + "bytes": 2445024, + "directMediaDurationSeconds": 292.872, + "selectedSegmentStartSeconds": 90 + }, + { + "environmentId": "market", + "sha256": "fc0075dce8ad05b56460c9f18754c27b2021f21f1c780a595ccda648d33c941d", + "bytes": 622200, + "directMediaDurationSeconds": 76.696961, + "selectedSegmentStartSeconds": 60 + }, + { + "environmentId": "subway", + "sha256": "41fcf064cde53cef1528fe98721347851e60c070d8ff9f213f354025cf272d4c", + "bytes": 3343901, + "directMediaDurationSeconds": 425.024, + "selectedSegmentStartSeconds": 65 + }, + { + "environmentId": "cafe", + "sha256": "6360791fdcee1f64638f0fc9abd6d2c7a1aa75fd3d2b80033170a02d025099dc", + "bytes": 19947952, + "directMediaDurationSeconds": 1200.000998, + "selectedSegmentStartSeconds": 180 + }, + { + "environmentId": "rain", + "sha256": "ef0511593b1bb0ba47d5c5dafd83eb07ba854b5a65fd5d41b8c76a1b3ff2c22a", + "bytes": 91187572, + "directMediaDurationSeconds": 1800.0, + "selectedSegmentStartSeconds": 180 + } + ], + "manifestSha256": "4f21df1c046e545553319889218c29b3efe0da0d49d45d3e09a36fb7759a617c", + "toolVersions": { + "ffmpeg": "ffmpeg version 6.1.1-3ubuntu5 Copyright (c) 2000-2023 the FFmpeg developers" + }, + "outputs": [ + { + "environmentId": "street", + "selectedSegmentStartSeconds": 35, + "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", + "selectedSegmentStartSeconds": 36, + "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", + "selectedSegmentStartSeconds": 45, + "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", + "selectedSegmentStartSeconds": 90, + "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", + "selectedSegmentStartSeconds": 60, + "sha256": "7a7a980845a4aade2a7e8a108eae746220a4688e92792ee93d3deb76b2a762f6", + "bytes": 576044, + "duration": 12.0, + "rms": 0.07999755668792045, + "peak": 0.507232666015625, + "conversion": { + "startSeconds": 60, + "durationSeconds": 12, + "seekMethod": "full decode then sample trim", + "fadeSeconds": 0.05, + "sampleRate": 24000, + "channels": 1, + "encoding": "PCM16 little-endian", + "linearGain": 1.6103277706340973, + "targetRms": 0.08, + "peakLimit": 0.85, + "maxGain": 4, + "operations": "excerpt, downmix, resample, linear end fades, bounded linear normalization, WAV encoding" + } + }, + { + "environmentId": "subway", + "selectedSegmentStartSeconds": 65, + "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", + "selectedSegmentStartSeconds": 180, + "sha256": "802a956e91b85a2fdd0e1f161d75bfada7a53499bcb57ba7f578411480ded216", + "bytes": 576044, + "duration": 12.0, + "rms": 0.07999756802463229, + "peak": 0.44708251953125, + "conversion": { + "startSeconds": 180, + "durationSeconds": 12, + "seekMethod": "full decode then sample trim", + "fadeSeconds": 0.05, + "sampleRate": 24000, + "channels": 1, + "encoding": "PCM16 little-endian", + "linearGain": 0.6696615304282213, + "targetRms": 0.08, + "peakLimit": 0.85, + "maxGain": 4, + "operations": "excerpt, downmix, resample, linear end fades, bounded linear normalization, WAV encoding" + } + }, + { + "environmentId": "rain", + "selectedSegmentStartSeconds": 180, + "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" + } + } + ] +} diff --git a/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/screen-final.py b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/screen-final.py new file mode 100644 index 0000000..05f9263 --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/screen-final.py @@ -0,0 +1,68 @@ +"""Offline tiny-model heuristic screening of the exact final WAV bytes; never clearance.""" +from dataclasses import asdict +from datetime import datetime, timezone +import hashlib +from importlib.metadata import version +import inspect +import json +from pathlib import Path +import platform +import sys +import ctranslate2 +from faster_whisper import WhisperModel + +ROOT = Path(__file__).resolve().parents[3] +EVIDENCE = Path(__file__).resolve().parent +REVISION = 'd90ca5fe260221311c53c58e660288d3deb8d356' +SNAPSHOT = Path.home() / '.cache/huggingface/hub/models--Systran--faster-whisper-tiny/snapshots' / REVISION + +def sha(path): + with path.open('rb') as stream: return hashlib.file_digest(stream, 'sha256').hexdigest() + +assert version('faster-whisper') == '1.2.1' +started = datetime.now(timezone.utc).isoformat() +manifest_path = ROOT / 'public/ambience/manifest.json' +manifest_hash = sha(manifest_path) +manifest = json.loads(manifest_path.read_text()) +# Preserve all effective API defaults rather than relying on undocumented invocation settings. +parameters = {name: parameter.default for name, parameter in inspect.signature(WhisperModel.transcribe).parameters.items() + if name not in ('self', 'audio')} +parameters.update(language=None, task='transcribe', beam_size=5, vad_filter=False) +ctranslate2.set_random_seed(0) +model = WhisperModel(str(SNAPSHOT), device='cpu', compute_type='int8', cpu_threads=4, num_workers=1, local_files_only=True) +assert model.model.is_multilingual +results = [] +for entry in manifest['files']: + path = ROOT / 'public/ambience' / entry['file'] + before = sha(path) + assert before == entry['sha256'] and path.stat().st_size == entry['bytes'] + segments, info = model.transcribe(str(path), **parameters) + segments = [asdict(segment) for segment in segments] # Exhaust lazy inference; retain exact unedited results. + assert sha(path) == before + record = {'environmentId': entry['environmentId'], 'file': str(path.relative_to(ROOT)), 'sha256': before, + 'bytes': path.stat().st_size, 'durationSeconds': entry['duration'], + 'selectedSegmentStartSeconds': entry['selectedSegmentStartSeconds'], 'sourceSha256': entry['sourceSha256'], + 'language': info.language, 'languageProbability': info.language_probability, + 'segments': segments, 'text': ''.join(segment['text'] for segment in segments), 'info': asdict(info)} + results.append(record) + print(json.dumps({k: record[k] for k in ('environmentId','sha256','language','languageProbability','segments','text')}, ensure_ascii=False), flush=True) +assert sha(manifest_path) == manifest_hash +required = ['mall', 'market', 'cafe'] +passed = all(result['segments'] == [] for result in results if result['environmentId'] in required) +report = {'schemaVersion': 1, 'startedAtUtc': started, 'completedAtUtc': datetime.now(timezone.utc).isoformat(), + 'tool': {'name': 'faster-whisper', 'version': version('faster-whisper'), 'python': platform.python_version(), + 'dependencies': {name: version(name) for name in ('ctranslate2', 'av', 'numpy', 'tokenizers', 'huggingface-hub')}}, + 'model': {'name': 'tiny', 'multilingual': True, 'repository': 'Systran/faster-whisper-tiny', 'revision': REVISION, + 'files': {path.name: sha(path) for path in sorted(SNAPSHOT.iterdir()) if path.is_file()}}, + 'method': {'input': 'Exact final 12-second public/ambience WAV files, hash verified before and after inference; no source scan, VAD, text editing or manual filtering.', + 'device': 'cpu', 'computeType': 'int8', 'cpuThreads': 4, 'numWorkers': 1, 'randomSeed': 0, + 'offline': True, 'parameters': parameters, 'manifestSha256': manifest_hash, + 'scriptSha256': sha(Path(__file__)), 'command': '/tmp/findword-asr-venv/bin/python .agent/evidence-v0.2.3/privacy-screening/screen-final.py'}, + 'limitations': {'screeningOnly': True, 'humanListeningAcceptance': False, 'legalPrivacyClearance': False, + 'textIsVerifiedTranscript': False, + 'explanation': 'Tiny-model ASR is only a screening signal. Empty segments do not prove absence of speech, music or private conversation. Candidate text and language guesses may be hallucinated and are not faithful transcripts. This is NOT human listening acceptance or legal/privacy clearance.'}, + 'requiredEmptyEnvironmentIds': required, 'requiredEmptyPassed': passed, 'files': results} +with (EVIDENCE / 'final-asr.json').open('x') as stream: + stream.write(json.dumps(report, ensure_ascii=False, indent=2, allow_nan=False) + '\n') +if not passed: sys.exit('Required changed excerpts produced ASR segments; screening criterion failed.') +print('All three changed excerpts have zero emitted segments. Screening signal only; no listening acceptance or legal/privacy clearance.', flush=True) diff --git a/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/screen-with-vad-json.py b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/screen-with-vad-json.py new file mode 100644 index 0000000..aa8a59d --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/screen-with-vad-json.py @@ -0,0 +1,78 @@ +"""Offline tiny-model heuristic screening of the exact final WAV bytes; never clearance.""" +from dataclasses import asdict +from datetime import datetime, timezone +import hashlib +from importlib.metadata import version +import inspect +import json +import math +from pathlib import Path +import platform +import sys +import ctranslate2 +from faster_whisper import WhisperModel + +ROOT = Path(__file__).resolve().parents[3] +EVIDENCE = Path(__file__).resolve().parent +REVISION = 'd90ca5fe260221311c53c58e660288d3deb8d356' +SNAPSHOT = Path.home() / '.cache/huggingface/hub/models--Systran--faster-whisper-tiny/snapshots' / REVISION + +def json_safe(value): + # JSON has no infinity; retain its exact semantic value as an explicit tagged object. + if isinstance(value, float) and not math.isfinite(value): + return {'nonFiniteFloat': 'NaN' if math.isnan(value) else 'Infinity' if value > 0 else '-Infinity'} + if isinstance(value, dict): return {key: json_safe(item) for key, item in value.items()} + if isinstance(value, (list, tuple)): return [json_safe(item) for item in value] + return value + +def sha(path): + with path.open('rb') as stream: return hashlib.file_digest(stream, 'sha256').hexdigest() + +assert version('faster-whisper') == '1.2.1' +started = datetime.now(timezone.utc).isoformat() +manifest_path = ROOT / 'public/ambience/manifest.json' +manifest_hash = sha(manifest_path) +manifest = json.loads(manifest_path.read_text()) +# Preserve all effective API defaults rather than relying on undocumented invocation settings. +parameters = {name: parameter.default for name, parameter in inspect.signature(WhisperModel.transcribe).parameters.items() + if name not in ('self', 'audio')} +parameters.update(language=None, task='transcribe', beam_size=5, vad_filter=True) +ctranslate2.set_random_seed(0) +model = WhisperModel(str(SNAPSHOT), device='cpu', compute_type='int8', cpu_threads=4, num_workers=1, local_files_only=True) +assert model.model.is_multilingual +results = [] +for entry in manifest['files']: + path = ROOT / 'public/ambience' / entry['file'] + before = sha(path) + assert before == entry['sha256'] and path.stat().st_size == entry['bytes'] + segments, info = model.transcribe(str(path), **parameters) + segments = [asdict(segment) for segment in segments] # Exhaust lazy inference; retain exact unedited results. + assert sha(path) == before + record = {'environmentId': entry['environmentId'], 'file': str(path.relative_to(ROOT)), 'sha256': before, + 'bytes': path.stat().st_size, 'durationSeconds': entry['duration'], + 'selectedSegmentStartSeconds': entry['selectedSegmentStartSeconds'], 'sourceSha256': entry['sourceSha256'], + 'language': info.language, 'languageProbability': info.language_probability, + 'segments': segments, 'text': ''.join(segment['text'] for segment in segments), 'info': asdict(info)} + results.append(record) + print(json.dumps({k: record[k] for k in ('environmentId','sha256','language','languageProbability','segments','text')}, ensure_ascii=False), flush=True) +assert sha(manifest_path) == manifest_hash +required = ['mall', 'market', 'cafe'] +passed = all(result['segments'] == [] for result in results if result['environmentId'] in required) +report = {'schemaVersion': 1, 'startedAtUtc': started, 'completedAtUtc': datetime.now(timezone.utc).isoformat(), + 'tool': {'name': 'faster-whisper', 'version': version('faster-whisper'), 'python': platform.python_version(), + 'dependencies': {name: version(name) for name in ('ctranslate2', 'av', 'numpy', 'tokenizers', 'huggingface-hub')}}, + 'model': {'name': 'tiny', 'multilingual': True, 'repository': 'Systran/faster-whisper-tiny', 'revision': REVISION, + 'files': {path.name: sha(path) for path in sorted(SNAPSHOT.iterdir()) if path.is_file()}}, + 'method': {'input': 'Exact final 12-second public/ambience WAV files, hash verified before and after inference; built-in Silero VAD with package defaults, no text editing or manual filtering.', + 'device': 'cpu', 'computeType': 'int8', 'cpuThreads': 4, 'numWorkers': 1, 'randomSeed': 0, + 'nonFiniteNumberEncoding': 'Non-finite default options use {nonFiniteFloat: Infinity|-Infinity|NaN} tagged objects; no ASR segments or text are discarded.', 'offline': True, 'parameters': parameters, 'manifestSha256': manifest_hash, + 'vadModelSha256': sha(Path(__import__('faster_whisper').__file__).parent / 'assets/silero_vad_v6.onnx'), 'scriptSha256': sha(Path(__file__)), 'command': '/tmp/findword-asr-venv/bin/python .agent/evidence-v0.2.3/privacy-screening/screen-with-vad-json.py'}, + 'limitations': {'screeningOnly': True, 'humanListeningAcceptance': False, 'legalPrivacyClearance': False, + 'textIsVerifiedTranscript': False, + 'explanation': 'Tiny-model ASR is only a screening signal. Empty segments do not prove absence of speech, music or private conversation. Candidate text and language guesses may be hallucinated and are not faithful transcripts. This is NOT human listening acceptance or legal/privacy clearance.'}, + 'supplementaryNoVadRun': {'file': 'no-vad-asr.json', 'sha256': sha(EVIDENCE / 'no-vad-asr.json'), 'requiredEmptyPassed': False, 'explanation': 'The separate unfiltered run emitted candidate segments for all three changed excerpts. The primary VAD-enabled screen does not supersede or invalidate that evidence. Neo original VAD/decoder settings were not recorded, so methodological equivalence is unverified.'}, 'requiredEmptyEnvironmentIds': required, 'requiredEmptyPassed': passed, 'files': results} +serialized = json.dumps(json_safe(report), ensure_ascii=False, indent=2, allow_nan=False) + '\n' +with (EVIDENCE / 'final-asr.json').open('x') as stream: + stream.write(serialized) +if not passed: sys.exit('Required changed excerpts produced ASR segments; screening criterion failed.') +print('All three changed excerpts have zero emitted segments. Screening signal only; no listening acceptance or legal/privacy clearance.', flush=True) diff --git a/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/screen-with-vad.py b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/screen-with-vad.py new file mode 100644 index 0000000..7861b11 --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/screen-with-vad.py @@ -0,0 +1,68 @@ +"""Offline tiny-model heuristic screening of the exact final WAV bytes; never clearance.""" +from dataclasses import asdict +from datetime import datetime, timezone +import hashlib +from importlib.metadata import version +import inspect +import json +from pathlib import Path +import platform +import sys +import ctranslate2 +from faster_whisper import WhisperModel + +ROOT = Path(__file__).resolve().parents[3] +EVIDENCE = Path(__file__).resolve().parent +REVISION = 'd90ca5fe260221311c53c58e660288d3deb8d356' +SNAPSHOT = Path.home() / '.cache/huggingface/hub/models--Systran--faster-whisper-tiny/snapshots' / REVISION + +def sha(path): + with path.open('rb') as stream: return hashlib.file_digest(stream, 'sha256').hexdigest() + +assert version('faster-whisper') == '1.2.1' +started = datetime.now(timezone.utc).isoformat() +manifest_path = ROOT / 'public/ambience/manifest.json' +manifest_hash = sha(manifest_path) +manifest = json.loads(manifest_path.read_text()) +# Preserve all effective API defaults rather than relying on undocumented invocation settings. +parameters = {name: parameter.default for name, parameter in inspect.signature(WhisperModel.transcribe).parameters.items() + if name not in ('self', 'audio')} +parameters.update(language=None, task='transcribe', beam_size=5, vad_filter=True) +ctranslate2.set_random_seed(0) +model = WhisperModel(str(SNAPSHOT), device='cpu', compute_type='int8', cpu_threads=4, num_workers=1, local_files_only=True) +assert model.model.is_multilingual +results = [] +for entry in manifest['files']: + path = ROOT / 'public/ambience' / entry['file'] + before = sha(path) + assert before == entry['sha256'] and path.stat().st_size == entry['bytes'] + segments, info = model.transcribe(str(path), **parameters) + segments = [asdict(segment) for segment in segments] # Exhaust lazy inference; retain exact unedited results. + assert sha(path) == before + record = {'environmentId': entry['environmentId'], 'file': str(path.relative_to(ROOT)), 'sha256': before, + 'bytes': path.stat().st_size, 'durationSeconds': entry['duration'], + 'selectedSegmentStartSeconds': entry['selectedSegmentStartSeconds'], 'sourceSha256': entry['sourceSha256'], + 'language': info.language, 'languageProbability': info.language_probability, + 'segments': segments, 'text': ''.join(segment['text'] for segment in segments), 'info': asdict(info)} + results.append(record) + print(json.dumps({k: record[k] for k in ('environmentId','sha256','language','languageProbability','segments','text')}, ensure_ascii=False), flush=True) +assert sha(manifest_path) == manifest_hash +required = ['mall', 'market', 'cafe'] +passed = all(result['segments'] == [] for result in results if result['environmentId'] in required) +report = {'schemaVersion': 1, 'startedAtUtc': started, 'completedAtUtc': datetime.now(timezone.utc).isoformat(), + 'tool': {'name': 'faster-whisper', 'version': version('faster-whisper'), 'python': platform.python_version(), + 'dependencies': {name: version(name) for name in ('ctranslate2', 'av', 'numpy', 'tokenizers', 'huggingface-hub')}}, + 'model': {'name': 'tiny', 'multilingual': True, 'repository': 'Systran/faster-whisper-tiny', 'revision': REVISION, + 'files': {path.name: sha(path) for path in sorted(SNAPSHOT.iterdir()) if path.is_file()}}, + 'method': {'input': 'Exact final 12-second public/ambience WAV files, hash verified before and after inference; built-in Silero VAD with package defaults, no text editing or manual filtering.', + 'device': 'cpu', 'computeType': 'int8', 'cpuThreads': 4, 'numWorkers': 1, 'randomSeed': 0, + 'offline': True, 'parameters': parameters, 'manifestSha256': manifest_hash, + 'vadModelSha256': sha(Path(__import__('faster_whisper').__file__).parent / 'assets/silero_vad_v6.onnx'), 'scriptSha256': sha(Path(__file__)), 'command': '/tmp/findword-asr-venv/bin/python .agent/evidence-v0.2.3/privacy-screening/screen-with-vad.py'}, + 'limitations': {'screeningOnly': True, 'humanListeningAcceptance': False, 'legalPrivacyClearance': False, + 'textIsVerifiedTranscript': False, + 'explanation': 'Tiny-model ASR is only a screening signal. Empty segments do not prove absence of speech, music or private conversation. Candidate text and language guesses may be hallucinated and are not faithful transcripts. This is NOT human listening acceptance or legal/privacy clearance.'}, + 'supplementaryNoVadRun': {'file': 'no-vad-asr.json', 'sha256': sha(EVIDENCE / 'no-vad-asr.json'), 'requiredEmptyPassed': False, 'explanation': 'The separate unfiltered run emitted candidate segments for all three changed excerpts. The primary VAD-enabled screen does not supersede or invalidate that evidence. Neo original VAD/decoder settings were not recorded, so methodological equivalence is unverified.'}, 'requiredEmptyEnvironmentIds': required, 'requiredEmptyPassed': passed, 'files': results} +with (EVIDENCE / 'final-asr.json').open('x') as stream: + stream.write(json.dumps(report, ensure_ascii=False, indent=2, allow_nan=False) + '\n') +if not passed: sys.exit('Required changed excerpts produced ASR segments; screening criterion failed.') +print('All three changed excerpts have zero emitted segments. Screening signal only; no listening acceptance or legal/privacy clearance.', flush=True) diff --git a/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/seek-diagnostics-followup.json b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/seek-diagnostics-followup.json new file mode 100644 index 0000000..d2b1680 --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/seek-diagnostics-followup.json @@ -0,0 +1,48 @@ +[ + { + "method": "sample_trim_continuous_pts", + "command": [ + "ffmpeg", + "-v", + "error", + "-i", + "/tmp/findword-ambience-sources/cafe.ogg", + "-af", + "aresample=24000,atrim=start_sample=4320000:end_sample=4608000,asetpts=N/SR/TB", + "-t", + "12", + "-ar", + "24000", + "-ac", + "1", + "-f", + "f32le", + "pipe:1" + ], + "frames": 288000, + "exitCode": 0, + "stderr": "" + }, + { + "method": "sample_trim_no_duration_limit", + "command": [ + "ffmpeg", + "-v", + "error", + "-i", + "/tmp/findword-ambience-sources/cafe.ogg", + "-af", + "aresample=24000,atrim=start_sample=4320000:end_sample=4608000,asetpts=PTS-STARTPTS", + "-ar", + "24000", + "-ac", + "1", + "-f", + "f32le", + "pipe:1" + ], + "frames": 288000, + "exitCode": 0, + "stderr": "" + } +] diff --git a/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/seek-diagnostics.json b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/seek-diagnostics.json new file mode 100644 index 0000000..c6d9894 --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/seek-diagnostics.json @@ -0,0 +1,152 @@ +[ + { + "environmentId": "market", + "method": "input_seek", + "command": [ + "ffmpeg", + "-v", + "error", + "-ss", + "60", + "-i", + "/tmp/findword-ambience-sources/market.ogg", + "-t", + "12", + "-ar", + "24000", + "-ac", + "1", + "-f", + "f32le", + "pipe:1" + ], + "exitCode": 0, + "frames": 287958, + "stderr": "" + }, + { + "environmentId": "market", + "method": "output_seek", + "command": [ + "ffmpeg", + "-v", + "error", + "-i", + "/tmp/findword-ambience-sources/market.ogg", + "-ss", + "60", + "-t", + "12", + "-ar", + "24000", + "-ac", + "1", + "-f", + "f32le", + "pipe:1" + ], + "exitCode": 0, + "frames": 288000, + "stderr": "" + }, + { + "environmentId": "market", + "method": "sample_trim", + "command": [ + "ffmpeg", + "-v", + "error", + "-i", + "/tmp/findword-ambience-sources/market.ogg", + "-af", + "aresample=24000,atrim=start_sample=1440000:end_sample=1728000,asetpts=PTS-STARTPTS", + "-t", + "12", + "-ar", + "24000", + "-ac", + "1", + "-f", + "f32le", + "pipe:1" + ], + "exitCode": 0, + "frames": 288000, + "stderr": "" + }, + { + "environmentId": "cafe", + "method": "input_seek", + "command": [ + "ffmpeg", + "-v", + "error", + "-ss", + "180", + "-i", + "/tmp/findword-ambience-sources/cafe.ogg", + "-t", + "12", + "-ar", + "24000", + "-ac", + "1", + "-f", + "f32le", + "pipe:1" + ], + "exitCode": 0, + "frames": 287809, + "stderr": "" + }, + { + "environmentId": "cafe", + "method": "output_seek", + "command": [ + "ffmpeg", + "-v", + "error", + "-i", + "/tmp/findword-ambience-sources/cafe.ogg", + "-ss", + "180", + "-t", + "12", + "-ar", + "24000", + "-ac", + "1", + "-f", + "f32le", + "pipe:1" + ], + "exitCode": 0, + "frames": 287809, + "stderr": "" + }, + { + "environmentId": "cafe", + "method": "sample_trim", + "command": [ + "ffmpeg", + "-v", + "error", + "-i", + "/tmp/findword-ambience-sources/cafe.ogg", + "-af", + "aresample=24000,atrim=start_sample=4320000:end_sample=4608000,asetpts=PTS-STARTPTS", + "-t", + "12", + "-ar", + "24000", + "-ac", + "1", + "-f", + "f32le", + "pipe:1" + ], + "exitCode": 0, + "frames": 287809, + "stderr": "" + } +] diff --git a/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/validation-summary.json b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/validation-summary.json new file mode 100644 index 0000000..0af71dc --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/validation-summary.json @@ -0,0 +1,78 @@ +{ + "completedAtUtc": "2026-10-14T09:27:46.598114+00:00", + "implementationAndAtomicRegenerationComplete": true, + "allAcceptanceCriteriaPassed": false, + "blockingCriterion": "market and cafe final WAVs still emit ASR segments; requiredEmptyPassed=false. Exact Neo ASR decoder/VAD settings were not supplied.", + "checks": { + "lint": { + "exitCode": 0, + "log": "18-final-lint.log" + }, + "unit": { + "exitCode": 1, + "passed": 123, + "failed": 1, + "skipped": 0, + "log": "17-unit.log", + "failure": "Final ASR zero-segment acceptance" + }, + "python": { + "exitCode": 0, + "passed": 36, + "log": "12-python.log" + }, + "build": { + "exitCode": 0, + "log": "12-build.log" + }, + "audit": { + "exitCode": 0, + "vulnerabilities": 0, + "evidence": "npm-audit.json" + }, + "sandboxedChrome": { + "exitCode": 0, + "passed": 30, + "failed": 0, + "skipped": 0, + "flaky": 0, + "evidence": "browser-results.json" + }, + "diffCheck": { + "exitCode": 0 + } + }, + "asr": { + "evidence": "final-asr.json", + "method": "faster-whisper 1.2.1 tiny multilingual CPU int8; built-in VAD and decoding defaults", + "segmentsByEnvironment": { + "street": 0, + "mall": 0, + "theater": 0, + "department": 0, + "market": 3, + "subway": 0, + "cafe": 1, + "rain": 0 + }, + "requiredEmptyPassed": false, + "ungatedEvidence": "no-vad-asr.json", + "screeningOnly": true, + "humanListeningAcceptance": false, + "legalPrivacyClearance": false + }, + "preservation": { + "voiceWavsUnchanged": 101, + "ambienceWavsUnchanged": 5, + "ambienceWavsChanged": [ + "public/ambience/cafe.wav", + "public/ambience/mall.wav", + "public/ambience/market.wav" + ], + "priorAgentFilesUnchanged": 397, + "gitTrackedHistoricalAgentFilesUnchanged": 180, + "evidence": "preservation.json" + }, + "head": "c92660b514f7af8eb556d3fa5c0fc80e4bdd4cf5", + "commitPushMergeTagDeployPerformed": false +} diff --git a/.agent/evidence-v0.2.3/privacy-screening/prior-derivatives-asr-original.json b/.agent/evidence-v0.2.3/privacy-screening/prior-derivatives-asr-original.json new file mode 100644 index 0000000..5051e98 --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/prior-derivatives-asr-original.json @@ -0,0 +1,68 @@ +{ + "cafe.wav": { + "language": "en", + "probability": 0.20470842719078064, + "segments": [ + { + "start": 0.46, + "end": 1.46, + "text": "Thank you." + } + ], + "text": "Thank you." + }, + "department.wav": { + "language": "en", + "probability": 0.3020564913749695, + "segments": [], + "text": "" + }, + "mall.wav": { + "language": "en", + "probability": 0.39363399147987366, + "segments": [ + { + "start": 1.2, + "end": 3.2, + "text": "Thanks for watching!" + } + ], + "text": "Thanks for watching!" + }, + "market.wav": { + "language": "es", + "probability": 0.13287761807441711, + "segments": [ + { + "start": 0.0, + "end": 6.86, + "text": "¡Van a la chana! ¡Van a la chana! ¡Van a la chana!" + } + ], + "text": "¡Van a la chana! ¡Van a la chana! ¡Van a la chana!" + }, + "rain.wav": { + "language": "en", + "probability": 0.3020564913749695, + "segments": [], + "text": "" + }, + "street.wav": { + "language": "en", + "probability": 0.3020564913749695, + "segments": [], + "text": "" + }, + "subway.wav": { + "language": "en", + "probability": 0.3020564913749695, + "segments": [], + "text": "" + }, + "theater.wav": { + "language": "en", + "probability": 0.3020564913749695, + "segments": [], + "text": "" + } +} diff --git a/.agent/evidence-v0.2.3/privacy-screening/regenerate.py b/.agent/evidence-v0.2.3/privacy-screening/regenerate.py new file mode 100644 index 0000000..1c68ad0 --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/regenerate.py @@ -0,0 +1,37 @@ +"""Rebuild through the hardened generator; keep this run's source/output audit.""" +import json +from datetime import datetime, timezone +from pathlib import Path +import subprocess +import sys + +ROOT = Path(__file__).resolve().parents[3] +sys.path.insert(0, str(ROOT / 'scripts')) +import ambience_audio as audio + +EVIDENCE = Path(__file__).resolve().parent +plan_path = ROOT / '.agent/AMBIENCE-SOURCES-v0.2.3.json' +plan_bytes = plan_path.read_bytes() +plan = json.loads(plan_bytes) +source_directory = Path('/tmp/findword-ambience-sources') +records = [] +for asset in plan['assets']: + path = audio.source_path(source_directory, asset['environmentId']) + probe = json.loads(subprocess.check_output(['ffprobe', '-v', 'error', '-show_entries', 'format=duration', '-of', 'json', str(path)], text=True)) + record = {'environmentId': asset['environmentId'], 'sha256': audio.digest(path), 'bytes': path.stat().st_size, + 'directMediaDurationSeconds': float(probe['format']['duration']), 'selectedSegmentStartSeconds': asset['selectedSegmentStartSeconds']} + assert record['sha256'] == asset['expectedSourceSha256'] + assert record['bytes'] == asset['sourceBytes'] + assert record['directMediaDurationSeconds'] == asset['directMediaDurationSeconds'] + records.append(record) +print('All eight source SHA-256, byte counts and direct-media durations match before conversion.', flush=True) +manifest = audio.generate(plan, source_directory, ROOT / 'public/ambience') +assert plan_path.read_bytes() == plan_bytes +assert plan == json.loads(plan_bytes) +audio.validate_bundle(ROOT / 'public/ambience', plan) +record = {'completedAtUtc': datetime.now(timezone.utc).isoformat(), 'method': 'ambience_audio.generate: source preflight, full staged bundle validation, atomic directory exchange', + 'allSourcesMatchedBeforeConversion': True, 'planUnmodified': True, 'sources': records, 'manifestSha256': audio.digest(ROOT / 'public/ambience/manifest.json'), + 'toolVersions': manifest['toolVersions'], 'outputs': [{k: e[k] for k in ('environmentId', 'selectedSegmentStartSeconds', 'sha256', 'bytes', 'duration', 'rms', 'peak', 'conversion')} for e in manifest['files']]} +with (EVIDENCE / 'regeneration.json').open('x') as stream: + stream.write(json.dumps(record, ensure_ascii=False, indent=2) + '\n') +print(json.dumps(record, ensure_ascii=False, indent=2)) diff --git a/.agent/evidence-v0.2.3/privacy-screening/regeneration.json b/.agent/evidence-v0.2.3/privacy-screening/regeneration.json new file mode 100644 index 0000000..82dc8a0 --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/regeneration.json @@ -0,0 +1,254 @@ +{ + "completedAtUtc": "2026-10-14T09:16:20.220194+00:00", + "method": "ambience_audio.generate: source preflight, full staged bundle validation, atomic directory exchange", + "allSourcesMatchedBeforeConversion": true, + "planUnmodified": true, + "sources": [ + { + "environmentId": "street", + "sha256": "0ddb0be7eb3427f781c8268bcbc74b8ad7e1fbf75b9f6966e65274dbe85f3d9d", + "bytes": 3414104, + "directMediaDurationSeconds": 264.254694, + "selectedSegmentStartSeconds": 35 + }, + { + "environmentId": "mall", + "sha256": "bb066e130e5d665db57cb5f88e820d053c724d8f777b275213998d2074c6529a", + "bytes": 1666896, + "directMediaDurationSeconds": 60.05551, + "selectedSegmentStartSeconds": 36 + }, + { + "environmentId": "theater", + "sha256": "05c3ece7c088f34700b7610f791c0ad848a24c77be2c32fd1503a78356739a43", + "bytes": 1485015, + "directMediaDurationSeconds": 176.901224, + "selectedSegmentStartSeconds": 45 + }, + { + "environmentId": "department", + "sha256": "261fda28722fba623483a90b32e7a2ec388c59887f56a5247156b53f1ffb6ccd", + "bytes": 2445024, + "directMediaDurationSeconds": 292.872, + "selectedSegmentStartSeconds": 90 + }, + { + "environmentId": "market", + "sha256": "fc0075dce8ad05b56460c9f18754c27b2021f21f1c780a595ccda648d33c941d", + "bytes": 622200, + "directMediaDurationSeconds": 76.696961, + "selectedSegmentStartSeconds": 60 + }, + { + "environmentId": "subway", + "sha256": "41fcf064cde53cef1528fe98721347851e60c070d8ff9f213f354025cf272d4c", + "bytes": 3343901, + "directMediaDurationSeconds": 425.024, + "selectedSegmentStartSeconds": 65 + }, + { + "environmentId": "cafe", + "sha256": "6360791fdcee1f64638f0fc9abd6d2c7a1aa75fd3d2b80033170a02d025099dc", + "bytes": 19947952, + "directMediaDurationSeconds": 1200.000998, + "selectedSegmentStartSeconds": 180 + }, + { + "environmentId": "rain", + "sha256": "ef0511593b1bb0ba47d5c5dafd83eb07ba854b5a65fd5d41b8c76a1b3ff2c22a", + "bytes": 91187572, + "directMediaDurationSeconds": 1800.0, + "selectedSegmentStartSeconds": 180 + } + ], + "manifestSha256": "4f21df1c046e545553319889218c29b3efe0da0d49d45d3e09a36fb7759a617c", + "toolVersions": { + "ffmpeg": "ffmpeg version 6.1.1-3ubuntu5 Copyright (c) 2000-2023 the FFmpeg developers" + }, + "outputs": [ + { + "environmentId": "street", + "selectedSegmentStartSeconds": 35, + "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", + "selectedSegmentStartSeconds": 36, + "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", + "selectedSegmentStartSeconds": 45, + "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", + "selectedSegmentStartSeconds": 90, + "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", + "selectedSegmentStartSeconds": 60, + "sha256": "7a7a980845a4aade2a7e8a108eae746220a4688e92792ee93d3deb76b2a762f6", + "bytes": 576044, + "duration": 12.0, + "rms": 0.07999755668792045, + "peak": 0.507232666015625, + "conversion": { + "startSeconds": 60, + "durationSeconds": 12, + "seekMethod": "full decode then sample trim", + "fadeSeconds": 0.05, + "sampleRate": 24000, + "channels": 1, + "encoding": "PCM16 little-endian", + "linearGain": 1.6103277706340973, + "targetRms": 0.08, + "peakLimit": 0.85, + "maxGain": 4, + "operations": "excerpt, downmix, resample, linear end fades, bounded linear normalization, WAV encoding" + } + }, + { + "environmentId": "subway", + "selectedSegmentStartSeconds": 65, + "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", + "selectedSegmentStartSeconds": 180, + "sha256": "802a956e91b85a2fdd0e1f161d75bfada7a53499bcb57ba7f578411480ded216", + "bytes": 576044, + "duration": 12.0, + "rms": 0.07999756802463229, + "peak": 0.44708251953125, + "conversion": { + "startSeconds": 180, + "durationSeconds": 12, + "seekMethod": "full decode then sample trim", + "fadeSeconds": 0.05, + "sampleRate": 24000, + "channels": 1, + "encoding": "PCM16 little-endian", + "linearGain": 0.6696615304282213, + "targetRms": 0.08, + "peakLimit": 0.85, + "maxGain": 4, + "operations": "excerpt, downmix, resample, linear end fades, bounded linear normalization, WAV encoding" + } + }, + { + "environmentId": "rain", + "selectedSegmentStartSeconds": 180, + "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" + } + } + ] +} diff --git a/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/01-release-RED.log b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/01-release-RED.log new file mode 100644 index 0000000..258b7b0 --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/01-release-RED.log @@ -0,0 +1,81 @@ +$ npx vitest run tests/ambience.test.ts +Started UTC: 2026-10-14T09:32:28.005336+00:00 + + RUN v5.0.4 /home/hermes/worktrees/find-word-v0.2.3 + + ❯ tests/ambience.test.ts (6 tests | 3 failed) 658ms + × 선택 구간은 승인 계획의 불변 provenance이며 manifest와 고지에 동일하게 남는다 8ms + × 최종 ASR 증거는 정확한 WAV와 연결되며 청취·법적 인수로 주장하지 않는다 2ms + × 재시도는 market/cafe만 바꾸고 mall 및 실패·no-VAD 증거를 바이트 그대로 보존한다 198ms + +⎯⎯⎯⎯⎯⎯⎯ Failed Tests 3 ⎯⎯⎯⎯⎯⎯⎯ + + FAIL tests/ambience.test.ts > 선택 구간은 승인 계획의 불변 provenance이며 manifest와 고지에 동일하게 남는다 +AssertionError: expected { street: 35, mall: 36, …(6) } to deeply equal { street: 35, mall: 36, …(6) } + +- Expected ++ Received + + { +- "cafe": 0, ++ "cafe": 180, + "department": 90, + "mall": 36, +- "market": 24, ++ "market": 60, + "rain": 180, + "street": 35, + "subway": 65, + "theater": 45, + } + + ❯ tests/ambience.test.ts:159:5 + 157| ), + 158| ), + 159| ).toEqual(starts); + | ^ + 160| for (const asset of plan.assets) { + 161| const start = asset.selectedSegmentStartSeconds; + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[1/3]⎯ + + FAIL tests/ambience.test.ts > 최종 ASR 증거는 정확한 WAV와 연결되며 청취·법적 인수로 주장하지 않는다 +AssertionError: expected false to be true // Object.is equality + +- Expected ++ Received + +- true ++ false + + ❯ tests/ambience.test.ts:194:41 + 192| expect(screening.model).toMatchObject({ name: "tiny", multilingual: … + 193| expect(screening.model.revision).toMatch(/^[a-f0-9]{40}$/); + 194| expect(screening.requiredEmptyPassed).toBe(true); + | ^ + 195| expect(screening.requiredEmptyEnvironmentIds).toEqual(["mall", "mark… + 196| expect(screening.method).toMatchObject({ device: "cpu", computeType:… + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[2/3]⎯ + + FAIL tests/ambience.test.ts > 재시도는 market/cafe만 바꾸고 mall 및 실패·no-VAD 증거를 바이트 그대로 보존한다 +AssertionError: public/ambience/cafe.wav: expected '802a956e91b85a2fdd0e1f161d75bfada7a53…' not to be '802a956e91b85a2fdd0e1f161d75bfada7a53…' // Object.is equality + ❯ tests/ambience.test.ts:320:36 + 318| for (const [path, before] of Object.entries(baseline.wavSha256)) { + 319| if (/public\/ambience\/(market|cafe)\.wav$/.test(path)) { + 320| expect(hash(path), path).not.toBe(before); + | ^ + 321| changed.push(path); + 322| } else { + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[3/3]⎯ + + + Test Files 1 failed (1) + Tests 3 failed | 3 passed (6) + Start at 09:32:28 + Duration 937ms (tests 80%, setup 12%, transform 6%, import 1%, worker 1%) + + +Exit code: 1 +Finished UTC: 2026-10-14T09:32:29.548064+00:00 diff --git a/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/02-regeneration.log b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/02-regeneration.log new file mode 100644 index 0000000..2b55643 --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/02-regeneration.log @@ -0,0 +1,261 @@ +$ python3 .agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/regenerate.py +Started UTC: 2026-10-14T09:33:20.842199+00:00 +All eight source SHA-256, byte counts and direct-media durations match before conversion. +Preserved 101 voice WAVs and six ambience WAVs including mall; changed only market and cafe. +{ + "completedAtUtc": "2026-10-14T09:33:24.596833+00:00", + "method": "ambience_audio.generate: source preflight, full staged bundle validation, atomic directory exchange", + "allSourcesMatchedBeforeConversion": true, + "planUnmodified": true, + "sources": [ + { + "environmentId": "street", + "sha256": "0ddb0be7eb3427f781c8268bcbc74b8ad7e1fbf75b9f6966e65274dbe85f3d9d", + "bytes": 3414104, + "directMediaDurationSeconds": 264.254694, + "selectedSegmentStartSeconds": 35 + }, + { + "environmentId": "mall", + "sha256": "bb066e130e5d665db57cb5f88e820d053c724d8f777b275213998d2074c6529a", + "bytes": 1666896, + "directMediaDurationSeconds": 60.05551, + "selectedSegmentStartSeconds": 36 + }, + { + "environmentId": "theater", + "sha256": "05c3ece7c088f34700b7610f791c0ad848a24c77be2c32fd1503a78356739a43", + "bytes": 1485015, + "directMediaDurationSeconds": 176.901224, + "selectedSegmentStartSeconds": 45 + }, + { + "environmentId": "department", + "sha256": "261fda28722fba623483a90b32e7a2ec388c59887f56a5247156b53f1ffb6ccd", + "bytes": 2445024, + "directMediaDurationSeconds": 292.872, + "selectedSegmentStartSeconds": 90 + }, + { + "environmentId": "market", + "sha256": "fc0075dce8ad05b56460c9f18754c27b2021f21f1c780a595ccda648d33c941d", + "bytes": 622200, + "directMediaDurationSeconds": 76.696961, + "selectedSegmentStartSeconds": 24 + }, + { + "environmentId": "subway", + "sha256": "41fcf064cde53cef1528fe98721347851e60c070d8ff9f213f354025cf272d4c", + "bytes": 3343901, + "directMediaDurationSeconds": 425.024, + "selectedSegmentStartSeconds": 65 + }, + { + "environmentId": "cafe", + "sha256": "6360791fdcee1f64638f0fc9abd6d2c7a1aa75fd3d2b80033170a02d025099dc", + "bytes": 19947952, + "directMediaDurationSeconds": 1200.000998, + "selectedSegmentStartSeconds": 0 + }, + { + "environmentId": "rain", + "sha256": "ef0511593b1bb0ba47d5c5dafd83eb07ba854b5a65fd5d41b8c76a1b3ff2c22a", + "bytes": 91187572, + "directMediaDurationSeconds": 1800.0, + "selectedSegmentStartSeconds": 180 + } + ], + "manifestSha256": "2aeae8bb7a1f6e12543ba7e32a233b47b1ebcfdd65c7e55f67fc8f22f8d0f8c1", + "toolVersions": { + "ffmpeg": "ffmpeg version 6.1.1-3ubuntu5 Copyright (c) 2000-2023 the FFmpeg developers" + }, + "outputs": [ + { + "environmentId": "street", + "selectedSegmentStartSeconds": 35, + "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", + "selectedSegmentStartSeconds": 36, + "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", + "selectedSegmentStartSeconds": 45, + "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", + "selectedSegmentStartSeconds": 90, + "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", + "selectedSegmentStartSeconds": 24, + "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", + "selectedSegmentStartSeconds": 65, + "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", + "selectedSegmentStartSeconds": 0, + "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", + "selectedSegmentStartSeconds": 180, + "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" + } + } + ] +} + +Exit code: 0 +Finished UTC: 2026-10-14T09:33:24.694686+00:00 diff --git a/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/03-final-asr.log b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/03-final-asr.log new file mode 100644 index 0000000..75ce833 --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/03-final-asr.log @@ -0,0 +1,14 @@ +$ /tmp/findword-asr-venv/bin/python .agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/screen-final.py +Started UTC: 2026-10-14T09:33:40.489425+00:00 +{"environmentId": "street", "sha256": "a8bffa201b174618955bc51b860167169125304811aabe2086b0bb35b06c3ae1", "language": "en", "languageProbability": 0.3020564913749695, "segments": [], "text": ""} +{"environmentId": "mall", "sha256": "680a769940c08f0d12c6c954c08366598dd8b5745e276f39c82b10d1a88261a1", "language": "en", "languageProbability": 0.3020564913749695, "segments": [], "text": ""} +{"environmentId": "theater", "sha256": "2d6a444fb7874cdf6b2d8a741a69175299b112eb66834912c025437d8277d635", "language": "en", "languageProbability": 0.3020564913749695, "segments": [], "text": ""} +{"environmentId": "department", "sha256": "aa43f3d1d3e7c2b1f8ace24ecbda45d0ea3a031db941c39506dc6c1665b8efa7", "language": "en", "languageProbability": 0.3020564913749695, "segments": [], "text": ""} +{"environmentId": "market", "sha256": "d6f73d86aea98b83e2995e61baaa7315a0ea7adeebc093769d76e1569b207658", "language": "en", "languageProbability": 0.3020564913749695, "segments": [], "text": ""} +{"environmentId": "subway", "sha256": "9faf70b68617d267b367a0f3692ed90015458543ab4b0844f6c704e6a724728f", "language": "en", "languageProbability": 0.3020564913749695, "segments": [], "text": ""} +{"environmentId": "cafe", "sha256": "6853c121104940041c268a2891eadae032c17aa22b4c3b3ddfbc025262434995", "language": "en", "languageProbability": 0.3020564913749695, "segments": [], "text": ""} +{"environmentId": "rain", "sha256": "f4315084e820f742b0709de5bb0d1abd3d5af1730620e08c2948b70347356dd9", "language": "en", "languageProbability": 0.3020564913749695, "segments": [], "text": ""} +All three changed excerpts have zero emitted segments. Screening signal only; no listening acceptance or legal/privacy clearance. + +Exit code: 0 +Finished UTC: 2026-10-14T09:33:44.452090+00:00 diff --git a/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/04-release-GREEN.log b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/04-release-GREEN.log new file mode 100644 index 0000000..66c6cac --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/04-release-GREEN.log @@ -0,0 +1,14 @@ +$ npx vitest run tests/ambience.test.ts +Started UTC: 2026-10-14T09:33:52.340507+00:00 + + RUN v5.0.4 /home/hermes/worktrees/find-word-v0.2.3 + + + Test Files 1 passed (1) + Tests 6 passed (6) + Start at 09:33:52 + Duration 953ms (tests 79%, setup 12%, transform 6%, import 2%) + + +Exit code: 0 +Finished UTC: 2026-10-14T09:33:53.892715+00:00 diff --git a/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/05-audit.log b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/05-audit.log new file mode 100644 index 0000000..66a79e7 --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/05-audit.log @@ -0,0 +1,15 @@ +{ + "command": "npm audit --json", + "startedAtUtc": "2026-10-14T09:36:05.550144+00:00", + "completedAtUtc": "2026-10-14T09:36:06.551382+00:00", + "exitCode": 0, + "vulnerabilities": { + "info": 0, + "low": 0, + "moderate": 0, + "high": 0, + "critical": 0, + "total": 0 + }, + "stderr": "" +} diff --git a/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/05-build.log b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/05-build.log new file mode 100644 index 0000000..2e2b202 --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/05-build.log @@ -0,0 +1,20 @@ +$ npm run build +Started UTC: 2026-10-14T09:36:04.326956+00:00 + +> find-word@0.2.3 build +> tsc --noEmit && vite build && node scripts/check-build.mjs + +vite v8.3.4 building client environment for production... +transforming... +✓ 21 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-BChkBncw.js 247.95 kB │ gzip: 78.07 kB + +✓ built in 271ms +빌드 음성 자산 101개 + 현장음 8개 및 런타임/현장음 notice 확인 + +Exit code: 0 +Finished UTC: 2026-10-14T09:36:11.577511+00:00 diff --git a/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/05-lint.log b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/05-lint.log new file mode 100644 index 0000000..9ba9b02 --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/05-lint.log @@ -0,0 +1,9 @@ +$ npm run lint +Started UTC: 2026-10-14T09:36:04.304745+00:00 + +> find-word@0.2.3 lint +> eslint . && tsc --noEmit + + +Exit code: 0 +Finished UTC: 2026-10-14T09:36:13.671100+00:00 diff --git a/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/05-python.log b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/05-python.log new file mode 100644 index 0000000..b0da9a0 --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/05-python.log @@ -0,0 +1,457 @@ +$ python3 -m unittest discover -s tests/python -v +Started UTC: 2026-10-14T09:36:04.316973+00:00 +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_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_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_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 36 tests in 13.687s + +OK + +Exit code: 0 +Finished UTC: 2026-10-14T09:36:18.151721+00:00 diff --git a/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/05-unit.log b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/05-unit.log new file mode 100644 index 0000000..9aeb9d7 --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/05-unit.log @@ -0,0 +1,21 @@ +$ npm test +Started UTC: 2026-10-14T09:36:42.755878+00:00 + +> find-word@0.2.3 test +> vitest run + + + RUN v5.0.4 /home/hermes/worktrees/find-word-v0.2.3 + + + Test Files 13 passed (13) + Tests 125 passed (125) + Start at 09:36:43 + Duration 36.06s (tests 87%, environment 9%, setup 3%) + + Isolate 13 workers spawned · ~885ms startup each (spawn + environment, per file) + at least ~2.95s faster with isolate: false — reuses workers across files instead of one per file + + +Exit code: 0 +Finished UTC: 2026-10-14T09:37:19.332599+00:00 diff --git a/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/06-browser.log b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/06-browser.log new file mode 100644 index 0000000..a646ea9 --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/06-browser.log @@ -0,0 +1,59 @@ +$ npx playwright test --reporter=line,json --output /home/hermes/worktrees/find-word-v0.2.3/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/browser-final +Started UTC: 2026-10-14T09:36:42.758794+00:00 +CHROME_PATH=/usr/bin/google-chrome; PLAYWRIGHT_NO_SANDBOX unset; chromiumSandbox=true +[WebServer] (node:1521622) 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 30 tests using 2 workers + +(node:1521680) 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:1521686) 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/30] [desktop] › tests/browser/audio.spec.ts:7:1 › 음성·현장음 109개 versioned WAV를 실제 Chrome에서 해시·디코드 검증한다 +[2/30] [desktop] › tests/browser/game.spec.ts:8:1 › 실제 오디오로 혼합 모드 완주·레이아웃·접근성·외부 요청 없음 +[3/30] [desktop] › tests/browser/game.spec.ts:130:3 › intro WAV query URL의 404를 표시하고 같은 URL로 재시도·정답 mapping한다 +[4/30] [desktop] › tests/browser/game.spec.ts:130:3 › target WAV query URL의 404를 표시하고 같은 URL로 재시도·정답 mapping한다 +[5/30] [desktop] › tests/browser/release.spec.ts:6:1 › 릴리스는 사용자 크레딧과 런타임 MIT notice 전문을 제공한다 +[6/30] [desktop] › tests/browser/release.spec.ts:24:1 › 누락 음성·환경음은 query와 HTML accept에도 404이고 출처 고지는 번들된다 +[7/30] [desktop] › tests/browser/review-fixes.spec.ts:27:1 › 리뷰: 한국어 모드·결과 어절은 320px와 360px에서도 갈라지거나 넘치지 않는다 +[8/30] [desktop] › tests/browser/review-fixes.spec.ts:62:1 › 리뷰: 실제 진행 막대는 현재 문항의 1/3·2/3·3/3을 채운다 +[9/30] [desktop] › tests/browser/rounds.spec.ts:35:1 › 시작 단계·SNR·3문항 완료→다음 단계·재생 중 종료·응답 후 종료·홈 초기화 +[10/30] [desktop] › tests/browser/rounds.spec.ts:135:1 › 여덟 환경의 실제 WAV를 각각 디코드하고 루프 재생한 뒤 즉시 정지한다 +[11/30] [desktop] › tests/browser/rounds.spec.ts:178:1 › 환경음 404는 한국어 오류와 재시도 후 정상 답변으로 복구한다 +[12/30] [desktop] › tests/browser/ui.spec.ts:4:1 › 전체 음량은 설정 흐름 안에 들어가며 키보드로 조절된다 +[13/30] [desktop] › tests/browser/ui.spec.ts:52:1 › 난이도 설명은 모바일에서도 보인다 +[14/30] [desktop] › tests/browser/ui.spec.ts:68:1 › 한국어 제목은 단어 중간에서 줄바꿈하지 않는다 +[15/30] [desktop] › tests/browser/ui.spec.ts:121:1 › 시작 단계와 SNR 설정은 카드 안에 들어가고 터치 영역을 확보한다 +(node:1523631) 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) + + +[16/30] [mobile] › tests/browser/audio.spec.ts:7:1 › 음성·현장음 109개 versioned WAV를 실제 Chrome에서 해시·디코드 검증한다 +(node:1523782) 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) + + +[17/30] [mobile] › tests/browser/game.spec.ts:8:1 › 실제 오디오로 혼합 모드 완주·레이아웃·접근성·외부 요청 없음 +[18/30] [mobile] › tests/browser/game.spec.ts:130:3 › intro WAV query URL의 404를 표시하고 같은 URL로 재시도·정답 mapping한다 +[19/30] [mobile] › tests/browser/game.spec.ts:130:3 › target WAV query URL의 404를 표시하고 같은 URL로 재시도·정답 mapping한다 +[20/30] [mobile] › tests/browser/release.spec.ts:6:1 › 릴리스는 사용자 크레딧과 런타임 MIT notice 전문을 제공한다 +[21/30] [mobile] › tests/browser/release.spec.ts:24:1 › 누락 음성·환경음은 query와 HTML accept에도 404이고 출처 고지는 번들된다 +[22/30] [mobile] › tests/browser/review-fixes.spec.ts:27:1 › 리뷰: 한국어 모드·결과 어절은 320px와 360px에서도 갈라지거나 넘치지 않는다 +[23/30] [mobile] › tests/browser/review-fixes.spec.ts:62:1 › 리뷰: 실제 진행 막대는 현재 문항의 1/3·2/3·3/3을 채운다 +[24/30] [mobile] › tests/browser/rounds.spec.ts:35:1 › 시작 단계·SNR·3문항 완료→다음 단계·재생 중 종료·응답 후 종료·홈 초기화 +[25/30] [mobile] › tests/browser/rounds.spec.ts:135:1 › 여덟 환경의 실제 WAV를 각각 디코드하고 루프 재생한 뒤 즉시 정지한다 +[26/30] [mobile] › tests/browser/rounds.spec.ts:178:1 › 환경음 404는 한국어 오류와 재시도 후 정상 답변으로 복구한다 +[27/30] [mobile] › tests/browser/ui.spec.ts:4:1 › 전체 음량은 설정 흐름 안에 들어가며 키보드로 조절된다 +[28/30] [mobile] › tests/browser/ui.spec.ts:52:1 › 난이도 설명은 모바일에서도 보인다 +[29/30] [mobile] › tests/browser/ui.spec.ts:68:1 › 한국어 제목은 단어 중간에서 줄바꿈하지 않는다 +[30/30] [mobile] › tests/browser/ui.spec.ts:121:1 › 시작 단계와 SNR 설정은 카드 안에 들어가고 터치 영역을 확보한다 + 30 passed (4.0m) + +Exit code: 0 +Finished UTC: 2026-10-14T09:40:45.154633+00:00 diff --git a/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/07-preservation.log b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/07-preservation.log new file mode 100644 index 0000000..81aa5e0 --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/07-preservation.log @@ -0,0 +1,40 @@ +$ python3 .agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/verify-preservation.py +Started UTC: 2026-10-14T09:37:29.675313+00:00 +{ + "completedAtUtc": "2026-10-14T09:37:31.286690+00:00", + "voiceWavsUnchanged": 101, + "unaffectedAmbienceWavsUnchanged": 5, + "mallWavUnchanged": true, + "allAmbienceWavsUnchangedInRetry": [ + "public/ambience/department.wav", + "public/ambience/mall.wav", + "public/ambience/rain.wav", + "public/ambience/street.wav", + "public/ambience/subway.wav", + "public/ambience/theater.wav" + ], + "changedWavs": [ + { + "file": "public/ambience/cafe.wav", + "beforeSha256": "802a956e91b85a2fdd0e1f161d75bfada7a53499bcb57ba7f578411480ded216", + "afterSha256": "6853c121104940041c268a2891eadae032c17aa22b4c3b3ddfbc025262434995" + }, + { + "file": "public/ambience/market.wav", + "beforeSha256": "7a7a980845a4aade2a7e8a108eae746220a4688e92792ee93d3deb76b2a762f6", + "afterSha256": "d6f73d86aea98b83e2995e61baaa7315a0ea7adeebc093769d76e1569b207658" + } + ], + "priorAgentFilesUnchanged": 484, + "archivedPriorAttemptFilesUnchanged": 89, + "archiveFilesReadOnly": true, + "gitTrackedHistoricalAgentFilesUnchanged": 180, + "sourceProvenanceUnchangedExceptAuthorizedStarts": true, + "distMatchesCurrentAmbienceBundle": true, + "finalScreenMatchesCurrentFilesAndScript": true, + "finalAsrSha256": "82df338d83f7b6c8b6b04ecf43c7218b6787cc1b72d73d5c898197ec957a7070", + "head": "c92660b514f7af8eb556d3fa5c0fc80e4bdd4cf5" +} + +Exit code: 0 +Finished UTC: 2026-10-14T09:37:31.302490+00:00 diff --git a/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/08-browser-integrity.log b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/08-browser-integrity.log new file mode 100644 index 0000000..0aa48cf --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/08-browser-integrity.log @@ -0,0 +1,10 @@ +$ python3 .agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/collect-browser-evidence.py +Started UTC: 2026-10-14T09:40:59.115807+00:00 +Traceback (most recent call last): + File "/home/hermes/worktrees/find-word-v0.2.3/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/collect-browser-evidence.py", line 49, in + assert len(matches) == 1 + ^^^^^^^^^^^^^^^^^ +AssertionError + +Exit code: 1 +Finished UTC: 2026-10-14T09:40:59.150626+00:00 diff --git a/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/09-browser-integrity.log b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/09-browser-integrity.log new file mode 100644 index 0000000..74aae5e --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/09-browser-integrity.log @@ -0,0 +1,43 @@ +$ python3 .agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/collect-browser-evidence-v2.py +Started UTC: 2026-10-14T09:41:28.261717+00:00 +{ + "browserStats": { + "startTime": "2026-10-14T09:36:44.096Z", + "duration": 240675.669, + "expected": 30, + "skipped": 0, + "unexpected": 0, + "flaky": 0 + }, + "integrity": [ + { + "project": "desktop", + "chrome": "146.0.7680.80", + "filesMatched": 109, + "externalRequests": 0, + "consoleOrPageErrors": 0, + "failedRequests": 0, + "evidence": "desktop-audio-integrity.json", + "levelTolerance": 3.0517578125e-05, + "maximumRmsDifference": 1.6421807213090611e-06, + "maximumPeakDifference": 2.5928020477294922e-05, + "levelToleranceReason": "One PCM16 step allows browser float decode scaling; SHA-256 and bytes must match exactly." + }, + { + "project": "mobile", + "chrome": "146.0.7680.80", + "filesMatched": 109, + "externalRequests": 0, + "consoleOrPageErrors": 0, + "failedRequests": 0, + "evidence": "mobile-audio-integrity.json", + "levelTolerance": 3.0517578125e-05, + "maximumRmsDifference": 1.6421807213090611e-06, + "maximumPeakDifference": 2.5928020477294922e-05, + "levelToleranceReason": "One PCM16 step allows browser float decode scaling; SHA-256 and bytes must match exactly." + } + ] +} + +Exit code: 0 +Finished UTC: 2026-10-14T09:41:28.299132+00:00 diff --git a/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/10-final-check.json b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/10-final-check.json new file mode 100644 index 0000000..3a92e92 --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/10-final-check.json @@ -0,0 +1,11 @@ +{ + "completedAtUtc": "2026-10-14T09:42:14.468807+00:00", + "diffCheckExitCode": 0, + "currentLocalDocumentLinksValid": true, + "priorEvidenceUnchanged": true, + "archivedFilesUnchanged": 89, + "currentMetadataConsistent": true, + "historicalFailureStillFalse": true, + "verifiedFiles": 159, + "commitPushMergeTagDeployPerformed": false +} diff --git a/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/baseline.json b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/baseline.json new file mode 100644 index 0000000..08ae17c --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/baseline.json @@ -0,0 +1,702 @@ +{ + "createdAtUtc": "2026-10-14T09:32:09.210738+00:00", + "wavSha256": { + "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", + "public/ambience/cafe.wav": "802a956e91b85a2fdd0e1f161d75bfada7a53499bcb57ba7f578411480ded216", + "public/ambience/department.wav": "aa43f3d1d3e7c2b1f8ace24ecbda45d0ea3a031db941c39506dc6c1665b8efa7", + "public/ambience/mall.wav": "680a769940c08f0d12c6c954c08366598dd8b5745e276f39c82b10d1a88261a1", + "public/ambience/market.wav": "7a7a980845a4aade2a7e8a108eae746220a4688e92792ee93d3deb76b2a762f6", + "public/ambience/rain.wav": "f4315084e820f742b0709de5bb0d1abd3d5af1730620e08c2948b70347356dd9", + "public/ambience/street.wav": "a8bffa201b174618955bc51b860167169125304811aabe2086b0bb35b06c3ae1", + "public/ambience/subway.wav": "9faf70b68617d267b367a0f3692ed90015458543ab4b0844f6c704e6a724728f", + "public/ambience/theater.wav": "2d6a444fb7874cdf6b2d8a741a69175299b112eb66834912c025437d8277d635" + }, + "priorAgentFiles": { + ".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": "428185e3d58f60c9de1efbeb57dd59e4a308d9901a5b8f0d045456a51ec09672", + ".agent/CONTEXT.md": "712bd056cfc8d0254d6c96e7a604d364779d3734d14899111792e7f343e6819b", + ".agent/RESULT-v0.1.1.md": "d5d7077d4977d70a89086801dd8e7d5ae04e16a8e8009e41f3216008b743ac5b", + ".agent/RESULT-v0.2.3.md": "6baf60ed6fa1c94c08f0c427946c552af9f605d42af07f1734edd8528451eda3", + ".agent/RESULT.md": "eef6d73a67a8a7e90cd7b4747debc5976cc51571bc268328634413f698d0e311", + ".agent/TASK-v0.1.1.md": "4e4a81c02cf16ae8a2a6b53da8501de512b6a6387d7d4eaf932833c63ada4aa7", + ".agent/TASK-v0.2.3.md": "46ae8118506c756b97e29424e580843d0557c2f663f069e9ae71c04904fafb18", + ".agent/TASK.md": "7e52739d5de3161aa60004ca8e65b5a5041d62c1b6a0e50c6c72ad8f6b183d61", + ".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", + ".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/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/browser-favicon-RED.json": "036a734efcdff9481b3d10f1b07159ef6ca056d9245cffa469c5b1c8fe87f2bb", + ".agent/evidence-v0.2.3/browser-results.json": "060d18bd74f7179884205117c6c853dc783ec7a818bdfcc8a490ef1a679c77f6", + ".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/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-\uc74c\uc131\u00b7\ud604\uc7a5\uc74c-109\uac1c-versioned-WAV\ub97c-\uc2e4\uc81c-Chrome\uc5d0\uc11c-\ud574\uc2dc\u00b7\ub514\ucf54\ub4dc-\uac80\uc99d\ud55c\ub2e4-desktop/attachments/109-versioned-WAV-integrity-bcde2a64dc46084caae2c89272a63e0ce1b6dc06.json": "cca2cda8988d4f33706bbeee3c7927a691937fffe3e9481f6d9ecdbe90af148a", + ".agent/evidence-v0.2.3/privacy-screening/browser-final/audio-\uc74c\uc131\u00b7\ud604\uc7a5\uc74c-109\uac1c-versioned-WAV\ub97c-\uc2e4\uc81c-Chrome\uc5d0\uc11c-\ud574\uc2dc\u00b7\ub514\ucf54\ub4dc-\uac80\uc99d\ud55c\ub2e4-desktop/browser-audio-integrity.json": "cca2cda8988d4f33706bbeee3c7927a691937fffe3e9481f6d9ecdbe90af148a", + ".agent/evidence-v0.2.3/privacy-screening/browser-final/audio-\uc74c\uc131\u00b7\ud604\uc7a5\uc74c-109\uac1c-versioned-WAV\ub97c-\uc2e4\uc81c-Chrome\uc5d0\uc11c-\ud574\uc2dc\u00b7\ub514\ucf54\ub4dc-\uac80\uc99d\ud55c\ub2e4-mobile/attachments/109-versioned-WAV-integrity-c90c562b8cfd985ad0d76e1c0d918e5063cd2fba.json": "cca2cda8988d4f33706bbeee3c7927a691937fffe3e9481f6d9ecdbe90af148a", + ".agent/evidence-v0.2.3/privacy-screening/browser-final/audio-\uc74c\uc131\u00b7\ud604\uc7a5\uc74c-109\uac1c-versioned-WAV\ub97c-\uc2e4\uc81c-Chrome\uc5d0\uc11c-\ud574\uc2dc\u00b7\ub514\ucf54\ub4dc-\uac80\uc99d\ud55c\ub2e4-mobile/browser-audio-integrity.json": "cca2cda8988d4f33706bbeee3c7927a691937fffe3e9481f6d9ecdbe90af148a", + ".agent/evidence-v0.2.3/privacy-screening/browser-final/game-\uc2e4\uc81c-\uc624\ub514\uc624\ub85c-\ud63c\ud569-\ubaa8\ub4dc-\uc644\uc8fc\u00b7\ub808\uc774\uc544\uc6c3\u00b7\uc811\uadfc\uc131\u00b7\uc678\ubd80-\uc694\uccad-\uc5c6\uc74c-desktop/game.png": "a96e59237e3869125eb6099b15dc55fb5d7bd08af0f10c4d7e1b3d2d1eb2b8e3", + ".agent/evidence-v0.2.3/privacy-screening/browser-final/game-\uc2e4\uc81c-\uc624\ub514\uc624\ub85c-\ud63c\ud569-\ubaa8\ub4dc-\uc644\uc8fc\u00b7\ub808\uc774\uc544\uc6c3\u00b7\uc811\uadfc\uc131\u00b7\uc678\ubd80-\uc694\uccad-\uc5c6\uc74c-desktop/home.png": "911b923e3a68e8deb0063efd88ed43eb1ed6c597c14bd5b9ee71f6b5161b6d7b", + ".agent/evidence-v0.2.3/privacy-screening/browser-final/game-\uc2e4\uc81c-\uc624\ub514\uc624\ub85c-\ud63c\ud569-\ubaa8\ub4dc-\uc644\uc8fc\u00b7\ub808\uc774\uc544\uc6c3\u00b7\uc811\uadfc\uc131\u00b7\uc678\ubd80-\uc694\uccad-\uc5c6\uc74c-desktop/results.png": "51d34a4717075e8b516b2f334d6a30affecea776568052cc9ccb9d7518ecbebf", + ".agent/evidence-v0.2.3/privacy-screening/browser-final/game-\uc2e4\uc81c-\uc624\ub514\uc624\ub85c-\ud63c\ud569-\ubaa8\ub4dc-\uc644\uc8fc\u00b7\ub808\uc774\uc544\uc6c3\u00b7\uc811\uadfc\uc131\u00b7\uc678\ubd80-\uc694\uccad-\uc5c6\uc74c-mobile/game.png": "a3c49b633277b3cd05e607f2bfe851b1b24a82cd16d7c5dcdbf6a75ecdf228d3", + ".agent/evidence-v0.2.3/privacy-screening/browser-final/game-\uc2e4\uc81c-\uc624\ub514\uc624\ub85c-\ud63c\ud569-\ubaa8\ub4dc-\uc644\uc8fc\u00b7\ub808\uc774\uc544\uc6c3\u00b7\uc811\uadfc\uc131\u00b7\uc678\ubd80-\uc694\uccad-\uc5c6\uc74c-mobile/home.png": "a17b7cad00be132583d28f91a938a83f69663365575e1a91d17013e6d7369002", + ".agent/evidence-v0.2.3/privacy-screening/browser-final/game-\uc2e4\uc81c-\uc624\ub514\uc624\ub85c-\ud63c\ud569-\ubaa8\ub4dc-\uc644\uc8fc\u00b7\ub808\uc774\uc544\uc6c3\u00b7\uc811\uadfc\uc131\u00b7\uc678\ubd80-\uc694\uccad-\uc5c6\uc74c-mobile/results.png": "2f973a00b336f2373cac53c79ae56eb7760cf4eeaff019bde949a86b7e92665a", + ".agent/evidence-v0.2.3/privacy-screening/browser-final/review-fixes-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-desktop/normal-results.png": "85e8b066ac128239de765f001c3542e6905018f5deaec7abac4a985006fb03b5", + ".agent/evidence-v0.2.3/privacy-screening/browser-final/review-fixes-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-desktop/progress-1.png": "4d130e9ea43bdfcd7b35e300224d1b54f2875aa8c24d5551c6627b7abd8ce1fc", + ".agent/evidence-v0.2.3/privacy-screening/browser-final/review-fixes-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-desktop/progress-2.png": "4508a9c9e5c7533e9bf8afe6653fb4e1cd111de71141f0fb5404ab4c4b168ac9", + ".agent/evidence-v0.2.3/privacy-screening/browser-final/review-fixes-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-desktop/progress-3.png": "fde834aa2f803612ef9cc7a68cea0c8d5a225289a82321ba0a59063d151e66a0", + ".agent/evidence-v0.2.3/privacy-screening/browser-final/review-fixes-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-mobile/normal-results.png": "2f973a00b336f2373cac53c79ae56eb7760cf4eeaff019bde949a86b7e92665a", + ".agent/evidence-v0.2.3/privacy-screening/browser-final/review-fixes-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-mobile/progress-1.png": "f46672f555b73c705f838e6d1e1c3d25fe2f9ff29ad629903b85c9b129b83b3b", + ".agent/evidence-v0.2.3/privacy-screening/browser-final/review-fixes-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-mobile/progress-2.png": "c39155a3c4d4ae096cb73a892e8e86b40a2d4129c670a7b44d4b24daf8030983", + ".agent/evidence-v0.2.3/privacy-screening/browser-final/review-fixes-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-mobile/progress-3.png": "9d198c8b07ea84e9f3d9ebad03831ffd61b98672a9e637e7ee9e9eead959cf28", + ".agent/evidence-v0.2.3/privacy-screening/browser-final/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-desktop/copy-320-home.png": "872c362713d2013c7021770e3c222458f56ba0ee2ea2d21cf28bd28df8a6d613", + ".agent/evidence-v0.2.3/privacy-screening/browser-final/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-desktop/copy-320-results.png": "fdf263c2c84c64beab026e2899b4b93a7b71b4fcf28b796e5782bb5bc17c2c78", + ".agent/evidence-v0.2.3/privacy-screening/browser-final/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-desktop/copy-360-home.png": "a17b7cad00be132583d28f91a938a83f69663365575e1a91d17013e6d7369002", + ".agent/evidence-v0.2.3/privacy-screening/browser-final/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-desktop/copy-360-results.png": "b838f6bbb4392ef8aa941c66dec5bef6bb27f06acada06b67272be926db9d576", + ".agent/evidence-v0.2.3/privacy-screening/browser-final/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-mobile/copy-320-home.png": "872c362713d2013c7021770e3c222458f56ba0ee2ea2d21cf28bd28df8a6d613", + ".agent/evidence-v0.2.3/privacy-screening/browser-final/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-mobile/copy-320-results.png": "fdf263c2c84c64beab026e2899b4b93a7b71b4fcf28b796e5782bb5bc17c2c78", + ".agent/evidence-v0.2.3/privacy-screening/browser-final/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-mobile/copy-360-home.png": "a17b7cad00be132583d28f91a938a83f69663365575e1a91d17013e6d7369002", + ".agent/evidence-v0.2.3/privacy-screening/browser-final/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-mobile/copy-360-results.png": "b838f6bbb4392ef8aa941c66dec5bef6bb27f06acada06b67272be926db9d576", + ".agent/evidence-v0.2.3/privacy-screening/browser-final/rounds-\uc2dc\uc791-\ub2e8\uacc4\u00b7SNR\u00b73\ubb38\ud56d-\uc644\ub8cc\u2192\ub2e4\uc74c-\ub2e8\uacc4\u00b7\uc7ac\uc0dd-\uc911-\uc885\ub8cc\u00b7\uc751\ub2f5-\ud6c4-\uc885\ub8cc\u00b7\ud648-\ucd08\uae30\ud654-desktop/early-exit.png": "47cf4429695d65ddad8d353aaa14dd5edcea3ef4c09c16b537d6a72c3e256533", + ".agent/evidence-v0.2.3/privacy-screening/browser-final/rounds-\uc2dc\uc791-\ub2e8\uacc4\u00b7SNR\u00b73\ubb38\ud56d-\uc644\ub8cc\u2192\ub2e4\uc74c-\ub2e8\uacc4\u00b7\uc7ac\uc0dd-\uc911-\uc885\ub8cc\u00b7\uc751\ub2f5-\ud6c4-\uc885\ub8cc\u00b7\ud648-\ucd08\uae30\ud654-mobile/early-exit.png": "b838f6bbb4392ef8aa941c66dec5bef6bb27f06acada06b67272be926db9d576", + ".agent/evidence-v0.2.3/privacy-screening/browser-final/ui-\ud55c\uad6d\uc5b4-\uc81c\ubaa9\uc740-\ub2e8\uc5b4-\uc911\uac04\uc5d0\uc11c-\uc904\ubc14\uafc8\ud558\uc9c0-\uc54a\ub294\ub2e4-desktop/heading.png": "56fa16aa968018bcc3252168a0c9e7fd3b30d352cb831b29caed75329c96dac7", + ".agent/evidence-v0.2.3/privacy-screening/browser-final/ui-\ud55c\uad6d\uc5b4-\uc81c\ubaa9\uc740-\ub2e8\uc5b4-\uc911\uac04\uc5d0\uc11c-\uc904\ubc14\uafc8\ud558\uc9c0-\uc54a\ub294\ub2e4-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-\uc74c\uc131\u00b7\ud604\uc7a5\uc74c-109\uac1c-versioned-WAV\ub97c-\uc2e4\uc81c-Chrome\uc5d0\uc11c-\ud574\uc2dc\u00b7\ub514\ucf54\ub4dc-\uac80\uc99d\ud55c\ub2e4-desktop/error-context.md": "958700898c966a2ab19189862cc6bc40bb168b0131c90c381220df9f05426f5f", + ".agent/evidence-v0.2.3/privacy-screening/browser-red/audio-\uc74c\uc131\u00b7\ud604\uc7a5\uc74c-109\uac1c-versioned-WAV\ub97c-\uc2e4\uc81c-Chrome\uc5d0\uc11c-\ud574\uc2dc\u00b7\ub514\ucf54\ub4dc-\uac80\uc99d\ud55c\ub2e4-desktop/trace.zip": "a4d9f4a9cfb1be6becad762bd6b5da9610e023ec1a5f675abe188320603aaae7", + ".agent/evidence-v0.2.3/privacy-screening/browser-red/audio-\uc74c\uc131\u00b7\ud604\uc7a5\uc74c-109\uac1c-versioned-WAV\ub97c-\uc2e4\uc81c-Chrome\uc5d0\uc11c-\ud574\uc2dc\u00b7\ub514\ucf54\ub4dc-\uac80\uc99d\ud55c\ub2e4-mobile/error-context.md": "caa0871351f61738f3a139ab12945f8255c826e0b0c34417c93167eb5b5fb41a", + ".agent/evidence-v0.2.3/privacy-screening/browser-red/audio-\uc74c\uc131\u00b7\ud604\uc7a5\uc74c-109\uac1c-versioned-WAV\ub97c-\uc2e4\uc81c-Chrome\uc5d0\uc11c-\ud574\uc2dc\u00b7\ub514\ucf54\ub4dc-\uac80\uc99d\ud55c\ub2e4-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": "01c8a92fab9f8df7a5f778c5f7e478ce96bcedc33e11a1055bd29154a08b706b", + ".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-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/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": "a1ddbeff130d719d5f0f0fe046ad1f751b3963c3bdc30c2303bb14894c602d34", + ".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-\uc74c\uc131\u00b7\ud604\uc7a5\uc74c-109\uac1c-versioned-WAV\ub97c-\uc2e4\uc81c-Chrome\uc5d0\uc11c-\ud574\uc2dc\u00b7\ub514\ucf54\ub4dc-\uac80\uc99d\ud55c\ub2e4-desktop/attachments/109-versioned-WAV-integrity-7406877c173ee35afff758c9c5f1645f0dc02fa5.json": "3d6defdb7ad3b8d4d7949ffe476f4ebf685e5dcc1ad0868b98bb4e639b6dcadb", + ".agent/evidence-v0.2.3/review-fixes/browser-final/audio-\uc74c\uc131\u00b7\ud604\uc7a5\uc74c-109\uac1c-versioned-WAV\ub97c-\uc2e4\uc81c-Chrome\uc5d0\uc11c-\ud574\uc2dc\u00b7\ub514\ucf54\ub4dc-\uac80\uc99d\ud55c\ub2e4-desktop/browser-audio-integrity.json": "3d6defdb7ad3b8d4d7949ffe476f4ebf685e5dcc1ad0868b98bb4e639b6dcadb", + ".agent/evidence-v0.2.3/review-fixes/browser-final/audio-\uc74c\uc131\u00b7\ud604\uc7a5\uc74c-109\uac1c-versioned-WAV\ub97c-\uc2e4\uc81c-Chrome\uc5d0\uc11c-\ud574\uc2dc\u00b7\ub514\ucf54\ub4dc-\uac80\uc99d\ud55c\ub2e4-mobile/attachments/109-versioned-WAV-integrity-9b9f8223b6524087ac395eb7a96ac0d386fbcb95.json": "3d6defdb7ad3b8d4d7949ffe476f4ebf685e5dcc1ad0868b98bb4e639b6dcadb", + ".agent/evidence-v0.2.3/review-fixes/browser-final/audio-\uc74c\uc131\u00b7\ud604\uc7a5\uc74c-109\uac1c-versioned-WAV\ub97c-\uc2e4\uc81c-Chrome\uc5d0\uc11c-\ud574\uc2dc\u00b7\ub514\ucf54\ub4dc-\uac80\uc99d\ud55c\ub2e4-mobile/browser-audio-integrity.json": "3d6defdb7ad3b8d4d7949ffe476f4ebf685e5dcc1ad0868b98bb4e639b6dcadb", + ".agent/evidence-v0.2.3/review-fixes/browser-final/game-\uc2e4\uc81c-\uc624\ub514\uc624\ub85c-\ud63c\ud569-\ubaa8\ub4dc-\uc644\uc8fc\u00b7\ub808\uc774\uc544\uc6c3\u00b7\uc811\uadfc\uc131\u00b7\uc678\ubd80-\uc694\uccad-\uc5c6\uc74c-desktop/game.png": "17c22581f74ddcd78770ebfbb75f0041298baab336c17cd5b37ff5e29b8b6a7d", + ".agent/evidence-v0.2.3/review-fixes/browser-final/game-\uc2e4\uc81c-\uc624\ub514\uc624\ub85c-\ud63c\ud569-\ubaa8\ub4dc-\uc644\uc8fc\u00b7\ub808\uc774\uc544\uc6c3\u00b7\uc811\uadfc\uc131\u00b7\uc678\ubd80-\uc694\uccad-\uc5c6\uc74c-desktop/home.png": "911b923e3a68e8deb0063efd88ed43eb1ed6c597c14bd5b9ee71f6b5161b6d7b", + ".agent/evidence-v0.2.3/review-fixes/browser-final/game-\uc2e4\uc81c-\uc624\ub514\uc624\ub85c-\ud63c\ud569-\ubaa8\ub4dc-\uc644\uc8fc\u00b7\ub808\uc774\uc544\uc6c3\u00b7\uc811\uadfc\uc131\u00b7\uc678\ubd80-\uc694\uccad-\uc5c6\uc74c-desktop/results.png": "51d34a4717075e8b516b2f334d6a30affecea776568052cc9ccb9d7518ecbebf", + ".agent/evidence-v0.2.3/review-fixes/browser-final/game-\uc2e4\uc81c-\uc624\ub514\uc624\ub85c-\ud63c\ud569-\ubaa8\ub4dc-\uc644\uc8fc\u00b7\ub808\uc774\uc544\uc6c3\u00b7\uc811\uadfc\uc131\u00b7\uc678\ubd80-\uc694\uccad-\uc5c6\uc74c-mobile/game.png": "13291f8ba632d1962611e25c99f73fa3d7732f7b8ef3a9222a5ddd5082576353", + ".agent/evidence-v0.2.3/review-fixes/browser-final/game-\uc2e4\uc81c-\uc624\ub514\uc624\ub85c-\ud63c\ud569-\ubaa8\ub4dc-\uc644\uc8fc\u00b7\ub808\uc774\uc544\uc6c3\u00b7\uc811\uadfc\uc131\u00b7\uc678\ubd80-\uc694\uccad-\uc5c6\uc74c-mobile/home.png": "a17b7cad00be132583d28f91a938a83f69663365575e1a91d17013e6d7369002", + ".agent/evidence-v0.2.3/review-fixes/browser-final/game-\uc2e4\uc81c-\uc624\ub514\uc624\ub85c-\ud63c\ud569-\ubaa8\ub4dc-\uc644\uc8fc\u00b7\ub808\uc774\uc544\uc6c3\u00b7\uc811\uadfc\uc131\u00b7\uc678\ubd80-\uc694\uccad-\uc5c6\uc74c-mobile/results.png": "2f973a00b336f2373cac53c79ae56eb7760cf4eeaff019bde949a86b7e92665a", + ".agent/evidence-v0.2.3/review-fixes/browser-final/review-fixes-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-desktop/normal-results.png": "85e8b066ac128239de765f001c3542e6905018f5deaec7abac4a985006fb03b5", + ".agent/evidence-v0.2.3/review-fixes/browser-final/review-fixes-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-desktop/progress-1.png": "4d130e9ea43bdfcd7b35e300224d1b54f2875aa8c24d5551c6627b7abd8ce1fc", + ".agent/evidence-v0.2.3/review-fixes/browser-final/review-fixes-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-desktop/progress-2.png": "4508a9c9e5c7533e9bf8afe6653fb4e1cd111de71141f0fb5404ab4c4b168ac9", + ".agent/evidence-v0.2.3/review-fixes/browser-final/review-fixes-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-desktop/progress-3.png": "fde834aa2f803612ef9cc7a68cea0c8d5a225289a82321ba0a59063d151e66a0", + ".agent/evidence-v0.2.3/review-fixes/browser-final/review-fixes-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-mobile/normal-results.png": "2f973a00b336f2373cac53c79ae56eb7760cf4eeaff019bde949a86b7e92665a", + ".agent/evidence-v0.2.3/review-fixes/browser-final/review-fixes-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-mobile/progress-1.png": "f46672f555b73c705f838e6d1e1c3d25fe2f9ff29ad629903b85c9b129b83b3b", + ".agent/evidence-v0.2.3/review-fixes/browser-final/review-fixes-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-mobile/progress-2.png": "c39155a3c4d4ae096cb73a892e8e86b40a2d4129c670a7b44d4b24daf8030983", + ".agent/evidence-v0.2.3/review-fixes/browser-final/review-fixes-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-mobile/progress-3.png": "9d198c8b07ea84e9f3d9ebad03831ffd61b98672a9e637e7ee9e9eead959cf28", + ".agent/evidence-v0.2.3/review-fixes/browser-final/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-desktop/copy-320-home.png": "872c362713d2013c7021770e3c222458f56ba0ee2ea2d21cf28bd28df8a6d613", + ".agent/evidence-v0.2.3/review-fixes/browser-final/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-desktop/copy-320-results.png": "fdf263c2c84c64beab026e2899b4b93a7b71b4fcf28b796e5782bb5bc17c2c78", + ".agent/evidence-v0.2.3/review-fixes/browser-final/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-desktop/copy-360-home.png": "a17b7cad00be132583d28f91a938a83f69663365575e1a91d17013e6d7369002", + ".agent/evidence-v0.2.3/review-fixes/browser-final/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-desktop/copy-360-results.png": "b838f6bbb4392ef8aa941c66dec5bef6bb27f06acada06b67272be926db9d576", + ".agent/evidence-v0.2.3/review-fixes/browser-final/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-mobile/copy-320-home.png": "872c362713d2013c7021770e3c222458f56ba0ee2ea2d21cf28bd28df8a6d613", + ".agent/evidence-v0.2.3/review-fixes/browser-final/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-mobile/copy-320-results.png": "fdf263c2c84c64beab026e2899b4b93a7b71b4fcf28b796e5782bb5bc17c2c78", + ".agent/evidence-v0.2.3/review-fixes/browser-final/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-mobile/copy-360-home.png": "a17b7cad00be132583d28f91a938a83f69663365575e1a91d17013e6d7369002", + ".agent/evidence-v0.2.3/review-fixes/browser-final/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-mobile/copy-360-results.png": "b838f6bbb4392ef8aa941c66dec5bef6bb27f06acada06b67272be926db9d576", + ".agent/evidence-v0.2.3/review-fixes/browser-final/rounds-\uc2dc\uc791-\ub2e8\uacc4\u00b7SNR\u00b73\ubb38\ud56d-\uc644\ub8cc\u2192\ub2e4\uc74c-\ub2e8\uacc4\u00b7\uc7ac\uc0dd-\uc911-\uc885\ub8cc\u00b7\uc751\ub2f5-\ud6c4-\uc885\ub8cc\u00b7\ud648-\ucd08\uae30\ud654-desktop/early-exit.png": "47cf4429695d65ddad8d353aaa14dd5edcea3ef4c09c16b537d6a72c3e256533", + ".agent/evidence-v0.2.3/review-fixes/browser-final/rounds-\uc2dc\uc791-\ub2e8\uacc4\u00b7SNR\u00b73\ubb38\ud56d-\uc644\ub8cc\u2192\ub2e4\uc74c-\ub2e8\uacc4\u00b7\uc7ac\uc0dd-\uc911-\uc885\ub8cc\u00b7\uc751\ub2f5-\ud6c4-\uc885\ub8cc\u00b7\ud648-\ucd08\uae30\ud654-mobile/early-exit.png": "b838f6bbb4392ef8aa941c66dec5bef6bb27f06acada06b67272be926db9d576", + ".agent/evidence-v0.2.3/review-fixes/browser-final/ui-\ud55c\uad6d\uc5b4-\uc81c\ubaa9\uc740-\ub2e8\uc5b4-\uc911\uac04\uc5d0\uc11c-\uc904\ubc14\uafc8\ud558\uc9c0-\uc54a\ub294\ub2e4-desktop/heading.png": "56fa16aa968018bcc3252168a0c9e7fd3b30d352cb831b29caed75329c96dac7", + ".agent/evidence-v0.2.3/review-fixes/browser-final/ui-\ud55c\uad6d\uc5b4-\uc81c\ubaa9\uc740-\ub2e8\uc5b4-\uc911\uac04\uc5d0\uc11c-\uc904\ubc14\uafc8\ud558\uc9c0-\uc54a\ub294\ub2e4-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-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-desktop/normal-results.png": "85e8b066ac128239de765f001c3542e6905018f5deaec7abac4a985006fb03b5", + ".agent/evidence-v0.2.3/review-fixes/browser-green/review-fixes-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-desktop/progress-1.png": "4d130e9ea43bdfcd7b35e300224d1b54f2875aa8c24d5551c6627b7abd8ce1fc", + ".agent/evidence-v0.2.3/review-fixes/browser-green/review-fixes-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-desktop/progress-2.png": "4508a9c9e5c7533e9bf8afe6653fb4e1cd111de71141f0fb5404ab4c4b168ac9", + ".agent/evidence-v0.2.3/review-fixes/browser-green/review-fixes-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-desktop/progress-3.png": "fde834aa2f803612ef9cc7a68cea0c8d5a225289a82321ba0a59063d151e66a0", + ".agent/evidence-v0.2.3/review-fixes/browser-green/review-fixes-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-mobile/normal-results.png": "2f973a00b336f2373cac53c79ae56eb7760cf4eeaff019bde949a86b7e92665a", + ".agent/evidence-v0.2.3/review-fixes/browser-green/review-fixes-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-mobile/progress-1.png": "f46672f555b73c705f838e6d1e1c3d25fe2f9ff29ad629903b85c9b129b83b3b", + ".agent/evidence-v0.2.3/review-fixes/browser-green/review-fixes-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-mobile/progress-2.png": "c39155a3c4d4ae096cb73a892e8e86b40a2d4129c670a7b44d4b24daf8030983", + ".agent/evidence-v0.2.3/review-fixes/browser-green/review-fixes-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-mobile/progress-3.png": "9d198c8b07ea84e9f3d9ebad03831ffd61b98672a9e637e7ee9e9eead959cf28", + ".agent/evidence-v0.2.3/review-fixes/browser-green/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-desktop/copy-320-home.png": "872c362713d2013c7021770e3c222458f56ba0ee2ea2d21cf28bd28df8a6d613", + ".agent/evidence-v0.2.3/review-fixes/browser-green/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-desktop/copy-320-results.png": "fdf263c2c84c64beab026e2899b4b93a7b71b4fcf28b796e5782bb5bc17c2c78", + ".agent/evidence-v0.2.3/review-fixes/browser-green/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-desktop/copy-360-home.png": "a17b7cad00be132583d28f91a938a83f69663365575e1a91d17013e6d7369002", + ".agent/evidence-v0.2.3/review-fixes/browser-green/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-desktop/copy-360-results.png": "b838f6bbb4392ef8aa941c66dec5bef6bb27f06acada06b67272be926db9d576", + ".agent/evidence-v0.2.3/review-fixes/browser-green/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-mobile/copy-320-home.png": "872c362713d2013c7021770e3c222458f56ba0ee2ea2d21cf28bd28df8a6d613", + ".agent/evidence-v0.2.3/review-fixes/browser-green/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-mobile/copy-320-results.png": "fdf263c2c84c64beab026e2899b4b93a7b71b4fcf28b796e5782bb5bc17c2c78", + ".agent/evidence-v0.2.3/review-fixes/browser-green/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-mobile/copy-360-home.png": "a17b7cad00be132583d28f91a938a83f69663365575e1a91d17013e6d7369002", + ".agent/evidence-v0.2.3/review-fixes/browser-green/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-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-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-desktop/error-context.md": "fa4b05c6fb8ec98c57ff96e2f0d568aeb7ed027d8763712e767e50e13b25b31c", + ".agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-desktop/normal-results.png": "d3caf1e2d8625d6020e1e9061143b38843fa5698e7316b65a73569cce6026b73", + ".agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-desktop/progress-1.png": "e4f413e3dd1379a913a1d94ec5f084f607a80fe375382eb74cee2ac515aa8590", + ".agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-desktop/progress-2.png": "4d130e9ea43bdfcd7b35e300224d1b54f2875aa8c24d5551c6627b7abd8ce1fc", + ".agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-desktop/progress-3.png": "4508a9c9e5c7533e9bf8afe6653fb4e1cd111de71141f0fb5404ab4c4b168ac9", + ".agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-desktop/trace.zip": "f415eaae383b21d1fd059b3f99b2a1ec962a34facd2959406985e08710bf7a54", + ".agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-mobile/error-context.md": "1a289b42d134b84701446f0bfe2f1e462121412930595617023c1cf93e2e0c40", + ".agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-mobile/normal-results.png": "5eccd53853c27a7c1385f1219b0a9bb7af60070fbdd1469ef3265e40377f3eaa", + ".agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-mobile/progress-1.png": "3597007bfc13a2a9dcb9477ce836b68cccb78f55957f1f460431b67fe90e0f13", + ".agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-mobile/progress-2.png": "f46672f555b73c705f838e6d1e1c3d25fe2f9ff29ad629903b85c9b129b83b3b", + ".agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-mobile/progress-3.png": "c39155a3c4d4ae096cb73a892e8e86b40a2d4129c670a7b44d4b24daf8030983", + ".agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-mobile/trace.zip": "022a0078453d25254bb6bb4af59fbd3696abd5acaaee750343adea3cd9b8aa0d", + ".agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-desktop/copy-320-home.png": "872c362713d2013c7021770e3c222458f56ba0ee2ea2d21cf28bd28df8a6d613", + ".agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-desktop/copy-320-results.png": "b1dae69c908b9911d536d3e41553447bc71908a035f28bbc1f885d1def337b92", + ".agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-desktop/copy-360-home.png": "c04abd43e93e46fde7e1591bde24a3073d584226e93ba5661bac1b5cd78a4695", + ".agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-desktop/copy-360-results.png": "5e2ef07c6c3b7672e0aa82f248a5a245d60a10f86633fab2b2dd45ecff81d7fa", + ".agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-desktop/error-context.md": "d186519b7904a6ef3096e49c18e5e410528df127a7de409e237e7571d8a89f1b", + ".agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-desktop/trace.zip": "6d2abede66a4b0784accca9a0fea36ea71cabb138855e84343a2cb7f64cdab71", + ".agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-mobile/copy-320-home.png": "872c362713d2013c7021770e3c222458f56ba0ee2ea2d21cf28bd28df8a6d613", + ".agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-mobile/copy-320-results.png": "b1dae69c908b9911d536d3e41553447bc71908a035f28bbc1f885d1def337b92", + ".agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-mobile/copy-360-home.png": "c04abd43e93e46fde7e1591bde24a3073d584226e93ba5661bac1b5cd78a4695", + ".agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-mobile/copy-360-results.png": "5e2ef07c6c3b7672e0aa82f248a5a245d60a10f86633fab2b2dd45ecff81d7fa", + ".agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-mobile/error-context.md": "d186519b7904a6ef3096e49c18e5e410528df127a7de409e237e7571d8a89f1b", + ".agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-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" + }, + "mutableAgentFiles": [ + ".agent/AMBIENCE-SOURCES-v0.2.3.json", + ".agent/RESULT-v0.2.3.md", + ".agent/evidence-v0.2.3/privacy-screening/final-asr.json", + ".agent/evidence-v0.2.3/privacy-screening/validation-summary.json" + ], + "immutablePriorAttemptFiles": { + ".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-\uc74c\uc131\u00b7\ud604\uc7a5\uc74c-109\uac1c-versioned-WAV\ub97c-\uc2e4\uc81c-Chrome\uc5d0\uc11c-\ud574\uc2dc\u00b7\ub514\ucf54\ub4dc-\uac80\uc99d\ud55c\ub2e4-desktop/attachments/109-versioned-WAV-integrity-bcde2a64dc46084caae2c89272a63e0ce1b6dc06.json": "cca2cda8988d4f33706bbeee3c7927a691937fffe3e9481f6d9ecdbe90af148a", + ".agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-final/audio-\uc74c\uc131\u00b7\ud604\uc7a5\uc74c-109\uac1c-versioned-WAV\ub97c-\uc2e4\uc81c-Chrome\uc5d0\uc11c-\ud574\uc2dc\u00b7\ub514\ucf54\ub4dc-\uac80\uc99d\ud55c\ub2e4-desktop/browser-audio-integrity.json": "cca2cda8988d4f33706bbeee3c7927a691937fffe3e9481f6d9ecdbe90af148a", + ".agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-final/audio-\uc74c\uc131\u00b7\ud604\uc7a5\uc74c-109\uac1c-versioned-WAV\ub97c-\uc2e4\uc81c-Chrome\uc5d0\uc11c-\ud574\uc2dc\u00b7\ub514\ucf54\ub4dc-\uac80\uc99d\ud55c\ub2e4-mobile/attachments/109-versioned-WAV-integrity-c90c562b8cfd985ad0d76e1c0d918e5063cd2fba.json": "cca2cda8988d4f33706bbeee3c7927a691937fffe3e9481f6d9ecdbe90af148a", + ".agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-final/audio-\uc74c\uc131\u00b7\ud604\uc7a5\uc74c-109\uac1c-versioned-WAV\ub97c-\uc2e4\uc81c-Chrome\uc5d0\uc11c-\ud574\uc2dc\u00b7\ub514\ucf54\ub4dc-\uac80\uc99d\ud55c\ub2e4-mobile/browser-audio-integrity.json": "cca2cda8988d4f33706bbeee3c7927a691937fffe3e9481f6d9ecdbe90af148a", + ".agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-final/game-\uc2e4\uc81c-\uc624\ub514\uc624\ub85c-\ud63c\ud569-\ubaa8\ub4dc-\uc644\uc8fc\u00b7\ub808\uc774\uc544\uc6c3\u00b7\uc811\uadfc\uc131\u00b7\uc678\ubd80-\uc694\uccad-\uc5c6\uc74c-desktop/game.png": "a96e59237e3869125eb6099b15dc55fb5d7bd08af0f10c4d7e1b3d2d1eb2b8e3", + ".agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-final/game-\uc2e4\uc81c-\uc624\ub514\uc624\ub85c-\ud63c\ud569-\ubaa8\ub4dc-\uc644\uc8fc\u00b7\ub808\uc774\uc544\uc6c3\u00b7\uc811\uadfc\uc131\u00b7\uc678\ubd80-\uc694\uccad-\uc5c6\uc74c-desktop/home.png": "911b923e3a68e8deb0063efd88ed43eb1ed6c597c14bd5b9ee71f6b5161b6d7b", + ".agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-final/game-\uc2e4\uc81c-\uc624\ub514\uc624\ub85c-\ud63c\ud569-\ubaa8\ub4dc-\uc644\uc8fc\u00b7\ub808\uc774\uc544\uc6c3\u00b7\uc811\uadfc\uc131\u00b7\uc678\ubd80-\uc694\uccad-\uc5c6\uc74c-desktop/results.png": "51d34a4717075e8b516b2f334d6a30affecea776568052cc9ccb9d7518ecbebf", + ".agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-final/game-\uc2e4\uc81c-\uc624\ub514\uc624\ub85c-\ud63c\ud569-\ubaa8\ub4dc-\uc644\uc8fc\u00b7\ub808\uc774\uc544\uc6c3\u00b7\uc811\uadfc\uc131\u00b7\uc678\ubd80-\uc694\uccad-\uc5c6\uc74c-mobile/game.png": "a3c49b633277b3cd05e607f2bfe851b1b24a82cd16d7c5dcdbf6a75ecdf228d3", + ".agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-final/game-\uc2e4\uc81c-\uc624\ub514\uc624\ub85c-\ud63c\ud569-\ubaa8\ub4dc-\uc644\uc8fc\u00b7\ub808\uc774\uc544\uc6c3\u00b7\uc811\uadfc\uc131\u00b7\uc678\ubd80-\uc694\uccad-\uc5c6\uc74c-mobile/home.png": "a17b7cad00be132583d28f91a938a83f69663365575e1a91d17013e6d7369002", + ".agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-final/game-\uc2e4\uc81c-\uc624\ub514\uc624\ub85c-\ud63c\ud569-\ubaa8\ub4dc-\uc644\uc8fc\u00b7\ub808\uc774\uc544\uc6c3\u00b7\uc811\uadfc\uc131\u00b7\uc678\ubd80-\uc694\uccad-\uc5c6\uc74c-mobile/results.png": "2f973a00b336f2373cac53c79ae56eb7760cf4eeaff019bde949a86b7e92665a", + ".agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-final/review-fixes-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-desktop/normal-results.png": "85e8b066ac128239de765f001c3542e6905018f5deaec7abac4a985006fb03b5", + ".agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-final/review-fixes-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-desktop/progress-1.png": "4d130e9ea43bdfcd7b35e300224d1b54f2875aa8c24d5551c6627b7abd8ce1fc", + ".agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-final/review-fixes-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-desktop/progress-2.png": "4508a9c9e5c7533e9bf8afe6653fb4e1cd111de71141f0fb5404ab4c4b168ac9", + ".agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-final/review-fixes-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-desktop/progress-3.png": "fde834aa2f803612ef9cc7a68cea0c8d5a225289a82321ba0a59063d151e66a0", + ".agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-final/review-fixes-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-mobile/normal-results.png": "2f973a00b336f2373cac53c79ae56eb7760cf4eeaff019bde949a86b7e92665a", + ".agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-final/review-fixes-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-mobile/progress-1.png": "f46672f555b73c705f838e6d1e1c3d25fe2f9ff29ad629903b85c9b129b83b3b", + ".agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-final/review-fixes-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-mobile/progress-2.png": "c39155a3c4d4ae096cb73a892e8e86b40a2d4129c670a7b44d4b24daf8030983", + ".agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-final/review-fixes-\ub9ac\ubdf0-\uc2e4\uc81c-\uc9c4\ud589-\ub9c9\ub300\ub294-\ud604\uc7ac-\ubb38\ud56d\uc758-1-3\u00b72-3\u00b73-3\uc744-\ucc44\uc6b4\ub2e4-mobile/progress-3.png": "9d198c8b07ea84e9f3d9ebad03831ffd61b98672a9e637e7ee9e9eead959cf28", + ".agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-final/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-desktop/copy-320-home.png": "872c362713d2013c7021770e3c222458f56ba0ee2ea2d21cf28bd28df8a6d613", + ".agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-final/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-desktop/copy-320-results.png": "fdf263c2c84c64beab026e2899b4b93a7b71b4fcf28b796e5782bb5bc17c2c78", + ".agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-final/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-desktop/copy-360-home.png": "a17b7cad00be132583d28f91a938a83f69663365575e1a91d17013e6d7369002", + ".agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-final/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-desktop/copy-360-results.png": "b838f6bbb4392ef8aa941c66dec5bef6bb27f06acada06b67272be926db9d576", + ".agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-final/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-mobile/copy-320-home.png": "872c362713d2013c7021770e3c222458f56ba0ee2ea2d21cf28bd28df8a6d613", + ".agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-final/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-mobile/copy-320-results.png": "fdf263c2c84c64beab026e2899b4b93a7b71b4fcf28b796e5782bb5bc17c2c78", + ".agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-final/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-mobile/copy-360-home.png": "a17b7cad00be132583d28f91a938a83f69663365575e1a91d17013e6d7369002", + ".agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-final/review-fixes-\ub9ac\ubdf0-\ud55c\uad6d\uc5b4-\ubaa8\ub4dc\u00b7\uacb0\uacfc-\uc5b4\uc808\uc740-320px\uc640-360px\uc5d0\uc11c\ub3c4-\uac08\ub77c\uc9c0\uac70\ub098-\ub118\uce58\uc9c0-\uc54a\ub294\ub2e4-mobile/copy-360-results.png": "b838f6bbb4392ef8aa941c66dec5bef6bb27f06acada06b67272be926db9d576", + ".agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-final/rounds-\uc2dc\uc791-\ub2e8\uacc4\u00b7SNR\u00b73\ubb38\ud56d-\uc644\ub8cc\u2192\ub2e4\uc74c-\ub2e8\uacc4\u00b7\uc7ac\uc0dd-\uc911-\uc885\ub8cc\u00b7\uc751\ub2f5-\ud6c4-\uc885\ub8cc\u00b7\ud648-\ucd08\uae30\ud654-desktop/early-exit.png": "47cf4429695d65ddad8d353aaa14dd5edcea3ef4c09c16b537d6a72c3e256533", + ".agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-final/rounds-\uc2dc\uc791-\ub2e8\uacc4\u00b7SNR\u00b73\ubb38\ud56d-\uc644\ub8cc\u2192\ub2e4\uc74c-\ub2e8\uacc4\u00b7\uc7ac\uc0dd-\uc911-\uc885\ub8cc\u00b7\uc751\ub2f5-\ud6c4-\uc885\ub8cc\u00b7\ud648-\ucd08\uae30\ud654-mobile/early-exit.png": "b838f6bbb4392ef8aa941c66dec5bef6bb27f06acada06b67272be926db9d576", + ".agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-final/ui-\ud55c\uad6d\uc5b4-\uc81c\ubaa9\uc740-\ub2e8\uc5b4-\uc911\uac04\uc5d0\uc11c-\uc904\ubc14\uafc8\ud558\uc9c0-\uc54a\ub294\ub2e4-desktop/heading.png": "56fa16aa968018bcc3252168a0c9e7fd3b30d352cb831b29caed75329c96dac7", + ".agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-final/ui-\ud55c\uad6d\uc5b4-\uc81c\ubaa9\uc740-\ub2e8\uc5b4-\uc911\uac04\uc5d0\uc11c-\uc904\ubc14\uafc8\ud558\uc9c0-\uc54a\ub294\ub2e4-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-\uc74c\uc131\u00b7\ud604\uc7a5\uc74c-109\uac1c-versioned-WAV\ub97c-\uc2e4\uc81c-Chrome\uc5d0\uc11c-\ud574\uc2dc\u00b7\ub514\ucf54\ub4dc-\uac80\uc99d\ud55c\ub2e4-desktop/error-context.md": "958700898c966a2ab19189862cc6bc40bb168b0131c90c381220df9f05426f5f", + ".agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-red/audio-\uc74c\uc131\u00b7\ud604\uc7a5\uc74c-109\uac1c-versioned-WAV\ub97c-\uc2e4\uc81c-Chrome\uc5d0\uc11c-\ud574\uc2dc\u00b7\ub514\ucf54\ub4dc-\uac80\uc99d\ud55c\ub2e4-desktop/trace.zip": "a4d9f4a9cfb1be6becad762bd6b5da9610e023ec1a5f675abe188320603aaae7", + ".agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-red/audio-\uc74c\uc131\u00b7\ud604\uc7a5\uc74c-109\uac1c-versioned-WAV\ub97c-\uc2e4\uc81c-Chrome\uc5d0\uc11c-\ud574\uc2dc\u00b7\ub514\ucf54\ub4dc-\uac80\uc99d\ud55c\ub2e4-mobile/error-context.md": "caa0871351f61738f3a139ab12945f8255c826e0b0c34417c93167eb5b5fb41a", + ".agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/browser-red/audio-\uc74c\uc131\u00b7\ud604\uc7a5\uc74c-109\uac1c-versioned-WAV\ub97c-\uc2e4\uc81c-Chrome\uc5d0\uc11c-\ud574\uc2dc\u00b7\ub514\ucf54\ub4dc-\uac80\uc99d\ud55c\ub2e4-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" + }, + "priorAttemptDirectory": ".agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180" +} diff --git a/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/before-audio-provenance.md b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/before-audio-provenance.md new file mode 100644 index 0000000..608152f --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/before-audio-provenance.md @@ -0,0 +1,212 @@ +# Find-Word v0.2.3 오디오 출처와 재현 + +## 포함 자산과 생성 설정 + +| 대상 | 생성 방식 | 원문/설정 | 배포 방식 | +| --- | --- | --- | --- | +| `public/audio/intro.wav` | Microsoft Edge online TTS neural 음성 | `src/content.ts`의 INTRO | 24kHz mono PCM16 WAV | +| 목표 음성 100개 | 같은 provider·voice | 10 패턴 × 10 단어, `renderSentence` | 같은 WAV | +| 8개 배경 환경 | 공개 라이선스 실제 현장 녹음 | `public/ambience/manifest.json` | 12초·24kHz mono PCM16 WAV | +| 화면 파형·S 캐릭터 | 직접 작성한 CSS | `App.tsx`, `styles.css` | CSS | + +voice는 **`ko-KR-HyunsuMultilingualNeural`**, rate는 **`-6%`**, pitch는 +**`-4Hz`**, 생성 클라이언트는 **edge-tts 7.3.1**이다. 직접 작성한 한국어 +문장을 온라인 provider에 보내 MP3 응답을 받은 뒤 FFmpeg로 PCM을 만든다. +음성 복제나 사람의 녹음 샘플을 사용하지 않는다. 웃음은 INTRO의 ‘으하하하~~’를 +같은 voice로 합성한다. 앱은 저장한 WAV만 같은 출처에서 가져오며 런타임 외부 +TTS/API, speechSynthesis, 인증정보가 필요하지 않다. + +청취용 샘플은 [intro.wav](../public/audio/intro.wav)와 +[luck-apple.wav](../public/audio/luck-apple.wav)이다. 101개 전체 생성 결과의 +크기·길이 범위와 독립 검증은 [v0.1.1 RESULT](../.agent/RESULT-v0.1.1.md)에 기록한다. +`public/audio/manifest.json`은 version, provider, voice, rate, pitch, sampleRate, +생성 시각, 실측 edge-tts/FFmpeg 버전, 파일별 원문·SHA-256·bytes·duration·RMS·peak를 담는다. + +## 설치와 생성 + +생성 환경은 Linux (기존 디렉터리 교체에 `renameat2(RENAME_EXCHANGE)` 필요), +Python 3.11 이상, FFmpeg, Node.js 22.22.2 이상이다. **이미 포함된 WAV를 +빌드·실행할 때는 Python/FFmpeg/provider 연결이 필요 없다.** 생성기 계약 테스트는 +Python과 FFmpeg를 사용하되 네트워크 없이 동작한다. + +```bash +python3 -m venv .venv-audio +.venv-audio/bin/python -m pip install -r requirements-audio.txt +.venv-audio/bin/python -m pip check +npm run audio:generate +npm test +npm run build +``` + +`audio:generate`는 `.venv-audio/bin/python scripts/generate_audio.py`로 고정되어 +전역 Python으로 대체되지 않는다. `requirements-audio.txt`는 edge-tts==7.3.1과 +전이 의존성 버전을 고정한다. 생성기는 실제 설치 버전을 조회하고 7.3.1이 아니면 +외부 요청 전에 실패한다. `.venv-audio/`는 Git과 배포물에서 제외한다. + +원문을 Node type stripping으로 앱 데이터에서 읽고, 101개 모두 같은 파일시스템의 +`public/.audio-stage-*/`에 순차 생성한다. 각 provider 요청은 최대 60초, 최대 +3회 시도이며 실패 사이 1초/2초를 기다린다. FFmpeg도 60초 제한이 있다. +재시도 전 불완전 MP3를 삭제하고 변환·검증 실패는 즉시 중단한다. 로그에는 +파일명·시도 횟수만 남기고 provider stderr/응답·쿠키·인증 헤더를 저장하지 않는다. + +전체 WAV와 manifest를 검증한 뒤 기존 `public/audio`와 완성 디렉터리를 단일 +원자 교환으로 바꾼다. 실패·Ctrl-C는 기존 디렉터리의 바이트를 그대로 보존한다. +원자 교환을 지원하지 않는 파일시스템에서는 실패하며 비원자 방식으로 우회하지 않는다. +성공 후 이전 자산과 임시 MP3를 정리한다. 강제 종료(SIGKILL)·전원 손실 때는 +숨김 staging 폴더가 남을 수 있으나 공개 디렉터리는 교환 전 또는 후의 전체 집합이다. +이는 전원 손실 시 저장장치 내구성 보장을 뜻하지 않는다. + +고정 클라이언트와 설정으로 **생성 절차**를 재현할 수 있다. 원격 모델·서비스 버전은 +고정할 수 없어 재생성 WAV의 바이트 동일성은 보장하지 않는다. 새 실행의 manifest를 +검토해야 한다. 빌드는 이미 생성한 WAV의 해시를 보존하고 101개 모두 포함됐는지 확인한다. + +## 레벨 처리와 검증 + +MP3를 24kHz mono signed 16-bit little-endian PCM으로 디코드한다. 파일 전체에 +동일한 선형 gain을 적용해 RMS 0.10을 목표로 하며 증폭은 최대 2배, peak는 +0.89로 제한한다. 동적 압축·노이즈 게이트·침묵 제거·시간 변형은 하지 않는다. +원래 신호의 자음과 억양을 보존하면서 파일 간 레벨 차이와 피크를 완화한다. + +생성기와 독립 자산 테스트는 101개 파일의 원문·집합·SHA-256·bytes·duration, +24kHz mono PCM16, 1–20초 길이, RMS > 100/32768, full-scale 미도달, +총 48MiB 미만을 검사한다. 기존 음성 단독 검사는 RMS 0.03과 +6dB에서 peak < 0.8을 +요구한다. 0.2.3의 사용자 최대 +12dB 혼합은 세 경로 공통 감쇠로 별도 검증한다. 앱은 Web Audio에서 배경·음성을 RMS 정규화한 뒤 상대 SNR을 적용한다. +물리적 음압이나 주파수별 청감을 보정한 값은 아니다. + +## 도구 라이선스와 서비스 조건 + +- [edge-tts 7.3.1 LICENSE](https://github.com/rany2/edge-tts/blob/7.3.1/LICENSE): + 대부분의 코드에 LGPLv3, `srt_composer.py`에만 MIT가 적용된다. + [공식 프로젝트](https://github.com/rany2/edge-tts)는 Microsoft Edge의 온라인 + TTS를 이용하는 클라이언트다. 클라이언트 라이선스가 provider 사용·음성 출력의 + 재배포 권한을 대신 부여하지 않는다. 이 프로젝트는 클라이언트/모델을 번들하지 않는다. +- [FFmpeg 공식 라이선스](https://ffmpeg.org/legal.html): 빌드 옵션에 따라 LGPL/GPL이 + 적용된다. 실제 사용 버전은 manifest에 남기며 실행 파일은 배포하지 않는다. +- [Microsoft Services Agreement](https://www.microsoft.com/en-us/servicesagreement)의 + AI Services 등 해당 서비스 조건은 도구의 오픈소스 라이선스와 별개다. + 위 문서 §13(s)(vi)는 출력의 권리·사용 가능성을 이용자가 판단하도록 설명한다. + API 키 없이 호출된다는 사실이 상업 사용·재배포의 포괄적 허락이나 SLA를 뜻하지 않는다. + 배포자는 자신의 이용 상황에 적용되는 최신 조건을 확인해야 한다. +- 프로젝트는 생성 음성 자체에 **독점 권리를 주장하지 않는다**. [LICENSE](../LICENSE)의 + 소스·문서 권리 유보와 provider 및 제3자의 권리는 구분한다. 런타임 React, + ReactDOM, scheduler의 MIT 전문은 [THIRD_PARTY_NOTICES.md](../THIRD_PARTY_NOTICES.md)에 있다. + +문서 확인일: 2026-10-14 UTC. provider의 음성 목록, rate/pitch 지원, 가용성, +접근 제한, 조건은 바뀔 수 있다. 온라인 생성이 중단되어도 포함된 WAV의 빌드·재생에는 +영향이 없다. 실패 시 다른 voice로 자동 대체하지 않는다. + +## 청감과 평가의 한계 + +자동 검증은 PCM 신호·무결성·재생 흐름을 확인한다. 한국어 발음, 유사 자모의 +구분, 웃음의 자연스러움과 실제 사용자의 난이도는 청취 평가가 필요하다. +대표 샘플과 게임 내 소음 혼합 상태를 직접 들어 인수 판단한다. 배경은 실제 현장 녹음의 짧은 구간이다. 이 게임의 수치는 임상 검증·치료·청력 판정용이 아니다. + + +## v0.2.3 현장 녹음 파생본 + +원본 선정 계약은 [.agent/AMBIENCE-SOURCES-v0.2.3.json](../.agent/AMBIENCE-SOURCES-v0.2.3.json), +배포 바이트의 출처·직접 URL·저작자·라이선스·변환·SHA-256·bytes·duration·RMS·peak는 +[manifest](../public/ambience/manifest.json), 정확한 attribution과 변경 고지는 +[AMBIENCE_NOTICES](../public/ambience/AMBIENCE_NOTICES.md)에 있다. 이 고지는 dist에도 포함되고 UI에서 링크한다. +여덟 원본 모두 서로 다른 현장 녹음이며 NC/ND 자산을 사용하지 않는다. 원본은 저장소/빌드에 포함하지 않는다. + +| 환경 | 저작자 | 라이선스 | 원본 구간(초) | +| --- | --- | --- | --- | +| 길거리 | cori (Cori Samuel) | PD-author | 35–47 | +| 쇼핑몰 | thore (Thore) | PD-author | 36–48 | +| 극장 | ElevatorFan2020 | CC0 1.0 | 45–57 | +| 백화점 | icmusic | CC0 1.0 | 90–102 | +| 시장 | Marie Flutre | CC BY-SA 4.0 | 60–72 | +| 지하철 | PascalHD | CC BY 4.0 | 65–77 | +| 카페 | Marble Toast | CC0 1.0 | 180–192 | +| 비 오는 거리 | Extemporalist | CC0 1.0 | 180–192 | + +Commons primary 페이지/API와 Freesound primary 페이지의 라이선스 근거를 evidence에 보존한다. +Freesound 두 원본은 지정된 preview MP3이다. 프로젝트의 비공개 라이선스를 제3자 녹음에 +적용하지 않으며, 시장 파생 WAV는 **CC BY-SA 4.0**으로 계속 공개·수정·재배포할 수 있다. +지하철은 **CC BY 4.0**의 PascalHD credit·변경 고지·라이선스 링크를 유지한다. + +재현: 검증한 원본 8개를 `/tmp/findword-ambience-sources`에 놓고 +`python3 scripts/ambience_audio.py`를 실행한다. 계획의 파일별 `selectedSegmentStartSeconds`에서 12초를 선택하고, +FFmpeg로 mono 24kHz float PCM 디코드 후 양끝 50ms 선형 fade, RMS 목표 .08, +최대 증폭 4배/peak .85 중 가장 작은 선형 gain을 적용한다. 마지막은 표준 44-byte +WAV 헤더의 PCM16이다. 시간 변형·절차적 합성·원본 음성 대체는 없다. +원본 SHA-256과 실측 FFmpeg 버전을 함께 기록하므로 같은 원본/도구로 재현 가능하다. + +런타임은 음성/배경 각각 RMS .03 후 상대 gain `10^(dB/20)`을 적용한다. −12~+12 dB +범위에서도 세 경로의 최악 피크 합을 공통 감쇠하여 최대 .8로 제한한다. 양끝 fade가 +있는 배경을 loop하고 목표 끝에서 정리한다. 전체 버퍼 RMS 기준이며 짧은 시간창별 +SNR이나 실제 음압을 보증하지 않는다. 원본 녹음의 우연한 사람 말소리는 환경의 일부다. +자동 검사로 음악·개인 대화의 완전한 부재를 인증할 수 없으므로 사람의 최종 청취 검토가 필요하다. + +기존 neural WAV 101개의 원문·해시는 v0.1.1 그대로다. 음성 manifest의 version은 +배포 버전 0.2.3, `generatedForVersion`은 0.1.1이며 원래 생성 시각·도구 정보는 보존한다. + + +### 리뷰 후 출처 고정과 원자 발행 + +승인 계획의 `expectedSourceSha256`와 `sourceBytes`는 불변 입력이다. 생성기는 로컬 경로나 +현재 파일에서 이 승인값을 새로 기록하지 않으며, 여덟 원본의 해시·크기를 **첫 변환 전**에 모두 검사한다. +한 원본이라도 다르거나 누락되면 실패한다. `sourceVerification`은 검증 상태·일자·방법·보존된 증거를 가리킨다. +임시 경로를 담던 `verifiedLocalSource` 필드는 제거했다. + +`directMediaDurationSeconds`는 **directUrl에서 받은 바로 그 바이트**의 ffprobe `format.duration`이다. +Freesound 항목은 preview MP3의 길이이며 primary 페이지 원본 길이 또는 반올림한 표시 길이가 아니다. +배포 manifest의 `duration`과 `conversion.durationSeconds`는 파생 WAV의 길이(12초), +`selectedSegmentStartSeconds`는 파일별 불변 승인 시작점이며 생성기는 별도 hardcoded map 없이 이 값을 읽는다. +`conversion.startSeconds`는 같은 값이어야 한다. 시작점은 유한한 0 이상 수이고, 시작점+12초가 +`directMediaDurationSeconds` 이하여야 한다. 누락·음수·NaN·Infinity·문자열·bool·범위 초과는 첫 변환 전에 거부한다. 원본 전체 디코드와 실제 수치는 +[보존된 source-integrity.json](../.agent/evidence-v0.2.3/source-integrity.json)에 있다. + +생성기는 출력 폴더와 같은 부모의 `.ambience-stage-*/ready`에서 8 WAV·manifest·`AMBIENCE_NOTICES.md`를 +완성한다. 정확한 파일 집합, 고유 해시, 원본 계획, PCM 형식·길이·fade·RMS·peak, +항목별 저작자/primary URL/direct URL/라이선스 링크/outputLicense/변경 설명을 다시 검사한다. +존재하는 symlink 및 dangling symlink 출력을 모두 거부한다. Linux `renameat2(RENAME_EXCHANGE)` 한 번이 교체의 +commit 지점이며, 최초 생성은 같은 파일시스템의 rename 한 번이다. 지원하지 않는 환경에서는 실패한다. +파일별 overlay를 하지 않으므로 오래된 파일이 남지 않고 고지도 음원과 같은 디렉터리로 교체된다. + +commit 전 변환·쓰기·검증·교환 실패 또는 중단은 이전 디렉터리를 보존한다. syscall 이후에는 완성된 새 디렉터리가 +공개된 상태다. SIGKILL 등 강제 종료는 숨은 임시 디렉터리를 남길 수 있지만 부분 배포는 만들지 않는다. +전원 손실에 대한 디스크 내구성이나 여러 HTTP 요청에 걸친 snapshot 격리를 주장하지 않는다. +앞선 독립 리뷰에서는 기존 109 WAV를 재생성하지 않았다. 이후 아래 privacy refinement에서 +전체 현장음 bundle을 원자 재생성했으며 mall/market/cafe 3개만 바이트가 바뀌었다. +**사람의 현장음 청취 인수는 미실행**이다. + + +### 최종 privacy excerpt refinement + +mall 20–32 → **36–48초**, market 30–42 → **60–72초**, cafe 120–132 → **180–192초**로 +선택을 바꾸고 다른 다섯 시작점은 유지했다. 승인 원본 해시·bytes·직접 미디어 길이가 모두 일치한 뒤 +하드닝된 생성기로 8 WAV·manifest·notice 전체를 staging/검증/원자 교환했다. +101개 voice와 다섯 unchanged ambience WAV는 이전 SHA-256 그대로다. +[생성 실측 기록](../.agent/evidence-v0.2.3/privacy-screening/regeneration.json)에 최종 해시·RMS·peak·변환이 있다. + +일부 Ogg 구간은 FFmpeg timestamp/seek 때문에 12초보다 몇 프레임 짧게 출력된다. +짧은 결과일 때만 처음부터 디코드한 24kHz PCM의 `round(start × 24000)`부터 정확한 288,000개 +sample을 선택하고 출력 PTS를 sample 수로 재설정한다. silent padding이나 time stretching은 없다. +정말 원본이 짧으면 여전히 실패한다. `conversion.seekMethod`가 실제 경로를 기록하며 +나머지 다섯 WAV는 기존 경로로 재현된다. 두 실패 시도와 RED/GREEN도 새 evidence에 보존했다. + +Neo가 제공한 [이전 후보 scan 원문](../.agent/evidence-v0.2.3/privacy-screening/candidate-scan-original.json)과 +[이전 파생본 ASR 원문](../.agent/evidence-v0.2.3/privacy-screening/prior-derivatives-asr-original.json)을 바이트 그대로 보존했다. +[별도 provenance](../.agent/evidence-v0.2.3/privacy-screening/earlier-asr-provenance.json)는 입력 경로·SHA-256·출처 맥락과 +raw JSON에 도구 설정/입력 해시가 없다는 한계를 설명한다. 후보 text와 language는 휴리스틱 추정으로, +**충실한 대화 전사나 화자 식별이라고 주장하지 않는다.** + +최종 8 WAV는 로컬 faster-whisper **1.2.1 / tiny multilingual**로 다시 검사했다. +[final-asr.json](../.agent/evidence-v0.2.3/privacy-screening/final-asr.json)은 정확한 입력 WAV 해시, +모델 revision/파일 해시, 라이브러리 버전, 전체 방법/설정, 모든 반환 segment와 언어 확률을 기록한다. +**Tiny-model ASR은 screening signal일 뿐, 사람의 청취 인수 또는 법적/개인정보 clearance가 아니다.** +빈 결과는 말소리·음악·개인 대화가 없음을 증명하지 않으며, 출력된 text도 환각일 수 있다. +사람이 최종 구간을 직접 듣고 적절성을 판단하는 인수는 수행하지 않았다. + + +이번 실행에서 **zero-segment acceptance는 미달**이다. 최종 기록은 CPU int8, beam size 5, +자동 언어 탐지, 기본 Silero VAD 활성화 및 기본 decoding threshold를 사용했다. +mall은 0개, market은 3개, cafe는 1개 segment를 반환했고 나머지 다섯 WAV는 0개다. +Neo의 원래 decoder/VAD 설정이 raw JSON에 없어 같은 방법의 재현이라고 주장하지 않는다. +별도의 [VAD 미사용 결과](../.agent/evidence-v0.2.3/privacy-screening/no-vad-asr.json)에서는 +세 변경 구간 모두 candidate text가 나왔다. 두 방법의 결과를 그대로 보존하며, +ASR이 비어 있도록 threshold를 조절하거나 반환 segment를 삭제하지 않았다. +따라서 새 zero-segment unit acceptance는 실패 상태로 유지한다. 정확한 이전 ASR 설정 확인과 +최종 파생 WAV의 추가 검토가 필요하다. 이 상태를 privacy approval이나 완료로 표시하지 않는다. diff --git a/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/before-changelog.md b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/before-changelog.md new file mode 100644 index 0000000..0648e1e --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/before-changelog.md @@ -0,0 +1,76 @@ +# Find-Word 변경 이력 + +## 0.2.3 — 2026-10-14 (로컬 구현, 배포 미실행) + +- 라운드를 정확히 3문항으로 변경하고 한 단계의 난이도를 유지한다. 시작 단계 1~5 선택, + 정상 완료 후 다음 단계 새 라운드, 5단계 재도전을 제공한다. 혼합 모드는 선택/입력을 모두 포함한다. +- SNR 직접 제어: −12~+12 dB, 1 dB 간격, 범위/NaN 정규화. 재생 중 변경은 다음 청취부터 적용, + 이후 문항/라운드에 유지하고 홈 복귀 시 단계 기본값으로 초기화한다. 양/0/음수의 의미를 설명한다. +- 중도 종료는 fetch·Web Audio·타이머를 즉시 취소하고 응답/정답 수를 보여 준 뒤 홈으로 연결한다. + 무응답을 오답으로 세지 않고 지연 콜백·중복 답변을 차단한다. +- 절차적 배경 합성을 제거하고 실제 현장 녹음 8개를 same-origin WAV로 번들한다. + 각 12초·24kHz mono PCM16·50ms fade·안전 선형 정규화·고유 SHA-256, 원본은 번들하지 않는다. +- PD/CC0/CC BY 4.0/CC BY-SA 4.0 원본을 추적하는 machine-readable manifest와 브라우저 배포 고지. + 시장 파생본의 ShareAlike와 지하철 credit/변경 고지 유지. 원본/다운로드 URL·저작자·변환·해시·실측값 기록. +- 녹음을 fetch/decode/loop하며 RMS .03 정규화 후 상대 gain을 적용한다. 공통 peak 감쇠로 SNR을 + 유지하면서 clipping headroom을 확보한다. 404/decode/timeout/abort는 재시도 가능한 한국어 안내를 제공한다. +- 회귀 수정: 세 문항 표본에 맞게 전체 콘텐츠 도달성 검사 확대; 콘텐츠의 Node 직접 import 경로 보존; + 재생 중 SNR 변경이 실제 청취 이력을 덮어쓰지 않도록 결과에 청취 시작값 기록. +- 추가 회귀 수정: 3문항에서도 순환 환경이 여덟 장소에 도달하도록 섞고, 결과의 잘못된 플레이 방법 앵커를 제거한다. + 세 문항의 문항별 보너스 상한(20점)과 라운드 합계 상한(30점)을 안내하고 새 단계/SNR 컨트롤의 44px 터치 영역을 보장한다. + 개발/preview에서 HTML Accept가 있는 누락 WAV도 SPA fallback 대신 404로 응답한다. + 모바일 시작 단계 선택값의 잘림을 막도록 중복 SNR을 별도 제어에 모았다. + 내장 SVG favicon으로 Chrome의 기본 favicon.ico 404 콘솔 오류를 제거한다. +- 기존 10 mechanic·100문장·101 neural WAV, 채점·점수·IME·재청취·음량·접근성·개인정보 미수집을 보존한다. +- package/lock/HTML/UI/manifest/문서를 0.2.3으로 정렬하고 음원 query 버전을 갱신한다. + `Designed by OZ at Heat-T Medical Inc.`와 v0.1/v0.1.1 역사 evidence는 보존한다. +- strict vertical-slice TDD RED/GREEN, Python 변환 계약, 빌드 자산/notice 검증, + sandboxed system Chrome desktop/mobile의 실제 WAV decode/playback·스크린샷·axe·네트워크 검사를 수행한다. + 정확한 실행 결과와 추가 회귀는 `.agent/RESULT-v0.2.3.md`에 기록한다. +- Nginx 현장음 404와 원자 배포/rollback 인계 문서를 갱신한다. commit/push/merge/tag/배포는 Neo 인수 이후 별도 작업이다. + +### v0.2.3 독립 리뷰 수정 + +- 진행 막대를 현재 문항 1/3·2/3·3/3으로 정정하고 접근성 값 및 Chrome 실제 채움 픽셀을 검사한다. +- 보너스 문구를 문항별 최대 20점 / 라운드 합계 0+10+20=30점으로 정정한다. 1단계 만점 330점과 함께 검증한다. +- 무응답 정답률은 `— / 응답 없음`, 응답 없는 단계는 `미진행`; 중도 종료와 현재 단계 완료 제목을 구분한다. +- 320px·360px에서 모드 설명과 결과의 한국어 어절 분리·넘침을 방지한다. README 현재 증거 경로를 고치고 일본어 테스트 제목을 한국어로 바꾼다. +- 음성 manifest/폴더를 함께 축약해도 실패하도록 콘텐츠 기반 정확한 101개 목록, 개수 및 dist 추가/누락 파일을 검사한다. +- 현장음 승인 계획/manifest의 임시 경로를 불변 원본 해시·bytes·검증 상태 및 정확한 직접 미디어 길이로 교체한다. +- 현장음 생성 전 여덟 원본의 승인 해시·bytes를 전수 확인한다. 잘못된 원본은 첫 변환 전에 실패한다. +- 같은 파일시스템 staging에서 8 WAV·manifest·notice 전부 검증 후 Linux 원자 디렉터리 교환. stale 파일 제거, + symlink 출력 거부, 변환·쓰기·검증·교환 실패/중단 시 이전 디렉터리 보존을 테스트한다. +- 고지를 `/ambience/AMBIENCE_NOTICES.md`로 옮겨 함께 발행하고 각 항목의 creator/primary URL/direct URL/ + license URL/outputLicense/변경 설명을 빌드에서도 강제한다. UI 링크와 권리·배포·재현 문서를 갱신한다. +- 101 voice + 8 ambience WAV 바이트와 모든 이전 evidence를 보존한다. 이번 리뷰의 RED/GREEN과 전체 실행 결과는 + `.agent/evidence-v0.2.3/review-fixes/` 및 `.agent/RESULT-v0.2.3.md`를 참조한다. 사람의 청취 인수는 미실행이다. + +### v0.2.3 최종 privacy excerpt refinement + +- 모든 현장음의 `selectedSegmentStartSeconds`를 승인 계획의 불변 provenance로 고정한다. + 생성기의 별도 시작점 map을 제거하고 manifest/notice/build/browser에서 계획과 구간 범위를 대조한다. +- mall 36–48초, market 60–72초, cafe 180–192초로 변경하고 다른 다섯 구간은 유지한다. + 원본 8개 해시 확인 후 전체 ambience 디렉터리를 원자 재생성한다. 101 voice와 다섯 ambience WAV는 바이트 동일하다. +- Ogg seek/timestamp로 짧아진 PCM은 전체 디코드 후 sample 기준으로 정확한 12초를 선택한다. + 패딩/시간 변형 없이 실제 seek 경로를 기록하고 부족한 원본은 거부한다. 실패 시 이전 bundle 보존을 재확인했다. +- Neo의 이전 후보 scan과 파생본 ASR을 원문 그대로 보존하고 출처·설정 누락·휴리스틱 text의 한계를 기록한다. + 최종 8 WAV의 faster-whisper 1.2.1 tiny multilingual 검사와 모든 추가 실패/성공 근거는 + `.agent/evidence-v0.2.3/privacy-screening/`에 보존한다. **ASR은 screening signal이며 사람의 청취 인수나 법적/개인정보 clearance가 아니다.** +- 최종 VAD-enabled ASR은 mall 0 / market 3 / cafe 1 segment를 반환하여 요청한 zero-segment 기준은 **미달**이다. + VAD 미사용 결과도 별도로 보존하고 새 acceptance test는 실패 상태를 유지한다. +- 이전 evidence는 변경하지 않는다. 최종 검증/상세 결과는 `.agent/RESULT-v0.2.3.md`의 마지막 절을 참조한다. + +## 0.1.1 — 2026-10-14 + +- Microsoft Edge online TTS `ko-KR-HyunsuMultilingualNeural`, edge-tts 7.3.1, + rate −6%, pitch −4Hz로 안내 1개·목표 100개를 새로 생성하고 24kHz mono PCM16으로 변환했다. +- pinned venv, bounded retry/timeout, 원자 자산 교환, provider/도구/출력물의 권리 구분과 provenance를 추가했다. +- query cache-busting, 시스템 Chrome sandbox 기본 활성화, 화면·음량·한국어 제목과 SNR 설명의 검증을 보강했다. +- 원본 기록: [.agent/RESULT-v0.1.1.md](.agent/RESULT-v0.1.1.md), `.agent/evidence-v0.1.1/`. + +## 0.1.0 — 2026-10-14 (당시 UI 표기 v0.1) + +- 반응형 시작/게임/결과, 열 문항·다섯 단계, 객관식/주관식/혼합, 10 mechanic·100문장. +- 점수·연속 정답·재청취·IME 보호·접근성·동시 재생/취소/실패 복구, 여덟 합성 배경. +- 정적 SPA, 개인정보 저장·외부 런타임 요청 없음, 정확한 credit 및 private 프로젝트 권리 고지. +- 원본 기록: [.agent/RESULT.md](.agent/RESULT.md), `.agent/evidence/`. diff --git a/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/before-manifest.json b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/before-manifest.json new file mode 100644 index 0000000..aa6ecaa --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/before-manifest.json @@ -0,0 +1,356 @@ +{ + "version": "0.2.3", + "generatedAtUtc": "2026-10-14T09:16:19.690083+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": 60, + "file": "market.wav", + "sourceSha256": "fc0075dce8ad05b56460c9f18754c27b2021f21f1c780a595ccda648d33c941d", + "outputLicense": "CC BY-SA 4.0", + "verificationDateUtc": "2026-10-14", + "sha256": "7a7a980845a4aade2a7e8a108eae746220a4688e92792ee93d3deb76b2a762f6", + "bytes": 576044, + "duration": 12.0, + "rms": 0.07999755668792045, + "peak": 0.507232666015625, + "conversion": { + "startSeconds": 60, + "durationSeconds": 12, + "seekMethod": "full decode then sample trim", + "fadeSeconds": 0.05, + "sampleRate": 24000, + "channels": 1, + "encoding": "PCM16 little-endian", + "linearGain": 1.6103277706340973, + "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": 180, + "file": "cafe.wav", + "sourceSha256": "6360791fdcee1f64638f0fc9abd6d2c7a1aa75fd3d2b80033170a02d025099dc", + "outputLicense": "CC0 1.0 Universal", + "verificationDateUtc": "2026-10-14", + "sha256": "802a956e91b85a2fdd0e1f161d75bfada7a53499bcb57ba7f578411480ded216", + "bytes": 576044, + "duration": 12.0, + "rms": 0.07999756802463229, + "peak": 0.44708251953125, + "conversion": { + "startSeconds": 180, + "durationSeconds": 12, + "seekMethod": "full decode then sample trim", + "fadeSeconds": 0.05, + "sampleRate": 24000, + "channels": 1, + "encoding": "PCM16 little-endian", + "linearGain": 0.6696615304282213, + "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" + } + } + ] +} diff --git a/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/before-notices.md b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/before-notices.md new file mode 100644 index 0000000..002e18d --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/before-notices.md @@ -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 60–72. + +## 지하철 — 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 180–192. + +## 비 오는 거리 — 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. diff --git a/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/before-readme.md b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/before-readme.md new file mode 100644 index 0000000..fda02e8 --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/before-readme.md @@ -0,0 +1,135 @@ +# 단어를 맞춰라 · Find-Word v0.2.3 + +소음 속에 숨은 한국어 단어를 듣고 찾는 반응형 웹 게임입니다. + +**Designed by OZ at Heat-T Medical Inc.** + +Canonical repository: [OZ-Group/Find-Word](https://source.ibit.kr/OZ-Group/Find-Word). +프로젝트 자체는 **private / all-rights-reserved**이며 `package.json`의 +`license`는 `UNLICENSED`입니다. [LICENSE](LICENSE)를 참고하세요. +런타임 의존성 React, ReactDOM, scheduler의 MIT 전문은 +[THIRD_PARTY_NOTICES.md](THIRD_PARTY_NOTICES.md)에 보존하며, +`public/THIRD_PARTY_NOTICES.md`가 빌드 시 `dist/THIRD_PARTY_NOTICES.md`로 복사됩니다. +빌드 검증기는 설치된 의존성의 라이선스 전문·버전과 세 사본을 대조합니다. + +React + TypeScript strict + Vite로 만든 정적 SPA입니다. 로그인, 개인정보 저장, +분석 도구, 외부 CDN, 런타임 TTS/API 요청이 없습니다. 청각적 주의·식별 게임이며 +의료적 진단·치료나 효과를 주장하지 않습니다. + +## 실행 + +Node.js 최소 버전은 **22.22.2** (`>=22.22.2`)입니다. 잠긴 jsdom 계열 의존성이 +요구하는 지원 범위는 22.x의 22.22.2 이상, 24.x의 24.15.0 이상 또는 26.0.0 이상입니다. +이 중 지원되는 LTS 버전을 사용하세요. `package-lock.json`을 +포함하므로 새 환경에서는 `npm ci`를 사용합니다. 이번 검증 환경은 Node 26.7.0입니다. + +```bash +npm ci +npm run dev +``` + +표시되는 `http://127.0.0.1:5173`에서 사용합니다. 소리는 사용자가 **게임 시작 · 소리 듣기**를 +누른 뒤에만 재생합니다. 낮은 음량부터 조절하고 헤드폰이나 스피커를 사용할 수 있습니다. + +## 플레이 + +- 골고루 풀기, 보기에서 선택, 직접 입력 중 선택합니다. +- 8개 실제 현장 녹음 환경 중 하나를 지정하거나 라운드마다 섞어 세 곳을 방문합니다. +- 에스의 안내가 배경에 묻힌 뒤 목표 문장이 나옵니다. 재생 후 질문에 답합니다. +- 시작 난이도 1~5를 고르고 정확히 **3문항**을 같은 단계에서 풉니다. 단계 기본값은 **SNR +6, +3, 0, −3, −6 dB**입니다. +- 목표 음성 SNR을 **−12~+12 dB, 1 dB 간격**으로 직접 조절할 수 있습니다. 재생 중 변경은 다음 재생·재청취와 남은 문제부터 적용합니다. + 양수는 음성이 배경보다 크고, 0은 같고, 음수는 더 작다는 뜻입니다. +- 다시 듣기는 감점하지 않습니다. 정답은 `단계 × 100점`, 연속 정답 보너스는 문항별 최대 20점, 라운드 합계 최대 30점입니다 (0 + 10 + 20점, 1단계 만점 330점). +- 정상 결과에서 다음 단계의 새 3문항을 바로 시작합니다. 5단계에서는 같은 단계 재도전과 홈 복귀를 제공합니다. 수동 SNR은 다음 라운드에도 유지되고, 홈 복귀 시 선택한 시작 단계의 기본값으로 돌아갑니다. +- 언제든 **문제 풀이 종료**를 누르면 즉시 오디오를 취소하고 **응답 수·정답 수**를 보여 줍니다. 무응답은 오답으로 세지 않고 정답률은 `— / 응답 없음`, 답하지 않은 단계는 `미진행`으로 표시합니다. 결과에서 **처음 화면으로** 돌아갑니다. +- 결과의 SNR은 실제 마지막 청취값을 기록합니다. 점수·정답률·최고 연속 정답·단계별 결과를 확인합니다. +- 새로고침하면 기록이 사라집니다. 결과를 브라우저나 서버에 저장하지 않습니다. + +10개 유형 × 10개 단어의 100개 목표 문장을 저장했습니다. 각 세션은 유형과 +단어를 섞어 출제하며 정답 위치도 섞습니다. 사전 표제어와 변형 규칙은 +[WORDS.md](docs/WORDS.md)에 설명했습니다. +청취 과제는 직접 목표 식별, 연습 암호와 진짜 암호 구별, 앞 단어를 잊고 다음 +단어 기억, 첫째·마지막·가운데 선택, 반복 찾기, 정정 반영, 신호 조건 적용, +오른쪽 표지 선택의 10가지입니다. 문장에 실제 보기의 오답도 포함됩니다. + +## 검증과 정적 빌드 + +```bash +npm run lint +npm test +python3 -m unittest discover -s tests/python -v +npm run build +npm audit +npm run preview +``` + +`lint`는 ESLint와 TypeScript 검사, `test`는 unit/component/자산/빌드 검증기 +테스트를 실행합니다. `build`는 `dist/`를 만들고 음성 101개와 현장음 8개가 manifest 해시 그대로 +포함되었는지 확인합니다. 앱 콘텐츠의 예상 101개 목록과 실제 파일 집합을 독립 비교해 +manifest와 폴더를 함께 줄이거나 파일을 추가한 경우도 거부합니다. 빌드에는 음성 합성 도구가 필요하지 않습니다. +런타임 MIT notice와 현장음 attribution/license notice가 `dist/`에 전문 그대로 포함되는지도 검증합니다. + +실제 오디오·360px/1280px 화면·키보드·접근성·오류 재시도 검증: + +```bash +# Chromium이 없는 개발 환경에서 한 번만 실행합니다. +npx playwright install chromium +npm run test:browser +# 이미 설치된 Chrome을 사용할 때의 대안입니다. +CHROME_PATH=/usr/bin/google-chrome npm run test:browser +``` + +Chromium sandbox는 기본으로 켭니다. sandbox를 지원하지 않는 격리된 개발 +환경에서만 `PLAYWRIGHT_NO_SANDBOX=1`을 명시해 끌 수 있습니다. `0`, `false`, +빈 값이나 미설정은 sandbox를 유지합니다. `CHROME_PATH` 지정은 sandbox를 끄지 않습니다. + +브라우저 테스트는 기존 `dist/`를 사용하므로 소스 변경 후 먼저 빌드하세요. +실제 음성 재생이 끝나기를 기다려 몇 분이 걸립니다. 로컬 4173 포트를 +테스트 중에만 열고 종료합니다. 스크린샷과 109개 WAV의 query URL·해시·디코드 +결과는 `test-results/`에 저장합니다. 현재 리뷰 인수 기록은 +`.agent/evidence-v0.2.3/review-fixes/`에 보존합니다. 기존 v0.1/v0.1.1 및 v0.2.3 증거는 덮어쓰지 않습니다. + +## 음성과 문서 + +한국어 WAV 101개는 직접 쓴 문장을 Microsoft Edge online TTS의 +`ko-KR-HyunsuMultilingualNeural`로 v0.1.1에서 생성했으며 WAV 바이트는 그대로 보존했습니다. edge-tts **7.3.1**, +rate `-6%`, pitch `-4Hz`이며 FFmpeg로 **24kHz mono PCM16**으로 변환합니다. +생성 시 네트워크가 필요하며 앱은 저장된 WAV만 재생합니다. 환경음은 공개 라이선스의 실제 현장 녹음 8개를 각 12초로 변환해 번들합니다. 생성 음성의 독점 권리를 주장하지 않습니다. + +intro와 목표 WAV는 모두 `/audio/파일명.wav?v=0.2.3`로 요청합니다. +`src/audio/assets.ts`의 자산 버전 한 곳을 사용하며, 같은 파일명으로 음성을 +교체할 때 이 값을 갱신해 기존 7일 캐시와 구분합니다. 배경은 `/ambience/환경.wav?v=0.2.3`입니다. 제품 버전은 0.2.3입니다. + +Linux에서 Python 3.11 이상과 FFmpeg를 준비한 뒤 다음 명령을 사용합니다. +클라이언트 버전을 고정해도 원격 모델 변경으로 동일 바이트 재생성은 보장하지 않습니다. + +```bash +python3 -m venv .venv-audio +.venv-audio/bin/python -m pip install -r requirements-audio.txt +.venv-audio/bin/python -m pip check +npm run audio:generate +``` + +고정 venv의 Python이 101개 모두 임시 생성·검증하고 디렉터리를 원자 교체합니다. +요청별 60초 제한과 최대 3회 시도를 적용하며, 실패 시 기존 자산을 보존합니다. +청취 샘플: [안내](public/audio/intro.wav), [행운의 사과](public/audio/luck-apple.wav). +생성 방법, 도구 라이선스, 합성 음질의 한계는 [AUDIO_PROVENANCE.md](docs/AUDIO_PROVENANCE.md)를 +참고하세요. 실제 음량은 출력 장치에 따라 달라지며 표기 dB는 디지털 상대값입니다. + +현장음 원본은 `/tmp/findword-ambience-sources`에서만 보관하고 배포하지 않습니다. +`python3 scripts/ambience_audio.py`는 승인 계획의 `expectedSourceSha256`·`sourceBytes`를 전수 확인한 뒤에만 변환합니다. +직접 미디어 길이는 `directMediaDurationSeconds`, 검증 상태는 `sourceVerification`에 보존합니다. +8 WAV·manifest·고지를 같은 파일시스템에서 staging/검증한 뒤 Linux `renameat2(RENAME_EXCHANGE)`로 +폴더 전체를 교체합니다. symlink 출력은 거부하며 commit 전 실패/중단은 이전 폴더를 보존합니다. +PD·CC0·CC BY 4.0·CC BY-SA 4.0의 정확한 출처·저작자·변환·해시는 +[현장음 manifest](public/ambience/manifest.json), [배포 고지](public/ambience/AMBIENCE_NOTICES.md)에 있습니다. +시장 파생본은 CC BY-SA 4.0을 유지합니다. 외부 링크는 출처 확인용이며 앱은 이를 요청하지 않습니다. + +- [변경 이력](CHANGELOG.md) +- [v0.2.3 구현·검증 결과](.agent/RESULT-v0.2.3.md) +- [설계와 상태 전이](docs/ARCHITECTURE.md) +- [Neo를 위한 정적 배포 안내](docs/DEPLOYMENT.md) +- [v0.1.1 RED/GREEN 및 실제 검증 결과](.agent/RESULT-v0.1.1.md) +- [v0.1 역사 기록](.agent/RESULT.md) + +이번 작업에서는 서버 배포와 Git commit/push를 실행하지 않습니다. diff --git a/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/before-result.md b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/before-result.md new file mode 100644 index 0000000..f8d5223 --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/before-result.md @@ -0,0 +1,408 @@ +# Find-Word v0.2.3 구현·검증 결과 + +작성일: 2026-10-14 UTC. worktree `/home/hermes/worktrees/find-word-v0.2.3`, branch `feat/v0.2.3`. +기준 HEAD `c92660b514f7af8eb556d3fa5c0fc80e4bdd4cf5`. 지정된 TASK/ACCEPTANCE/AMBIENCE-SOURCES를 먼저 읽고 기존 코드·테스트·문서를 확인했다. + +**Git commit/push/merge/tag, 외부 배포, secrets 사용은 하지 않았다.** 로컬 production preview만 사용했다. +정확한 credit **Designed by OZ at Heat-T Medical Inc.**와 private/UNLICENSED 프로젝트 권리를 보존했다. +제3자 현장음은 각각의 라이선스를 유지한다. + +**현재 최종 상태:** privacy excerpt 구현/재생성 완료, **ASR zero-segment acceptance 미달**. 단위 123 통과 / 1 실패이며 실패는 새 ASR acceptance다. +lint/build·Python 36개·sandboxed Chrome 30개 PASS, npm audit 0건. 최종 Chrome 결과와 상세 근거는 맨 아래 **최종 privacy excerpt refinement** 절에 있다. +앞선 구현/독립 리뷰의 기록은 당시 결과로 보존하며 최신 acceptance 성공으로 오인하지 않는다. + +## 최초 구현 내용 (아래 리뷰 수정 내역으로 보완) + +- 정확히 세 개의 서로 다른 문제/단어를 한 단계에서 출제한다. 시작 단계 1~5 선택, mixed 선택/입력/선택, + 진행률/안내/분모 3문항, 정상 완료→다음 단계의 새 3문항, 5단계 재도전과 홈 복귀를 구현했다. +- SNR을 −12~+12 dB, 1 dB 눈금으로 직접 설정한다. 범위 밖 값은 clamp, NaN/Infinity는 단계 기본값으로 복구한다. + 변경은 현재 재청취·미응답 문항·이후 라운드에 적용한다. 재생 중 gain을 바꾸지 않는다. + 다음 단계도 수동 값은 유지하고 홈 복귀 시 수동 override를 지운다. 시작 단계/모드/환경/전체 음량은 홈 설정으로 유지한다. +- ready/loading/playing/answer/feedback에서 `문제 풀이 종료`가 가능하다. token 무효화→엔진 정지→결과 전환으로 + 지연 콜백을 차단한다. 응답 수·정답 수·실제 응답 분모를 표시하고 무응답을 오답으로 세지 않는다. +- 여덟 고유 실제 현장 녹음을 fetch/decode/loop한다. 절차적 잡음 합성 코드는 제거했다. + 101개 음성 및 여덟 배경은 모두 same-origin `?v=0.2.3` 정적 요청이다. 런타임 외부 API/TTS/추적은 없다. +- 음성과 배경을 각각 RMS .03으로 정규화하고 상대 gain `10^(dB/20)`을 적용한다. + 안내/목표/배경의 피크 합에 공통 gain을 적용해 최악 합계 peak ≤ .8을 유지한다. + master 음량은 그 뒤 공통 적용되므로 SNR을 보존한다. 배경은 목표 ended에서 함께 정리한다. +- HTTP/decode/준비 15초 timeout/재생 길이+5초 timeout/abort 후 한국어 안내와 재시도를 유지한다. +- CHANGELOG 생성, package/lock/HTML/UI/자산 버전/README/설계/배포/오디오/단어/권리 문서를 0.2.3에 맞췄다. + 상세 한국어 설계 주석을 수정 코드의 모듈·함수·클래스·상태/매개변수·경합/수치 계산에 추가했다. + +## RED → GREEN 원문 + +각 동작/회귀는 테스트를 먼저 작성·실행한 뒤 구현했다. 아래 RED의 종료 코드는 1, GREEN은 0이다. +`-t`로 좁힌 실행의 skipped는 필터 제외이며 최종 전체 실행은 skip 0이다. 실패 원문을 성공 로그로 대체하지 않았다. + +| 계약/회귀 | RED → GREEN | 원문 | +| --- | --- | --- | +| 세 문항/같은 시작 단계/혼합/점수 | 기존 10문항·자동 단계에서 3 실패 → 9 통과 | [01 RED](evidence-v0.2.3/01-round-RED.log), [01 GREEN](evidence-v0.2.3/01-round-GREEN.log) | +| SNR 정규화/미응답 전파/전 단계 종료/지연 이벤트 | 누락 reducer action 등 7 실패 → 15 통과 | [02 RED](evidence-v0.2.3/02-snr-exit-RED.log), [02 GREEN](evidence-v0.2.3/02-snr-exit-GREEN.log) | +| 시작 단계/수동 SNR/다음 라운드/5단계 경계/중도 결과/UI 초기화 | 10 실패 → 18 통과 | [03 RED](evidence-v0.2.3/03-screen-RED.log), [03 GREEN](evidence-v0.2.3/03-screen-GREEN.log) | +| 고유 녹음 URL/절차적 매개변수 제거/peak/SNR 수학 | 2 실패 → 콘텐츠 포함 19 통과 | [04 RED](evidence-v0.2.3/04-recorded-mix-RED.log), [04 GREEN](evidence-v0.2.3/04-recorded-mix-GREEN.log) | +| 실제 배경 fetch/decode/loop/abort/timeout/재시도 | 전환 중 남은 합성 호출 및 누락 녹음 경로로 9 실패 → 11 통과 | [05 RED](evidence-v0.2.3/05-playback-RED.log), [05 GREEN](evidence-v0.2.3/05-playback-GREEN.log) | +| Node 직접 import 회귀 | ERR_MODULE_NOT_FOUND → 101문장 import 통과 | [06 RED](evidence-v0.2.3/06-node-import-RED.log), [06 GREEN](evidence-v0.2.3/06-node-import-GREEN.log) | +| 8개 배포 PCM/해시/출처/고지/루프 경계 | manifest ENOENT → 전수 통과 | [07 RED](evidence-v0.2.3/07-assets-RED.log), [07 GREEN](evidence-v0.2.3/07-assets-GREEN.log) | +| 실제 FFmpeg 변환/재현/무음 거부/길이 제한 | 변환 모듈 없음 → Python 2 통과 | [변환 RED](evidence-v0.2.3/07-converter-RED.log), [변환 GREEN](evidence-v0.2.3/07-converter-GREEN.log) | +| 재생 중 SNR 변경의 실제 청취 이력 | −10을 들었다고 잘못 기록 → 34 통과 | [08 RED](evidence-v0.2.3/08-heard-snr-RED.log), [08 GREEN](evidence-v0.2.3/08-heard-snr-GREEN.log) | +| 버전/문서/변경 이력/기존 voice metadata | 이전 버전·누락 CHANGELOG → 50 통과 | [09 RED](evidence-v0.2.3/09-version-docs-RED.log), [09 GREEN](evidence-v0.2.3/09-version-docs-GREEN.log) | +| 3문항의 환경 순환 회귀 | 3개 환경만 도달 → 8개 도달, 35 통과 | [10 RED](evidence-v0.2.3/10-environment-rotation-RED.log), [10 GREEN](evidence-v0.2.3/10-environment-rotation-GREEN.log) | +| dist 현장음/manifest/notice 변조·누락·원본 혼입/고지 링크 | 5 실패 → 26 통과 | [11 RED](evidence-v0.2.3/11-bundle-notice-RED.log), [11 GREEN](evidence-v0.2.3/11-bundle-notice-GREEN.log) | +| 누락 WAV의 SPA fallback | desktop/mobile 200 HTML → 양쪽 404, 4 통과 | [13 RED](evidence-v0.2.3/13-static-404-RED.log), [13 GREEN](evidence-v0.2.3/13-static-404-GREEN.log) | +| 결과 화면의 잘못된 도움말 anchor | 없는 #howto 링크 노출 → 제거 | [15 RED](evidence-v0.2.3/15-results-anchor-RED.log), [15 GREEN](evidence-v0.2.3/15-results-anchor-GREEN.log) | +| 새 설정의 터치 크기/카드 경계 | 양쪽 23px 높이 → 44px 이상, 2 통과 | [16 RED](evidence-v0.2.3/16-controls-layout-RED.log), [16 GREEN](evidence-v0.2.3/16-controls-layout-GREEN.log) | +| 3문항의 보너스 안내 | 당시 40점 → 20점 안내; 리뷰에서 문항별 20점/합계 30점으로 재정정 | [17 RED](evidence-v0.2.3/17-bonus-copy-RED.log), [17 GREEN](evidence-v0.2.3/17-bonus-copy-GREEN.log) | +| 모바일 select 선택값 잘림 | 360px에서 글자 폭 초과 → 중복 SNR을 아래 제어에 모음 | [21 RED](evidence-v0.2.3/21-select-label-RED.log), [21 GREEN](evidence-v0.2.3/21-select-label-GREEN.log) | +| Chrome favicon 기본 404 | 내장 icon 없음/실제 콘솔 오류 → 내장 SVG | [19 RED](evidence-v0.2.3/19-favicon-RED.log), [19 GREEN](evidence-v0.2.3/19-favicon-GREEN.log) | + +추가 진단 기록도 보존했다. `01-round-sampling-regression.log`의 96/100은 세 문항으로 줄인 뒤 +기존 200 seed 표본이 작아진 테스트 회귀여서 1000 seed로 전체 100조합 도달성을 검사했다. +`03-screen-duplicate-description-RED.log`는 같은 SNR 설명을 중복 배치한 회귀를 잡았다. +`05-playback-fixture-regression.log` 뒤 mock AudioBuffer의 copyToChannel을 실제 복사처럼 보완했고 +부동소수점 0.12000000000000001 비교를 근사 비교로 바꿨다. 실제 재생은 별도의 Chrome으로 검증한다. +`12-lint-initial.log`의 축소된 union 비교/fixture 타입 오류도 수정했다. + +## 현장음 원본과 변환 + +지정된 원본 8개를 모두 사용했다. **대체 원본은 0개**다. 여섯 기존 원본을 재사용했고 café는 +HTTP 429의 **Retry-After 600초** backoff 뒤 지정 직접 URL로 다운로드했다. rain도 지정 URL에서 받았다. +[다운로드 기록](evidence-v0.2.3/source-downloads.log), [rain 기록](evidence-v0.2.3/rain-download.log). + +[원본 전수 검사](evidence-v0.2.3/source-integrity.json)는 전체 원본 SHA-256/bytes/ffprobe 정보와 +FFmpeg **전체 디코드 8/8 성공, stderr 0**을 기록한다. café 19,947,952 bytes, rain 91,187,572 bytes는 +Commons primary 메타데이터의 크기와 일치한다. [Commons API 근거](evidence-v0.2.3/commons-license-audit.json), +[primary 페이지/권리 재확인](evidence-v0.2.3/primary-page-verification.json). + +`python3 scripts/ambience_audio.py`로 원본의 명시적 중간 구간을 선택해 전부 **12초 / 24,000Hz / mono / PCM16**으로 만들었다. +양끝 **50ms 선형 fade**, RMS 목표 **.08**, 최대 증폭 **4배**, peak ceiling **.85** 중 안전한 선형 gain을 적용했다. +저레벨 rain과 순간 peak가 큰 market은 제한 때문에 RMS 목표보다 낮다. 엔진은 재생 시 각각 다시 RMS 정규화한다. +양끝 PCM은 0, non-silent 8/8, 고유 출력 해시 8/8, 각 576,044 bytes, 합계 **4,608,352 bytes**다. +대형 OGG/MP3/FLAC 원본은 `/tmp/findword-ambience-sources`에만 있으며 Git/public/dist에 번들하지 않았다. + +| 배포 자산 (`public/ambience/`) | 원본 구간 | RMS | peak | 출력 SHA-256 | +| --- | --- | --- | --- | --- | +| street.wav | 35–47s | 0.07999756 | 0.39675903 | `a8bffa201b174618955bc51b860167169125304811aabe2086b0bb35b06c3ae1` | +| mall.wav | 20–32s | 0.07999757 | 0.55468750 | `6e9171f549cacadfaeedd57a41c8e2a76b0e789f5c9a97af029a8d3558c9f145` | +| theater.wav | 45–57s | 0.07999757 | 0.49508667 | `2d6a444fb7874cdf6b2d8a741a69175299b112eb66834912c025437d8277d635` | +| department.wav | 90–102s | 0.07999758 | 0.47497559 | `aa43f3d1d3e7c2b1f8ace24ecbda45d0ea3a031db941c39506dc6c1665b8efa7` | +| market.wav | 30–42s | 0.04922208 | 0.84997559 | `4287e971a12767f70da714e0c1aff30125268f9c3faf07ebfbcc0d2904f4a312` | +| subway.wav | 65–77s | 0.07999755 | 0.42529297 | `9faf70b68617d267b367a0f3692ed90015458543ab4b0844f6c704e6a724728f` | +| cafe.wav | 120–132s | 0.07999759 | 0.39709473 | `8db06f3f09bbd8409573ba4874c7ccdd1e7e825c8a61989a4efe66206a66c2d2` | +| rain.wav | 180–192s | 0.01138463 | 0.10241699 | `f4315084e820f742b0709de5bb0d1abd3d5af1730620e08c2948b70347356dd9` | + +[배포 manifest](../public/ambience/manifest.json)에 environment id/표시 이름, source page/direct URL, creator, +license/license URL, attribution, 원본/출력 SHA-256, bytes/duration/RMS/peak, 실제 FFmpeg 버전과 변환 설정을 기록했다. +[AMBIENCE_NOTICES](../public/ambience/AMBIENCE_NOTICES.md)를 dist에 포함하고 UI에서 접근할 수 있다. +시장 파생 WAV는 **CC BY-SA 4.0**, 지하철은 **CC BY 4.0**, 나머지는 CC0/PD이며 출처·변경 고지를 보존했다. +프로젝트의 UNLICENSED를 이 녹음에 적용하지 않는다. 런타임 React/ReactDOM/scheduler의 기존 MIT 전문도 그대로 배포한다. + +## 보존과 구체적 회귀 수정 + +- **101개 neural WAV 바이트/원문/해시 변경 0**. voice manifest는 배포 version만 0.2.3으로 올리고 + `generatedForVersion: 0.1.1`을 추가했으며 생성 시각·provider·voice·prosody·도구/실측값은 보존했다. +- 기존 10 mechanic/100문장, 정답·오답 규칙·점수 공식·재청취·객관식/주관식/mixed·IME 보호를 유지했다. +- **과거 .agent 추적 파일 180개 모두 Git blob hash 동일**. v0.1/v0.1.1 RESULT와 evidence 수정 0. + [보존 검사](evidence-v0.2.3/preservation.json). +- 짧아진 라운드 때문에 순환 환경이 street/mall/theater에만 갇히는 회귀를 seed 기반 환경 셔플로 수정했다. +- 환경 URL 모듈 추가로 Python 생성기의 Node 직접 import가 깨지는 회귀를 명시적 `.ts` 경로로 수정했다. +- `heardDb`를 PLAY 시점에 기록해 재생 중 조절값이 과거 청취 이력/결과를 덮어쓰지 않게 했다. +- 중복 SNR 설명, 결과 화면의 없는 도움말 anchor, 실제 라운드 보너스 상한 안내를 바로잡았다. +- Vite dev/preview의 누락 WAV HTML fallback을 차단하고 Nginx 인계에도 `/ambience/` 404 규칙을 추가했다. +- 모바일 최종 이미지에서 시작 단계 select의 긴 선택값 잘림을 찾아 글자 폭 검사로 재현하고, 중복 SNR 표기를 전용 제어로 모았다. +- 실제 Chrome의 기본 `/favicon.ico` 404 콘솔 오류를 내장 SVG로 제거했다. + +## 리뷰 전 검증 기록 (리뷰 수정 후 결과는 문서 하단) + +환경: Node **26.7.0**, npm **11.19.0**, Python **3.11.16**, FFmpeg **6.1.1-3ubuntu5**, system Chrome **146.0.7680.80**. +[환경](evidence-v0.2.3/environment.json). Chrome sandbox 활성화, `--no-sandbox` 0개를 실행 중 process argv로 확인했다. +[실행 sandbox 기록](evidence-v0.2.3/chrome-sandbox.json); 설정 계약 테스트도 통과했다. + +| 검증 | 결과 | 원문 | +| --- | --- | --- | +| `npm run lint` | PASS, ESLint + TypeScript strict, exit 0 | [22-lint](evidence-v0.2.3/22-lint.log) | +| `npm test` | **13 files / 94 passed**, skip 0, exit 0; Python runner 포함 | [22-full-test](evidence-v0.2.3/22-full-test.log) | +| `python3 -m unittest discover -s tests/python -v` | **20 passed**, exit 0 (기존 neural 18 + 새 변환 2) | [18-python](evidence-v0.2.3/18-python.log) | +| `npm run build` | PASS, 101 voice + 8 ambience + 두 notice 검증, exit 0 | [22-build](evidence-v0.2.3/22-build.log) | +| `npm audit --json` | **취약점 0** (info/low/moderate/high/critical 모두 0), exit 0 | [audit JSON](evidence-v0.2.3/14-npm-audit.json) | +| 최종 sandboxed system Chrome desktop/mobile | **26 passed / 0 failed / 0 skipped**, exit 0; 실제 재생·접근성·무외부 요청 검증 | [22-browser](evidence-v0.2.3/22-browser.log), [machine-readable 결과](evidence-v0.2.3/browser-results.json) | +| 원본/배포 녹음 및 101개 voice 보존 | PASS | [원본](evidence-v0.2.3/source-integrity.json), [보존](evidence-v0.2.3/preservation.json) | +| 비밀정보 형식 검사 | **0 findings**, 값 노출 없이 경로/개수만 기록 | [scan](evidence-v0.2.3/secret-scan.json) | +| `git diff --check` | PASS | [최종 worktree 점검](evidence-v0.2.3/final-review.log) | + +브라우저는 1280×1000 desktop / 360×800 mobile에서 같은 production build를 사용한다. +실제 디코드한 109 WAV의 response hash/bytes/24kHz/mono/duration/RMS/peak를 전수 대조하고, +앱에서 여덟 환경을 실제 loop로 재생 후 정지했다. 혼합 모드 세 문항 완주/재청취/키보드, +4단계 시작→5단계 새 라운드, 수동 SNR 유지/재청취/홈 초기화, 재생 중 종료/응답 뒤 종료, +intro/target/ambience 404 재시도, 누락 WAV의 HTML Accept 404, notice 원문 제공을 검사한다. +정상 흐름의 console/page errors·failed requests·외부 요청·axe violations가 모두 0이어야 통과한다. +브라우저 native audio 메서드를 관찰할 때 원래 메서드를 실행하며 가짜 decode/ended를 주입하지 않는다. + +최종 캡처 8개와 실제 검사 JSON을 새 evidence에 보존했다. 모바일 게임/시작과 desktop 시작/결과의 +레이아웃을 이미지로 확인했고, 결과 분모/현재 SNR/종료 버튼/고지 링크가 잘리지 않는다. + +| 화면 | Desktop | Mobile | +| --- | --- | --- | +| 시작 | [PNG](evidence-v0.2.3/browser/desktop-start.png) | [PNG](evidence-v0.2.3/browser/mobile-start.png) | +| 게임 | [PNG](evidence-v0.2.3/browser/desktop-game.png) | [PNG](evidence-v0.2.3/browser/mobile-game.png) | +| 정상 결과 | [PNG](evidence-v0.2.3/browser/desktop-normal-results.png) | [PNG](evidence-v0.2.3/browser/mobile-normal-results.png) | +| 중도 종료 | [PNG](evidence-v0.2.3/browser/desktop-early-exit.png) | [PNG](evidence-v0.2.3/browser/mobile-early-exit.png) | + +실제 109 WAV 해시/디코드/레벨 및 오류 0 집계: +[desktop JSON](evidence-v0.2.3/browser/desktop-audio-integrity.json), +[mobile JSON](evidence-v0.2.3/browser/mobile-audio-integrity.json). +세 문항→다음 단계→중도 종료→홈·재청취의 실제 소스 시작/정지 및 네트워크 집계: +[desktop runtime](evidence-v0.2.3/browser/desktop-runtime-audit.json), +[mobile runtime](evidence-v0.2.3/browser/mobile-runtime-audit.json). + +초기 browser suite 24/24 통과 후 console/requestfailed 검사를 강화해 missing favicon을 찾았다. +그 실패는 `18-browser.log`에 남기고, 최종 검증은 별도 로그로 구분했다. 오류를 숨기거나 예외 목록으로 제외하지 않았다. +404/잘못된 WAV 주입 테스트의 의도적 실패 응답은 정상 흐름의 오류 0 집계와 구분한다. + +## 실제 검증의 한계와 인계 + +- Chrome은 실제 WAV를 디코드하고 실제 AudioContext/BufferSource를 실행했다. 헤드리스 자동 검증은 + 스피커/헤드폰의 물리 음압, 한국어 청감, 개인의 난이도나 임상 효과를 보증하지 않는다. +- 녹음 장면은 primary 출처 설명으로 확인했고 짧은 연속 구간의 포맷/신호/해시/루프를 검증했다. + **사람이 여덟 구간을 직접 청취하여 음악·불필요하게 명료한 우연 대화가 없는지 판단하는 인수는 수행하지 않았다.** + 자동 검사를 인간 청취 인증으로 주장하지 않는다. [샘플과 provenance](../docs/AUDIO_PROVENANCE.md)를 Neo가 검토할 수 있다. +- mobile은 system Chrome 360×800 viewport/touch emulation이다. 실제 Android/iOS 기기 및 Safari 검증은 별도다. +- SNR은 전체 버퍼 RMS에 대한 디지털 상대값이다. 현장음의 시간 변화 때문에 순간/주파수별 SNR은 다르다. +- 로컬 `dist`만 검증했다. production HTTPS/MIME/cache/서버 설정은 배포 후 Neo의 독립 검증 대상이다. +- 사용자 지시대로 commit/push/merge/tag/deploy는 미실행이다. acceptance의 Neo 릴리스 항목은 완료로 표시하지 않았다. + [DEPLOYMENT](../docs/DEPLOYMENT.md)에 feature push→main FF→annotated tag→fresh clone→commit-addressed 원자 배포/rollback 절차를 인계했다. + + +## 독립 리뷰 수정 — 2026-10-14 + +사용자가 요약한 두 독립 리뷰와 본 결과 문서를 읽고 release-hardening을 수행했다. +기존 uncommitted v0.2.3 작업을 이어서 수정했으며 commit/push/merge/tag/deploy는 하지 않았다. +새 실패 테스트를 먼저 실행하고 생산 코드/검증기를 수정했다. 이전 evidence 로그는 수정하지 않았다. +신규 기록은 모두 [review-fixes/](evidence-v0.2.3/review-fixes/) 아래에 있다. + +### 수정 내용과 동작 + +1. 진행 막대는 답변 수가 아닌 **현재 문항 1/3 → 2/3 → 3/3**이다. 첫 재생·답변 전·피드백과 + 다음 라운드에서도 일관된다. 접근성 이름/값, native progress 위치, 실제 PNG 채움 픽셀까지 검사한다. +2. 결과/README/설계/CHANGELOG의 점수 설명은 **정답마다 단계×100점 + 연속 정답 보너스**, + **문항별 최대 20점, 라운드 합계 0+10+20=30점**이다. 1단계 세 정답의 **330점**을 실제 UI 흐름으로 검증했다. +3. 응답이 없으면 정답률은 **— / 응답 없음**이며 0%나 0/0을 보여 주지 않는다. 응답 없는 단계는 **미진행**이다. + 중도 종료 제목은 **문제 풀이를 중간에 종료했어요.**, 정상 결과는 **N단계 문제 풀이를 마쳤어요.**로 구분한다. +4. 실제 Chrome RED에서 `입력`, 결과의 `만나요`/`최대` 등 어절 분리를 검출했다. + 모드 설명과 결과 영역에 keep-all을 적용하고 줄바꿈을 허용했다. 320px/360px에서 어절 내부 Range 줄 분리와 + 요소/문서 overflow를 검사하며 시작·정상 결과·중도 결과 캡처를 남겼다. +5. README 현재 증거 경로를 `.agent/evidence-v0.2.3/review-fixes/`로 바로잡고 일본어 reducer 테스트 제목을 한국어로 바꿨다. +6. build verifier는 앱 콘텐츠의 10 patterns×10 words+intro로 **정확한 101개 이름**을 독립 구성한다. + manifest 정확히 101개, 중복 없는 예상 inventory, dist/audio의 추가/누락 파일을 모두 검사한다. + 양쪽 manifest와 디렉터리를 함께 비우기/축약/중복/이름 변경해도 실패하며 정상 사본은 통과한다. +7. 승인 계획과 배포 manifest의 `verifiedLocalSource` 및 모호한 `sourceDurationSeconds`를 제거했다. + `expectedSourceSha256`, `sourceBytes`, `sourceVerification`과 **directUrl 바이트의 ffprobe format.duration**인 + `directMediaDurationSeconds`를 보존한다. Freesound preview MP3의 길이와 primary 페이지 표시 길이를 혼동하지 않는다. + 파생 WAV의 `duration`/`conversion.durationSeconds`는 별도로 12초다. 기존 source-integrity 증거와 대조했다. +8. 생성기는 **첫 변환 전에 여덟 원본 전부**의 승인 해시/bytes를 확인한다. 불일치/누락/중복/잘못된 목록은 실패하고, + 현재 파일 값으로 승인 계획을 덮어쓰지 않는다. 실제 원본 8개도 새 승인 필드로 재검증했다. +9. 현장음 notice를 **public/ambience/AMBIENCE_NOTICES.md**로 옮겼다. 같은 파일시스템의 staging에서 + 8 WAV·manifest·notice와 실측 PCM을 전수 검사한 다음 Linux **renameat2(RENAME_EXCHANGE)** 한 번으로 교체한다. + 최초 생성은 rename 한 번이다. overlay를 없애 stale 파일을 제거하고 정상/dangling symlink 출력을 거부한다. + 모든 변환 위치의 실패/KeyboardInterrupt, manifest/notice 쓰기 실패, staged 변조, 교환 실패/미지원, + commit 전 SIGTERM에서 이전 디렉터리를 보존한다. 실제 교환 도중 디렉터리 fd로 읽은 세 파일이 + 같은 세대인 것도 확인했다. UI 링크·build verifier·권리·배포·재현 문서를 함께 수정했다. +10. 모든 배포 notice 항목에 **creator, primary page URL, direct download URL, license URL, + outputLicense, 명시적 Changes**가 있어야 한다. 다른 항목에 공통 URL이 남아도 누락을 감추지 못한다. + 8개 항목×6개 필드 제거와 public/dist 동시 metadata 변조를 build verifier에서 거부한다. +11. CHANGELOG와 본 문서에 실제 수정/검증을 반영했다. **109 WAV 재생성 0 / 바이트 변경 0**이다. + +### 새 RED → GREEN 원문 + +| 계약 | RED | GREEN | +| --- | --- | --- | +| 진행률·330점·보너스·무응답·종료/완료 문구·README | [01 RED](evidence-v0.2.3/review-fixes/01-ui-RED.log) | [01 GREEN-02: 27 통과](evidence-v0.2.3/review-fixes/01-ui-GREEN-02.log) | +| 실제 desktop/mobile 진행률·320/360px 어절·overflow | [02 RED: 4 실패](evidence-v0.2.3/review-fixes/02-browser-RED.log) | [02 GREEN: 4 통과](evidence-v0.2.3/review-fixes/02-browser-GREEN.log) | +| manifest/폴더 동시 축약·추가/누락 | [03 RED](evidence-v0.2.3/review-fixes/03-voice-inventory-RED.log) | [03 GREEN](evidence-v0.2.3/review-fixes/03-voice-inventory-GREEN.log) | +| durable 승인 원본 메타데이터 | [04 RED](evidence-v0.2.3/review-fixes/04-source-plan-RED.log) | [04 GREEN](evidence-v0.2.3/review-fixes/04-source-plan-GREEN.log) | +| 첫 변환 전 전수 원본 검사 | [05 RED](evidence-v0.2.3/review-fixes/05-source-guard-RED.log) | [05 GREEN](evidence-v0.2.3/review-fixes/05-source-guard-GREEN.log) | +| staging·notice·symlink·검증·원자 교환·실패/중단 보존 | [06 RED](evidence-v0.2.3/review-fixes/06-atomic-RED.log) | [06 GREEN](evidence-v0.2.3/review-fixes/06-atomic-GREEN.log) | +| notice 동시 발행 경로/UI 링크/항목 내용 | [07 RED](evidence-v0.2.3/review-fixes/07-notice-path-RED.log) | [07 GREEN](evidence-v0.2.3/review-fixes/07-notice-path-GREEN.log) | +| 항목별 필수 notice 강제 | [08 RED](evidence-v0.2.3/review-fixes/08-notice-verifier-RED.log) | [08–09 GREEN: 27 통과](evidence-v0.2.3/review-fixes/08-09-build-GREEN.log) | +| manifest 사본 동시 출처/라이선스/변경 변조 | [09 RED](evidence-v0.2.3/review-fixes/09-build-plan-RED.log) | [08–09 GREEN](evidence-v0.2.3/review-fixes/08-09-build-GREEN.log) | + +RED 로그는 exit 1, 표에 연결한 GREEN은 exit 0이다. 필터 실행의 skipped는 최종 전체 실행과 구분한다. +`01-ui-GREEN.log`는 이름과 달리 **exit 1**인 중간 실행이다. 새 계약은 통과했지만 기존 통합 테스트의 +이전 제목 regex가 남아 실패했고, 그것을 고친 `01-ui-GREEN-02.log`가 실제 GREEN이다. 실패 로그도 보존했다. + +초기 RED/GREEN browser PNG를 사후 픽셀 분석한 [RED](evidence-v0.2.3/review-fixes/02-progress-pixels-RED.log) / +[GREEN](evidence-v0.2.3/review-fixes/02-progress-pixels-GREEN.log)도 보존했다. desktop 1096px 막대는 +365→731→1096px, mobile 320px 막대는 107→213→320px 채워졌다. 같은 픽셀 검사를 최종 브라우저 테스트에도 넣었다. +추가 동시 읽기/미지원 교환 검증은 [10-atomic-additional](evidence-v0.2.3/review-fixes/10-atomic-additional.log)에 있다. + +### 리뷰 수정 후 전체 검증 + +| 실행 | 실제 결과 | 원문 | +| --- | --- | --- | +| npm run lint | PASS, exit 0 | [lint](evidence-v0.2.3/review-fixes/11-lint.log) | +| npm test | 13 files / **118 passed**, skip 0, exit 0 | [unit](evidence-v0.2.3/review-fixes/11-unit.log) | +| python3 -m unittest discover -s tests/python -v | **32 passed** (neural 18 + ambience 14), exit 0 | [Python](evidence-v0.2.3/review-fixes/11-python.log) | +| npm run build | PASS, 101 voice + 8 ambience + runtime/ambience notices, exit 0 | [build](evidence-v0.2.3/review-fixes/11-build.log) | +| npm audit --json | **취약점 0**, exit 0 | [audit](evidence-v0.2.3/review-fixes/npm-audit.json) | +| sandboxed system Chrome desktop/mobile | **30 passed / 0 failed / 0 skipped / 0 flaky**, 4.0분, exit 0 | [browser log](evidence-v0.2.3/review-fixes/12-browser.log), [JSON](evidence-v0.2.3/review-fixes/browser-results.json) | + +[보존 검사](evidence-v0.2.3/review-fixes/preservation.json): 리뷰 시작 시점의 WAV 109개와 이전 `.agent` 파일 +268개 모두 해시 동일하다. Git 추적된 v0.1/v0.1.1 `.agent` 파일 180개도 HEAD와 동일하다. +[원본 재확인](evidence-v0.2.3/review-fixes/source-reverification.json): 승인 원본 8개와 배포 bundle을 검증했고 변환은 호출하지 않았다. + +Chrome **146.0.7680.80**, desktop 1280×1000/mobile 360×800에 추가 320px/360px copy 검사를 수행했다. +실행 중인 이 테스트의 Chrome 프로세스 20개에 `--no-sandbox`가 없음을 [실제 process 기록](evidence-v0.2.3/review-fixes/chrome-sandbox.json)으로 확인했다. +원래 AudioContext/BufferSource를 실행한 109 WAV 해시·decode 검사와 8개 실제 ambience loop, 오류 재시도, +키보드/axe/외부 요청/콘솔 검사에 새 진행률 픽셀·한국어 어절 검사를 더했다. +[desktop 오디오](evidence-v0.2.3/review-fixes/desktop-audio-integrity.json), +[mobile 오디오](evidence-v0.2.3/review-fixes/mobile-audio-integrity.json), +[desktop runtime](evidence-v0.2.3/review-fixes/desktop-runtime-audit.json), +[mobile runtime](evidence-v0.2.3/review-fixes/mobile-runtime-audit.json). + +| 최종 화면 | Desktop | Mobile | +| --- | --- | --- | +| 시작 | [PNG](evidence-v0.2.3/review-fixes/screenshots/desktop-start.png) | [PNG](evidence-v0.2.3/review-fixes/screenshots/mobile-start.png) | +| 게임 | [PNG](evidence-v0.2.3/review-fixes/screenshots/desktop-game.png) | [PNG](evidence-v0.2.3/review-fixes/screenshots/mobile-game.png) | +| 330점 정상 결과 | [PNG](evidence-v0.2.3/review-fixes/screenshots/desktop-normal-results.png) | [PNG](evidence-v0.2.3/review-fixes/screenshots/mobile-normal-results.png) | +| 무응답 중도 종료 | [PNG](evidence-v0.2.3/review-fixes/screenshots/desktop-early-exit.png) | [PNG](evidence-v0.2.3/review-fixes/screenshots/mobile-early-exit.png) | + +### 리뷰 후에도 남는 한계 + +**사람이 여덟 현장음 구간을 청취하여 음악/우연 대화와 적절성을 판단하는 인수는 수행하지 않았다.** +자동 PCM/Chrome 재생 검증을 인간 청취 승인으로 주장하지 않는다. mobile은 Chrome viewport/touch emulation이며 +실제 Android/iOS/Safari, 물리적 음압 또는 임상 효과 검증은 아니다. + +원자 commit 전 실패/중단은 이전 디렉터리를 보존하며 commit 뒤에는 완성된 새 트리가 공개된다. +강제 kill은 숨은 stage를 남길 수 있다. 전원 손실 내구성이나 여러 HTTP 요청에 걸친 snapshot 격리는 검증하지 않았다. +로컬 build/preview만 확인했으며 사용자 지시대로 Git commit/push/merge/tag 및 배포는 하지 않았다. + + +## 최종 privacy excerpt refinement — 2026-10-14 + +**요청한 ASR-empty 조건은 아직 충족하지 못했다.** 지정된 새 구간과 provenance, generator, +전체 원자 재생성은 반영했지만 최종 normalized WAV의 ASR에 market/cafe candidate segments가 남았다. +해당 acceptance test를 완화하거나 skip하지 않았으며 현재 `npm test`는 **123 통과 / 1 실패**다. +정확한 이전 ASR 설정이 제공되지 않아 Neo의 scan과 동등한 방법을 재현했다고 주장하지 않는다. +commit/push/merge/tag/deploy는 하지 않았다. + +### 변경과 원자 재생성 + +- `.agent/AMBIENCE-SOURCES-v0.2.3.json`의 8개 항목에 `selectedSegmentStartSeconds`를 추가했다. + street=35, mall=36, theater=45, department=90, market=60, subway=65, cafe=180, rain=180. + 원본 hash/bytes/직접 미디어 길이/권리 정보는 바꾸지 않았다. generator는 별도 시작점 map을 제거하고 + 계획 값을 읽는다. 누락/비수치/bool/비유한값/음수/12초 범위 초과는 첫 변환 전에 실패한다. +- 임의의 fractional start와 정확한 source 끝 경계를 주는 테스트로 hidden hardcoded map이 없음을 확인한다. + 성공/실패 시 계획을 변경하지 않고 manifest의 선택값/실제 conversion 시작점/notice 구간이 일치해야 한다. + build verifier는 public/dist manifest와 notice를 함께 변조한 시작점·길이도 거부한다. +- 첫 변환 전에 8개 원본 SHA-256·bytes·ffprobe duration을 전수 대조했고 generator의 preflight도 다시 수행했다. + 같은 파일시스템 staging에서 전체 8 WAV·manifest·notice를 검증한 뒤 원자 디렉터리 교환했다. + [재생성 실측](evidence-v0.2.3/privacy-screening/regeneration.json), [성공 로그](evidence-v0.2.3/privacy-screening/09-regeneration.log). +- 실제 Ogg 입력 seek에서 market은 287,958, cafe는 287,809 frame으로 짧아져 최초 생성이 중단됐다. + output-side seek 재시도만으로 cafe는 해결되지 않았다. 각 실패와 [기존 bundle 보존](evidence-v0.2.3/privacy-screening/failed-regeneration-preservation.json)을 남겼다. + 최종 fallback은 처음부터 디코드한 24kHz PCM에서 승인 시작 sample부터 288,000개를 선택하고 + sample 수로 output PTS를 재설정한다. 패딩/시간 변형 없이 실제 `seekMethod`를 manifest에 기록한다. + 진짜 원본 부족은 여전히 거부한다. [진단](evidence-v0.2.3/privacy-screening/seek-diagnostics.json), + [추가 진단](evidence-v0.2.3/privacy-screening/seek-diagnostics-followup.json). +- 기존 입력 seek가 완전한 다섯 WAV는 기존 byte를 재현했다. 모든 최종 WAV는 12초/24kHz/mono/PCM16, + 576,044 bytes이며 양끝 50ms fade와 동일 bounded normalization을 유지한다. + +| 최종 자산 | 원본 구간 | RMS | peak | SHA-256 | +| --- | --- | --- | --- | --- | +| street.wav | 35–47s | 0.07999756 | 0.39675903 | `a8bffa201b174618955bc51b860167169125304811aabe2086b0bb35b06c3ae1` | +| mall.wav | 36–48s | 0.07999755 | 0.71917725 | `680a769940c08f0d12c6c954c08366598dd8b5745e276f39c82b10d1a88261a1` | +| theater.wav | 45–57s | 0.07999757 | 0.49508667 | `2d6a444fb7874cdf6b2d8a741a69175299b112eb66834912c025437d8277d635` | +| department.wav | 90–102s | 0.07999758 | 0.47497559 | `aa43f3d1d3e7c2b1f8ace24ecbda45d0ea3a031db941c39506dc6c1665b8efa7` | +| market.wav | 60–72s | 0.07999756 | 0.50723267 | `7a7a980845a4aade2a7e8a108eae746220a4688e92792ee93d3deb76b2a762f6` | +| subway.wav | 65–77s | 0.07999755 | 0.42529297 | `9faf70b68617d267b367a0f3692ed90015458543ab4b0844f6c704e6a724728f` | +| cafe.wav | 180–192s | 0.07999757 | 0.44708252 | `802a956e91b85a2fdd0e1f161d75bfada7a53499bcb57ba7f578411480ded216` | +| rain.wav | 180–192s | 0.01138463 | 0.10241699 | `f4315084e820f742b0709de5bb0d1abd3d5af1730620e08c2948b70347356dd9` | + +위 표가 최신 바이트다. 문서 상단의 최초 구현 표와 앞선 리뷰 기록은 당시 값으로 그대로 보존했다. + +### ASR 증거와 미충족 조건 + +[final-asr.json](evidence-v0.2.3/privacy-screening/final-asr.json)은 **정확한 최종 8 WAV 전수 검사**다. +faster-whisper 1.2.1, Systran faster-whisper-tiny multilingual revision +`d90ca5fe260221311c53c58e660288d3deb8d356`, CPU int8/4 threads, beam 5, random seed 0, +자동 language detection, package 기본 Silero VAD/decoding threshold를 사용했다. +모델/VAD 파일 해시·의존성 버전·전체 설정·변환 옵션·각 WAV/source hash와 반환 segment/info를 보존했다. +VAD의 무한대 기본 옵션은 JSON 호환 `{"nonFiniteFloat":"Infinity"}`로 의미를 명시해 저장했다. + +| 환경 | VAD 활성 최종 segment 수 | 별도 VAD 미사용 segment 수 | +| --- | --- | --- | +| street | 0 | 0 | +| mall | 0 | 1 | +| theater | 0 | 1 | +| department | 0 | 1 | +| market | 3 | 1 | +| subway | 0 | 1 | +| cafe | 1 | 1 | +| rain | 0 | 1 | + +mall은 비었지만 **market 3개, cafe 1개가 남아 `requiredEmptyPassed: false`**다. +[별도 VAD 미사용 결과](evidence-v0.2.3/privacy-screening/no-vad-asr.json)는 세 변경 구간 모두에서 text가 나왔다. +VAD 비교는 방법의 영향을 확인하기 위한 추가 검사이며 이전 설정과 같다는 증거는 없다. +threshold 튜닝이나 반환 segment 삭제로 조건을 충족시키지 않았다. 원본 구간을 검사한 scan의 빈 결과를 +정규화된 최종 WAV의 빈 결과로 치환하지 않는다. 정확한 Neo 명령/설정 확인을 요청했으며 최종 파생본 재검토가 필요하다. + +**Tiny-model ASR은 screening signal일 뿐, 사람의 청취 인수나 법적/개인정보 clearance가 아니다.** +빈 segment도 말소리/음악/개인 대화의 부재를 증명하지 않으며 출력 text/language도 환각일 수 있다. +충실한 transcript나 실제 화자의 발언이라고 주장하지 않는다. 사람의 최종 청취 인수는 미실행이다. + +[기존 후보 scan](evidence-v0.2.3/privacy-screening/candidate-scan-original.json)과 +[기존 파생본 ASR](evidence-v0.2.3/privacy-screening/prior-derivatives-asr-original.json)을 `/tmp` 원문 그대로 보존했다. +[provenance](evidence-v0.2.3/privacy-screening/earlier-asr-provenance.json)는 원래 경로·크기·hash·수정 시각, +Neo 제공이라는 맥락, 당시 계획/manifest와의 연관을 기록한다. raw JSON 자체에는 모델 revision/decoding 설정/ +입력 hash가 없어 독립적으로 검증한 연결이라고 주장하지 않는다. 휴리스틱 text를 편집하거나 전사로 확정하지 않았다. + +### 새 RED/GREEN과 실패 기록 + +모든 새 기록은 `evidence-v0.2.3/privacy-screening/`에 있다. 이전 로그를 덮어쓰지 않았다. + +| 계약/실행 | RED/실패 | GREEN/현재 결과 | +| --- | --- | --- | +| 계획 provenance·manifest·notice·build 변조 | [01 RED](evidence-v0.2.3/privacy-screening/01-provenance-RED.log): 4 실패 | [11 GREEN](evidence-v0.2.3/privacy-screening/11-provenance-GREEN.log): 관련 24 통과 | +| plan 직접 사용·immutability·범위 검사 | [02 RED](evidence-v0.2.3/privacy-screening/02-generator-RED.log) | [02 GREEN](evidence-v0.2.3/privacy-screening/02-generator-GREEN.log): 17 통과 | +| served manifest·notice·plan 일치 | [03 browser RED](evidence-v0.2.3/privacy-screening/03-browser-RED.log): desktop/mobile 실패 | 아래 전체 Chrome 결과 | +| ASR/바이트 보존 evidence 계약 | [04 RED](evidence-v0.2.3/privacy-screening/04-screening-RED.log) | 보존 PASS; ASR-empty는 여전히 FAIL | +| 짧은 seek와 full decode fallback | [06 RED](evidence-v0.2.3/privacy-screening/06-seek-RED.log), [08 RED](evidence-v0.2.3/privacy-screening/08-sample-trim-RED.log) | [08 GREEN](evidence-v0.2.3/privacy-screening/08-sample-trim-GREEN.log) | +| 실제 변환의 짧은 PCM | [05 실패](evidence-v0.2.3/privacy-screening/05-regeneration.log), [07 실패](evidence-v0.2.3/privacy-screening/07-regeneration.log) | [09 성공](evidence-v0.2.3/privacy-screening/09-regeneration.log) | +| ASR exact results·zero-segment 조건 | [10 ungated 실패](evidence-v0.2.3/privacy-screening/10-final-asr.log), [13 criterion RED](evidence-v0.2.3/privacy-screening/13-screening-criterion-RED.log) | [16 VAD 결과](evidence-v0.2.3/privacy-screening/16-final-asr-vad-json.log): criterion FAIL | + +`14-final-asr-vad.log`는 ASR을 완료했지만 VAD 기본 Infinity를 strict JSON으로 저장하다 실패한 중간 실행이다. +그 로그·초기 스크립트·빈 출력 artifact도 보존하고, tagged value 직렬화로 다시 실행한 16번 결과가 최종 JSON이다. +ASR가 실패한 사실과 JSON 기록 문제를 분리한다. + +### 최종 검증과 보존 + +| 검사 | 실제 결과 | 근거 | +| --- | --- | --- | +| lint | PASS | [18-final-lint](evidence-v0.2.3/privacy-screening/18-final-lint.log) | +| 모든 unit tests | **123 PASS / 1 FAIL**, skip 0; 유일한 실패는 ASR-empty acceptance | [17-unit](evidence-v0.2.3/privacy-screening/17-unit.log) | +| 모든 Python tests | **36 PASS**, skip 0 | [12-python](evidence-v0.2.3/privacy-screening/12-python.log) | +| build | PASS, 101 voice + 8 ambience 및 notices | [12-build](evidence-v0.2.3/privacy-screening/12-build.log) | +| npm audit | **취약점 0**, exit 0 | [audit JSON](evidence-v0.2.3/privacy-screening/npm-audit.json) | + +[보존 전수 검사](evidence-v0.2.3/privacy-screening/preservation.json): **101 voice + 다섯 ambience WAV 바이트 동일**, +변경 WAV는 mall/market/cafe뿐이다. 시작 당시 399 `.agent` 파일 중 요청으로 갱신한 plan/RESULT를 제외한 +**397개는 SHA-256 동일**하다. HEAD에 추적된 과거 `.agent` 180개도 Git blob hash가 같다. +계획/manifest/notice/RESULT의 변경 전 사본과 모든 새 실패/성공 로그를 별도로 보존했다. + + +최종 sandboxed system Chrome **30 PASS / 0 FAIL / 0 SKIP / 0 FLAKY**, 4.0분: +[실행 로그](evidence-v0.2.3/privacy-screening/15-browser.log), +[JSON 결과](evidence-v0.2.3/privacy-screening/browser-results.json). +Chrome 146.0.7680.80, desktop 1280×1000 / mobile 360×800 touch emulation에서 +최종 served manifest/notice의 승인 구간을 대조하고 109개 WAV response hash·실제 decode·RMS·peak를 확인했다. +[desktop 무결성](evidence-v0.2.3/privacy-screening/desktop-audio-integrity.json), +[mobile 무결성](evidence-v0.2.3/privacy-screening/mobile-audio-integrity.json). +SHA-256/bytes는 정확히 일치하며 Chrome float decode와 PCM/32768 실측 RMS·peak의 차이는 +[독립 대조](evidence-v0.2.3/privacy-screening/browser-integrity-summary.json)에서 PCM16 한 step 이내다. +두 기기의 정상 요청에서 외부 요청/console/page 오류/failed request는 모두 0이다. +실제 8 ambience loop·재시도·UI·axe 검증과 PNG는 새 `browser-final/` 아래 보존했다. +이 suite runner의 Chrome 자손 process 21개에서 `--no-sandbox` token이 없음을 +[process 근거](evidence-v0.2.3/privacy-screening/chrome-sandbox.json)로 확인했다. + +**인계:** 요청한 세 시작점은 구현했으나 market/cafe의 ASR-empty 요구가 미충족이므로 최종 인수 완료가 아니다. +정확한 이전 ASR 설정/명령을 확보해 방법 차이를 확인하고 최종 WAV를 검토해야 한다. +기본 threshold와 반환 결과를 조작하지 않았다. 사람의 청취 인수·법적/privacy clearance는 수행하지 않았고, +원격 전송·Git commit/push/merge/tag/deploy도 하지 않았다. 역사 evidence와 보호 WAV는 그대로다. diff --git a/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/before-source-plan.json b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/before-source-plan.json new file mode 100644 index 0000000..7281d90 --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/before-source-plan.json @@ -0,0 +1,180 @@ +{ + "version": "0.2.3", + "policy": { + "runtime": "All ambience files are bundled same-origin static assets; no runtime requests to source sites.", + "conversion": "Select a representative segment, remove unsuitable intelligible/incidental content where practical, trim, fade for loop safety, downmix, resample and normalize to 24000 Hz mono PCM16 WAV.", + "rights": "CC0/public-domain assets retain suggested credits; CC BY and CC BY-SA derivatives retain exact attribution, modification notice and license. The proprietary project does not claim exclusive rights over third-party recordings.", + "verified": "All eight approved direct-media files were verified on 2026-10-14 by SHA-256, byte count, ffprobe and full FFmpeg decode. The expected hashes/bytes are immutable release inputs, never learned or updated by the converter.", + "durationFields": "directMediaDurationSeconds is ffprobe format.duration of the exact directUrl bytes (including Freesound preview MP3s), not a rounded primary-page recording duration. Output duration and conversion.durationSeconds describe the 12-second WAV excerpt.", + "segmentSelection": "selectedSegmentStartSeconds is immutable per-asset release provenance: the start in exact direct-media seconds of the 12-second derivative. The generator reads it without a separate start map, inference or mutation and rejects segments outside directMediaDurationSeconds before conversion.", + "privacyScreening": "The mall 36–48s, market 60–72s and cafe 180–192s selections follow Neo's tiny multilingual ASR candidate scan. ASR is only a screening signal, not a faithful transcript, human listening acceptance or legal/privacy clearance. Exact final-WAV screening is recorded in .agent/evidence-v0.2.3/privacy-screening/final-asr.json." + }, + "assets": [ + { + "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 + }, + { + "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 + }, + { + "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 + }, + { + "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 + }, + { + "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": 60 + }, + { + "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 + }, + { + "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": 180 + }, + { + "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 + } + ], + "releaseRisks": [ + "Audition chosen excerpts to avoid music and unnecessarily intelligible bystander speech.", + "The market derivative must stay CC BY-SA 4.0 with source, creator, change notice and license link.", + "The subway derivative needs CC BY 4.0 attribution and change notice.", + "Freesound direct URLs are preview MP3 files; preserve local source hashes and page/license evidence." + ] +} diff --git a/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/browser-final/.last-run.json b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/browser-final/.last-run.json new file mode 100644 index 0000000..cbcc1fb --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/browser-final/.last-run.json @@ -0,0 +1,4 @@ +{ + "status": "passed", + "failedTests": [] +} \ No newline at end of file diff --git a/.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 b/.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 new file mode 100644 index 0000000..b566f7b --- /dev/null +++ b/.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 @@ -0,0 +1,1098 @@ +{ + "chrome": "146.0.7680.80", + "external": [], + "errors": [], + "failed": [], + "files": [ + { + "url": "http://127.0.0.1:4173/audio/intro.wav?v=0.2.3", + "sha256": "90d9f46e6e3f9c8a0c1a781096df54d7809ef4ad38b289508ef7b8c0411465ce", + "bytes": 338732, + "sampleRate": 24000, + "channels": 1, + "duration": 7.056, + "rms": 0.10000144992850359, + "peak": 0.4998626708984375 + }, + { + "url": "http://127.0.0.1:4173/ambience/street.wav?v=0.2.3", + "sha256": "a8bffa201b174618955bc51b860167169125304811aabe2086b0bb35b06c3ae1", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.07999880181401388, + "peak": 0.3967711329460144 + }, + { + "url": "http://127.0.0.1:4173/ambience/mall.wav?v=0.2.3", + "sha256": "680a769940c08f0d12c6c954c08366598dd8b5745e276f39c82b10d1a88261a1", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.07999875178666456, + "peak": 0.7191991806030273 + }, + { + "url": "http://127.0.0.1:4173/ambience/theater.wav?v=0.2.3", + "sha256": "2d6a444fb7874cdf6b2d8a741a69175299b112eb66834912c025437d8277d635", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.07999878601263052, + "peak": 0.495086669921875 + }, + { + "url": "http://127.0.0.1:4173/ambience/department.wav?v=0.2.3", + "sha256": "aa43f3d1d3e7c2b1f8ace24ecbda45d0ea3a031db941c39506dc6c1665b8efa7", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.07999879026023995, + "peak": 0.4749900698661804 + }, + { + "url": "http://127.0.0.1:4173/ambience/market.wav?v=0.2.3", + "sha256": "d6f73d86aea98b83e2995e61baaa7315a0ea7adeebc093769d76e1569b207658", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.04309922340528536, + "peak": 0.8500015139579773 + }, + { + "url": "http://127.0.0.1:4173/ambience/subway.wav?v=0.2.3", + "sha256": "9faf70b68617d267b367a0f3692ed90015458543ab4b0844f6c704e6a724728f", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.079998775670051, + "peak": 0.42530596256256104 + }, + { + "url": "http://127.0.0.1:4173/ambience/cafe.wav?v=0.2.3", + "sha256": "6853c121104940041c268a2891eadae032c17aa22b4c3b3ddfbc025262434995", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.07999875794689627, + "peak": 0.4057435691356659 + }, + { + "url": "http://127.0.0.1:4173/ambience/rain.wav?v=0.2.3", + "sha256": "f4315084e820f742b0709de5bb0d1abd3d5af1730620e08c2948b70347356dd9", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.011384798571746246, + "peak": 0.1024169921875 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-apple.wav?v=0.2.3", + "sha256": "cb7da4e9a1288cac64d168b241f27d7d2bc2dfecace58744f9bbf2792dfad04e", + "bytes": 397484, + "sampleRate": 24000, + "channels": 1, + "duration": 8.28, + "rms": 0.10000142448574952, + "peak": 0.6414685249328613 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-market.wav?v=0.2.3", + "sha256": "b8d25b867497adcd0fe7c8b6a8a8d2e7a52965956738a83e53f58735708773f9", + "bytes": 405548, + "sampleRate": 24000, + "channels": 1, + "duration": 8.448, + "rms": 0.10000141405173993, + "peak": 0.491485595703125 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-sound.wav?v=0.2.3", + "sha256": "34e4d9758d2ed448646fda364610e34779c84794403d9051ab3d8c1d33e2c80c", + "bytes": 184364, + "sampleRate": 24000, + "channels": 1, + "duration": 3.84, + "rms": 0.10000138709171018, + "peak": 0.386322021484375 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-furniture.wav?v=0.2.3", + "sha256": "b45b1afc8d9b534ff3e0a2a2ecb99efc1f4e40d41f89f55c4ed8ba94ad6d76d4", + "bytes": 354860, + "sampleRate": 24000, + "channels": 1, + "duration": 7.392, + "rms": 0.1000015072973225, + "peak": 0.5576171875 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-market.wav?v=0.2.3", + "sha256": "cefa0e95649ea6bd1df4c8dfccd2b74b4f4c028714420ce1087b61db2f2a8d47", + "bytes": 248876, + "sampleRate": 24000, + "channels": 1, + "duration": 5.184, + "rms": 0.10000142548167161, + "peak": 0.4857020676136017 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-oil.wav?v=0.2.3", + "sha256": "f6eff0cdddcad9790351491e60c53cb2a70d222033a583652f2de0b8cd6abcc7", + "bytes": 406700, + "sampleRate": 24000, + "channels": 1, + "duration": 8.472, + "rms": 0.10000139122025363, + "peak": 0.470794677734375 + }, + { + "url": "http://127.0.0.1:4173/audio/first-hat.wav?v=0.2.3", + "sha256": "17c8cde90567e7574b0c0702663bd70713054089ee920241b5444d9b7869eef5", + "bytes": 357164, + "sampleRate": 24000, + "channels": 1, + "duration": 7.44, + "rms": 0.10000152904790521, + "peak": 0.5312662124633789 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-furniture.wav?v=0.2.3", + "sha256": "af82e03b686635c3356e706fe5b05c1231aeaaeab33f275aa5b8714988c65d43", + "bytes": 241964, + "sampleRate": 24000, + "channels": 1, + "duration": 5.04, + "rms": 0.10000137346142077, + "peak": 0.4852443039417267 + }, + { + "url": "http://127.0.0.1:4173/audio/password-sound.wav?v=0.2.3", + "sha256": "044aafff08a19e39f21e58b963644715a987cd155896998769ef8e9ce6449628", + "bytes": 236204, + "sampleRate": 24000, + "channels": 1, + "duration": 4.92, + "rms": 0.10000156641621728, + "peak": 0.4621112644672394 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-hat.wav?v=0.2.3", + "sha256": "f9f98c91cfbcfcb106eef7d5d3795a9cf3c3aab7e19a60f13d7dffe284d19f86", + "bytes": 398636, + "sampleRate": 24000, + "channels": 1, + "duration": 8.304, + "rms": 0.10000141071544869, + "peak": 0.470977783203125 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-apple.wav?v=0.2.3", + "sha256": "7c8f413f4b7e164f090e508ba090448f1376c6012649bbb6a917d45851313883", + "bytes": 188972, + "sampleRate": 24000, + "channels": 1, + "duration": 3.936, + "rms": 0.10000130469939268, + "peak": 0.401641845703125 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-sea.wav?v=0.2.3", + "sha256": "db2f235bee26ac804b5362e8e013b8f40c8da24fd3a34e0fb3b43c6d264feb36", + "bytes": 382508, + "sampleRate": 24000, + "channels": 1, + "duration": 7.968, + "rms": 0.10000145042993039, + "peak": 0.6843470335006714 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-furniture.wav?v=0.2.3", + "sha256": "442bdcb956f120c270e1f321feae0415c897de0183e468980fcc119b898b2a67", + "bytes": 403244, + "sampleRate": 24000, + "channels": 1, + "duration": 8.4, + "rms": 0.10000149119200713, + "peak": 0.5619068145751953 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-sea.wav?v=0.2.3", + "sha256": "b6dbe0af143ea775f05bd59a3d6af348bcc770ab378ac91ea75a56e06c326edf", + "bytes": 346796, + "sampleRate": 24000, + "channels": 1, + "duration": 7.224, + "rms": 0.10000144532868623, + "peak": 0.56494140625 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-sound.wav?v=0.2.3", + "sha256": "e9d636ff7f4777f38b1ff15bebdcec6fbde95b4b4b05625a7415b4cfa0025b59", + "bytes": 395180, + "sampleRate": 24000, + "channels": 1, + "duration": 8.232, + "rms": 0.10000164955559301, + "peak": 0.6114688515663147 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-apple.wav?v=0.2.3", + "sha256": "3ef42e276ff3500c3e197d149f29f79d6a0c1d5516ed1d5a2c57210333fded9c", + "bytes": 246572, + "sampleRate": 24000, + "channels": 1, + "duration": 5.136, + "rms": 0.10000144279302126, + "peak": 0.4701681435108185 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-market.wav?v=0.2.3", + "sha256": "356af25332bf2000ed349671f3ff39767929e1f4599af622c021f907d11fb7bf", + "bytes": 194732, + "sampleRate": 24000, + "channels": 1, + "duration": 4.056, + "rms": 0.10000132629820717, + "peak": 0.4022216796875 + }, + { + "url": "http://127.0.0.1:4173/audio/message-sea.wav?v=0.2.3", + "sha256": "28a461fbe03bffe2560030dea8b60715f7c0fe262dcf85b5b7f7daf483836382", + "bytes": 517292, + "sampleRate": 24000, + "channels": 1, + "duration": 10.776, + "rms": 0.10000130584401576, + "peak": 0.53521728515625 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-umbrella.wav?v=0.2.3", + "sha256": "c8988e604ba05d52597e561389541e8f9cda86e052279f1862bbf8399ead314e", + "bytes": 403244, + "sampleRate": 24000, + "channels": 1, + "duration": 8.4, + "rms": 0.10000148262660476, + "peak": 0.557830810546875 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-hat.wav?v=0.2.3", + "sha256": "308278ec2bd27d4224976a55632d1f7fa1edabb0792126d9d858a699c287aee4", + "bytes": 245420, + "sampleRate": 24000, + "channels": 1, + "duration": 5.112, + "rms": 0.10000140702099906, + "peak": 0.4498428404331207 + }, + { + "url": "http://127.0.0.1:4173/audio/password-furniture.wav?v=0.2.3", + "sha256": "fb2b631dd4e12120d08a84cce6450f9cd9cd68105d13d7001d808e7deaa1df4a", + "bytes": 233900, + "sampleRate": 24000, + "channels": 1, + "duration": 4.872, + "rms": 0.10000146718546903, + "peak": 0.4836573302745819 + }, + { + "url": "http://127.0.0.1:4173/audio/first-market.wav?v=0.2.3", + "sha256": "1e00b8f70a796cdebb0feb00c605fece7488b06915e6e036f54206f05e201e0c", + "bytes": 359468, + "sampleRate": 24000, + "channels": 1, + "duration": 7.488, + "rms": 0.10000152633991319, + "peak": 0.6390880942344666 + }, + { + "url": "http://127.0.0.1:4173/audio/first-meat.wav?v=0.2.3", + "sha256": "f51a37c1722fef581f7d642a4dcae7fcb9953b3c318dce971bf616cd1a81fecc", + "bytes": 345644, + "sampleRate": 24000, + "channels": 1, + "duration": 7.2, + "rms": 0.10000152244411063, + "peak": 0.5131382346153259 + }, + { + "url": "http://127.0.0.1:4173/audio/password-sea.wav?v=0.2.3", + "sha256": "03f45b8cb5b3dc72faf5c6e3d0e2a10cea6b60301ea400d0a4453596d2f0b337", + "bytes": 232748, + "sampleRate": 24000, + "channels": 1, + "duration": 4.848, + "rms": 0.10000144821976133, + "peak": 0.5339213013648987 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-sound.wav?v=0.2.3", + "sha256": "98387ccc7aab566f6487d4c250b2128082cc527e013a6f7b7bc4d0266ac295df", + "bytes": 394028, + "sampleRate": 24000, + "channels": 1, + "duration": 8.208, + "rms": 0.10000158053850364, + "peak": 0.5377971529960632 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-umbrella.wav?v=0.2.3", + "sha256": "5e59ef39113c3d5e106862356d715f4cef2862ef8ee02654a97e532675c1ac6d", + "bytes": 410156, + "sampleRate": 24000, + "channels": 1, + "duration": 8.544, + "rms": 0.10000147499132286, + "peak": 0.6748558282852173 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-hat.wav?v=0.2.3", + "sha256": "b01ef9762ac84e3eb757243bc9286c62f7d45444a821ae35ac36a8b095e1598a", + "bytes": 353708, + "sampleRate": 24000, + "channels": 1, + "duration": 7.368, + "rms": 0.10000153089787694, + "peak": 0.555206298828125 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-market.wav?v=0.2.3", + "sha256": "d89792da51c83ac49d27e55aa6d822a338899a5ee487b34b552748201e1522f6", + "bytes": 398636, + "sampleRate": 24000, + "channels": 1, + "duration": 8.304, + "rms": 0.10000149710778367, + "peak": 0.5728324055671692 + }, + { + "url": "http://127.0.0.1:4173/audio/password-umbrella.wav?v=0.2.3", + "sha256": "ab3ca6398c879971dc793eb25b472fcc0db72d76e386f11ef4d32c639f37c69d", + "bytes": 239660, + "sampleRate": 24000, + "channels": 1, + "duration": 4.992, + "rms": 0.100001426973271, + "peak": 0.4776757061481476 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-meat.wav?v=0.2.3", + "sha256": "48e91b3932d3798e852041a854b3ee08c72127e092c62083a47af6b99adff241", + "bytes": 403244, + "sampleRate": 24000, + "channels": 1, + "duration": 8.4, + "rms": 0.10000140336390047, + "peak": 0.481536865234375 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-hat.wav?v=0.2.3", + "sha256": "6e089a42fd7e65e82eec7186d369c926fb7fdac794365b2bd7658822fd92437c", + "bytes": 396332, + "sampleRate": 24000, + "channels": 1, + "duration": 8.256, + "rms": 0.1000015662548192, + "peak": 0.616748571395874 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-sound.wav?v=0.2.3", + "sha256": "4d00aa6114327f450a00dacbc7e7b572ebf1de4ce9dc2fe4b5505766cca71ce9", + "bytes": 353708, + "sampleRate": 24000, + "channels": 1, + "duration": 7.368, + "rms": 0.10000162019345048, + "peak": 0.5348368883132935 + }, + { + "url": "http://127.0.0.1:4173/audio/last-oil.wav?v=0.2.3", + "sha256": "b5ce34950b8b31b1baf6ce55410797f0d8aa5478a670d6eace87cf76d134d6d3", + "bytes": 337580, + "sampleRate": 24000, + "channels": 1, + "duration": 7.032, + "rms": 0.10000149980584365, + "peak": 0.55706787109375 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-sea.wav?v=0.2.3", + "sha256": "47aa31d757c9fb49c9b53a1c052d90a5ced4be57549d649850d9b48f8864045b", + "bytes": 191276, + "sampleRate": 24000, + "channels": 1, + "duration": 3.984, + "rms": 0.10000129182106483, + "peak": 0.388702392578125 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-sound.wav?v=0.2.3", + "sha256": "659eb0e2b06e6b165b46744769743e032e2282519f8486c57bc45e0f7d07a069", + "bytes": 240812, + "sampleRate": 24000, + "channels": 1, + "duration": 5.016, + "rms": 0.10000152909529536, + "peak": 0.45481735467910767 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-meat.wav?v=0.2.3", + "sha256": "6599d2fac73ea616a793151b4ce6f51af673988d630bac6219a77e78ae6cb34e", + "bytes": 380204, + "sampleRate": 24000, + "channels": 1, + "duration": 7.92, + "rms": 0.1000016061190976, + "peak": 0.5921201109886169 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-market.wav?v=0.2.3", + "sha256": "c855b449e0d4ace74681bfe68e5e7f0b063568827ae872017234dbe8ae119e4c", + "bytes": 356012, + "sampleRate": 24000, + "channels": 1, + "duration": 7.416, + "rms": 0.10000151456676445, + "peak": 0.5949888825416565 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-furniture.wav?v=0.2.3", + "sha256": "bf84dc6cff1f227924a3a62158d2fc18769fb0ca40b91418fa19e534dbf92f00", + "bytes": 397484, + "sampleRate": 24000, + "channels": 1, + "duration": 8.28, + "rms": 0.10000155255948041, + "peak": 0.6670430898666382 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-sound.wav?v=0.2.3", + "sha256": "5a603bc69979603afddcaeb6edf500a7c540b72405daeb33f5335d746b327da1", + "bytes": 397484, + "sampleRate": 24000, + "channels": 1, + "duration": 8.28, + "rms": 0.10000146491234768, + "peak": 0.469268798828125 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-meat.wav?v=0.2.3", + "sha256": "9183ef90b64f5ceaf3bb0178c689231ff3e9981d6ce889124a15f2a6e2b7a344", + "bytes": 395180, + "sampleRate": 24000, + "channels": 1, + "duration": 8.232, + "rms": 0.10000155087122137, + "peak": 0.5193029642105103 + }, + { + "url": "http://127.0.0.1:4173/audio/last-sound.wav?v=0.2.3", + "sha256": "ec9c49802aebeb6a8b898a1c0d8ad1daa127d2d64c905c197ed49a8e0c4eb64a", + "bytes": 354860, + "sampleRate": 24000, + "channels": 1, + "duration": 7.392, + "rms": 0.10000165748716579, + "peak": 0.5641041398048401 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-oil.wav?v=0.2.3", + "sha256": "5fb63e04520c312aa6b7b48b70c2f7c140b5ab480e5c6992edbc2ba85b9a06e7", + "bytes": 241964, + "sampleRate": 24000, + "channels": 1, + "duration": 5.04, + "rms": 0.10000143720418167, + "peak": 0.443586528301239 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-umbrella.wav?v=0.2.3", + "sha256": "92b54f04884ab915783945077efd8f3bd443849a1720f72168b6348cae1f8e85", + "bytes": 406700, + "sampleRate": 24000, + "channels": 1, + "duration": 8.472, + "rms": 0.10000140257790288, + "peak": 0.479034423828125 + }, + { + "url": "http://127.0.0.1:4173/audio/message-sound.wav?v=0.2.3", + "sha256": "1e682147dae8026ba78dc8f256c7f24acb3a6743bfd88a0fcc86096930eef078", + "bytes": 521900, + "sampleRate": 24000, + "channels": 1, + "duration": 10.872, + "rms": 0.10000138583471241, + "peak": 0.51953125 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-apple.wav?v=0.2.3", + "sha256": "ccd7327a3fb54d3320d049ffdced3bc17595861cee69429c0ee97182d454195b", + "bytes": 402092, + "sampleRate": 24000, + "channels": 1, + "duration": 8.376, + "rms": 0.10000140667715379, + "peak": 0.490325927734375 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-sea.wav?v=0.2.3", + "sha256": "5c91a36496e274d2be9c6fa8d9b506cd04f2a1b7ceb05ed1b7bb03fe7fca99d9", + "bytes": 399788, + "sampleRate": 24000, + "channels": 1, + "duration": 8.328, + "rms": 0.10000144241513113, + "peak": 0.5465559959411621 + }, + { + "url": "http://127.0.0.1:4173/audio/message-hat.wav?v=0.2.3", + "sha256": "5a713a8522b231bb8276805c014b385b9150b79f58ff2618446607e2b442495e", + "bytes": 518444, + "sampleRate": 24000, + "channels": 1, + "duration": 10.8, + "rms": 0.10000136927555209, + "peak": 0.587005615234375 + }, + { + "url": "http://127.0.0.1:4173/audio/password-meat.wav?v=0.2.3", + "sha256": "b009caadd56350d6a641ff17f0973e2b2724c183e1f45ae0bf3c483e237fa99e", + "bytes": 240812, + "sampleRate": 24000, + "channels": 1, + "duration": 5.016, + "rms": 0.10000148386024335, + "peak": 0.4978789687156677 + }, + { + "url": "http://127.0.0.1:4173/audio/message-market.wav?v=0.2.3", + "sha256": "9242d4cd6e0030e6b073e4d2360f84aa8a454d1749711cdb2d64c14f28a7ea20", + "bytes": 523052, + "sampleRate": 24000, + "channels": 1, + "duration": 10.896, + "rms": 0.10000133805787564, + "peak": 0.534820556640625 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-apple.wav?v=0.2.3", + "sha256": "8832f1b793ab3eedbe663875ea8dbeabb122c329bd5879437c71230b0418c3c8", + "bytes": 360620, + "sampleRate": 24000, + "channels": 1, + "duration": 7.512, + "rms": 0.10000145024648589, + "peak": 0.553558349609375 + }, + { + "url": "http://127.0.0.1:4173/audio/last-umbrella.wav?v=0.2.3", + "sha256": "c801293a34013a8d93d3289a2cc87cd3eed83f97ba4647f5060efa00b117a9ad", + "bytes": 370988, + "sampleRate": 24000, + "channels": 1, + "duration": 7.728, + "rms": 0.10000149360501835, + "peak": 0.59765625 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-sea.wav?v=0.2.3", + "sha256": "9233431d78ab4b144e3c33ad0cf0d49fc0fb91b29514343230ba32987b794bb3", + "bytes": 398636, + "sampleRate": 24000, + "channels": 1, + "duration": 8.304, + "rms": 0.10000134688905045, + "peak": 0.49616992473602295 + }, + { + "url": "http://127.0.0.1:4173/audio/password-apple.wav?v=0.2.3", + "sha256": "b6f5de3fe571fe3a7fdb722fe49250bcfeedef49475271e0ec76a7630907edd5", + "bytes": 235052, + "sampleRate": 24000, + "channels": 1, + "duration": 4.896, + "rms": 0.10000148212193387, + "peak": 0.4834437072277069 + }, + { + "url": "http://127.0.0.1:4173/audio/first-furniture.wav?v=0.2.3", + "sha256": "29f007b385b7182db1d8aeccad4fc3c260df5e66e14e52a46b0ef0fcd0ff3a0a", + "bytes": 364076, + "sampleRate": 24000, + "channels": 1, + "duration": 7.584, + "rms": 0.1000014551820741, + "peak": 0.5700552463531494 + }, + { + "url": "http://127.0.0.1:4173/audio/password-hat.wav?v=0.2.3", + "sha256": "e91bfc97df90a1675b6cd856880ac15c54de32cfc3b23603bdd1c2c5ac3ce6b8", + "bytes": 235052, + "sampleRate": 24000, + "channels": 1, + "duration": 4.896, + "rms": 0.10000146155157119, + "peak": 0.5059053301811218 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-oil.wav?v=0.2.3", + "sha256": "7a6b122b11c07da86c95fb78e2db2a70681b5219c63d6441fe56da1979ac1dc3", + "bytes": 334124, + "sampleRate": 24000, + "channels": 1, + "duration": 6.96, + "rms": 0.1000014880654183, + "peak": 0.539933443069458 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-meat.wav?v=0.2.3", + "sha256": "d416107cc05e7c5b92ca27100a10a8a9689de913346179945d5542de4a6bac0c", + "bytes": 342188, + "sampleRate": 24000, + "channels": 1, + "duration": 7.128, + "rms": 0.10000157422522808, + "peak": 0.510833740234375 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-apple.wav?v=0.2.3", + "sha256": "1bf2aef9a9f030af1a8fd7dee8f44aa420a397b3ba99b575feeb3dc7a63ec191", + "bytes": 395180, + "sampleRate": 24000, + "channels": 1, + "duration": 8.232, + "rms": 0.10000148399213096, + "peak": 0.563568115234375 + }, + { + "url": "http://127.0.0.1:4173/audio/first-oil.wav?v=0.2.3", + "sha256": "f415195e0cfc7ee711d09de7519e88eab62cc8b58d70772c83c3f5c27c267819", + "bytes": 335276, + "sampleRate": 24000, + "channels": 1, + "duration": 6.984, + "rms": 0.10000145886808136, + "peak": 0.5347453355789185 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-hat.wav?v=0.2.3", + "sha256": "31a6a4270bf368cda419094d87a303ac3cd5c22539786cb165f8044b0b8e9d6e", + "bytes": 402092, + "sampleRate": 24000, + "channels": 1, + "duration": 8.376, + "rms": 0.10000145804818952, + "peak": 0.541778564453125 + }, + { + "url": "http://127.0.0.1:4173/audio/message-furniture.wav?v=0.2.3", + "sha256": "26c331b7e12311236f4bb48f88918dfbf53cccd2f50b55741ea6ff4473e71dd8", + "bytes": 521900, + "sampleRate": 24000, + "channels": 1, + "duration": 10.872, + "rms": 0.10000134596838128, + "peak": 0.529327392578125 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-oil.wav?v=0.2.3", + "sha256": "3fa1e662a3af8f2726b17b2baa5bec2934406e6595ebc243c8380dd16e190977", + "bytes": 190124, + "sampleRate": 24000, + "channels": 1, + "duration": 3.96, + "rms": 0.10000134375667624, + "peak": 0.3817255198955536 + }, + { + "url": "http://127.0.0.1:4173/audio/last-sea.wav?v=0.2.3", + "sha256": "f755452e1da44674aa1df7d12edffa988091b89a394e7eb6d4a00eb721f07cbf", + "bytes": 345644, + "sampleRate": 24000, + "channels": 1, + "duration": 7.2, + "rms": 0.10000140162255576, + "peak": 0.591033935546875 + }, + { + "url": "http://127.0.0.1:4173/audio/password-oil.wav?v=0.2.3", + "sha256": "b472957b27ff98ea7b8894fa1ff12653f7e9f66f77870faa9e52a1c1bf116c41", + "bytes": 240812, + "sampleRate": 24000, + "channels": 1, + "duration": 5.016, + "rms": 0.10000146772662066, + "peak": 0.4945219159126282 + }, + { + "url": "http://127.0.0.1:4173/audio/first-umbrella.wav?v=0.2.3", + "sha256": "878e0bd2e6e4105f175aef51a028f6b141f3a2072be20f783193f3ba897a3ee0", + "bytes": 366380, + "sampleRate": 24000, + "channels": 1, + "duration": 7.632, + "rms": 0.10000147647908036, + "peak": 0.5700247287750244 + }, + { + "url": "http://127.0.0.1:4173/audio/last-apple.wav?v=0.2.3", + "sha256": "4cb2a8579fa3a7b91bb36363826ce8ca0d6d86e96e16a479e226a2802edd82f7", + "bytes": 356012, + "sampleRate": 24000, + "channels": 1, + "duration": 7.416, + "rms": 0.10000144523423521, + "peak": 0.622528076171875 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-market.wav?v=0.2.3", + "sha256": "68a5b899115a66ab225d610ec47b4de56cc8793657362bc38f533c06f741e4cc", + "bytes": 402092, + "sampleRate": 24000, + "channels": 1, + "duration": 8.376, + "rms": 0.10000160159844854, + "peak": 0.6822717785835266 + }, + { + "url": "http://127.0.0.1:4173/audio/message-oil.wav?v=0.2.3", + "sha256": "a2a71a7e5e07c81871a25c6cb7540c39aa0b32fc44f78cda66b5f34ace98d805", + "bytes": 509228, + "sampleRate": 24000, + "channels": 1, + "duration": 10.608, + "rms": 0.10000135184106136, + "peak": 0.51812744140625 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-meat.wav?v=0.2.3", + "sha256": "d36dfc395a5c53fbfa4abe9980db7bb59adfdac59e40318c4aca365365e3f2ab", + "bytes": 187820, + "sampleRate": 24000, + "channels": 1, + "duration": 3.912, + "rms": 0.1000013329979738, + "peak": 0.371124267578125 + }, + { + "url": "http://127.0.0.1:4173/audio/password-market.wav?v=0.2.3", + "sha256": "02e325fb753ef7a3ee585a03d2ca2aa3f1fbc58523b062222ae1136eeed7a95c", + "bytes": 230444, + "sampleRate": 24000, + "channels": 1, + "duration": 4.8, + "rms": 0.10000151520861549, + "peak": 0.48170414566993713 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-hat.wav?v=0.2.3", + "sha256": "4ff43dd042f4b5451e9fdeb3edd59f1e389a7d1dd488094587a3a9fc7dfffa44", + "bytes": 191276, + "sampleRate": 24000, + "channels": 1, + "duration": 3.984, + "rms": 0.10000132502946775, + "peak": 0.417083740234375 + }, + { + "url": "http://127.0.0.1:4173/audio/last-market.wav?v=0.2.3", + "sha256": "7857e87e9dbfe8fe849cc0b18c1d45b60916cb337328099c7a87a42c82e2821e", + "bytes": 359468, + "sampleRate": 24000, + "channels": 1, + "duration": 7.488, + "rms": 0.10000148064140717, + "peak": 0.600555419921875 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-meat.wav?v=0.2.3", + "sha256": "94f8a4f9e116a787e5ed052661d6de9ecf3ad8629db476661dd59ad03014b0c9", + "bytes": 244268, + "sampleRate": 24000, + "channels": 1, + "duration": 5.088, + "rms": 0.10000146176253134, + "peak": 0.44187748432159424 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-oil.wav?v=0.2.3", + "sha256": "55b2c7d6aa8bbce04edf8661882c9781da81c57f56217f99b80457a3bb895da0", + "bytes": 369836, + "sampleRate": 24000, + "channels": 1, + "duration": 7.704, + "rms": 0.10000146897241707, + "peak": 0.6239814162254333 + }, + { + "url": "http://127.0.0.1:4173/audio/first-sound.wav?v=0.2.3", + "sha256": "46f6adeed928a16af0700f1e8626cf8049f124632a04a5d10604426fb06f9596", + "bytes": 353708, + "sampleRate": 24000, + "channels": 1, + "duration": 7.368, + "rms": 0.10000157588418972, + "peak": 0.5189672708511353 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-umbrella.wav?v=0.2.3", + "sha256": "4b4c858a25659540f9dbc524664496fc6de61ab8c1627f3cfee8c9c744e11d5b", + "bytes": 247724, + "sampleRate": 24000, + "channels": 1, + "duration": 5.16, + "rms": 0.10000144286672341, + "peak": 0.46534621715545654 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-oil.wav?v=0.2.3", + "sha256": "3ca98682ff06d1d6b8af02c0fd5b2124f42266ac989884223eff4a9bbde1287a", + "bytes": 399788, + "sampleRate": 24000, + "channels": 1, + "duration": 8.328, + "rms": 0.10000149133669024, + "peak": 0.5243995189666748 + }, + { + "url": "http://127.0.0.1:4173/audio/first-sea.wav?v=0.2.3", + "sha256": "0f0b39314c5f7d7168d4854003c0c284e7bc3438cdc4d1d1c5adab7cb5ed30e5", + "bytes": 349100, + "sampleRate": 24000, + "channels": 1, + "duration": 7.272, + "rms": 0.10000142148394393, + "peak": 0.5717948079109192 + }, + { + "url": "http://127.0.0.1:4173/audio/last-meat.wav?v=0.2.3", + "sha256": "10f8ad4259ed8945c9da831e80b3902303c09caef96d400298599168fb1efed4", + "bytes": 346796, + "sampleRate": 24000, + "channels": 1, + "duration": 7.224, + "rms": 0.10000155834091913, + "peak": 0.537200927734375 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-umbrella.wav?v=0.2.3", + "sha256": "399ea2f681f755918f1117c8baba42739ceca64b307b999342f457a9235050b6", + "bytes": 368684, + "sampleRate": 24000, + "channels": 1, + "duration": 7.68, + "rms": 0.10000155028684544, + "peak": 0.569549560546875 + }, + { + "url": "http://127.0.0.1:4173/audio/message-meat.wav?v=0.2.3", + "sha256": "ce19735df079b54c171e775b6b365385a80160b9033442abab95b2b9c8505e1a", + "bytes": 512684, + "sampleRate": 24000, + "channels": 1, + "duration": 10.68, + "rms": 0.10000140834686953, + "peak": 0.5147705078125 + }, + { + "url": "http://127.0.0.1:4173/audio/message-umbrella.wav?v=0.2.3", + "sha256": "41d5866dae66600df4694a8312b531571d44cece6dba0e423e7c43d09d184819", + "bytes": 523052, + "sampleRate": 24000, + "channels": 1, + "duration": 10.896, + "rms": 0.10000120668553683, + "peak": 0.530364990234375 + }, + { + "url": "http://127.0.0.1:4173/audio/last-furniture.wav?v=0.2.3", + "sha256": "5ad4f776e35439d408abed0e66567d6b5cdc80fc54d579165472e474f1238776", + "bytes": 357164, + "sampleRate": 24000, + "channels": 1, + "duration": 7.44, + "rms": 0.10000152394963031, + "peak": 0.583587646484375 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-sea.wav?v=0.2.3", + "sha256": "8838d6a1ee8a790427dc5aa761e70b3d8872af62086efeed743297ff7f8b8a06", + "bytes": 243116, + "sampleRate": 24000, + "channels": 1, + "duration": 5.064, + "rms": 0.10000138788281714, + "peak": 0.45013427734375 + }, + { + "url": "http://127.0.0.1:4173/audio/message-apple.wav?v=0.2.3", + "sha256": "d85e6f47d871369f00de2274139e5ad6b4b5686b5e20e248df0ed6b9a320d942", + "bytes": 517292, + "sampleRate": 24000, + "channels": 1, + "duration": 10.776, + "rms": 0.10000133916854889, + "peak": 0.525360107421875 + }, + { + "url": "http://127.0.0.1:4173/audio/last-hat.wav?v=0.2.3", + "sha256": "bdaf8fbc54df8061e9e58aa8c14b3044a6e863dc54973ee3ee6ae2c5ae1a28f1", + "bytes": 354860, + "sampleRate": 24000, + "channels": 1, + "duration": 7.392, + "rms": 0.10000152378078818, + "peak": 0.550079345703125 + }, + { + "url": "http://127.0.0.1:4173/audio/first-apple.wav?v=0.2.3", + "sha256": "7c1dbcb3082055df2b8f087f7e906ec867c92f679de0894c34740c05e61a4bc1", + "bytes": 359468, + "sampleRate": 24000, + "channels": 1, + "duration": 7.488, + "rms": 0.10000143468253914, + "peak": 0.57977294921875 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-umbrella.wav?v=0.2.3", + "sha256": "8d3e8e8bc97e5fe3f3362184c4abb12f01a882a1f1174d2644f0f70aac677c0a", + "bytes": 192428, + "sampleRate": 24000, + "channels": 1, + "duration": 4.008, + "rms": 0.10000131475711933, + "peak": 0.385650634765625 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-furniture.wav?v=0.2.3", + "sha256": "5c004a7b2f5a4a918c9f689f1a2dcb219a620ed14313f40a9655b36dbf64948d", + "bytes": 398636, + "sampleRate": 24000, + "channels": 1, + "duration": 8.304, + "rms": 0.10000141690978645, + "peak": 0.487396240234375 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-tree.wav?v=0.2.3", + "sha256": "122f496834fb16d6da47f801e50e46e272e4e934af959467d1db4e490f79be7a", + "bytes": 183212, + "sampleRate": 24000, + "channels": 1, + "duration": 3.816, + "rms": 0.10000140751524371, + "peak": 0.36920166015625 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-tree.wav?v=0.2.3", + "sha256": "00d8e77ec0371971d632724d91f8cf8d947bfb83c582a513b6421be4c457a1da", + "bytes": 241964, + "sampleRate": 24000, + "channels": 1, + "duration": 5.04, + "rms": 0.10000146153372488, + "peak": 0.4585406184196472 + }, + { + "url": "http://127.0.0.1:4173/audio/message-tree.wav?v=0.2.3", + "sha256": "5d684aa710a63d36ed8dcc2a8bfbdd5c71b0b1c63dad2a324adecb76591e85b8", + "bytes": 540332, + "sampleRate": 24000, + "channels": 1, + "duration": 11.256, + "rms": 0.10000132424453942, + "peak": 0.5262451171875 + }, + { + "url": "http://127.0.0.1:4173/audio/last-tree.wav?v=0.2.3", + "sha256": "589e56d940a3c9e80ec02ae0b2dd93463fdc85ef019a753fcd0fded0752055f9", + "bytes": 382508, + "sampleRate": 24000, + "channels": 1, + "duration": 7.968, + "rms": 0.10000149781706567, + "peak": 0.5807672142982483 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-tree.wav?v=0.2.3", + "sha256": "341888c75275c13eb31058f53a1d4276be0daa0a1b5a3a45522036928b83b0c1", + "bytes": 382508, + "sampleRate": 24000, + "channels": 1, + "duration": 7.968, + "rms": 0.1000014873304774, + "peak": 0.600024402141571 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-tree.wav?v=0.2.3", + "sha256": "8735c3d9672561ca237fa87317beec2878492eb9063d6048d5b214423561acc1", + "bytes": 423980, + "sampleRate": 24000, + "channels": 1, + "duration": 8.832, + "rms": 0.10000150947389638, + "peak": 0.6187627911567688 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-furniture.wav?v=0.2.3", + "sha256": "52cb92cdb8ee92b6f581c9d68dbc346f180c470564809ba57185429c9eb84127", + "bytes": 186668, + "sampleRate": 24000, + "channels": 1, + "duration": 3.888, + "rms": 0.1000013480244084, + "peak": 0.387054443359375 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-tree.wav?v=0.2.3", + "sha256": "bc8e54f5407e8866bf1ca1ddfd4f6c63d85fee29bd9e430c7dd33e87974fc5b8", + "bytes": 409004, + "sampleRate": 24000, + "channels": 1, + "duration": 8.52, + "rms": 0.10000146559822108, + "peak": 0.5486617684364319 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-tree.wav?v=0.2.3", + "sha256": "b8e8bbe6b8b14727efd953fae9d4aed2caeb004055d52f611c6378322847edbe", + "bytes": 400940, + "sampleRate": 24000, + "channels": 1, + "duration": 8.352, + "rms": 0.10000144970799159, + "peak": 0.470611572265625 + }, + { + "url": "http://127.0.0.1:4173/audio/first-tree.wav?v=0.2.3", + "sha256": "3178230fd5850b6277a2153b438ec5289720e3db7ac929914cc213964f004bd5", + "bytes": 379052, + "sampleRate": 24000, + "channels": 1, + "duration": 7.896, + "rms": 0.10000144270360484, + "peak": 0.5833613276481628 + }, + { + "url": "http://127.0.0.1:4173/audio/password-tree.wav?v=0.2.3", + "sha256": "67da8147296e35134ec254bc82b58317630061b2c64d2d63c4be197ce8692d50", + "bytes": 233900, + "sampleRate": 24000, + "channels": 1, + "duration": 4.872, + "rms": 0.10000156310809623, + "peak": 0.4904019236564636 + } + ] +} diff --git a/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/browser-final/audio-음성·현장음-109개-versioned-WAV를-실제-Chrome에서-해시·디코드-검증한다-desktop/browser-audio-integrity.json b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/browser-final/audio-음성·현장음-109개-versioned-WAV를-실제-Chrome에서-해시·디코드-검증한다-desktop/browser-audio-integrity.json new file mode 100644 index 0000000..b566f7b --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/browser-final/audio-음성·현장음-109개-versioned-WAV를-실제-Chrome에서-해시·디코드-검증한다-desktop/browser-audio-integrity.json @@ -0,0 +1,1098 @@ +{ + "chrome": "146.0.7680.80", + "external": [], + "errors": [], + "failed": [], + "files": [ + { + "url": "http://127.0.0.1:4173/audio/intro.wav?v=0.2.3", + "sha256": "90d9f46e6e3f9c8a0c1a781096df54d7809ef4ad38b289508ef7b8c0411465ce", + "bytes": 338732, + "sampleRate": 24000, + "channels": 1, + "duration": 7.056, + "rms": 0.10000144992850359, + "peak": 0.4998626708984375 + }, + { + "url": "http://127.0.0.1:4173/ambience/street.wav?v=0.2.3", + "sha256": "a8bffa201b174618955bc51b860167169125304811aabe2086b0bb35b06c3ae1", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.07999880181401388, + "peak": 0.3967711329460144 + }, + { + "url": "http://127.0.0.1:4173/ambience/mall.wav?v=0.2.3", + "sha256": "680a769940c08f0d12c6c954c08366598dd8b5745e276f39c82b10d1a88261a1", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.07999875178666456, + "peak": 0.7191991806030273 + }, + { + "url": "http://127.0.0.1:4173/ambience/theater.wav?v=0.2.3", + "sha256": "2d6a444fb7874cdf6b2d8a741a69175299b112eb66834912c025437d8277d635", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.07999878601263052, + "peak": 0.495086669921875 + }, + { + "url": "http://127.0.0.1:4173/ambience/department.wav?v=0.2.3", + "sha256": "aa43f3d1d3e7c2b1f8ace24ecbda45d0ea3a031db941c39506dc6c1665b8efa7", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.07999879026023995, + "peak": 0.4749900698661804 + }, + { + "url": "http://127.0.0.1:4173/ambience/market.wav?v=0.2.3", + "sha256": "d6f73d86aea98b83e2995e61baaa7315a0ea7adeebc093769d76e1569b207658", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.04309922340528536, + "peak": 0.8500015139579773 + }, + { + "url": "http://127.0.0.1:4173/ambience/subway.wav?v=0.2.3", + "sha256": "9faf70b68617d267b367a0f3692ed90015458543ab4b0844f6c704e6a724728f", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.079998775670051, + "peak": 0.42530596256256104 + }, + { + "url": "http://127.0.0.1:4173/ambience/cafe.wav?v=0.2.3", + "sha256": "6853c121104940041c268a2891eadae032c17aa22b4c3b3ddfbc025262434995", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.07999875794689627, + "peak": 0.4057435691356659 + }, + { + "url": "http://127.0.0.1:4173/ambience/rain.wav?v=0.2.3", + "sha256": "f4315084e820f742b0709de5bb0d1abd3d5af1730620e08c2948b70347356dd9", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.011384798571746246, + "peak": 0.1024169921875 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-apple.wav?v=0.2.3", + "sha256": "cb7da4e9a1288cac64d168b241f27d7d2bc2dfecace58744f9bbf2792dfad04e", + "bytes": 397484, + "sampleRate": 24000, + "channels": 1, + "duration": 8.28, + "rms": 0.10000142448574952, + "peak": 0.6414685249328613 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-market.wav?v=0.2.3", + "sha256": "b8d25b867497adcd0fe7c8b6a8a8d2e7a52965956738a83e53f58735708773f9", + "bytes": 405548, + "sampleRate": 24000, + "channels": 1, + "duration": 8.448, + "rms": 0.10000141405173993, + "peak": 0.491485595703125 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-sound.wav?v=0.2.3", + "sha256": "34e4d9758d2ed448646fda364610e34779c84794403d9051ab3d8c1d33e2c80c", + "bytes": 184364, + "sampleRate": 24000, + "channels": 1, + "duration": 3.84, + "rms": 0.10000138709171018, + "peak": 0.386322021484375 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-furniture.wav?v=0.2.3", + "sha256": "b45b1afc8d9b534ff3e0a2a2ecb99efc1f4e40d41f89f55c4ed8ba94ad6d76d4", + "bytes": 354860, + "sampleRate": 24000, + "channels": 1, + "duration": 7.392, + "rms": 0.1000015072973225, + "peak": 0.5576171875 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-market.wav?v=0.2.3", + "sha256": "cefa0e95649ea6bd1df4c8dfccd2b74b4f4c028714420ce1087b61db2f2a8d47", + "bytes": 248876, + "sampleRate": 24000, + "channels": 1, + "duration": 5.184, + "rms": 0.10000142548167161, + "peak": 0.4857020676136017 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-oil.wav?v=0.2.3", + "sha256": "f6eff0cdddcad9790351491e60c53cb2a70d222033a583652f2de0b8cd6abcc7", + "bytes": 406700, + "sampleRate": 24000, + "channels": 1, + "duration": 8.472, + "rms": 0.10000139122025363, + "peak": 0.470794677734375 + }, + { + "url": "http://127.0.0.1:4173/audio/first-hat.wav?v=0.2.3", + "sha256": "17c8cde90567e7574b0c0702663bd70713054089ee920241b5444d9b7869eef5", + "bytes": 357164, + "sampleRate": 24000, + "channels": 1, + "duration": 7.44, + "rms": 0.10000152904790521, + "peak": 0.5312662124633789 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-furniture.wav?v=0.2.3", + "sha256": "af82e03b686635c3356e706fe5b05c1231aeaaeab33f275aa5b8714988c65d43", + "bytes": 241964, + "sampleRate": 24000, + "channels": 1, + "duration": 5.04, + "rms": 0.10000137346142077, + "peak": 0.4852443039417267 + }, + { + "url": "http://127.0.0.1:4173/audio/password-sound.wav?v=0.2.3", + "sha256": "044aafff08a19e39f21e58b963644715a987cd155896998769ef8e9ce6449628", + "bytes": 236204, + "sampleRate": 24000, + "channels": 1, + "duration": 4.92, + "rms": 0.10000156641621728, + "peak": 0.4621112644672394 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-hat.wav?v=0.2.3", + "sha256": "f9f98c91cfbcfcb106eef7d5d3795a9cf3c3aab7e19a60f13d7dffe284d19f86", + "bytes": 398636, + "sampleRate": 24000, + "channels": 1, + "duration": 8.304, + "rms": 0.10000141071544869, + "peak": 0.470977783203125 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-apple.wav?v=0.2.3", + "sha256": "7c8f413f4b7e164f090e508ba090448f1376c6012649bbb6a917d45851313883", + "bytes": 188972, + "sampleRate": 24000, + "channels": 1, + "duration": 3.936, + "rms": 0.10000130469939268, + "peak": 0.401641845703125 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-sea.wav?v=0.2.3", + "sha256": "db2f235bee26ac804b5362e8e013b8f40c8da24fd3a34e0fb3b43c6d264feb36", + "bytes": 382508, + "sampleRate": 24000, + "channels": 1, + "duration": 7.968, + "rms": 0.10000145042993039, + "peak": 0.6843470335006714 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-furniture.wav?v=0.2.3", + "sha256": "442bdcb956f120c270e1f321feae0415c897de0183e468980fcc119b898b2a67", + "bytes": 403244, + "sampleRate": 24000, + "channels": 1, + "duration": 8.4, + "rms": 0.10000149119200713, + "peak": 0.5619068145751953 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-sea.wav?v=0.2.3", + "sha256": "b6dbe0af143ea775f05bd59a3d6af348bcc770ab378ac91ea75a56e06c326edf", + "bytes": 346796, + "sampleRate": 24000, + "channels": 1, + "duration": 7.224, + "rms": 0.10000144532868623, + "peak": 0.56494140625 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-sound.wav?v=0.2.3", + "sha256": "e9d636ff7f4777f38b1ff15bebdcec6fbde95b4b4b05625a7415b4cfa0025b59", + "bytes": 395180, + "sampleRate": 24000, + "channels": 1, + "duration": 8.232, + "rms": 0.10000164955559301, + "peak": 0.6114688515663147 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-apple.wav?v=0.2.3", + "sha256": "3ef42e276ff3500c3e197d149f29f79d6a0c1d5516ed1d5a2c57210333fded9c", + "bytes": 246572, + "sampleRate": 24000, + "channels": 1, + "duration": 5.136, + "rms": 0.10000144279302126, + "peak": 0.4701681435108185 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-market.wav?v=0.2.3", + "sha256": "356af25332bf2000ed349671f3ff39767929e1f4599af622c021f907d11fb7bf", + "bytes": 194732, + "sampleRate": 24000, + "channels": 1, + "duration": 4.056, + "rms": 0.10000132629820717, + "peak": 0.4022216796875 + }, + { + "url": "http://127.0.0.1:4173/audio/message-sea.wav?v=0.2.3", + "sha256": "28a461fbe03bffe2560030dea8b60715f7c0fe262dcf85b5b7f7daf483836382", + "bytes": 517292, + "sampleRate": 24000, + "channels": 1, + "duration": 10.776, + "rms": 0.10000130584401576, + "peak": 0.53521728515625 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-umbrella.wav?v=0.2.3", + "sha256": "c8988e604ba05d52597e561389541e8f9cda86e052279f1862bbf8399ead314e", + "bytes": 403244, + "sampleRate": 24000, + "channels": 1, + "duration": 8.4, + "rms": 0.10000148262660476, + "peak": 0.557830810546875 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-hat.wav?v=0.2.3", + "sha256": "308278ec2bd27d4224976a55632d1f7fa1edabb0792126d9d858a699c287aee4", + "bytes": 245420, + "sampleRate": 24000, + "channels": 1, + "duration": 5.112, + "rms": 0.10000140702099906, + "peak": 0.4498428404331207 + }, + { + "url": "http://127.0.0.1:4173/audio/password-furniture.wav?v=0.2.3", + "sha256": "fb2b631dd4e12120d08a84cce6450f9cd9cd68105d13d7001d808e7deaa1df4a", + "bytes": 233900, + "sampleRate": 24000, + "channels": 1, + "duration": 4.872, + "rms": 0.10000146718546903, + "peak": 0.4836573302745819 + }, + { + "url": "http://127.0.0.1:4173/audio/first-market.wav?v=0.2.3", + "sha256": "1e00b8f70a796cdebb0feb00c605fece7488b06915e6e036f54206f05e201e0c", + "bytes": 359468, + "sampleRate": 24000, + "channels": 1, + "duration": 7.488, + "rms": 0.10000152633991319, + "peak": 0.6390880942344666 + }, + { + "url": "http://127.0.0.1:4173/audio/first-meat.wav?v=0.2.3", + "sha256": "f51a37c1722fef581f7d642a4dcae7fcb9953b3c318dce971bf616cd1a81fecc", + "bytes": 345644, + "sampleRate": 24000, + "channels": 1, + "duration": 7.2, + "rms": 0.10000152244411063, + "peak": 0.5131382346153259 + }, + { + "url": "http://127.0.0.1:4173/audio/password-sea.wav?v=0.2.3", + "sha256": "03f45b8cb5b3dc72faf5c6e3d0e2a10cea6b60301ea400d0a4453596d2f0b337", + "bytes": 232748, + "sampleRate": 24000, + "channels": 1, + "duration": 4.848, + "rms": 0.10000144821976133, + "peak": 0.5339213013648987 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-sound.wav?v=0.2.3", + "sha256": "98387ccc7aab566f6487d4c250b2128082cc527e013a6f7b7bc4d0266ac295df", + "bytes": 394028, + "sampleRate": 24000, + "channels": 1, + "duration": 8.208, + "rms": 0.10000158053850364, + "peak": 0.5377971529960632 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-umbrella.wav?v=0.2.3", + "sha256": "5e59ef39113c3d5e106862356d715f4cef2862ef8ee02654a97e532675c1ac6d", + "bytes": 410156, + "sampleRate": 24000, + "channels": 1, + "duration": 8.544, + "rms": 0.10000147499132286, + "peak": 0.6748558282852173 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-hat.wav?v=0.2.3", + "sha256": "b01ef9762ac84e3eb757243bc9286c62f7d45444a821ae35ac36a8b095e1598a", + "bytes": 353708, + "sampleRate": 24000, + "channels": 1, + "duration": 7.368, + "rms": 0.10000153089787694, + "peak": 0.555206298828125 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-market.wav?v=0.2.3", + "sha256": "d89792da51c83ac49d27e55aa6d822a338899a5ee487b34b552748201e1522f6", + "bytes": 398636, + "sampleRate": 24000, + "channels": 1, + "duration": 8.304, + "rms": 0.10000149710778367, + "peak": 0.5728324055671692 + }, + { + "url": "http://127.0.0.1:4173/audio/password-umbrella.wav?v=0.2.3", + "sha256": "ab3ca6398c879971dc793eb25b472fcc0db72d76e386f11ef4d32c639f37c69d", + "bytes": 239660, + "sampleRate": 24000, + "channels": 1, + "duration": 4.992, + "rms": 0.100001426973271, + "peak": 0.4776757061481476 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-meat.wav?v=0.2.3", + "sha256": "48e91b3932d3798e852041a854b3ee08c72127e092c62083a47af6b99adff241", + "bytes": 403244, + "sampleRate": 24000, + "channels": 1, + "duration": 8.4, + "rms": 0.10000140336390047, + "peak": 0.481536865234375 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-hat.wav?v=0.2.3", + "sha256": "6e089a42fd7e65e82eec7186d369c926fb7fdac794365b2bd7658822fd92437c", + "bytes": 396332, + "sampleRate": 24000, + "channels": 1, + "duration": 8.256, + "rms": 0.1000015662548192, + "peak": 0.616748571395874 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-sound.wav?v=0.2.3", + "sha256": "4d00aa6114327f450a00dacbc7e7b572ebf1de4ce9dc2fe4b5505766cca71ce9", + "bytes": 353708, + "sampleRate": 24000, + "channels": 1, + "duration": 7.368, + "rms": 0.10000162019345048, + "peak": 0.5348368883132935 + }, + { + "url": "http://127.0.0.1:4173/audio/last-oil.wav?v=0.2.3", + "sha256": "b5ce34950b8b31b1baf6ce55410797f0d8aa5478a670d6eace87cf76d134d6d3", + "bytes": 337580, + "sampleRate": 24000, + "channels": 1, + "duration": 7.032, + "rms": 0.10000149980584365, + "peak": 0.55706787109375 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-sea.wav?v=0.2.3", + "sha256": "47aa31d757c9fb49c9b53a1c052d90a5ced4be57549d649850d9b48f8864045b", + "bytes": 191276, + "sampleRate": 24000, + "channels": 1, + "duration": 3.984, + "rms": 0.10000129182106483, + "peak": 0.388702392578125 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-sound.wav?v=0.2.3", + "sha256": "659eb0e2b06e6b165b46744769743e032e2282519f8486c57bc45e0f7d07a069", + "bytes": 240812, + "sampleRate": 24000, + "channels": 1, + "duration": 5.016, + "rms": 0.10000152909529536, + "peak": 0.45481735467910767 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-meat.wav?v=0.2.3", + "sha256": "6599d2fac73ea616a793151b4ce6f51af673988d630bac6219a77e78ae6cb34e", + "bytes": 380204, + "sampleRate": 24000, + "channels": 1, + "duration": 7.92, + "rms": 0.1000016061190976, + "peak": 0.5921201109886169 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-market.wav?v=0.2.3", + "sha256": "c855b449e0d4ace74681bfe68e5e7f0b063568827ae872017234dbe8ae119e4c", + "bytes": 356012, + "sampleRate": 24000, + "channels": 1, + "duration": 7.416, + "rms": 0.10000151456676445, + "peak": 0.5949888825416565 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-furniture.wav?v=0.2.3", + "sha256": "bf84dc6cff1f227924a3a62158d2fc18769fb0ca40b91418fa19e534dbf92f00", + "bytes": 397484, + "sampleRate": 24000, + "channels": 1, + "duration": 8.28, + "rms": 0.10000155255948041, + "peak": 0.6670430898666382 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-sound.wav?v=0.2.3", + "sha256": "5a603bc69979603afddcaeb6edf500a7c540b72405daeb33f5335d746b327da1", + "bytes": 397484, + "sampleRate": 24000, + "channels": 1, + "duration": 8.28, + "rms": 0.10000146491234768, + "peak": 0.469268798828125 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-meat.wav?v=0.2.3", + "sha256": "9183ef90b64f5ceaf3bb0178c689231ff3e9981d6ce889124a15f2a6e2b7a344", + "bytes": 395180, + "sampleRate": 24000, + "channels": 1, + "duration": 8.232, + "rms": 0.10000155087122137, + "peak": 0.5193029642105103 + }, + { + "url": "http://127.0.0.1:4173/audio/last-sound.wav?v=0.2.3", + "sha256": "ec9c49802aebeb6a8b898a1c0d8ad1daa127d2d64c905c197ed49a8e0c4eb64a", + "bytes": 354860, + "sampleRate": 24000, + "channels": 1, + "duration": 7.392, + "rms": 0.10000165748716579, + "peak": 0.5641041398048401 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-oil.wav?v=0.2.3", + "sha256": "5fb63e04520c312aa6b7b48b70c2f7c140b5ab480e5c6992edbc2ba85b9a06e7", + "bytes": 241964, + "sampleRate": 24000, + "channels": 1, + "duration": 5.04, + "rms": 0.10000143720418167, + "peak": 0.443586528301239 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-umbrella.wav?v=0.2.3", + "sha256": "92b54f04884ab915783945077efd8f3bd443849a1720f72168b6348cae1f8e85", + "bytes": 406700, + "sampleRate": 24000, + "channels": 1, + "duration": 8.472, + "rms": 0.10000140257790288, + "peak": 0.479034423828125 + }, + { + "url": "http://127.0.0.1:4173/audio/message-sound.wav?v=0.2.3", + "sha256": "1e682147dae8026ba78dc8f256c7f24acb3a6743bfd88a0fcc86096930eef078", + "bytes": 521900, + "sampleRate": 24000, + "channels": 1, + "duration": 10.872, + "rms": 0.10000138583471241, + "peak": 0.51953125 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-apple.wav?v=0.2.3", + "sha256": "ccd7327a3fb54d3320d049ffdced3bc17595861cee69429c0ee97182d454195b", + "bytes": 402092, + "sampleRate": 24000, + "channels": 1, + "duration": 8.376, + "rms": 0.10000140667715379, + "peak": 0.490325927734375 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-sea.wav?v=0.2.3", + "sha256": "5c91a36496e274d2be9c6fa8d9b506cd04f2a1b7ceb05ed1b7bb03fe7fca99d9", + "bytes": 399788, + "sampleRate": 24000, + "channels": 1, + "duration": 8.328, + "rms": 0.10000144241513113, + "peak": 0.5465559959411621 + }, + { + "url": "http://127.0.0.1:4173/audio/message-hat.wav?v=0.2.3", + "sha256": "5a713a8522b231bb8276805c014b385b9150b79f58ff2618446607e2b442495e", + "bytes": 518444, + "sampleRate": 24000, + "channels": 1, + "duration": 10.8, + "rms": 0.10000136927555209, + "peak": 0.587005615234375 + }, + { + "url": "http://127.0.0.1:4173/audio/password-meat.wav?v=0.2.3", + "sha256": "b009caadd56350d6a641ff17f0973e2b2724c183e1f45ae0bf3c483e237fa99e", + "bytes": 240812, + "sampleRate": 24000, + "channels": 1, + "duration": 5.016, + "rms": 0.10000148386024335, + "peak": 0.4978789687156677 + }, + { + "url": "http://127.0.0.1:4173/audio/message-market.wav?v=0.2.3", + "sha256": "9242d4cd6e0030e6b073e4d2360f84aa8a454d1749711cdb2d64c14f28a7ea20", + "bytes": 523052, + "sampleRate": 24000, + "channels": 1, + "duration": 10.896, + "rms": 0.10000133805787564, + "peak": 0.534820556640625 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-apple.wav?v=0.2.3", + "sha256": "8832f1b793ab3eedbe663875ea8dbeabb122c329bd5879437c71230b0418c3c8", + "bytes": 360620, + "sampleRate": 24000, + "channels": 1, + "duration": 7.512, + "rms": 0.10000145024648589, + "peak": 0.553558349609375 + }, + { + "url": "http://127.0.0.1:4173/audio/last-umbrella.wav?v=0.2.3", + "sha256": "c801293a34013a8d93d3289a2cc87cd3eed83f97ba4647f5060efa00b117a9ad", + "bytes": 370988, + "sampleRate": 24000, + "channels": 1, + "duration": 7.728, + "rms": 0.10000149360501835, + "peak": 0.59765625 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-sea.wav?v=0.2.3", + "sha256": "9233431d78ab4b144e3c33ad0cf0d49fc0fb91b29514343230ba32987b794bb3", + "bytes": 398636, + "sampleRate": 24000, + "channels": 1, + "duration": 8.304, + "rms": 0.10000134688905045, + "peak": 0.49616992473602295 + }, + { + "url": "http://127.0.0.1:4173/audio/password-apple.wav?v=0.2.3", + "sha256": "b6f5de3fe571fe3a7fdb722fe49250bcfeedef49475271e0ec76a7630907edd5", + "bytes": 235052, + "sampleRate": 24000, + "channels": 1, + "duration": 4.896, + "rms": 0.10000148212193387, + "peak": 0.4834437072277069 + }, + { + "url": "http://127.0.0.1:4173/audio/first-furniture.wav?v=0.2.3", + "sha256": "29f007b385b7182db1d8aeccad4fc3c260df5e66e14e52a46b0ef0fcd0ff3a0a", + "bytes": 364076, + "sampleRate": 24000, + "channels": 1, + "duration": 7.584, + "rms": 0.1000014551820741, + "peak": 0.5700552463531494 + }, + { + "url": "http://127.0.0.1:4173/audio/password-hat.wav?v=0.2.3", + "sha256": "e91bfc97df90a1675b6cd856880ac15c54de32cfc3b23603bdd1c2c5ac3ce6b8", + "bytes": 235052, + "sampleRate": 24000, + "channels": 1, + "duration": 4.896, + "rms": 0.10000146155157119, + "peak": 0.5059053301811218 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-oil.wav?v=0.2.3", + "sha256": "7a6b122b11c07da86c95fb78e2db2a70681b5219c63d6441fe56da1979ac1dc3", + "bytes": 334124, + "sampleRate": 24000, + "channels": 1, + "duration": 6.96, + "rms": 0.1000014880654183, + "peak": 0.539933443069458 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-meat.wav?v=0.2.3", + "sha256": "d416107cc05e7c5b92ca27100a10a8a9689de913346179945d5542de4a6bac0c", + "bytes": 342188, + "sampleRate": 24000, + "channels": 1, + "duration": 7.128, + "rms": 0.10000157422522808, + "peak": 0.510833740234375 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-apple.wav?v=0.2.3", + "sha256": "1bf2aef9a9f030af1a8fd7dee8f44aa420a397b3ba99b575feeb3dc7a63ec191", + "bytes": 395180, + "sampleRate": 24000, + "channels": 1, + "duration": 8.232, + "rms": 0.10000148399213096, + "peak": 0.563568115234375 + }, + { + "url": "http://127.0.0.1:4173/audio/first-oil.wav?v=0.2.3", + "sha256": "f415195e0cfc7ee711d09de7519e88eab62cc8b58d70772c83c3f5c27c267819", + "bytes": 335276, + "sampleRate": 24000, + "channels": 1, + "duration": 6.984, + "rms": 0.10000145886808136, + "peak": 0.5347453355789185 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-hat.wav?v=0.2.3", + "sha256": "31a6a4270bf368cda419094d87a303ac3cd5c22539786cb165f8044b0b8e9d6e", + "bytes": 402092, + "sampleRate": 24000, + "channels": 1, + "duration": 8.376, + "rms": 0.10000145804818952, + "peak": 0.541778564453125 + }, + { + "url": "http://127.0.0.1:4173/audio/message-furniture.wav?v=0.2.3", + "sha256": "26c331b7e12311236f4bb48f88918dfbf53cccd2f50b55741ea6ff4473e71dd8", + "bytes": 521900, + "sampleRate": 24000, + "channels": 1, + "duration": 10.872, + "rms": 0.10000134596838128, + "peak": 0.529327392578125 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-oil.wav?v=0.2.3", + "sha256": "3fa1e662a3af8f2726b17b2baa5bec2934406e6595ebc243c8380dd16e190977", + "bytes": 190124, + "sampleRate": 24000, + "channels": 1, + "duration": 3.96, + "rms": 0.10000134375667624, + "peak": 0.3817255198955536 + }, + { + "url": "http://127.0.0.1:4173/audio/last-sea.wav?v=0.2.3", + "sha256": "f755452e1da44674aa1df7d12edffa988091b89a394e7eb6d4a00eb721f07cbf", + "bytes": 345644, + "sampleRate": 24000, + "channels": 1, + "duration": 7.2, + "rms": 0.10000140162255576, + "peak": 0.591033935546875 + }, + { + "url": "http://127.0.0.1:4173/audio/password-oil.wav?v=0.2.3", + "sha256": "b472957b27ff98ea7b8894fa1ff12653f7e9f66f77870faa9e52a1c1bf116c41", + "bytes": 240812, + "sampleRate": 24000, + "channels": 1, + "duration": 5.016, + "rms": 0.10000146772662066, + "peak": 0.4945219159126282 + }, + { + "url": "http://127.0.0.1:4173/audio/first-umbrella.wav?v=0.2.3", + "sha256": "878e0bd2e6e4105f175aef51a028f6b141f3a2072be20f783193f3ba897a3ee0", + "bytes": 366380, + "sampleRate": 24000, + "channels": 1, + "duration": 7.632, + "rms": 0.10000147647908036, + "peak": 0.5700247287750244 + }, + { + "url": "http://127.0.0.1:4173/audio/last-apple.wav?v=0.2.3", + "sha256": "4cb2a8579fa3a7b91bb36363826ce8ca0d6d86e96e16a479e226a2802edd82f7", + "bytes": 356012, + "sampleRate": 24000, + "channels": 1, + "duration": 7.416, + "rms": 0.10000144523423521, + "peak": 0.622528076171875 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-market.wav?v=0.2.3", + "sha256": "68a5b899115a66ab225d610ec47b4de56cc8793657362bc38f533c06f741e4cc", + "bytes": 402092, + "sampleRate": 24000, + "channels": 1, + "duration": 8.376, + "rms": 0.10000160159844854, + "peak": 0.6822717785835266 + }, + { + "url": "http://127.0.0.1:4173/audio/message-oil.wav?v=0.2.3", + "sha256": "a2a71a7e5e07c81871a25c6cb7540c39aa0b32fc44f78cda66b5f34ace98d805", + "bytes": 509228, + "sampleRate": 24000, + "channels": 1, + "duration": 10.608, + "rms": 0.10000135184106136, + "peak": 0.51812744140625 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-meat.wav?v=0.2.3", + "sha256": "d36dfc395a5c53fbfa4abe9980db7bb59adfdac59e40318c4aca365365e3f2ab", + "bytes": 187820, + "sampleRate": 24000, + "channels": 1, + "duration": 3.912, + "rms": 0.1000013329979738, + "peak": 0.371124267578125 + }, + { + "url": "http://127.0.0.1:4173/audio/password-market.wav?v=0.2.3", + "sha256": "02e325fb753ef7a3ee585a03d2ca2aa3f1fbc58523b062222ae1136eeed7a95c", + "bytes": 230444, + "sampleRate": 24000, + "channels": 1, + "duration": 4.8, + "rms": 0.10000151520861549, + "peak": 0.48170414566993713 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-hat.wav?v=0.2.3", + "sha256": "4ff43dd042f4b5451e9fdeb3edd59f1e389a7d1dd488094587a3a9fc7dfffa44", + "bytes": 191276, + "sampleRate": 24000, + "channels": 1, + "duration": 3.984, + "rms": 0.10000132502946775, + "peak": 0.417083740234375 + }, + { + "url": "http://127.0.0.1:4173/audio/last-market.wav?v=0.2.3", + "sha256": "7857e87e9dbfe8fe849cc0b18c1d45b60916cb337328099c7a87a42c82e2821e", + "bytes": 359468, + "sampleRate": 24000, + "channels": 1, + "duration": 7.488, + "rms": 0.10000148064140717, + "peak": 0.600555419921875 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-meat.wav?v=0.2.3", + "sha256": "94f8a4f9e116a787e5ed052661d6de9ecf3ad8629db476661dd59ad03014b0c9", + "bytes": 244268, + "sampleRate": 24000, + "channels": 1, + "duration": 5.088, + "rms": 0.10000146176253134, + "peak": 0.44187748432159424 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-oil.wav?v=0.2.3", + "sha256": "55b2c7d6aa8bbce04edf8661882c9781da81c57f56217f99b80457a3bb895da0", + "bytes": 369836, + "sampleRate": 24000, + "channels": 1, + "duration": 7.704, + "rms": 0.10000146897241707, + "peak": 0.6239814162254333 + }, + { + "url": "http://127.0.0.1:4173/audio/first-sound.wav?v=0.2.3", + "sha256": "46f6adeed928a16af0700f1e8626cf8049f124632a04a5d10604426fb06f9596", + "bytes": 353708, + "sampleRate": 24000, + "channels": 1, + "duration": 7.368, + "rms": 0.10000157588418972, + "peak": 0.5189672708511353 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-umbrella.wav?v=0.2.3", + "sha256": "4b4c858a25659540f9dbc524664496fc6de61ab8c1627f3cfee8c9c744e11d5b", + "bytes": 247724, + "sampleRate": 24000, + "channels": 1, + "duration": 5.16, + "rms": 0.10000144286672341, + "peak": 0.46534621715545654 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-oil.wav?v=0.2.3", + "sha256": "3ca98682ff06d1d6b8af02c0fd5b2124f42266ac989884223eff4a9bbde1287a", + "bytes": 399788, + "sampleRate": 24000, + "channels": 1, + "duration": 8.328, + "rms": 0.10000149133669024, + "peak": 0.5243995189666748 + }, + { + "url": "http://127.0.0.1:4173/audio/first-sea.wav?v=0.2.3", + "sha256": "0f0b39314c5f7d7168d4854003c0c284e7bc3438cdc4d1d1c5adab7cb5ed30e5", + "bytes": 349100, + "sampleRate": 24000, + "channels": 1, + "duration": 7.272, + "rms": 0.10000142148394393, + "peak": 0.5717948079109192 + }, + { + "url": "http://127.0.0.1:4173/audio/last-meat.wav?v=0.2.3", + "sha256": "10f8ad4259ed8945c9da831e80b3902303c09caef96d400298599168fb1efed4", + "bytes": 346796, + "sampleRate": 24000, + "channels": 1, + "duration": 7.224, + "rms": 0.10000155834091913, + "peak": 0.537200927734375 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-umbrella.wav?v=0.2.3", + "sha256": "399ea2f681f755918f1117c8baba42739ceca64b307b999342f457a9235050b6", + "bytes": 368684, + "sampleRate": 24000, + "channels": 1, + "duration": 7.68, + "rms": 0.10000155028684544, + "peak": 0.569549560546875 + }, + { + "url": "http://127.0.0.1:4173/audio/message-meat.wav?v=0.2.3", + "sha256": "ce19735df079b54c171e775b6b365385a80160b9033442abab95b2b9c8505e1a", + "bytes": 512684, + "sampleRate": 24000, + "channels": 1, + "duration": 10.68, + "rms": 0.10000140834686953, + "peak": 0.5147705078125 + }, + { + "url": "http://127.0.0.1:4173/audio/message-umbrella.wav?v=0.2.3", + "sha256": "41d5866dae66600df4694a8312b531571d44cece6dba0e423e7c43d09d184819", + "bytes": 523052, + "sampleRate": 24000, + "channels": 1, + "duration": 10.896, + "rms": 0.10000120668553683, + "peak": 0.530364990234375 + }, + { + "url": "http://127.0.0.1:4173/audio/last-furniture.wav?v=0.2.3", + "sha256": "5ad4f776e35439d408abed0e66567d6b5cdc80fc54d579165472e474f1238776", + "bytes": 357164, + "sampleRate": 24000, + "channels": 1, + "duration": 7.44, + "rms": 0.10000152394963031, + "peak": 0.583587646484375 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-sea.wav?v=0.2.3", + "sha256": "8838d6a1ee8a790427dc5aa761e70b3d8872af62086efeed743297ff7f8b8a06", + "bytes": 243116, + "sampleRate": 24000, + "channels": 1, + "duration": 5.064, + "rms": 0.10000138788281714, + "peak": 0.45013427734375 + }, + { + "url": "http://127.0.0.1:4173/audio/message-apple.wav?v=0.2.3", + "sha256": "d85e6f47d871369f00de2274139e5ad6b4b5686b5e20e248df0ed6b9a320d942", + "bytes": 517292, + "sampleRate": 24000, + "channels": 1, + "duration": 10.776, + "rms": 0.10000133916854889, + "peak": 0.525360107421875 + }, + { + "url": "http://127.0.0.1:4173/audio/last-hat.wav?v=0.2.3", + "sha256": "bdaf8fbc54df8061e9e58aa8c14b3044a6e863dc54973ee3ee6ae2c5ae1a28f1", + "bytes": 354860, + "sampleRate": 24000, + "channels": 1, + "duration": 7.392, + "rms": 0.10000152378078818, + "peak": 0.550079345703125 + }, + { + "url": "http://127.0.0.1:4173/audio/first-apple.wav?v=0.2.3", + "sha256": "7c1dbcb3082055df2b8f087f7e906ec867c92f679de0894c34740c05e61a4bc1", + "bytes": 359468, + "sampleRate": 24000, + "channels": 1, + "duration": 7.488, + "rms": 0.10000143468253914, + "peak": 0.57977294921875 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-umbrella.wav?v=0.2.3", + "sha256": "8d3e8e8bc97e5fe3f3362184c4abb12f01a882a1f1174d2644f0f70aac677c0a", + "bytes": 192428, + "sampleRate": 24000, + "channels": 1, + "duration": 4.008, + "rms": 0.10000131475711933, + "peak": 0.385650634765625 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-furniture.wav?v=0.2.3", + "sha256": "5c004a7b2f5a4a918c9f689f1a2dcb219a620ed14313f40a9655b36dbf64948d", + "bytes": 398636, + "sampleRate": 24000, + "channels": 1, + "duration": 8.304, + "rms": 0.10000141690978645, + "peak": 0.487396240234375 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-tree.wav?v=0.2.3", + "sha256": "122f496834fb16d6da47f801e50e46e272e4e934af959467d1db4e490f79be7a", + "bytes": 183212, + "sampleRate": 24000, + "channels": 1, + "duration": 3.816, + "rms": 0.10000140751524371, + "peak": 0.36920166015625 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-tree.wav?v=0.2.3", + "sha256": "00d8e77ec0371971d632724d91f8cf8d947bfb83c582a513b6421be4c457a1da", + "bytes": 241964, + "sampleRate": 24000, + "channels": 1, + "duration": 5.04, + "rms": 0.10000146153372488, + "peak": 0.4585406184196472 + }, + { + "url": "http://127.0.0.1:4173/audio/message-tree.wav?v=0.2.3", + "sha256": "5d684aa710a63d36ed8dcc2a8bfbdd5c71b0b1c63dad2a324adecb76591e85b8", + "bytes": 540332, + "sampleRate": 24000, + "channels": 1, + "duration": 11.256, + "rms": 0.10000132424453942, + "peak": 0.5262451171875 + }, + { + "url": "http://127.0.0.1:4173/audio/last-tree.wav?v=0.2.3", + "sha256": "589e56d940a3c9e80ec02ae0b2dd93463fdc85ef019a753fcd0fded0752055f9", + "bytes": 382508, + "sampleRate": 24000, + "channels": 1, + "duration": 7.968, + "rms": 0.10000149781706567, + "peak": 0.5807672142982483 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-tree.wav?v=0.2.3", + "sha256": "341888c75275c13eb31058f53a1d4276be0daa0a1b5a3a45522036928b83b0c1", + "bytes": 382508, + "sampleRate": 24000, + "channels": 1, + "duration": 7.968, + "rms": 0.1000014873304774, + "peak": 0.600024402141571 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-tree.wav?v=0.2.3", + "sha256": "8735c3d9672561ca237fa87317beec2878492eb9063d6048d5b214423561acc1", + "bytes": 423980, + "sampleRate": 24000, + "channels": 1, + "duration": 8.832, + "rms": 0.10000150947389638, + "peak": 0.6187627911567688 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-furniture.wav?v=0.2.3", + "sha256": "52cb92cdb8ee92b6f581c9d68dbc346f180c470564809ba57185429c9eb84127", + "bytes": 186668, + "sampleRate": 24000, + "channels": 1, + "duration": 3.888, + "rms": 0.1000013480244084, + "peak": 0.387054443359375 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-tree.wav?v=0.2.3", + "sha256": "bc8e54f5407e8866bf1ca1ddfd4f6c63d85fee29bd9e430c7dd33e87974fc5b8", + "bytes": 409004, + "sampleRate": 24000, + "channels": 1, + "duration": 8.52, + "rms": 0.10000146559822108, + "peak": 0.5486617684364319 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-tree.wav?v=0.2.3", + "sha256": "b8e8bbe6b8b14727efd953fae9d4aed2caeb004055d52f611c6378322847edbe", + "bytes": 400940, + "sampleRate": 24000, + "channels": 1, + "duration": 8.352, + "rms": 0.10000144970799159, + "peak": 0.470611572265625 + }, + { + "url": "http://127.0.0.1:4173/audio/first-tree.wav?v=0.2.3", + "sha256": "3178230fd5850b6277a2153b438ec5289720e3db7ac929914cc213964f004bd5", + "bytes": 379052, + "sampleRate": 24000, + "channels": 1, + "duration": 7.896, + "rms": 0.10000144270360484, + "peak": 0.5833613276481628 + }, + { + "url": "http://127.0.0.1:4173/audio/password-tree.wav?v=0.2.3", + "sha256": "67da8147296e35134ec254bc82b58317630061b2c64d2d63c4be197ce8692d50", + "bytes": 233900, + "sampleRate": 24000, + "channels": 1, + "duration": 4.872, + "rms": 0.10000156310809623, + "peak": 0.4904019236564636 + } + ] +} diff --git a/.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 b/.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 new file mode 100644 index 0000000..b566f7b --- /dev/null +++ b/.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 @@ -0,0 +1,1098 @@ +{ + "chrome": "146.0.7680.80", + "external": [], + "errors": [], + "failed": [], + "files": [ + { + "url": "http://127.0.0.1:4173/audio/intro.wav?v=0.2.3", + "sha256": "90d9f46e6e3f9c8a0c1a781096df54d7809ef4ad38b289508ef7b8c0411465ce", + "bytes": 338732, + "sampleRate": 24000, + "channels": 1, + "duration": 7.056, + "rms": 0.10000144992850359, + "peak": 0.4998626708984375 + }, + { + "url": "http://127.0.0.1:4173/ambience/street.wav?v=0.2.3", + "sha256": "a8bffa201b174618955bc51b860167169125304811aabe2086b0bb35b06c3ae1", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.07999880181401388, + "peak": 0.3967711329460144 + }, + { + "url": "http://127.0.0.1:4173/ambience/mall.wav?v=0.2.3", + "sha256": "680a769940c08f0d12c6c954c08366598dd8b5745e276f39c82b10d1a88261a1", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.07999875178666456, + "peak": 0.7191991806030273 + }, + { + "url": "http://127.0.0.1:4173/ambience/theater.wav?v=0.2.3", + "sha256": "2d6a444fb7874cdf6b2d8a741a69175299b112eb66834912c025437d8277d635", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.07999878601263052, + "peak": 0.495086669921875 + }, + { + "url": "http://127.0.0.1:4173/ambience/department.wav?v=0.2.3", + "sha256": "aa43f3d1d3e7c2b1f8ace24ecbda45d0ea3a031db941c39506dc6c1665b8efa7", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.07999879026023995, + "peak": 0.4749900698661804 + }, + { + "url": "http://127.0.0.1:4173/ambience/market.wav?v=0.2.3", + "sha256": "d6f73d86aea98b83e2995e61baaa7315a0ea7adeebc093769d76e1569b207658", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.04309922340528536, + "peak": 0.8500015139579773 + }, + { + "url": "http://127.0.0.1:4173/ambience/subway.wav?v=0.2.3", + "sha256": "9faf70b68617d267b367a0f3692ed90015458543ab4b0844f6c704e6a724728f", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.079998775670051, + "peak": 0.42530596256256104 + }, + { + "url": "http://127.0.0.1:4173/ambience/cafe.wav?v=0.2.3", + "sha256": "6853c121104940041c268a2891eadae032c17aa22b4c3b3ddfbc025262434995", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.07999875794689627, + "peak": 0.4057435691356659 + }, + { + "url": "http://127.0.0.1:4173/ambience/rain.wav?v=0.2.3", + "sha256": "f4315084e820f742b0709de5bb0d1abd3d5af1730620e08c2948b70347356dd9", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.011384798571746246, + "peak": 0.1024169921875 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-apple.wav?v=0.2.3", + "sha256": "cb7da4e9a1288cac64d168b241f27d7d2bc2dfecace58744f9bbf2792dfad04e", + "bytes": 397484, + "sampleRate": 24000, + "channels": 1, + "duration": 8.28, + "rms": 0.10000142448574952, + "peak": 0.6414685249328613 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-market.wav?v=0.2.3", + "sha256": "b8d25b867497adcd0fe7c8b6a8a8d2e7a52965956738a83e53f58735708773f9", + "bytes": 405548, + "sampleRate": 24000, + "channels": 1, + "duration": 8.448, + "rms": 0.10000141405173993, + "peak": 0.491485595703125 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-sound.wav?v=0.2.3", + "sha256": "34e4d9758d2ed448646fda364610e34779c84794403d9051ab3d8c1d33e2c80c", + "bytes": 184364, + "sampleRate": 24000, + "channels": 1, + "duration": 3.84, + "rms": 0.10000138709171018, + "peak": 0.386322021484375 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-furniture.wav?v=0.2.3", + "sha256": "b45b1afc8d9b534ff3e0a2a2ecb99efc1f4e40d41f89f55c4ed8ba94ad6d76d4", + "bytes": 354860, + "sampleRate": 24000, + "channels": 1, + "duration": 7.392, + "rms": 0.1000015072973225, + "peak": 0.5576171875 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-market.wav?v=0.2.3", + "sha256": "cefa0e95649ea6bd1df4c8dfccd2b74b4f4c028714420ce1087b61db2f2a8d47", + "bytes": 248876, + "sampleRate": 24000, + "channels": 1, + "duration": 5.184, + "rms": 0.10000142548167161, + "peak": 0.4857020676136017 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-oil.wav?v=0.2.3", + "sha256": "f6eff0cdddcad9790351491e60c53cb2a70d222033a583652f2de0b8cd6abcc7", + "bytes": 406700, + "sampleRate": 24000, + "channels": 1, + "duration": 8.472, + "rms": 0.10000139122025363, + "peak": 0.470794677734375 + }, + { + "url": "http://127.0.0.1:4173/audio/first-hat.wav?v=0.2.3", + "sha256": "17c8cde90567e7574b0c0702663bd70713054089ee920241b5444d9b7869eef5", + "bytes": 357164, + "sampleRate": 24000, + "channels": 1, + "duration": 7.44, + "rms": 0.10000152904790521, + "peak": 0.5312662124633789 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-furniture.wav?v=0.2.3", + "sha256": "af82e03b686635c3356e706fe5b05c1231aeaaeab33f275aa5b8714988c65d43", + "bytes": 241964, + "sampleRate": 24000, + "channels": 1, + "duration": 5.04, + "rms": 0.10000137346142077, + "peak": 0.4852443039417267 + }, + { + "url": "http://127.0.0.1:4173/audio/password-sound.wav?v=0.2.3", + "sha256": "044aafff08a19e39f21e58b963644715a987cd155896998769ef8e9ce6449628", + "bytes": 236204, + "sampleRate": 24000, + "channels": 1, + "duration": 4.92, + "rms": 0.10000156641621728, + "peak": 0.4621112644672394 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-hat.wav?v=0.2.3", + "sha256": "f9f98c91cfbcfcb106eef7d5d3795a9cf3c3aab7e19a60f13d7dffe284d19f86", + "bytes": 398636, + "sampleRate": 24000, + "channels": 1, + "duration": 8.304, + "rms": 0.10000141071544869, + "peak": 0.470977783203125 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-apple.wav?v=0.2.3", + "sha256": "7c8f413f4b7e164f090e508ba090448f1376c6012649bbb6a917d45851313883", + "bytes": 188972, + "sampleRate": 24000, + "channels": 1, + "duration": 3.936, + "rms": 0.10000130469939268, + "peak": 0.401641845703125 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-sea.wav?v=0.2.3", + "sha256": "db2f235bee26ac804b5362e8e013b8f40c8da24fd3a34e0fb3b43c6d264feb36", + "bytes": 382508, + "sampleRate": 24000, + "channels": 1, + "duration": 7.968, + "rms": 0.10000145042993039, + "peak": 0.6843470335006714 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-furniture.wav?v=0.2.3", + "sha256": "442bdcb956f120c270e1f321feae0415c897de0183e468980fcc119b898b2a67", + "bytes": 403244, + "sampleRate": 24000, + "channels": 1, + "duration": 8.4, + "rms": 0.10000149119200713, + "peak": 0.5619068145751953 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-sea.wav?v=0.2.3", + "sha256": "b6dbe0af143ea775f05bd59a3d6af348bcc770ab378ac91ea75a56e06c326edf", + "bytes": 346796, + "sampleRate": 24000, + "channels": 1, + "duration": 7.224, + "rms": 0.10000144532868623, + "peak": 0.56494140625 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-sound.wav?v=0.2.3", + "sha256": "e9d636ff7f4777f38b1ff15bebdcec6fbde95b4b4b05625a7415b4cfa0025b59", + "bytes": 395180, + "sampleRate": 24000, + "channels": 1, + "duration": 8.232, + "rms": 0.10000164955559301, + "peak": 0.6114688515663147 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-apple.wav?v=0.2.3", + "sha256": "3ef42e276ff3500c3e197d149f29f79d6a0c1d5516ed1d5a2c57210333fded9c", + "bytes": 246572, + "sampleRate": 24000, + "channels": 1, + "duration": 5.136, + "rms": 0.10000144279302126, + "peak": 0.4701681435108185 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-market.wav?v=0.2.3", + "sha256": "356af25332bf2000ed349671f3ff39767929e1f4599af622c021f907d11fb7bf", + "bytes": 194732, + "sampleRate": 24000, + "channels": 1, + "duration": 4.056, + "rms": 0.10000132629820717, + "peak": 0.4022216796875 + }, + { + "url": "http://127.0.0.1:4173/audio/message-sea.wav?v=0.2.3", + "sha256": "28a461fbe03bffe2560030dea8b60715f7c0fe262dcf85b5b7f7daf483836382", + "bytes": 517292, + "sampleRate": 24000, + "channels": 1, + "duration": 10.776, + "rms": 0.10000130584401576, + "peak": 0.53521728515625 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-umbrella.wav?v=0.2.3", + "sha256": "c8988e604ba05d52597e561389541e8f9cda86e052279f1862bbf8399ead314e", + "bytes": 403244, + "sampleRate": 24000, + "channels": 1, + "duration": 8.4, + "rms": 0.10000148262660476, + "peak": 0.557830810546875 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-hat.wav?v=0.2.3", + "sha256": "308278ec2bd27d4224976a55632d1f7fa1edabb0792126d9d858a699c287aee4", + "bytes": 245420, + "sampleRate": 24000, + "channels": 1, + "duration": 5.112, + "rms": 0.10000140702099906, + "peak": 0.4498428404331207 + }, + { + "url": "http://127.0.0.1:4173/audio/password-furniture.wav?v=0.2.3", + "sha256": "fb2b631dd4e12120d08a84cce6450f9cd9cd68105d13d7001d808e7deaa1df4a", + "bytes": 233900, + "sampleRate": 24000, + "channels": 1, + "duration": 4.872, + "rms": 0.10000146718546903, + "peak": 0.4836573302745819 + }, + { + "url": "http://127.0.0.1:4173/audio/first-market.wav?v=0.2.3", + "sha256": "1e00b8f70a796cdebb0feb00c605fece7488b06915e6e036f54206f05e201e0c", + "bytes": 359468, + "sampleRate": 24000, + "channels": 1, + "duration": 7.488, + "rms": 0.10000152633991319, + "peak": 0.6390880942344666 + }, + { + "url": "http://127.0.0.1:4173/audio/first-meat.wav?v=0.2.3", + "sha256": "f51a37c1722fef581f7d642a4dcae7fcb9953b3c318dce971bf616cd1a81fecc", + "bytes": 345644, + "sampleRate": 24000, + "channels": 1, + "duration": 7.2, + "rms": 0.10000152244411063, + "peak": 0.5131382346153259 + }, + { + "url": "http://127.0.0.1:4173/audio/password-sea.wav?v=0.2.3", + "sha256": "03f45b8cb5b3dc72faf5c6e3d0e2a10cea6b60301ea400d0a4453596d2f0b337", + "bytes": 232748, + "sampleRate": 24000, + "channels": 1, + "duration": 4.848, + "rms": 0.10000144821976133, + "peak": 0.5339213013648987 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-sound.wav?v=0.2.3", + "sha256": "98387ccc7aab566f6487d4c250b2128082cc527e013a6f7b7bc4d0266ac295df", + "bytes": 394028, + "sampleRate": 24000, + "channels": 1, + "duration": 8.208, + "rms": 0.10000158053850364, + "peak": 0.5377971529960632 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-umbrella.wav?v=0.2.3", + "sha256": "5e59ef39113c3d5e106862356d715f4cef2862ef8ee02654a97e532675c1ac6d", + "bytes": 410156, + "sampleRate": 24000, + "channels": 1, + "duration": 8.544, + "rms": 0.10000147499132286, + "peak": 0.6748558282852173 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-hat.wav?v=0.2.3", + "sha256": "b01ef9762ac84e3eb757243bc9286c62f7d45444a821ae35ac36a8b095e1598a", + "bytes": 353708, + "sampleRate": 24000, + "channels": 1, + "duration": 7.368, + "rms": 0.10000153089787694, + "peak": 0.555206298828125 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-market.wav?v=0.2.3", + "sha256": "d89792da51c83ac49d27e55aa6d822a338899a5ee487b34b552748201e1522f6", + "bytes": 398636, + "sampleRate": 24000, + "channels": 1, + "duration": 8.304, + "rms": 0.10000149710778367, + "peak": 0.5728324055671692 + }, + { + "url": "http://127.0.0.1:4173/audio/password-umbrella.wav?v=0.2.3", + "sha256": "ab3ca6398c879971dc793eb25b472fcc0db72d76e386f11ef4d32c639f37c69d", + "bytes": 239660, + "sampleRate": 24000, + "channels": 1, + "duration": 4.992, + "rms": 0.100001426973271, + "peak": 0.4776757061481476 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-meat.wav?v=0.2.3", + "sha256": "48e91b3932d3798e852041a854b3ee08c72127e092c62083a47af6b99adff241", + "bytes": 403244, + "sampleRate": 24000, + "channels": 1, + "duration": 8.4, + "rms": 0.10000140336390047, + "peak": 0.481536865234375 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-hat.wav?v=0.2.3", + "sha256": "6e089a42fd7e65e82eec7186d369c926fb7fdac794365b2bd7658822fd92437c", + "bytes": 396332, + "sampleRate": 24000, + "channels": 1, + "duration": 8.256, + "rms": 0.1000015662548192, + "peak": 0.616748571395874 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-sound.wav?v=0.2.3", + "sha256": "4d00aa6114327f450a00dacbc7e7b572ebf1de4ce9dc2fe4b5505766cca71ce9", + "bytes": 353708, + "sampleRate": 24000, + "channels": 1, + "duration": 7.368, + "rms": 0.10000162019345048, + "peak": 0.5348368883132935 + }, + { + "url": "http://127.0.0.1:4173/audio/last-oil.wav?v=0.2.3", + "sha256": "b5ce34950b8b31b1baf6ce55410797f0d8aa5478a670d6eace87cf76d134d6d3", + "bytes": 337580, + "sampleRate": 24000, + "channels": 1, + "duration": 7.032, + "rms": 0.10000149980584365, + "peak": 0.55706787109375 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-sea.wav?v=0.2.3", + "sha256": "47aa31d757c9fb49c9b53a1c052d90a5ced4be57549d649850d9b48f8864045b", + "bytes": 191276, + "sampleRate": 24000, + "channels": 1, + "duration": 3.984, + "rms": 0.10000129182106483, + "peak": 0.388702392578125 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-sound.wav?v=0.2.3", + "sha256": "659eb0e2b06e6b165b46744769743e032e2282519f8486c57bc45e0f7d07a069", + "bytes": 240812, + "sampleRate": 24000, + "channels": 1, + "duration": 5.016, + "rms": 0.10000152909529536, + "peak": 0.45481735467910767 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-meat.wav?v=0.2.3", + "sha256": "6599d2fac73ea616a793151b4ce6f51af673988d630bac6219a77e78ae6cb34e", + "bytes": 380204, + "sampleRate": 24000, + "channels": 1, + "duration": 7.92, + "rms": 0.1000016061190976, + "peak": 0.5921201109886169 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-market.wav?v=0.2.3", + "sha256": "c855b449e0d4ace74681bfe68e5e7f0b063568827ae872017234dbe8ae119e4c", + "bytes": 356012, + "sampleRate": 24000, + "channels": 1, + "duration": 7.416, + "rms": 0.10000151456676445, + "peak": 0.5949888825416565 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-furniture.wav?v=0.2.3", + "sha256": "bf84dc6cff1f227924a3a62158d2fc18769fb0ca40b91418fa19e534dbf92f00", + "bytes": 397484, + "sampleRate": 24000, + "channels": 1, + "duration": 8.28, + "rms": 0.10000155255948041, + "peak": 0.6670430898666382 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-sound.wav?v=0.2.3", + "sha256": "5a603bc69979603afddcaeb6edf500a7c540b72405daeb33f5335d746b327da1", + "bytes": 397484, + "sampleRate": 24000, + "channels": 1, + "duration": 8.28, + "rms": 0.10000146491234768, + "peak": 0.469268798828125 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-meat.wav?v=0.2.3", + "sha256": "9183ef90b64f5ceaf3bb0178c689231ff3e9981d6ce889124a15f2a6e2b7a344", + "bytes": 395180, + "sampleRate": 24000, + "channels": 1, + "duration": 8.232, + "rms": 0.10000155087122137, + "peak": 0.5193029642105103 + }, + { + "url": "http://127.0.0.1:4173/audio/last-sound.wav?v=0.2.3", + "sha256": "ec9c49802aebeb6a8b898a1c0d8ad1daa127d2d64c905c197ed49a8e0c4eb64a", + "bytes": 354860, + "sampleRate": 24000, + "channels": 1, + "duration": 7.392, + "rms": 0.10000165748716579, + "peak": 0.5641041398048401 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-oil.wav?v=0.2.3", + "sha256": "5fb63e04520c312aa6b7b48b70c2f7c140b5ab480e5c6992edbc2ba85b9a06e7", + "bytes": 241964, + "sampleRate": 24000, + "channels": 1, + "duration": 5.04, + "rms": 0.10000143720418167, + "peak": 0.443586528301239 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-umbrella.wav?v=0.2.3", + "sha256": "92b54f04884ab915783945077efd8f3bd443849a1720f72168b6348cae1f8e85", + "bytes": 406700, + "sampleRate": 24000, + "channels": 1, + "duration": 8.472, + "rms": 0.10000140257790288, + "peak": 0.479034423828125 + }, + { + "url": "http://127.0.0.1:4173/audio/message-sound.wav?v=0.2.3", + "sha256": "1e682147dae8026ba78dc8f256c7f24acb3a6743bfd88a0fcc86096930eef078", + "bytes": 521900, + "sampleRate": 24000, + "channels": 1, + "duration": 10.872, + "rms": 0.10000138583471241, + "peak": 0.51953125 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-apple.wav?v=0.2.3", + "sha256": "ccd7327a3fb54d3320d049ffdced3bc17595861cee69429c0ee97182d454195b", + "bytes": 402092, + "sampleRate": 24000, + "channels": 1, + "duration": 8.376, + "rms": 0.10000140667715379, + "peak": 0.490325927734375 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-sea.wav?v=0.2.3", + "sha256": "5c91a36496e274d2be9c6fa8d9b506cd04f2a1b7ceb05ed1b7bb03fe7fca99d9", + "bytes": 399788, + "sampleRate": 24000, + "channels": 1, + "duration": 8.328, + "rms": 0.10000144241513113, + "peak": 0.5465559959411621 + }, + { + "url": "http://127.0.0.1:4173/audio/message-hat.wav?v=0.2.3", + "sha256": "5a713a8522b231bb8276805c014b385b9150b79f58ff2618446607e2b442495e", + "bytes": 518444, + "sampleRate": 24000, + "channels": 1, + "duration": 10.8, + "rms": 0.10000136927555209, + "peak": 0.587005615234375 + }, + { + "url": "http://127.0.0.1:4173/audio/password-meat.wav?v=0.2.3", + "sha256": "b009caadd56350d6a641ff17f0973e2b2724c183e1f45ae0bf3c483e237fa99e", + "bytes": 240812, + "sampleRate": 24000, + "channels": 1, + "duration": 5.016, + "rms": 0.10000148386024335, + "peak": 0.4978789687156677 + }, + { + "url": "http://127.0.0.1:4173/audio/message-market.wav?v=0.2.3", + "sha256": "9242d4cd6e0030e6b073e4d2360f84aa8a454d1749711cdb2d64c14f28a7ea20", + "bytes": 523052, + "sampleRate": 24000, + "channels": 1, + "duration": 10.896, + "rms": 0.10000133805787564, + "peak": 0.534820556640625 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-apple.wav?v=0.2.3", + "sha256": "8832f1b793ab3eedbe663875ea8dbeabb122c329bd5879437c71230b0418c3c8", + "bytes": 360620, + "sampleRate": 24000, + "channels": 1, + "duration": 7.512, + "rms": 0.10000145024648589, + "peak": 0.553558349609375 + }, + { + "url": "http://127.0.0.1:4173/audio/last-umbrella.wav?v=0.2.3", + "sha256": "c801293a34013a8d93d3289a2cc87cd3eed83f97ba4647f5060efa00b117a9ad", + "bytes": 370988, + "sampleRate": 24000, + "channels": 1, + "duration": 7.728, + "rms": 0.10000149360501835, + "peak": 0.59765625 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-sea.wav?v=0.2.3", + "sha256": "9233431d78ab4b144e3c33ad0cf0d49fc0fb91b29514343230ba32987b794bb3", + "bytes": 398636, + "sampleRate": 24000, + "channels": 1, + "duration": 8.304, + "rms": 0.10000134688905045, + "peak": 0.49616992473602295 + }, + { + "url": "http://127.0.0.1:4173/audio/password-apple.wav?v=0.2.3", + "sha256": "b6f5de3fe571fe3a7fdb722fe49250bcfeedef49475271e0ec76a7630907edd5", + "bytes": 235052, + "sampleRate": 24000, + "channels": 1, + "duration": 4.896, + "rms": 0.10000148212193387, + "peak": 0.4834437072277069 + }, + { + "url": "http://127.0.0.1:4173/audio/first-furniture.wav?v=0.2.3", + "sha256": "29f007b385b7182db1d8aeccad4fc3c260df5e66e14e52a46b0ef0fcd0ff3a0a", + "bytes": 364076, + "sampleRate": 24000, + "channels": 1, + "duration": 7.584, + "rms": 0.1000014551820741, + "peak": 0.5700552463531494 + }, + { + "url": "http://127.0.0.1:4173/audio/password-hat.wav?v=0.2.3", + "sha256": "e91bfc97df90a1675b6cd856880ac15c54de32cfc3b23603bdd1c2c5ac3ce6b8", + "bytes": 235052, + "sampleRate": 24000, + "channels": 1, + "duration": 4.896, + "rms": 0.10000146155157119, + "peak": 0.5059053301811218 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-oil.wav?v=0.2.3", + "sha256": "7a6b122b11c07da86c95fb78e2db2a70681b5219c63d6441fe56da1979ac1dc3", + "bytes": 334124, + "sampleRate": 24000, + "channels": 1, + "duration": 6.96, + "rms": 0.1000014880654183, + "peak": 0.539933443069458 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-meat.wav?v=0.2.3", + "sha256": "d416107cc05e7c5b92ca27100a10a8a9689de913346179945d5542de4a6bac0c", + "bytes": 342188, + "sampleRate": 24000, + "channels": 1, + "duration": 7.128, + "rms": 0.10000157422522808, + "peak": 0.510833740234375 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-apple.wav?v=0.2.3", + "sha256": "1bf2aef9a9f030af1a8fd7dee8f44aa420a397b3ba99b575feeb3dc7a63ec191", + "bytes": 395180, + "sampleRate": 24000, + "channels": 1, + "duration": 8.232, + "rms": 0.10000148399213096, + "peak": 0.563568115234375 + }, + { + "url": "http://127.0.0.1:4173/audio/first-oil.wav?v=0.2.3", + "sha256": "f415195e0cfc7ee711d09de7519e88eab62cc8b58d70772c83c3f5c27c267819", + "bytes": 335276, + "sampleRate": 24000, + "channels": 1, + "duration": 6.984, + "rms": 0.10000145886808136, + "peak": 0.5347453355789185 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-hat.wav?v=0.2.3", + "sha256": "31a6a4270bf368cda419094d87a303ac3cd5c22539786cb165f8044b0b8e9d6e", + "bytes": 402092, + "sampleRate": 24000, + "channels": 1, + "duration": 8.376, + "rms": 0.10000145804818952, + "peak": 0.541778564453125 + }, + { + "url": "http://127.0.0.1:4173/audio/message-furniture.wav?v=0.2.3", + "sha256": "26c331b7e12311236f4bb48f88918dfbf53cccd2f50b55741ea6ff4473e71dd8", + "bytes": 521900, + "sampleRate": 24000, + "channels": 1, + "duration": 10.872, + "rms": 0.10000134596838128, + "peak": 0.529327392578125 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-oil.wav?v=0.2.3", + "sha256": "3fa1e662a3af8f2726b17b2baa5bec2934406e6595ebc243c8380dd16e190977", + "bytes": 190124, + "sampleRate": 24000, + "channels": 1, + "duration": 3.96, + "rms": 0.10000134375667624, + "peak": 0.3817255198955536 + }, + { + "url": "http://127.0.0.1:4173/audio/last-sea.wav?v=0.2.3", + "sha256": "f755452e1da44674aa1df7d12edffa988091b89a394e7eb6d4a00eb721f07cbf", + "bytes": 345644, + "sampleRate": 24000, + "channels": 1, + "duration": 7.2, + "rms": 0.10000140162255576, + "peak": 0.591033935546875 + }, + { + "url": "http://127.0.0.1:4173/audio/password-oil.wav?v=0.2.3", + "sha256": "b472957b27ff98ea7b8894fa1ff12653f7e9f66f77870faa9e52a1c1bf116c41", + "bytes": 240812, + "sampleRate": 24000, + "channels": 1, + "duration": 5.016, + "rms": 0.10000146772662066, + "peak": 0.4945219159126282 + }, + { + "url": "http://127.0.0.1:4173/audio/first-umbrella.wav?v=0.2.3", + "sha256": "878e0bd2e6e4105f175aef51a028f6b141f3a2072be20f783193f3ba897a3ee0", + "bytes": 366380, + "sampleRate": 24000, + "channels": 1, + "duration": 7.632, + "rms": 0.10000147647908036, + "peak": 0.5700247287750244 + }, + { + "url": "http://127.0.0.1:4173/audio/last-apple.wav?v=0.2.3", + "sha256": "4cb2a8579fa3a7b91bb36363826ce8ca0d6d86e96e16a479e226a2802edd82f7", + "bytes": 356012, + "sampleRate": 24000, + "channels": 1, + "duration": 7.416, + "rms": 0.10000144523423521, + "peak": 0.622528076171875 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-market.wav?v=0.2.3", + "sha256": "68a5b899115a66ab225d610ec47b4de56cc8793657362bc38f533c06f741e4cc", + "bytes": 402092, + "sampleRate": 24000, + "channels": 1, + "duration": 8.376, + "rms": 0.10000160159844854, + "peak": 0.6822717785835266 + }, + { + "url": "http://127.0.0.1:4173/audio/message-oil.wav?v=0.2.3", + "sha256": "a2a71a7e5e07c81871a25c6cb7540c39aa0b32fc44f78cda66b5f34ace98d805", + "bytes": 509228, + "sampleRate": 24000, + "channels": 1, + "duration": 10.608, + "rms": 0.10000135184106136, + "peak": 0.51812744140625 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-meat.wav?v=0.2.3", + "sha256": "d36dfc395a5c53fbfa4abe9980db7bb59adfdac59e40318c4aca365365e3f2ab", + "bytes": 187820, + "sampleRate": 24000, + "channels": 1, + "duration": 3.912, + "rms": 0.1000013329979738, + "peak": 0.371124267578125 + }, + { + "url": "http://127.0.0.1:4173/audio/password-market.wav?v=0.2.3", + "sha256": "02e325fb753ef7a3ee585a03d2ca2aa3f1fbc58523b062222ae1136eeed7a95c", + "bytes": 230444, + "sampleRate": 24000, + "channels": 1, + "duration": 4.8, + "rms": 0.10000151520861549, + "peak": 0.48170414566993713 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-hat.wav?v=0.2.3", + "sha256": "4ff43dd042f4b5451e9fdeb3edd59f1e389a7d1dd488094587a3a9fc7dfffa44", + "bytes": 191276, + "sampleRate": 24000, + "channels": 1, + "duration": 3.984, + "rms": 0.10000132502946775, + "peak": 0.417083740234375 + }, + { + "url": "http://127.0.0.1:4173/audio/last-market.wav?v=0.2.3", + "sha256": "7857e87e9dbfe8fe849cc0b18c1d45b60916cb337328099c7a87a42c82e2821e", + "bytes": 359468, + "sampleRate": 24000, + "channels": 1, + "duration": 7.488, + "rms": 0.10000148064140717, + "peak": 0.600555419921875 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-meat.wav?v=0.2.3", + "sha256": "94f8a4f9e116a787e5ed052661d6de9ecf3ad8629db476661dd59ad03014b0c9", + "bytes": 244268, + "sampleRate": 24000, + "channels": 1, + "duration": 5.088, + "rms": 0.10000146176253134, + "peak": 0.44187748432159424 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-oil.wav?v=0.2.3", + "sha256": "55b2c7d6aa8bbce04edf8661882c9781da81c57f56217f99b80457a3bb895da0", + "bytes": 369836, + "sampleRate": 24000, + "channels": 1, + "duration": 7.704, + "rms": 0.10000146897241707, + "peak": 0.6239814162254333 + }, + { + "url": "http://127.0.0.1:4173/audio/first-sound.wav?v=0.2.3", + "sha256": "46f6adeed928a16af0700f1e8626cf8049f124632a04a5d10604426fb06f9596", + "bytes": 353708, + "sampleRate": 24000, + "channels": 1, + "duration": 7.368, + "rms": 0.10000157588418972, + "peak": 0.5189672708511353 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-umbrella.wav?v=0.2.3", + "sha256": "4b4c858a25659540f9dbc524664496fc6de61ab8c1627f3cfee8c9c744e11d5b", + "bytes": 247724, + "sampleRate": 24000, + "channels": 1, + "duration": 5.16, + "rms": 0.10000144286672341, + "peak": 0.46534621715545654 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-oil.wav?v=0.2.3", + "sha256": "3ca98682ff06d1d6b8af02c0fd5b2124f42266ac989884223eff4a9bbde1287a", + "bytes": 399788, + "sampleRate": 24000, + "channels": 1, + "duration": 8.328, + "rms": 0.10000149133669024, + "peak": 0.5243995189666748 + }, + { + "url": "http://127.0.0.1:4173/audio/first-sea.wav?v=0.2.3", + "sha256": "0f0b39314c5f7d7168d4854003c0c284e7bc3438cdc4d1d1c5adab7cb5ed30e5", + "bytes": 349100, + "sampleRate": 24000, + "channels": 1, + "duration": 7.272, + "rms": 0.10000142148394393, + "peak": 0.5717948079109192 + }, + { + "url": "http://127.0.0.1:4173/audio/last-meat.wav?v=0.2.3", + "sha256": "10f8ad4259ed8945c9da831e80b3902303c09caef96d400298599168fb1efed4", + "bytes": 346796, + "sampleRate": 24000, + "channels": 1, + "duration": 7.224, + "rms": 0.10000155834091913, + "peak": 0.537200927734375 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-umbrella.wav?v=0.2.3", + "sha256": "399ea2f681f755918f1117c8baba42739ceca64b307b999342f457a9235050b6", + "bytes": 368684, + "sampleRate": 24000, + "channels": 1, + "duration": 7.68, + "rms": 0.10000155028684544, + "peak": 0.569549560546875 + }, + { + "url": "http://127.0.0.1:4173/audio/message-meat.wav?v=0.2.3", + "sha256": "ce19735df079b54c171e775b6b365385a80160b9033442abab95b2b9c8505e1a", + "bytes": 512684, + "sampleRate": 24000, + "channels": 1, + "duration": 10.68, + "rms": 0.10000140834686953, + "peak": 0.5147705078125 + }, + { + "url": "http://127.0.0.1:4173/audio/message-umbrella.wav?v=0.2.3", + "sha256": "41d5866dae66600df4694a8312b531571d44cece6dba0e423e7c43d09d184819", + "bytes": 523052, + "sampleRate": 24000, + "channels": 1, + "duration": 10.896, + "rms": 0.10000120668553683, + "peak": 0.530364990234375 + }, + { + "url": "http://127.0.0.1:4173/audio/last-furniture.wav?v=0.2.3", + "sha256": "5ad4f776e35439d408abed0e66567d6b5cdc80fc54d579165472e474f1238776", + "bytes": 357164, + "sampleRate": 24000, + "channels": 1, + "duration": 7.44, + "rms": 0.10000152394963031, + "peak": 0.583587646484375 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-sea.wav?v=0.2.3", + "sha256": "8838d6a1ee8a790427dc5aa761e70b3d8872af62086efeed743297ff7f8b8a06", + "bytes": 243116, + "sampleRate": 24000, + "channels": 1, + "duration": 5.064, + "rms": 0.10000138788281714, + "peak": 0.45013427734375 + }, + { + "url": "http://127.0.0.1:4173/audio/message-apple.wav?v=0.2.3", + "sha256": "d85e6f47d871369f00de2274139e5ad6b4b5686b5e20e248df0ed6b9a320d942", + "bytes": 517292, + "sampleRate": 24000, + "channels": 1, + "duration": 10.776, + "rms": 0.10000133916854889, + "peak": 0.525360107421875 + }, + { + "url": "http://127.0.0.1:4173/audio/last-hat.wav?v=0.2.3", + "sha256": "bdaf8fbc54df8061e9e58aa8c14b3044a6e863dc54973ee3ee6ae2c5ae1a28f1", + "bytes": 354860, + "sampleRate": 24000, + "channels": 1, + "duration": 7.392, + "rms": 0.10000152378078818, + "peak": 0.550079345703125 + }, + { + "url": "http://127.0.0.1:4173/audio/first-apple.wav?v=0.2.3", + "sha256": "7c1dbcb3082055df2b8f087f7e906ec867c92f679de0894c34740c05e61a4bc1", + "bytes": 359468, + "sampleRate": 24000, + "channels": 1, + "duration": 7.488, + "rms": 0.10000143468253914, + "peak": 0.57977294921875 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-umbrella.wav?v=0.2.3", + "sha256": "8d3e8e8bc97e5fe3f3362184c4abb12f01a882a1f1174d2644f0f70aac677c0a", + "bytes": 192428, + "sampleRate": 24000, + "channels": 1, + "duration": 4.008, + "rms": 0.10000131475711933, + "peak": 0.385650634765625 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-furniture.wav?v=0.2.3", + "sha256": "5c004a7b2f5a4a918c9f689f1a2dcb219a620ed14313f40a9655b36dbf64948d", + "bytes": 398636, + "sampleRate": 24000, + "channels": 1, + "duration": 8.304, + "rms": 0.10000141690978645, + "peak": 0.487396240234375 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-tree.wav?v=0.2.3", + "sha256": "122f496834fb16d6da47f801e50e46e272e4e934af959467d1db4e490f79be7a", + "bytes": 183212, + "sampleRate": 24000, + "channels": 1, + "duration": 3.816, + "rms": 0.10000140751524371, + "peak": 0.36920166015625 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-tree.wav?v=0.2.3", + "sha256": "00d8e77ec0371971d632724d91f8cf8d947bfb83c582a513b6421be4c457a1da", + "bytes": 241964, + "sampleRate": 24000, + "channels": 1, + "duration": 5.04, + "rms": 0.10000146153372488, + "peak": 0.4585406184196472 + }, + { + "url": "http://127.0.0.1:4173/audio/message-tree.wav?v=0.2.3", + "sha256": "5d684aa710a63d36ed8dcc2a8bfbdd5c71b0b1c63dad2a324adecb76591e85b8", + "bytes": 540332, + "sampleRate": 24000, + "channels": 1, + "duration": 11.256, + "rms": 0.10000132424453942, + "peak": 0.5262451171875 + }, + { + "url": "http://127.0.0.1:4173/audio/last-tree.wav?v=0.2.3", + "sha256": "589e56d940a3c9e80ec02ae0b2dd93463fdc85ef019a753fcd0fded0752055f9", + "bytes": 382508, + "sampleRate": 24000, + "channels": 1, + "duration": 7.968, + "rms": 0.10000149781706567, + "peak": 0.5807672142982483 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-tree.wav?v=0.2.3", + "sha256": "341888c75275c13eb31058f53a1d4276be0daa0a1b5a3a45522036928b83b0c1", + "bytes": 382508, + "sampleRate": 24000, + "channels": 1, + "duration": 7.968, + "rms": 0.1000014873304774, + "peak": 0.600024402141571 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-tree.wav?v=0.2.3", + "sha256": "8735c3d9672561ca237fa87317beec2878492eb9063d6048d5b214423561acc1", + "bytes": 423980, + "sampleRate": 24000, + "channels": 1, + "duration": 8.832, + "rms": 0.10000150947389638, + "peak": 0.6187627911567688 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-furniture.wav?v=0.2.3", + "sha256": "52cb92cdb8ee92b6f581c9d68dbc346f180c470564809ba57185429c9eb84127", + "bytes": 186668, + "sampleRate": 24000, + "channels": 1, + "duration": 3.888, + "rms": 0.1000013480244084, + "peak": 0.387054443359375 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-tree.wav?v=0.2.3", + "sha256": "bc8e54f5407e8866bf1ca1ddfd4f6c63d85fee29bd9e430c7dd33e87974fc5b8", + "bytes": 409004, + "sampleRate": 24000, + "channels": 1, + "duration": 8.52, + "rms": 0.10000146559822108, + "peak": 0.5486617684364319 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-tree.wav?v=0.2.3", + "sha256": "b8e8bbe6b8b14727efd953fae9d4aed2caeb004055d52f611c6378322847edbe", + "bytes": 400940, + "sampleRate": 24000, + "channels": 1, + "duration": 8.352, + "rms": 0.10000144970799159, + "peak": 0.470611572265625 + }, + { + "url": "http://127.0.0.1:4173/audio/first-tree.wav?v=0.2.3", + "sha256": "3178230fd5850b6277a2153b438ec5289720e3db7ac929914cc213964f004bd5", + "bytes": 379052, + "sampleRate": 24000, + "channels": 1, + "duration": 7.896, + "rms": 0.10000144270360484, + "peak": 0.5833613276481628 + }, + { + "url": "http://127.0.0.1:4173/audio/password-tree.wav?v=0.2.3", + "sha256": "67da8147296e35134ec254bc82b58317630061b2c64d2d63c4be197ce8692d50", + "bytes": 233900, + "sampleRate": 24000, + "channels": 1, + "duration": 4.872, + "rms": 0.10000156310809623, + "peak": 0.4904019236564636 + } + ] +} diff --git a/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/browser-final/audio-음성·현장음-109개-versioned-WAV를-실제-Chrome에서-해시·디코드-검증한다-mobile/browser-audio-integrity.json b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/browser-final/audio-음성·현장음-109개-versioned-WAV를-실제-Chrome에서-해시·디코드-검증한다-mobile/browser-audio-integrity.json new file mode 100644 index 0000000..b566f7b --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/browser-final/audio-음성·현장음-109개-versioned-WAV를-실제-Chrome에서-해시·디코드-검증한다-mobile/browser-audio-integrity.json @@ -0,0 +1,1098 @@ +{ + "chrome": "146.0.7680.80", + "external": [], + "errors": [], + "failed": [], + "files": [ + { + "url": "http://127.0.0.1:4173/audio/intro.wav?v=0.2.3", + "sha256": "90d9f46e6e3f9c8a0c1a781096df54d7809ef4ad38b289508ef7b8c0411465ce", + "bytes": 338732, + "sampleRate": 24000, + "channels": 1, + "duration": 7.056, + "rms": 0.10000144992850359, + "peak": 0.4998626708984375 + }, + { + "url": "http://127.0.0.1:4173/ambience/street.wav?v=0.2.3", + "sha256": "a8bffa201b174618955bc51b860167169125304811aabe2086b0bb35b06c3ae1", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.07999880181401388, + "peak": 0.3967711329460144 + }, + { + "url": "http://127.0.0.1:4173/ambience/mall.wav?v=0.2.3", + "sha256": "680a769940c08f0d12c6c954c08366598dd8b5745e276f39c82b10d1a88261a1", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.07999875178666456, + "peak": 0.7191991806030273 + }, + { + "url": "http://127.0.0.1:4173/ambience/theater.wav?v=0.2.3", + "sha256": "2d6a444fb7874cdf6b2d8a741a69175299b112eb66834912c025437d8277d635", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.07999878601263052, + "peak": 0.495086669921875 + }, + { + "url": "http://127.0.0.1:4173/ambience/department.wav?v=0.2.3", + "sha256": "aa43f3d1d3e7c2b1f8ace24ecbda45d0ea3a031db941c39506dc6c1665b8efa7", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.07999879026023995, + "peak": 0.4749900698661804 + }, + { + "url": "http://127.0.0.1:4173/ambience/market.wav?v=0.2.3", + "sha256": "d6f73d86aea98b83e2995e61baaa7315a0ea7adeebc093769d76e1569b207658", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.04309922340528536, + "peak": 0.8500015139579773 + }, + { + "url": "http://127.0.0.1:4173/ambience/subway.wav?v=0.2.3", + "sha256": "9faf70b68617d267b367a0f3692ed90015458543ab4b0844f6c704e6a724728f", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.079998775670051, + "peak": 0.42530596256256104 + }, + { + "url": "http://127.0.0.1:4173/ambience/cafe.wav?v=0.2.3", + "sha256": "6853c121104940041c268a2891eadae032c17aa22b4c3b3ddfbc025262434995", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.07999875794689627, + "peak": 0.4057435691356659 + }, + { + "url": "http://127.0.0.1:4173/ambience/rain.wav?v=0.2.3", + "sha256": "f4315084e820f742b0709de5bb0d1abd3d5af1730620e08c2948b70347356dd9", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.011384798571746246, + "peak": 0.1024169921875 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-apple.wav?v=0.2.3", + "sha256": "cb7da4e9a1288cac64d168b241f27d7d2bc2dfecace58744f9bbf2792dfad04e", + "bytes": 397484, + "sampleRate": 24000, + "channels": 1, + "duration": 8.28, + "rms": 0.10000142448574952, + "peak": 0.6414685249328613 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-market.wav?v=0.2.3", + "sha256": "b8d25b867497adcd0fe7c8b6a8a8d2e7a52965956738a83e53f58735708773f9", + "bytes": 405548, + "sampleRate": 24000, + "channels": 1, + "duration": 8.448, + "rms": 0.10000141405173993, + "peak": 0.491485595703125 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-sound.wav?v=0.2.3", + "sha256": "34e4d9758d2ed448646fda364610e34779c84794403d9051ab3d8c1d33e2c80c", + "bytes": 184364, + "sampleRate": 24000, + "channels": 1, + "duration": 3.84, + "rms": 0.10000138709171018, + "peak": 0.386322021484375 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-furniture.wav?v=0.2.3", + "sha256": "b45b1afc8d9b534ff3e0a2a2ecb99efc1f4e40d41f89f55c4ed8ba94ad6d76d4", + "bytes": 354860, + "sampleRate": 24000, + "channels": 1, + "duration": 7.392, + "rms": 0.1000015072973225, + "peak": 0.5576171875 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-market.wav?v=0.2.3", + "sha256": "cefa0e95649ea6bd1df4c8dfccd2b74b4f4c028714420ce1087b61db2f2a8d47", + "bytes": 248876, + "sampleRate": 24000, + "channels": 1, + "duration": 5.184, + "rms": 0.10000142548167161, + "peak": 0.4857020676136017 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-oil.wav?v=0.2.3", + "sha256": "f6eff0cdddcad9790351491e60c53cb2a70d222033a583652f2de0b8cd6abcc7", + "bytes": 406700, + "sampleRate": 24000, + "channels": 1, + "duration": 8.472, + "rms": 0.10000139122025363, + "peak": 0.470794677734375 + }, + { + "url": "http://127.0.0.1:4173/audio/first-hat.wav?v=0.2.3", + "sha256": "17c8cde90567e7574b0c0702663bd70713054089ee920241b5444d9b7869eef5", + "bytes": 357164, + "sampleRate": 24000, + "channels": 1, + "duration": 7.44, + "rms": 0.10000152904790521, + "peak": 0.5312662124633789 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-furniture.wav?v=0.2.3", + "sha256": "af82e03b686635c3356e706fe5b05c1231aeaaeab33f275aa5b8714988c65d43", + "bytes": 241964, + "sampleRate": 24000, + "channels": 1, + "duration": 5.04, + "rms": 0.10000137346142077, + "peak": 0.4852443039417267 + }, + { + "url": "http://127.0.0.1:4173/audio/password-sound.wav?v=0.2.3", + "sha256": "044aafff08a19e39f21e58b963644715a987cd155896998769ef8e9ce6449628", + "bytes": 236204, + "sampleRate": 24000, + "channels": 1, + "duration": 4.92, + "rms": 0.10000156641621728, + "peak": 0.4621112644672394 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-hat.wav?v=0.2.3", + "sha256": "f9f98c91cfbcfcb106eef7d5d3795a9cf3c3aab7e19a60f13d7dffe284d19f86", + "bytes": 398636, + "sampleRate": 24000, + "channels": 1, + "duration": 8.304, + "rms": 0.10000141071544869, + "peak": 0.470977783203125 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-apple.wav?v=0.2.3", + "sha256": "7c8f413f4b7e164f090e508ba090448f1376c6012649bbb6a917d45851313883", + "bytes": 188972, + "sampleRate": 24000, + "channels": 1, + "duration": 3.936, + "rms": 0.10000130469939268, + "peak": 0.401641845703125 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-sea.wav?v=0.2.3", + "sha256": "db2f235bee26ac804b5362e8e013b8f40c8da24fd3a34e0fb3b43c6d264feb36", + "bytes": 382508, + "sampleRate": 24000, + "channels": 1, + "duration": 7.968, + "rms": 0.10000145042993039, + "peak": 0.6843470335006714 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-furniture.wav?v=0.2.3", + "sha256": "442bdcb956f120c270e1f321feae0415c897de0183e468980fcc119b898b2a67", + "bytes": 403244, + "sampleRate": 24000, + "channels": 1, + "duration": 8.4, + "rms": 0.10000149119200713, + "peak": 0.5619068145751953 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-sea.wav?v=0.2.3", + "sha256": "b6dbe0af143ea775f05bd59a3d6af348bcc770ab378ac91ea75a56e06c326edf", + "bytes": 346796, + "sampleRate": 24000, + "channels": 1, + "duration": 7.224, + "rms": 0.10000144532868623, + "peak": 0.56494140625 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-sound.wav?v=0.2.3", + "sha256": "e9d636ff7f4777f38b1ff15bebdcec6fbde95b4b4b05625a7415b4cfa0025b59", + "bytes": 395180, + "sampleRate": 24000, + "channels": 1, + "duration": 8.232, + "rms": 0.10000164955559301, + "peak": 0.6114688515663147 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-apple.wav?v=0.2.3", + "sha256": "3ef42e276ff3500c3e197d149f29f79d6a0c1d5516ed1d5a2c57210333fded9c", + "bytes": 246572, + "sampleRate": 24000, + "channels": 1, + "duration": 5.136, + "rms": 0.10000144279302126, + "peak": 0.4701681435108185 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-market.wav?v=0.2.3", + "sha256": "356af25332bf2000ed349671f3ff39767929e1f4599af622c021f907d11fb7bf", + "bytes": 194732, + "sampleRate": 24000, + "channels": 1, + "duration": 4.056, + "rms": 0.10000132629820717, + "peak": 0.4022216796875 + }, + { + "url": "http://127.0.0.1:4173/audio/message-sea.wav?v=0.2.3", + "sha256": "28a461fbe03bffe2560030dea8b60715f7c0fe262dcf85b5b7f7daf483836382", + "bytes": 517292, + "sampleRate": 24000, + "channels": 1, + "duration": 10.776, + "rms": 0.10000130584401576, + "peak": 0.53521728515625 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-umbrella.wav?v=0.2.3", + "sha256": "c8988e604ba05d52597e561389541e8f9cda86e052279f1862bbf8399ead314e", + "bytes": 403244, + "sampleRate": 24000, + "channels": 1, + "duration": 8.4, + "rms": 0.10000148262660476, + "peak": 0.557830810546875 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-hat.wav?v=0.2.3", + "sha256": "308278ec2bd27d4224976a55632d1f7fa1edabb0792126d9d858a699c287aee4", + "bytes": 245420, + "sampleRate": 24000, + "channels": 1, + "duration": 5.112, + "rms": 0.10000140702099906, + "peak": 0.4498428404331207 + }, + { + "url": "http://127.0.0.1:4173/audio/password-furniture.wav?v=0.2.3", + "sha256": "fb2b631dd4e12120d08a84cce6450f9cd9cd68105d13d7001d808e7deaa1df4a", + "bytes": 233900, + "sampleRate": 24000, + "channels": 1, + "duration": 4.872, + "rms": 0.10000146718546903, + "peak": 0.4836573302745819 + }, + { + "url": "http://127.0.0.1:4173/audio/first-market.wav?v=0.2.3", + "sha256": "1e00b8f70a796cdebb0feb00c605fece7488b06915e6e036f54206f05e201e0c", + "bytes": 359468, + "sampleRate": 24000, + "channels": 1, + "duration": 7.488, + "rms": 0.10000152633991319, + "peak": 0.6390880942344666 + }, + { + "url": "http://127.0.0.1:4173/audio/first-meat.wav?v=0.2.3", + "sha256": "f51a37c1722fef581f7d642a4dcae7fcb9953b3c318dce971bf616cd1a81fecc", + "bytes": 345644, + "sampleRate": 24000, + "channels": 1, + "duration": 7.2, + "rms": 0.10000152244411063, + "peak": 0.5131382346153259 + }, + { + "url": "http://127.0.0.1:4173/audio/password-sea.wav?v=0.2.3", + "sha256": "03f45b8cb5b3dc72faf5c6e3d0e2a10cea6b60301ea400d0a4453596d2f0b337", + "bytes": 232748, + "sampleRate": 24000, + "channels": 1, + "duration": 4.848, + "rms": 0.10000144821976133, + "peak": 0.5339213013648987 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-sound.wav?v=0.2.3", + "sha256": "98387ccc7aab566f6487d4c250b2128082cc527e013a6f7b7bc4d0266ac295df", + "bytes": 394028, + "sampleRate": 24000, + "channels": 1, + "duration": 8.208, + "rms": 0.10000158053850364, + "peak": 0.5377971529960632 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-umbrella.wav?v=0.2.3", + "sha256": "5e59ef39113c3d5e106862356d715f4cef2862ef8ee02654a97e532675c1ac6d", + "bytes": 410156, + "sampleRate": 24000, + "channels": 1, + "duration": 8.544, + "rms": 0.10000147499132286, + "peak": 0.6748558282852173 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-hat.wav?v=0.2.3", + "sha256": "b01ef9762ac84e3eb757243bc9286c62f7d45444a821ae35ac36a8b095e1598a", + "bytes": 353708, + "sampleRate": 24000, + "channels": 1, + "duration": 7.368, + "rms": 0.10000153089787694, + "peak": 0.555206298828125 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-market.wav?v=0.2.3", + "sha256": "d89792da51c83ac49d27e55aa6d822a338899a5ee487b34b552748201e1522f6", + "bytes": 398636, + "sampleRate": 24000, + "channels": 1, + "duration": 8.304, + "rms": 0.10000149710778367, + "peak": 0.5728324055671692 + }, + { + "url": "http://127.0.0.1:4173/audio/password-umbrella.wav?v=0.2.3", + "sha256": "ab3ca6398c879971dc793eb25b472fcc0db72d76e386f11ef4d32c639f37c69d", + "bytes": 239660, + "sampleRate": 24000, + "channels": 1, + "duration": 4.992, + "rms": 0.100001426973271, + "peak": 0.4776757061481476 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-meat.wav?v=0.2.3", + "sha256": "48e91b3932d3798e852041a854b3ee08c72127e092c62083a47af6b99adff241", + "bytes": 403244, + "sampleRate": 24000, + "channels": 1, + "duration": 8.4, + "rms": 0.10000140336390047, + "peak": 0.481536865234375 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-hat.wav?v=0.2.3", + "sha256": "6e089a42fd7e65e82eec7186d369c926fb7fdac794365b2bd7658822fd92437c", + "bytes": 396332, + "sampleRate": 24000, + "channels": 1, + "duration": 8.256, + "rms": 0.1000015662548192, + "peak": 0.616748571395874 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-sound.wav?v=0.2.3", + "sha256": "4d00aa6114327f450a00dacbc7e7b572ebf1de4ce9dc2fe4b5505766cca71ce9", + "bytes": 353708, + "sampleRate": 24000, + "channels": 1, + "duration": 7.368, + "rms": 0.10000162019345048, + "peak": 0.5348368883132935 + }, + { + "url": "http://127.0.0.1:4173/audio/last-oil.wav?v=0.2.3", + "sha256": "b5ce34950b8b31b1baf6ce55410797f0d8aa5478a670d6eace87cf76d134d6d3", + "bytes": 337580, + "sampleRate": 24000, + "channels": 1, + "duration": 7.032, + "rms": 0.10000149980584365, + "peak": 0.55706787109375 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-sea.wav?v=0.2.3", + "sha256": "47aa31d757c9fb49c9b53a1c052d90a5ced4be57549d649850d9b48f8864045b", + "bytes": 191276, + "sampleRate": 24000, + "channels": 1, + "duration": 3.984, + "rms": 0.10000129182106483, + "peak": 0.388702392578125 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-sound.wav?v=0.2.3", + "sha256": "659eb0e2b06e6b165b46744769743e032e2282519f8486c57bc45e0f7d07a069", + "bytes": 240812, + "sampleRate": 24000, + "channels": 1, + "duration": 5.016, + "rms": 0.10000152909529536, + "peak": 0.45481735467910767 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-meat.wav?v=0.2.3", + "sha256": "6599d2fac73ea616a793151b4ce6f51af673988d630bac6219a77e78ae6cb34e", + "bytes": 380204, + "sampleRate": 24000, + "channels": 1, + "duration": 7.92, + "rms": 0.1000016061190976, + "peak": 0.5921201109886169 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-market.wav?v=0.2.3", + "sha256": "c855b449e0d4ace74681bfe68e5e7f0b063568827ae872017234dbe8ae119e4c", + "bytes": 356012, + "sampleRate": 24000, + "channels": 1, + "duration": 7.416, + "rms": 0.10000151456676445, + "peak": 0.5949888825416565 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-furniture.wav?v=0.2.3", + "sha256": "bf84dc6cff1f227924a3a62158d2fc18769fb0ca40b91418fa19e534dbf92f00", + "bytes": 397484, + "sampleRate": 24000, + "channels": 1, + "duration": 8.28, + "rms": 0.10000155255948041, + "peak": 0.6670430898666382 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-sound.wav?v=0.2.3", + "sha256": "5a603bc69979603afddcaeb6edf500a7c540b72405daeb33f5335d746b327da1", + "bytes": 397484, + "sampleRate": 24000, + "channels": 1, + "duration": 8.28, + "rms": 0.10000146491234768, + "peak": 0.469268798828125 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-meat.wav?v=0.2.3", + "sha256": "9183ef90b64f5ceaf3bb0178c689231ff3e9981d6ce889124a15f2a6e2b7a344", + "bytes": 395180, + "sampleRate": 24000, + "channels": 1, + "duration": 8.232, + "rms": 0.10000155087122137, + "peak": 0.5193029642105103 + }, + { + "url": "http://127.0.0.1:4173/audio/last-sound.wav?v=0.2.3", + "sha256": "ec9c49802aebeb6a8b898a1c0d8ad1daa127d2d64c905c197ed49a8e0c4eb64a", + "bytes": 354860, + "sampleRate": 24000, + "channels": 1, + "duration": 7.392, + "rms": 0.10000165748716579, + "peak": 0.5641041398048401 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-oil.wav?v=0.2.3", + "sha256": "5fb63e04520c312aa6b7b48b70c2f7c140b5ab480e5c6992edbc2ba85b9a06e7", + "bytes": 241964, + "sampleRate": 24000, + "channels": 1, + "duration": 5.04, + "rms": 0.10000143720418167, + "peak": 0.443586528301239 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-umbrella.wav?v=0.2.3", + "sha256": "92b54f04884ab915783945077efd8f3bd443849a1720f72168b6348cae1f8e85", + "bytes": 406700, + "sampleRate": 24000, + "channels": 1, + "duration": 8.472, + "rms": 0.10000140257790288, + "peak": 0.479034423828125 + }, + { + "url": "http://127.0.0.1:4173/audio/message-sound.wav?v=0.2.3", + "sha256": "1e682147dae8026ba78dc8f256c7f24acb3a6743bfd88a0fcc86096930eef078", + "bytes": 521900, + "sampleRate": 24000, + "channels": 1, + "duration": 10.872, + "rms": 0.10000138583471241, + "peak": 0.51953125 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-apple.wav?v=0.2.3", + "sha256": "ccd7327a3fb54d3320d049ffdced3bc17595861cee69429c0ee97182d454195b", + "bytes": 402092, + "sampleRate": 24000, + "channels": 1, + "duration": 8.376, + "rms": 0.10000140667715379, + "peak": 0.490325927734375 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-sea.wav?v=0.2.3", + "sha256": "5c91a36496e274d2be9c6fa8d9b506cd04f2a1b7ceb05ed1b7bb03fe7fca99d9", + "bytes": 399788, + "sampleRate": 24000, + "channels": 1, + "duration": 8.328, + "rms": 0.10000144241513113, + "peak": 0.5465559959411621 + }, + { + "url": "http://127.0.0.1:4173/audio/message-hat.wav?v=0.2.3", + "sha256": "5a713a8522b231bb8276805c014b385b9150b79f58ff2618446607e2b442495e", + "bytes": 518444, + "sampleRate": 24000, + "channels": 1, + "duration": 10.8, + "rms": 0.10000136927555209, + "peak": 0.587005615234375 + }, + { + "url": "http://127.0.0.1:4173/audio/password-meat.wav?v=0.2.3", + "sha256": "b009caadd56350d6a641ff17f0973e2b2724c183e1f45ae0bf3c483e237fa99e", + "bytes": 240812, + "sampleRate": 24000, + "channels": 1, + "duration": 5.016, + "rms": 0.10000148386024335, + "peak": 0.4978789687156677 + }, + { + "url": "http://127.0.0.1:4173/audio/message-market.wav?v=0.2.3", + "sha256": "9242d4cd6e0030e6b073e4d2360f84aa8a454d1749711cdb2d64c14f28a7ea20", + "bytes": 523052, + "sampleRate": 24000, + "channels": 1, + "duration": 10.896, + "rms": 0.10000133805787564, + "peak": 0.534820556640625 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-apple.wav?v=0.2.3", + "sha256": "8832f1b793ab3eedbe663875ea8dbeabb122c329bd5879437c71230b0418c3c8", + "bytes": 360620, + "sampleRate": 24000, + "channels": 1, + "duration": 7.512, + "rms": 0.10000145024648589, + "peak": 0.553558349609375 + }, + { + "url": "http://127.0.0.1:4173/audio/last-umbrella.wav?v=0.2.3", + "sha256": "c801293a34013a8d93d3289a2cc87cd3eed83f97ba4647f5060efa00b117a9ad", + "bytes": 370988, + "sampleRate": 24000, + "channels": 1, + "duration": 7.728, + "rms": 0.10000149360501835, + "peak": 0.59765625 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-sea.wav?v=0.2.3", + "sha256": "9233431d78ab4b144e3c33ad0cf0d49fc0fb91b29514343230ba32987b794bb3", + "bytes": 398636, + "sampleRate": 24000, + "channels": 1, + "duration": 8.304, + "rms": 0.10000134688905045, + "peak": 0.49616992473602295 + }, + { + "url": "http://127.0.0.1:4173/audio/password-apple.wav?v=0.2.3", + "sha256": "b6f5de3fe571fe3a7fdb722fe49250bcfeedef49475271e0ec76a7630907edd5", + "bytes": 235052, + "sampleRate": 24000, + "channels": 1, + "duration": 4.896, + "rms": 0.10000148212193387, + "peak": 0.4834437072277069 + }, + { + "url": "http://127.0.0.1:4173/audio/first-furniture.wav?v=0.2.3", + "sha256": "29f007b385b7182db1d8aeccad4fc3c260df5e66e14e52a46b0ef0fcd0ff3a0a", + "bytes": 364076, + "sampleRate": 24000, + "channels": 1, + "duration": 7.584, + "rms": 0.1000014551820741, + "peak": 0.5700552463531494 + }, + { + "url": "http://127.0.0.1:4173/audio/password-hat.wav?v=0.2.3", + "sha256": "e91bfc97df90a1675b6cd856880ac15c54de32cfc3b23603bdd1c2c5ac3ce6b8", + "bytes": 235052, + "sampleRate": 24000, + "channels": 1, + "duration": 4.896, + "rms": 0.10000146155157119, + "peak": 0.5059053301811218 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-oil.wav?v=0.2.3", + "sha256": "7a6b122b11c07da86c95fb78e2db2a70681b5219c63d6441fe56da1979ac1dc3", + "bytes": 334124, + "sampleRate": 24000, + "channels": 1, + "duration": 6.96, + "rms": 0.1000014880654183, + "peak": 0.539933443069458 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-meat.wav?v=0.2.3", + "sha256": "d416107cc05e7c5b92ca27100a10a8a9689de913346179945d5542de4a6bac0c", + "bytes": 342188, + "sampleRate": 24000, + "channels": 1, + "duration": 7.128, + "rms": 0.10000157422522808, + "peak": 0.510833740234375 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-apple.wav?v=0.2.3", + "sha256": "1bf2aef9a9f030af1a8fd7dee8f44aa420a397b3ba99b575feeb3dc7a63ec191", + "bytes": 395180, + "sampleRate": 24000, + "channels": 1, + "duration": 8.232, + "rms": 0.10000148399213096, + "peak": 0.563568115234375 + }, + { + "url": "http://127.0.0.1:4173/audio/first-oil.wav?v=0.2.3", + "sha256": "f415195e0cfc7ee711d09de7519e88eab62cc8b58d70772c83c3f5c27c267819", + "bytes": 335276, + "sampleRate": 24000, + "channels": 1, + "duration": 6.984, + "rms": 0.10000145886808136, + "peak": 0.5347453355789185 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-hat.wav?v=0.2.3", + "sha256": "31a6a4270bf368cda419094d87a303ac3cd5c22539786cb165f8044b0b8e9d6e", + "bytes": 402092, + "sampleRate": 24000, + "channels": 1, + "duration": 8.376, + "rms": 0.10000145804818952, + "peak": 0.541778564453125 + }, + { + "url": "http://127.0.0.1:4173/audio/message-furniture.wav?v=0.2.3", + "sha256": "26c331b7e12311236f4bb48f88918dfbf53cccd2f50b55741ea6ff4473e71dd8", + "bytes": 521900, + "sampleRate": 24000, + "channels": 1, + "duration": 10.872, + "rms": 0.10000134596838128, + "peak": 0.529327392578125 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-oil.wav?v=0.2.3", + "sha256": "3fa1e662a3af8f2726b17b2baa5bec2934406e6595ebc243c8380dd16e190977", + "bytes": 190124, + "sampleRate": 24000, + "channels": 1, + "duration": 3.96, + "rms": 0.10000134375667624, + "peak": 0.3817255198955536 + }, + { + "url": "http://127.0.0.1:4173/audio/last-sea.wav?v=0.2.3", + "sha256": "f755452e1da44674aa1df7d12edffa988091b89a394e7eb6d4a00eb721f07cbf", + "bytes": 345644, + "sampleRate": 24000, + "channels": 1, + "duration": 7.2, + "rms": 0.10000140162255576, + "peak": 0.591033935546875 + }, + { + "url": "http://127.0.0.1:4173/audio/password-oil.wav?v=0.2.3", + "sha256": "b472957b27ff98ea7b8894fa1ff12653f7e9f66f77870faa9e52a1c1bf116c41", + "bytes": 240812, + "sampleRate": 24000, + "channels": 1, + "duration": 5.016, + "rms": 0.10000146772662066, + "peak": 0.4945219159126282 + }, + { + "url": "http://127.0.0.1:4173/audio/first-umbrella.wav?v=0.2.3", + "sha256": "878e0bd2e6e4105f175aef51a028f6b141f3a2072be20f783193f3ba897a3ee0", + "bytes": 366380, + "sampleRate": 24000, + "channels": 1, + "duration": 7.632, + "rms": 0.10000147647908036, + "peak": 0.5700247287750244 + }, + { + "url": "http://127.0.0.1:4173/audio/last-apple.wav?v=0.2.3", + "sha256": "4cb2a8579fa3a7b91bb36363826ce8ca0d6d86e96e16a479e226a2802edd82f7", + "bytes": 356012, + "sampleRate": 24000, + "channels": 1, + "duration": 7.416, + "rms": 0.10000144523423521, + "peak": 0.622528076171875 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-market.wav?v=0.2.3", + "sha256": "68a5b899115a66ab225d610ec47b4de56cc8793657362bc38f533c06f741e4cc", + "bytes": 402092, + "sampleRate": 24000, + "channels": 1, + "duration": 8.376, + "rms": 0.10000160159844854, + "peak": 0.6822717785835266 + }, + { + "url": "http://127.0.0.1:4173/audio/message-oil.wav?v=0.2.3", + "sha256": "a2a71a7e5e07c81871a25c6cb7540c39aa0b32fc44f78cda66b5f34ace98d805", + "bytes": 509228, + "sampleRate": 24000, + "channels": 1, + "duration": 10.608, + "rms": 0.10000135184106136, + "peak": 0.51812744140625 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-meat.wav?v=0.2.3", + "sha256": "d36dfc395a5c53fbfa4abe9980db7bb59adfdac59e40318c4aca365365e3f2ab", + "bytes": 187820, + "sampleRate": 24000, + "channels": 1, + "duration": 3.912, + "rms": 0.1000013329979738, + "peak": 0.371124267578125 + }, + { + "url": "http://127.0.0.1:4173/audio/password-market.wav?v=0.2.3", + "sha256": "02e325fb753ef7a3ee585a03d2ca2aa3f1fbc58523b062222ae1136eeed7a95c", + "bytes": 230444, + "sampleRate": 24000, + "channels": 1, + "duration": 4.8, + "rms": 0.10000151520861549, + "peak": 0.48170414566993713 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-hat.wav?v=0.2.3", + "sha256": "4ff43dd042f4b5451e9fdeb3edd59f1e389a7d1dd488094587a3a9fc7dfffa44", + "bytes": 191276, + "sampleRate": 24000, + "channels": 1, + "duration": 3.984, + "rms": 0.10000132502946775, + "peak": 0.417083740234375 + }, + { + "url": "http://127.0.0.1:4173/audio/last-market.wav?v=0.2.3", + "sha256": "7857e87e9dbfe8fe849cc0b18c1d45b60916cb337328099c7a87a42c82e2821e", + "bytes": 359468, + "sampleRate": 24000, + "channels": 1, + "duration": 7.488, + "rms": 0.10000148064140717, + "peak": 0.600555419921875 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-meat.wav?v=0.2.3", + "sha256": "94f8a4f9e116a787e5ed052661d6de9ecf3ad8629db476661dd59ad03014b0c9", + "bytes": 244268, + "sampleRate": 24000, + "channels": 1, + "duration": 5.088, + "rms": 0.10000146176253134, + "peak": 0.44187748432159424 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-oil.wav?v=0.2.3", + "sha256": "55b2c7d6aa8bbce04edf8661882c9781da81c57f56217f99b80457a3bb895da0", + "bytes": 369836, + "sampleRate": 24000, + "channels": 1, + "duration": 7.704, + "rms": 0.10000146897241707, + "peak": 0.6239814162254333 + }, + { + "url": "http://127.0.0.1:4173/audio/first-sound.wav?v=0.2.3", + "sha256": "46f6adeed928a16af0700f1e8626cf8049f124632a04a5d10604426fb06f9596", + "bytes": 353708, + "sampleRate": 24000, + "channels": 1, + "duration": 7.368, + "rms": 0.10000157588418972, + "peak": 0.5189672708511353 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-umbrella.wav?v=0.2.3", + "sha256": "4b4c858a25659540f9dbc524664496fc6de61ab8c1627f3cfee8c9c744e11d5b", + "bytes": 247724, + "sampleRate": 24000, + "channels": 1, + "duration": 5.16, + "rms": 0.10000144286672341, + "peak": 0.46534621715545654 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-oil.wav?v=0.2.3", + "sha256": "3ca98682ff06d1d6b8af02c0fd5b2124f42266ac989884223eff4a9bbde1287a", + "bytes": 399788, + "sampleRate": 24000, + "channels": 1, + "duration": 8.328, + "rms": 0.10000149133669024, + "peak": 0.5243995189666748 + }, + { + "url": "http://127.0.0.1:4173/audio/first-sea.wav?v=0.2.3", + "sha256": "0f0b39314c5f7d7168d4854003c0c284e7bc3438cdc4d1d1c5adab7cb5ed30e5", + "bytes": 349100, + "sampleRate": 24000, + "channels": 1, + "duration": 7.272, + "rms": 0.10000142148394393, + "peak": 0.5717948079109192 + }, + { + "url": "http://127.0.0.1:4173/audio/last-meat.wav?v=0.2.3", + "sha256": "10f8ad4259ed8945c9da831e80b3902303c09caef96d400298599168fb1efed4", + "bytes": 346796, + "sampleRate": 24000, + "channels": 1, + "duration": 7.224, + "rms": 0.10000155834091913, + "peak": 0.537200927734375 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-umbrella.wav?v=0.2.3", + "sha256": "399ea2f681f755918f1117c8baba42739ceca64b307b999342f457a9235050b6", + "bytes": 368684, + "sampleRate": 24000, + "channels": 1, + "duration": 7.68, + "rms": 0.10000155028684544, + "peak": 0.569549560546875 + }, + { + "url": "http://127.0.0.1:4173/audio/message-meat.wav?v=0.2.3", + "sha256": "ce19735df079b54c171e775b6b365385a80160b9033442abab95b2b9c8505e1a", + "bytes": 512684, + "sampleRate": 24000, + "channels": 1, + "duration": 10.68, + "rms": 0.10000140834686953, + "peak": 0.5147705078125 + }, + { + "url": "http://127.0.0.1:4173/audio/message-umbrella.wav?v=0.2.3", + "sha256": "41d5866dae66600df4694a8312b531571d44cece6dba0e423e7c43d09d184819", + "bytes": 523052, + "sampleRate": 24000, + "channels": 1, + "duration": 10.896, + "rms": 0.10000120668553683, + "peak": 0.530364990234375 + }, + { + "url": "http://127.0.0.1:4173/audio/last-furniture.wav?v=0.2.3", + "sha256": "5ad4f776e35439d408abed0e66567d6b5cdc80fc54d579165472e474f1238776", + "bytes": 357164, + "sampleRate": 24000, + "channels": 1, + "duration": 7.44, + "rms": 0.10000152394963031, + "peak": 0.583587646484375 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-sea.wav?v=0.2.3", + "sha256": "8838d6a1ee8a790427dc5aa761e70b3d8872af62086efeed743297ff7f8b8a06", + "bytes": 243116, + "sampleRate": 24000, + "channels": 1, + "duration": 5.064, + "rms": 0.10000138788281714, + "peak": 0.45013427734375 + }, + { + "url": "http://127.0.0.1:4173/audio/message-apple.wav?v=0.2.3", + "sha256": "d85e6f47d871369f00de2274139e5ad6b4b5686b5e20e248df0ed6b9a320d942", + "bytes": 517292, + "sampleRate": 24000, + "channels": 1, + "duration": 10.776, + "rms": 0.10000133916854889, + "peak": 0.525360107421875 + }, + { + "url": "http://127.0.0.1:4173/audio/last-hat.wav?v=0.2.3", + "sha256": "bdaf8fbc54df8061e9e58aa8c14b3044a6e863dc54973ee3ee6ae2c5ae1a28f1", + "bytes": 354860, + "sampleRate": 24000, + "channels": 1, + "duration": 7.392, + "rms": 0.10000152378078818, + "peak": 0.550079345703125 + }, + { + "url": "http://127.0.0.1:4173/audio/first-apple.wav?v=0.2.3", + "sha256": "7c1dbcb3082055df2b8f087f7e906ec867c92f679de0894c34740c05e61a4bc1", + "bytes": 359468, + "sampleRate": 24000, + "channels": 1, + "duration": 7.488, + "rms": 0.10000143468253914, + "peak": 0.57977294921875 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-umbrella.wav?v=0.2.3", + "sha256": "8d3e8e8bc97e5fe3f3362184c4abb12f01a882a1f1174d2644f0f70aac677c0a", + "bytes": 192428, + "sampleRate": 24000, + "channels": 1, + "duration": 4.008, + "rms": 0.10000131475711933, + "peak": 0.385650634765625 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-furniture.wav?v=0.2.3", + "sha256": "5c004a7b2f5a4a918c9f689f1a2dcb219a620ed14313f40a9655b36dbf64948d", + "bytes": 398636, + "sampleRate": 24000, + "channels": 1, + "duration": 8.304, + "rms": 0.10000141690978645, + "peak": 0.487396240234375 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-tree.wav?v=0.2.3", + "sha256": "122f496834fb16d6da47f801e50e46e272e4e934af959467d1db4e490f79be7a", + "bytes": 183212, + "sampleRate": 24000, + "channels": 1, + "duration": 3.816, + "rms": 0.10000140751524371, + "peak": 0.36920166015625 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-tree.wav?v=0.2.3", + "sha256": "00d8e77ec0371971d632724d91f8cf8d947bfb83c582a513b6421be4c457a1da", + "bytes": 241964, + "sampleRate": 24000, + "channels": 1, + "duration": 5.04, + "rms": 0.10000146153372488, + "peak": 0.4585406184196472 + }, + { + "url": "http://127.0.0.1:4173/audio/message-tree.wav?v=0.2.3", + "sha256": "5d684aa710a63d36ed8dcc2a8bfbdd5c71b0b1c63dad2a324adecb76591e85b8", + "bytes": 540332, + "sampleRate": 24000, + "channels": 1, + "duration": 11.256, + "rms": 0.10000132424453942, + "peak": 0.5262451171875 + }, + { + "url": "http://127.0.0.1:4173/audio/last-tree.wav?v=0.2.3", + "sha256": "589e56d940a3c9e80ec02ae0b2dd93463fdc85ef019a753fcd0fded0752055f9", + "bytes": 382508, + "sampleRate": 24000, + "channels": 1, + "duration": 7.968, + "rms": 0.10000149781706567, + "peak": 0.5807672142982483 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-tree.wav?v=0.2.3", + "sha256": "341888c75275c13eb31058f53a1d4276be0daa0a1b5a3a45522036928b83b0c1", + "bytes": 382508, + "sampleRate": 24000, + "channels": 1, + "duration": 7.968, + "rms": 0.1000014873304774, + "peak": 0.600024402141571 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-tree.wav?v=0.2.3", + "sha256": "8735c3d9672561ca237fa87317beec2878492eb9063d6048d5b214423561acc1", + "bytes": 423980, + "sampleRate": 24000, + "channels": 1, + "duration": 8.832, + "rms": 0.10000150947389638, + "peak": 0.6187627911567688 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-furniture.wav?v=0.2.3", + "sha256": "52cb92cdb8ee92b6f581c9d68dbc346f180c470564809ba57185429c9eb84127", + "bytes": 186668, + "sampleRate": 24000, + "channels": 1, + "duration": 3.888, + "rms": 0.1000013480244084, + "peak": 0.387054443359375 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-tree.wav?v=0.2.3", + "sha256": "bc8e54f5407e8866bf1ca1ddfd4f6c63d85fee29bd9e430c7dd33e87974fc5b8", + "bytes": 409004, + "sampleRate": 24000, + "channels": 1, + "duration": 8.52, + "rms": 0.10000146559822108, + "peak": 0.5486617684364319 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-tree.wav?v=0.2.3", + "sha256": "b8e8bbe6b8b14727efd953fae9d4aed2caeb004055d52f611c6378322847edbe", + "bytes": 400940, + "sampleRate": 24000, + "channels": 1, + "duration": 8.352, + "rms": 0.10000144970799159, + "peak": 0.470611572265625 + }, + { + "url": "http://127.0.0.1:4173/audio/first-tree.wav?v=0.2.3", + "sha256": "3178230fd5850b6277a2153b438ec5289720e3db7ac929914cc213964f004bd5", + "bytes": 379052, + "sampleRate": 24000, + "channels": 1, + "duration": 7.896, + "rms": 0.10000144270360484, + "peak": 0.5833613276481628 + }, + { + "url": "http://127.0.0.1:4173/audio/password-tree.wav?v=0.2.3", + "sha256": "67da8147296e35134ec254bc82b58317630061b2c64d2d63c4be197ce8692d50", + "bytes": 233900, + "sampleRate": 24000, + "channels": 1, + "duration": 4.872, + "rms": 0.10000156310809623, + "peak": 0.4904019236564636 + } + ] +} diff --git a/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/browser-final/game-실제-오디오로-혼합-모드-완주·레이아웃·접근성·외부-요청-없음-desktop/game.png b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/browser-final/game-실제-오디오로-혼합-모드-완주·레이아웃·접근성·외부-요청-없음-desktop/game.png new file mode 100644 index 0000000..f7d81f8 Binary files /dev/null and b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/browser-final/game-실제-오디오로-혼합-모드-완주·레이아웃·접근성·외부-요청-없음-desktop/game.png differ diff --git a/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/browser-final/game-실제-오디오로-혼합-모드-완주·레이아웃·접근성·외부-요청-없음-desktop/home.png b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/browser-final/game-실제-오디오로-혼합-모드-완주·레이아웃·접근성·외부-요청-없음-desktop/home.png new file mode 100644 index 0000000..3e1863d Binary files /dev/null and b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/browser-final/game-실제-오디오로-혼합-모드-완주·레이아웃·접근성·외부-요청-없음-desktop/home.png differ diff --git a/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/browser-final/game-실제-오디오로-혼합-모드-완주·레이아웃·접근성·외부-요청-없음-desktop/results.png b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/browser-final/game-실제-오디오로-혼합-모드-완주·레이아웃·접근성·외부-요청-없음-desktop/results.png new file mode 100644 index 0000000..60986f0 Binary files /dev/null and b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/browser-final/game-실제-오디오로-혼합-모드-완주·레이아웃·접근성·외부-요청-없음-desktop/results.png differ diff --git a/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/browser-final/game-실제-오디오로-혼합-모드-완주·레이아웃·접근성·외부-요청-없음-mobile/game.png b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/browser-final/game-실제-오디오로-혼합-모드-완주·레이아웃·접근성·외부-요청-없음-mobile/game.png new file mode 100644 index 0000000..c6c5d2b Binary files /dev/null and b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/browser-final/game-실제-오디오로-혼합-모드-완주·레이아웃·접근성·외부-요청-없음-mobile/game.png differ diff --git a/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/browser-final/game-실제-오디오로-혼합-모드-완주·레이아웃·접근성·외부-요청-없음-mobile/home.png b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/browser-final/game-실제-오디오로-혼합-모드-완주·레이아웃·접근성·외부-요청-없음-mobile/home.png new file mode 100644 index 0000000..93c1298 Binary files /dev/null and b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/browser-final/game-실제-오디오로-혼합-모드-완주·레이아웃·접근성·외부-요청-없음-mobile/home.png differ diff --git a/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/browser-final/game-실제-오디오로-혼합-모드-완주·레이아웃·접근성·외부-요청-없음-mobile/results.png b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/browser-final/game-실제-오디오로-혼합-모드-완주·레이아웃·접근성·외부-요청-없음-mobile/results.png new file mode 100644 index 0000000..46bdd67 Binary files /dev/null and b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/browser-final/game-실제-오디오로-혼합-모드-완주·레이아웃·접근성·외부-요청-없음-mobile/results.png differ diff --git a/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/browser-final/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-desktop/normal-results.png b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/browser-final/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-desktop/normal-results.png new file mode 100644 index 0000000..fa53c92 Binary files /dev/null and b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/browser-final/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-desktop/normal-results.png differ diff --git a/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/browser-final/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-desktop/progress-1.png b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/browser-final/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-desktop/progress-1.png new file mode 100644 index 0000000..ef8031b Binary files /dev/null and b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/browser-final/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-desktop/progress-1.png differ diff --git a/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/browser-final/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-desktop/progress-2.png b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/browser-final/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-desktop/progress-2.png new file mode 100644 index 0000000..e2b4352 Binary files /dev/null and b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/browser-final/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-desktop/progress-2.png differ diff --git a/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/browser-final/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-desktop/progress-3.png b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/browser-final/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-desktop/progress-3.png new file mode 100644 index 0000000..f0651da Binary files /dev/null and b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/browser-final/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-desktop/progress-3.png differ diff --git a/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/browser-final/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-mobile/normal-results.png b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/browser-final/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-mobile/normal-results.png new file mode 100644 index 0000000..46bdd67 Binary files /dev/null and b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/browser-final/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-mobile/normal-results.png differ diff --git a/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/browser-final/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-mobile/progress-1.png b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/browser-final/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-mobile/progress-1.png new file mode 100644 index 0000000..c6c3af6 Binary files /dev/null and b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/browser-final/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-mobile/progress-1.png differ diff --git a/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/browser-final/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-mobile/progress-2.png b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/browser-final/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-mobile/progress-2.png new file mode 100644 index 0000000..19e468c Binary files /dev/null and b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/browser-final/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-mobile/progress-2.png differ diff --git a/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/browser-final/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-mobile/progress-3.png b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/browser-final/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-mobile/progress-3.png new file mode 100644 index 0000000..1801343 Binary files /dev/null and b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/browser-final/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-mobile/progress-3.png differ diff --git a/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/browser-final/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-desktop/copy-320-home.png b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/browser-final/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-desktop/copy-320-home.png new file mode 100644 index 0000000..9bb9d97 Binary files /dev/null and b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/browser-final/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-desktop/copy-320-home.png differ diff --git a/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/browser-final/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-desktop/copy-320-results.png b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/browser-final/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-desktop/copy-320-results.png new file mode 100644 index 0000000..969eef1 Binary files /dev/null and b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/browser-final/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-desktop/copy-320-results.png differ diff --git a/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/browser-final/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-desktop/copy-360-home.png b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/browser-final/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-desktop/copy-360-home.png new file mode 100644 index 0000000..93c1298 Binary files /dev/null and b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/browser-final/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-desktop/copy-360-home.png differ diff --git a/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/browser-final/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-desktop/copy-360-results.png b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/browser-final/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-desktop/copy-360-results.png new file mode 100644 index 0000000..122ee5d Binary files /dev/null and b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/browser-final/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-desktop/copy-360-results.png differ diff --git a/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/browser-final/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-mobile/copy-320-home.png b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/browser-final/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-mobile/copy-320-home.png new file mode 100644 index 0000000..9bb9d97 Binary files /dev/null and b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/browser-final/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-mobile/copy-320-home.png differ diff --git a/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/browser-final/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-mobile/copy-320-results.png b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/browser-final/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-mobile/copy-320-results.png new file mode 100644 index 0000000..969eef1 Binary files /dev/null and b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/browser-final/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-mobile/copy-320-results.png differ diff --git a/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/browser-final/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-mobile/copy-360-home.png b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/browser-final/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-mobile/copy-360-home.png new file mode 100644 index 0000000..93c1298 Binary files /dev/null and b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/browser-final/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-mobile/copy-360-home.png differ diff --git a/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/browser-final/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-mobile/copy-360-results.png b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/browser-final/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-mobile/copy-360-results.png new file mode 100644 index 0000000..122ee5d Binary files /dev/null and b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/browser-final/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-mobile/copy-360-results.png differ diff --git a/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/browser-final/rounds-시작-단계·SNR·3문항-완료→다음-단계·재생-중-종료·응답-후-종료·홈-초기화-desktop/early-exit.png b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/browser-final/rounds-시작-단계·SNR·3문항-완료→다음-단계·재생-중-종료·응답-후-종료·홈-초기화-desktop/early-exit.png new file mode 100644 index 0000000..811489d Binary files /dev/null and b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/browser-final/rounds-시작-단계·SNR·3문항-완료→다음-단계·재생-중-종료·응답-후-종료·홈-초기화-desktop/early-exit.png differ diff --git a/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/browser-final/rounds-시작-단계·SNR·3문항-완료→다음-단계·재생-중-종료·응답-후-종료·홈-초기화-mobile/early-exit.png b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/browser-final/rounds-시작-단계·SNR·3문항-완료→다음-단계·재생-중-종료·응답-후-종료·홈-초기화-mobile/early-exit.png new file mode 100644 index 0000000..122ee5d Binary files /dev/null and b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/browser-final/rounds-시작-단계·SNR·3문항-완료→다음-단계·재생-중-종료·응답-후-종료·홈-초기화-mobile/early-exit.png differ diff --git a/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/browser-final/ui-한국어-제목은-단어-중간에서-줄바꿈하지-않는다-desktop/heading.png b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/browser-final/ui-한국어-제목은-단어-중간에서-줄바꿈하지-않는다-desktop/heading.png new file mode 100644 index 0000000..e3e5e42 Binary files /dev/null and b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/browser-final/ui-한국어-제목은-단어-중간에서-줄바꿈하지-않는다-desktop/heading.png differ diff --git a/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/browser-final/ui-한국어-제목은-단어-중간에서-줄바꿈하지-않는다-mobile/heading.png b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/browser-final/ui-한국어-제목은-단어-중간에서-줄바꿈하지-않는다-mobile/heading.png new file mode 100644 index 0000000..9b38a30 Binary files /dev/null and b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/browser-final/ui-한국어-제목은-단어-중간에서-줄바꿈하지-않는다-mobile/heading.png differ diff --git a/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/browser-integrity-summary.json b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/browser-integrity-summary.json new file mode 100644 index 0000000..877e295 --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/browser-integrity-summary.json @@ -0,0 +1,28 @@ +[ + { + "project": "desktop", + "chrome": "146.0.7680.80", + "filesMatched": 109, + "externalRequests": 0, + "consoleOrPageErrors": 0, + "failedRequests": 0, + "evidence": "desktop-audio-integrity.json", + "levelTolerance": 3.0517578125e-05, + "maximumRmsDifference": 1.6421807213090611e-06, + "maximumPeakDifference": 2.5928020477294922e-05, + "levelToleranceReason": "One PCM16 step allows browser float decode scaling; SHA-256 and bytes must match exactly." + }, + { + "project": "mobile", + "chrome": "146.0.7680.80", + "filesMatched": 109, + "externalRequests": 0, + "consoleOrPageErrors": 0, + "failedRequests": 0, + "evidence": "mobile-audio-integrity.json", + "levelTolerance": 3.0517578125e-05, + "maximumRmsDifference": 1.6421807213090611e-06, + "maximumPeakDifference": 2.5928020477294922e-05, + "levelToleranceReason": "One PCM16 step allows browser float decode scaling; SHA-256 and bytes must match exactly." + } +] diff --git a/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/browser-results.json b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/browser-results.json new file mode 100644 index 0000000..92f52b0 --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/browser-results.json @@ -0,0 +1,1254 @@ +{ + "config": { + "argv": [ + "/home/hermes/.hermes/node/bin/node", + "/home/hermes/worktrees/find-word-v0.2.3/node_modules/.bin/playwright", + "test", + "--reporter=line,json", + "--output", + "/home/hermes/worktrees/find-word-v0.2.3/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/browser-final" + ], + "configFile": "/home/hermes/worktrees/find-word-v0.2.3/playwright.config.ts", + "rootDir": "/home/hermes/worktrees/find-word-v0.2.3/tests/browser", + "failOnFlakyTests": false, + "forbidOnly": false, + "fullyParallel": true, + "globalSetup": null, + "globalTeardown": null, + "globalTimeout": 0, + "grep": {}, + "grepInvert": null, + "maxFailures": 0, + "metadata": { + "actualWorkers": 2 + }, + "preserveOutput": "always", + "projects": [ + { + "outputDir": "/home/hermes/worktrees/find-word-v0.2.3/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/browser-final", + "repeatEach": 1, + "retries": 0, + "metadata": { + "actualWorkers": 2 + }, + "id": "desktop", + "name": "desktop", + "testDir": "/home/hermes/worktrees/find-word-v0.2.3/tests/browser", + "testIgnore": [], + "testMatch": [ + "**/*.@(spec|test).?(c|m)[jt]s?(x)" + ], + "timeout": 120000 + }, + { + "outputDir": "/home/hermes/worktrees/find-word-v0.2.3/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/browser-final", + "repeatEach": 1, + "retries": 0, + "metadata": { + "actualWorkers": 2 + }, + "id": "mobile", + "name": "mobile", + "testDir": "/home/hermes/worktrees/find-word-v0.2.3/tests/browser", + "testIgnore": [], + "testMatch": [ + "**/*.@(spec|test).?(c|m)[jt]s?(x)" + ], + "timeout": 120000 + } + ], + "filteredProjects": [ + { + "grep": {}, + "grepInvert": null, + "outputDir": "/home/hermes/worktrees/find-word-v0.2.3/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/browser-final", + "repeatEach": 1, + "retries": 0, + "metadata": { + "actualWorkers": 2 + }, + "name": "desktop", + "testDir": "/home/hermes/worktrees/find-word-v0.2.3/tests/browser", + "snapshotDir": "/home/hermes/worktrees/find-word-v0.2.3/tests/browser", + "testIgnore": [], + "testMatch": "**/*.@(spec|test).?(c|m)[jt]s?(x)", + "timeout": 120000, + "use": { + "baseURL": "http://127.0.0.1:4173", + "launchOptions": { + "executablePath": "/usr/bin/google-chrome", + "chromiumSandbox": true + }, + "trace": "retain-on-failure", + "viewport": { + "width": 1280, + "height": 1000 + } + }, + "dependencies": [], + "ignoreSnapshots": false, + "__projectId": "desktop" + }, + { + "grep": {}, + "grepInvert": null, + "outputDir": "/home/hermes/worktrees/find-word-v0.2.3/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/browser-final", + "repeatEach": 1, + "retries": 0, + "metadata": { + "actualWorkers": 2 + }, + "name": "mobile", + "testDir": "/home/hermes/worktrees/find-word-v0.2.3/tests/browser", + "snapshotDir": "/home/hermes/worktrees/find-word-v0.2.3/tests/browser", + "testIgnore": [], + "testMatch": "**/*.@(spec|test).?(c|m)[jt]s?(x)", + "timeout": 120000, + "use": { + "baseURL": "http://127.0.0.1:4173", + "launchOptions": { + "executablePath": "/usr/bin/google-chrome", + "chromiumSandbox": true + }, + "trace": "retain-on-failure", + "viewport": { + "width": 360, + "height": 800 + }, + "isMobile": true, + "hasTouch": true + }, + "dependencies": [], + "ignoreSnapshots": false, + "__projectId": "mobile" + } + ], + "quiet": false, + "reporter": [ + [ + "line" + ], + [ + "json" + ] + ], + "reportSlowTests": { + "max": 5, + "threshold": 300000 + }, + "shard": null, + "tags": [], + "updateSnapshots": "default", + "updateSourceMethod": "patch", + "version": "1.64.0", + "workers": 2, + "webServer": { + "command": "npm run preview -- --port 4173 --strictPort", + "url": "http://127.0.0.1:4173", + "reuseExistingServer": false + } + }, + "suites": [ + { + "title": "audio.spec.ts", + "file": "audio.spec.ts", + "column": 0, + "line": 0, + "specs": [ + { + "title": "음성·현장음 109개 versioned WAV를 실제 Chrome에서 해시·디코드 검증한다", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "desktop", + "projectName": "desktop", + "results": [ + { + "workerIndex": 0, + "parallelIndex": 0, + "status": "passed", + "duration": 25349, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T09:36:46.216Z", + "annotations": [], + "attachments": [ + { + "name": "109 versioned WAV integrity", + "contentType": "application/json", + "path": "/home/hermes/worktrees/find-word-v0.2.3/.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" + } + ] + } + ], + "status": "expected" + } + ], + "id": "87be2dcdb54c25970a35-d93130048b0c80dc4106", + "file": "audio.spec.ts", + "line": 7, + "column": 1 + }, + { + "title": "음성·현장음 109개 versioned WAV를 실제 Chrome에서 해시·디코드 검증한다", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "mobile", + "projectName": "mobile", + "results": [ + { + "workerIndex": 2, + "parallelIndex": 0, + "status": "passed", + "duration": 15587, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T09:38:48.088Z", + "annotations": [], + "attachments": [ + { + "name": "109 versioned WAV integrity", + "contentType": "application/json", + "path": "/home/hermes/worktrees/find-word-v0.2.3/.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" + } + ] + } + ], + "status": "expected" + } + ], + "id": "87be2dcdb54c25970a35-9f9914a49e88a65e211e", + "file": "audio.spec.ts", + "line": 7, + "column": 1 + } + ] + }, + { + "title": "game.spec.ts", + "file": "game.spec.ts", + "column": 0, + "line": 0, + "specs": [ + { + "title": "실제 오디오로 혼합 모드 완주·레이아웃·접근성·외부 요청 없음", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "desktop", + "projectName": "desktop", + "results": [ + { + "workerIndex": 1, + "parallelIndex": 1, + "status": "passed", + "duration": 49458, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T09:36:46.495Z", + "annotations": [], + "attachments": [] + } + ], + "status": "expected" + } + ], + "id": "8b1bb1493a64c9fc3ab6-d223e249bc9a81f166b0", + "file": "game.spec.ts", + "line": 8, + "column": 1 + }, + { + "title": "intro WAV query URL의 404를 표시하고 같은 URL로 재시도·정답 mapping한다", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "desktop", + "projectName": "desktop", + "results": [ + { + "workerIndex": 0, + "parallelIndex": 0, + "status": "passed", + "duration": 17656, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T09:37:12.118Z", + "annotations": [], + "attachments": [] + } + ], + "status": "expected" + } + ], + "id": "8b1bb1493a64c9fc3ab6-ab45385409470bdf7ef2", + "file": "game.spec.ts", + "line": 130, + "column": 3 + }, + { + "title": "target WAV query URL의 404를 표시하고 같은 URL로 재시도·정답 mapping한다", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "desktop", + "projectName": "desktop", + "results": [ + { + "workerIndex": 0, + "parallelIndex": 0, + "status": "passed", + "duration": 14329, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T09:37:29.803Z", + "annotations": [], + "attachments": [] + } + ], + "status": "expected" + } + ], + "id": "8b1bb1493a64c9fc3ab6-52922f8228abc9f39bfe", + "file": "game.spec.ts", + "line": 130, + "column": 3 + }, + { + "title": "실제 오디오로 혼합 모드 완주·레이아웃·접근성·외부 요청 없음", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "mobile", + "projectName": "mobile", + "results": [ + { + "workerIndex": 3, + "parallelIndex": 1, + "status": "passed", + "duration": 37554, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T09:38:55.262Z", + "annotations": [], + "attachments": [] + } + ], + "status": "expected" + } + ], + "id": "8b1bb1493a64c9fc3ab6-e4766fea5c25788202a8", + "file": "game.spec.ts", + "line": 8, + "column": 1 + }, + { + "title": "intro WAV query URL의 404를 표시하고 같은 URL로 재시도·정답 mapping한다", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "mobile", + "projectName": "mobile", + "results": [ + { + "workerIndex": 2, + "parallelIndex": 0, + "status": "passed", + "duration": 13653, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T09:39:03.985Z", + "annotations": [], + "attachments": [] + } + ], + "status": "expected" + } + ], + "id": "8b1bb1493a64c9fc3ab6-84b7835dc149f0ebaeb2", + "file": "game.spec.ts", + "line": 130, + "column": 3 + }, + { + "title": "target WAV query URL의 404를 표시하고 같은 URL로 재시도·정답 mapping한다", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "mobile", + "projectName": "mobile", + "results": [ + { + "workerIndex": 2, + "parallelIndex": 0, + "status": "passed", + "duration": 17208, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T09:39:17.670Z", + "annotations": [], + "attachments": [] + } + ], + "status": "expected" + } + ], + "id": "8b1bb1493a64c9fc3ab6-05de2d3047fb33c59bd2", + "file": "game.spec.ts", + "line": 130, + "column": 3 + } + ] + }, + { + "title": "release.spec.ts", + "file": "release.spec.ts", + "column": 0, + "line": 0, + "specs": [ + { + "title": "릴리스는 사용자 크레딧과 런타임 MIT notice 전문을 제공한다", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "desktop", + "projectName": "desktop", + "results": [ + { + "workerIndex": 1, + "parallelIndex": 1, + "status": "passed", + "duration": 459, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T09:37:36.556Z", + "annotations": [], + "attachments": [] + } + ], + "status": "expected" + } + ], + "id": "7324964a6aa193ebd049-64d3eb3e631d5e3a7482", + "file": "release.spec.ts", + "line": 6, + "column": 1 + }, + { + "title": "누락 음성·환경음은 query와 HTML accept에도 404이고 출처 고지는 번들된다", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "desktop", + "projectName": "desktop", + "results": [ + { + "workerIndex": 1, + "parallelIndex": 1, + "status": "passed", + "duration": 31, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T09:37:37.043Z", + "annotations": [], + "attachments": [] + } + ], + "status": "expected" + } + ], + "id": "7324964a6aa193ebd049-a9a4a24641e1381cb656", + "file": "release.spec.ts", + "line": 24, + "column": 1 + }, + { + "title": "릴리스는 사용자 크레딧과 런타임 MIT notice 전문을 제공한다", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "mobile", + "projectName": "mobile", + "results": [ + { + "workerIndex": 3, + "parallelIndex": 1, + "status": "passed", + "duration": 290, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T09:39:33.014Z", + "annotations": [], + "attachments": [] + } + ], + "status": "expected" + } + ], + "id": "7324964a6aa193ebd049-b2bb581aa05f7bfc0a11", + "file": "release.spec.ts", + "line": 6, + "column": 1 + }, + { + "title": "누락 음성·환경음은 query와 HTML accept에도 404이고 출처 고지는 번들된다", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "mobile", + "projectName": "mobile", + "results": [ + { + "workerIndex": 3, + "parallelIndex": 1, + "status": "passed", + "duration": 23, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T09:39:33.318Z", + "annotations": [], + "attachments": [] + } + ], + "status": "expected" + } + ], + "id": "7324964a6aa193ebd049-87e393dee6d378b60b88", + "file": "release.spec.ts", + "line": 24, + "column": 1 + } + ] + }, + { + "title": "review-fixes.spec.ts", + "file": "review-fixes.spec.ts", + "column": 0, + "line": 0, + "specs": [ + { + "title": "리뷰: 한국어 모드·결과 어절은 320px와 360px에서도 갈라지거나 넘치지 않는다", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "desktop", + "projectName": "desktop", + "results": [ + { + "workerIndex": 1, + "parallelIndex": 1, + "status": "passed", + "duration": 1974, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T09:37:37.098Z", + "annotations": [], + "attachments": [] + } + ], + "status": "expected" + } + ], + "id": "abdd2e2cf517d3c959fd-e748bd769b024912a05a", + "file": "review-fixes.spec.ts", + "line": 27, + "column": 1 + }, + { + "title": "리뷰: 실제 진행 막대는 현재 문항의 1/3·2/3·3/3을 채운다", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "desktop", + "projectName": "desktop", + "results": [ + { + "workerIndex": 1, + "parallelIndex": 1, + "status": "passed", + "duration": 33065, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T09:37:39.088Z", + "annotations": [], + "attachments": [] + } + ], + "status": "expected" + } + ], + "id": "abdd2e2cf517d3c959fd-f7936886d307bf504a2e", + "file": "review-fixes.spec.ts", + "line": 62, + "column": 1 + }, + { + "title": "리뷰: 한국어 모드·결과 어절은 320px와 360px에서도 갈라지거나 넘치지 않는다", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "mobile", + "projectName": "mobile", + "results": [ + { + "workerIndex": 3, + "parallelIndex": 1, + "status": "passed", + "duration": 1777, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T09:39:33.358Z", + "annotations": [], + "attachments": [] + } + ], + "status": "expected" + } + ], + "id": "abdd2e2cf517d3c959fd-297a2a889ff2a2c13233", + "file": "review-fixes.spec.ts", + "line": 27, + "column": 1 + }, + { + "title": "리뷰: 실제 진행 막대는 현재 문항의 1/3·2/3·3/3을 채운다", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "mobile", + "projectName": "mobile", + "results": [ + { + "workerIndex": 2, + "parallelIndex": 0, + "status": "passed", + "duration": 29473, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T09:39:34.933Z", + "annotations": [], + "attachments": [] + } + ], + "status": "expected" + } + ], + "id": "abdd2e2cf517d3c959fd-99533baf08fa35da0cd2", + "file": "review-fixes.spec.ts", + "line": 62, + "column": 1 + } + ] + }, + { + "title": "rounds.spec.ts", + "file": "rounds.spec.ts", + "column": 0, + "line": 0, + "specs": [ + { + "title": "시작 단계·SNR·3문항 완료→다음 단계·재생 중 종료·응답 후 종료·홈 초기화", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "desktop", + "projectName": "desktop", + "results": [ + { + "workerIndex": 0, + "parallelIndex": 0, + "status": "passed", + "duration": 62335, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T09:37:44.190Z", + "annotations": [], + "attachments": [ + { + "name": "runtime-audit", + "contentType": "application/json", + "body": "ewogICJlcnJvcnMiOiBbXSwKICAiZmFpbGVkIjogW10sCiAgImV4dGVybmFsIjogW10sCiAgImF1ZGlvIjogewogICAgInN0YXJ0cyI6IFsKICAgICAgewogICAgICAgICJsb29wIjogdHJ1ZSwKICAgICAgICAiZHVyYXRpb24iOiAxMgogICAgICB9LAogICAgICB7CiAgICAgICAgImxvb3AiOiBmYWxzZSwKICAgICAgICAiZHVyYXRpb24iOiA3LjA1NTk4NjM5NDU1NzgyMwogICAgICB9LAogICAgICB7CiAgICAgICAgImxvb3AiOiBmYWxzZSwKICAgICAgICAiZHVyYXRpb24iOiA3LjQ4Nzk4MTg1OTQxMDQzMQogICAgICB9LAogICAgICB7CiAgICAgICAgImxvb3AiOiB0cnVlLAogICAgICAgICJkdXJhdGlvbiI6IDEyCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAibG9vcCI6IGZhbHNlLAogICAgICAgICJkdXJhdGlvbiI6IDguMjc5OTc3MzI0MjYzMDM4CiAgICAgIH0sCiAgICAgIHsKICAgICAgICAibG9vcCI6IHRydWUsCiAgICAgICAgImR1cmF0aW9uIjogMTIKICAgICAgfSwKICAgICAgewogICAgICAgICJsb29wIjogZmFsc2UsCiAgICAgICAgImR1cmF0aW9uIjogNy42MzE5OTU0NjQ4NTI2MDgKICAgICAgfSwKICAgICAgewogICAgICAgICJsb29wIjogdHJ1ZSwKICAgICAgICAiZHVyYXRpb24iOiAxMgogICAgICB9LAogICAgICB7CiAgICAgICAgImxvb3AiOiBmYWxzZSwKICAgICAgICAiZHVyYXRpb24iOiA3LjA1NTk4NjM5NDU1NzgyMwogICAgICB9LAogICAgICB7CiAgICAgICAgImxvb3AiOiBmYWxzZSwKICAgICAgICAiZHVyYXRpb24iOiA4LjI3OTk3NzMyNDI2MzAzOAogICAgICB9LAogICAgICB7CiAgICAgICAgImxvb3AiOiB0cnVlLAogICAgICAgICJkdXJhdGlvbiI6IDEyCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAibG9vcCI6IGZhbHNlLAogICAgICAgICJkdXJhdGlvbiI6IDcuMDU1OTg2Mzk0NTU3ODIzCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAibG9vcCI6IGZhbHNlLAogICAgICAgICJkdXJhdGlvbiI6IDcuOTY3OTgxODU5NDEwNDMxCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAibG9vcCI6IHRydWUsCiAgICAgICAgImR1cmF0aW9uIjogMTIKICAgICAgfSwKICAgICAgewogICAgICAgICJsb29wIjogZmFsc2UsCiAgICAgICAgImR1cmF0aW9uIjogNy45Njc5ODE4NTk0MTA0MzEKICAgICAgfQogICAgXSwKICAgICJzdG9wcyI6IDE1CiAgfQp9" + } + ] + } + ], + "status": "expected" + } + ], + "id": "5d80d20ef944a60dee29-84fa7dcc311fcc9f3abb", + "file": "rounds.spec.ts", + "line": 35, + "column": 1 + }, + { + "title": "여덟 환경의 실제 WAV를 각각 디코드하고 루프 재생한 뒤 즉시 정지한다", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "desktop", + "projectName": "desktop", + "results": [ + { + "workerIndex": 1, + "parallelIndex": 1, + "status": "passed", + "duration": 7918, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T09:38:12.202Z", + "annotations": [], + "attachments": [] + } + ], + "status": "expected" + } + ], + "id": "5d80d20ef944a60dee29-67ee259e43d6a5758a4c", + "file": "rounds.spec.ts", + "line": 135, + "column": 1 + }, + { + "title": "환경음 404는 한국어 오류와 재시도 후 정상 답변으로 복구한다", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "desktop", + "projectName": "desktop", + "results": [ + { + "workerIndex": 1, + "parallelIndex": 1, + "status": "passed", + "duration": 14332, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T09:38:20.144Z", + "annotations": [], + "attachments": [] + } + ], + "status": "expected" + } + ], + "id": "5d80d20ef944a60dee29-b3270c20fde2468292dc", + "file": "rounds.spec.ts", + "line": 178, + "column": 1 + }, + { + "title": "시작 단계·SNR·3문항 완료→다음 단계·재생 중 종료·응답 후 종료·홈 초기화", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "mobile", + "projectName": "mobile", + "results": [ + { + "workerIndex": 3, + "parallelIndex": 1, + "status": "passed", + "duration": 60914, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T09:39:35.166Z", + "annotations": [], + "attachments": [ + { + "name": "runtime-audit", + "contentType": "application/json", + "body": "ewogICJlcnJvcnMiOiBbXSwKICAiZmFpbGVkIjogW10sCiAgImV4dGVybmFsIjogW10sCiAgImF1ZGlvIjogewogICAgInN0YXJ0cyI6IFsKICAgICAgewogICAgICAgICJsb29wIjogdHJ1ZSwKICAgICAgICAiZHVyYXRpb24iOiAxMgogICAgICB9LAogICAgICB7CiAgICAgICAgImxvb3AiOiBmYWxzZSwKICAgICAgICAiZHVyYXRpb24iOiA3LjA1NTk4NjM5NDU1NzgyMwogICAgICB9LAogICAgICB7CiAgICAgICAgImxvb3AiOiBmYWxzZSwKICAgICAgICAiZHVyYXRpb24iOiA4LjM3NTk4NjM5NDU1NzgyNAogICAgICB9LAogICAgICB7CiAgICAgICAgImxvb3AiOiB0cnVlLAogICAgICAgICJkdXJhdGlvbiI6IDEyCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAibG9vcCI6IGZhbHNlLAogICAgICAgICJkdXJhdGlvbiI6IDUuMDM5OTc3MzI0MjYzMDM4CiAgICAgIH0sCiAgICAgIHsKICAgICAgICAibG9vcCI6IHRydWUsCiAgICAgICAgImR1cmF0aW9uIjogMTIKICAgICAgfSwKICAgICAgewogICAgICAgICJsb29wIjogZmFsc2UsCiAgICAgICAgImR1cmF0aW9uIjogMTAuODk1OTg2Mzk0NTU3ODIzCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAibG9vcCI6IHRydWUsCiAgICAgICAgImR1cmF0aW9uIjogMTIKICAgICAgfSwKICAgICAgewogICAgICAgICJsb29wIjogZmFsc2UsCiAgICAgICAgImR1cmF0aW9uIjogNy4wNTU5ODYzOTQ1NTc4MjMKICAgICAgfSwKICAgICAgewogICAgICAgICJsb29wIjogZmFsc2UsCiAgICAgICAgImR1cmF0aW9uIjogOC4yNzk5NzczMjQyNjMwMzgKICAgICAgfSwKICAgICAgewogICAgICAgICJsb29wIjogdHJ1ZSwKICAgICAgICAiZHVyYXRpb24iOiAxMgogICAgICB9LAogICAgICB7CiAgICAgICAgImxvb3AiOiBmYWxzZSwKICAgICAgICAiZHVyYXRpb24iOiA3LjA1NTk4NjM5NDU1NzgyMwogICAgICB9LAogICAgICB7CiAgICAgICAgImxvb3AiOiBmYWxzZSwKICAgICAgICAiZHVyYXRpb24iOiA3LjQzOTk3NzMyNDI2MzAzODUKICAgICAgfSwKICAgICAgewogICAgICAgICJsb29wIjogdHJ1ZSwKICAgICAgICAiZHVyYXRpb24iOiAxMgogICAgICB9LAogICAgICB7CiAgICAgICAgImxvb3AiOiBmYWxzZSwKICAgICAgICAiZHVyYXRpb24iOiA3LjQzOTk3NzMyNDI2MzAzODUKICAgICAgfQogICAgXSwKICAgICJzdG9wcyI6IDE1CiAgfQp9" + } + ] + } + ], + "status": "expected" + } + ], + "id": "5d80d20ef944a60dee29-13a6d49b3ccf87a3e87d", + "file": "rounds.spec.ts", + "line": 35, + "column": 1 + }, + { + "title": "여덟 환경의 실제 WAV를 각각 디코드하고 루프 재생한 뒤 즉시 정지한다", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "mobile", + "projectName": "mobile", + "results": [ + { + "workerIndex": 2, + "parallelIndex": 0, + "status": "passed", + "duration": 5830, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T09:40:04.434Z", + "annotations": [], + "attachments": [] + } + ], + "status": "expected" + } + ], + "id": "5d80d20ef944a60dee29-986d947b51ae90d63e40", + "file": "rounds.spec.ts", + "line": 135, + "column": 1 + }, + { + "title": "환경음 404는 한국어 오류와 재시도 후 정상 답변으로 복구한다", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "mobile", + "projectName": "mobile", + "results": [ + { + "workerIndex": 2, + "parallelIndex": 0, + "status": "passed", + "duration": 15645, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T09:40:10.283Z", + "annotations": [], + "attachments": [] + } + ], + "status": "expected" + } + ], + "id": "5d80d20ef944a60dee29-cf677d38ab55c08f0ba0", + "file": "rounds.spec.ts", + "line": 178, + "column": 1 + } + ] + }, + { + "title": "ui.spec.ts", + "file": "ui.spec.ts", + "column": 0, + "line": 0, + "specs": [ + { + "title": "전체 음량은 설정 흐름 안에 들어가며 키보드로 조절된다", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "desktop", + "projectName": "desktop", + "results": [ + { + "workerIndex": 1, + "parallelIndex": 1, + "status": "passed", + "duration": 1495, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T09:38:34.520Z", + "annotations": [], + "attachments": [] + } + ], + "status": "expected" + } + ], + "id": "d425444c687fa36b5882-2f651fec20696a7afab2", + "file": "ui.spec.ts", + "line": 4, + "column": 1 + }, + { + "title": "난이도 설명은 모바일에서도 보인다", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "desktop", + "projectName": "desktop", + "results": [ + { + "workerIndex": 1, + "parallelIndex": 1, + "status": "passed", + "duration": 1013, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T09:38:36.035Z", + "annotations": [], + "attachments": [] + } + ], + "status": "expected" + } + ], + "id": "d425444c687fa36b5882-7db7ff839d8655c45b58", + "file": "ui.spec.ts", + "line": 52, + "column": 1 + }, + { + "title": "한국어 제목은 단어 중간에서 줄바꿈하지 않는다", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "desktop", + "projectName": "desktop", + "results": [ + { + "workerIndex": 1, + "parallelIndex": 1, + "status": "passed", + "duration": 17583, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T09:38:37.070Z", + "annotations": [], + "attachments": [] + } + ], + "status": "expected" + } + ], + "id": "d425444c687fa36b5882-7518419f9a74847f1877", + "file": "ui.spec.ts", + "line": 68, + "column": 1 + }, + { + "title": "시작 단계와 SNR 설정은 카드 안에 들어가고 터치 영역을 확보한다", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "desktop", + "projectName": "desktop", + "results": [ + { + "workerIndex": 0, + "parallelIndex": 0, + "status": "passed", + "duration": 620, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T09:38:46.557Z", + "annotations": [], + "attachments": [] + } + ], + "status": "expected" + } + ], + "id": "d425444c687fa36b5882-8c65d4cc796bafc3d050", + "file": "ui.spec.ts", + "line": 121, + "column": 1 + }, + { + "title": "전체 음량은 설정 흐름 안에 들어가며 키보드로 조절된다", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "mobile", + "projectName": "mobile", + "results": [ + { + "workerIndex": 2, + "parallelIndex": 0, + "status": "passed", + "duration": 786, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T09:40:25.996Z", + "annotations": [], + "attachments": [] + } + ], + "status": "expected" + } + ], + "id": "d425444c687fa36b5882-42b32cae06f88c5571de", + "file": "ui.spec.ts", + "line": 4, + "column": 1 + }, + { + "title": "난이도 설명은 모바일에서도 보인다", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "mobile", + "projectName": "mobile", + "results": [ + { + "workerIndex": 2, + "parallelIndex": 0, + "status": "passed", + "duration": 670, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T09:40:26.799Z", + "annotations": [], + "attachments": [] + } + ], + "status": "expected" + } + ], + "id": "d425444c687fa36b5882-9bad02fda46134f05a95", + "file": "ui.spec.ts", + "line": 52, + "column": 1 + }, + { + "title": "한국어 제목은 단어 중간에서 줄바꿈하지 않는다", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "mobile", + "projectName": "mobile", + "results": [ + { + "workerIndex": 2, + "parallelIndex": 0, + "status": "passed", + "duration": 17164, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T09:40:27.481Z", + "annotations": [], + "attachments": [] + } + ], + "status": "expected" + } + ], + "id": "d425444c687fa36b5882-6ac401056de90e7e3757", + "file": "ui.spec.ts", + "line": 68, + "column": 1 + }, + { + "title": "시작 단계와 SNR 설정은 카드 안에 들어가고 터치 영역을 확보한다", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "mobile", + "projectName": "mobile", + "results": [ + { + "workerIndex": 3, + "parallelIndex": 1, + "status": "passed", + "duration": 332, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T09:40:36.111Z", + "annotations": [], + "attachments": [] + } + ], + "status": "expected" + } + ], + "id": "d425444c687fa36b5882-c761fe2d98a1c83f2536", + "file": "ui.spec.ts", + "line": 121, + "column": 1 + } + ] + } + ], + "errors": [], + "stats": { + "startTime": "2026-10-14T09:36:44.096Z", + "duration": 240675.669, + "expected": 30, + "skipped": 0, + "unexpected": 0, + "flaky": 0 + } +} \ No newline at end of file diff --git a/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/chrome-sandbox.json b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/chrome-sandbox.json new file mode 100644 index 0000000..9c95765 --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/chrome-sandbox.json @@ -0,0 +1,75 @@ +{ + "startedAtUtc": "2026-10-14T09:36:42.758794+00:00", + "completedAtUtc": "2026-10-14T09:40:45.154764+00:00", + "runnerPid": 1521509, + "command": [ + "npx", + "playwright", + "test", + "--reporter=line,json", + "--output", + "/home/hermes/worktrees/find-word-v0.2.3/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/browser-final" + ], + "chrome": "Google Chrome 146.0.7680.80", + "method": "Actual Chrome descendants of this suite runner; Playwright chromiumSandbox=true and opt-out unset.", + "noSandboxFlagPresent": false, + "exitCode": 0, + "processes": [ + { + "pid": 1521728, + "ppid": 1521680, + "arguments": [ + "/opt/google/chrome/chrome --disable-field-trial-config --disable-background-networking --disable-background-timer-throttling --disable-backgrounding-occluded-windows --disable-back-forward-cache --disable-breakpad --disable-client-side-phishing-detection --disable-component-extensions-with-background-pages --disable-component-update --no-default-browser-check --disable-default-apps --disable-dev-shm-usage --disable-edgeupdater --disable-extensions --disable-features=AvoidUnnecessaryBeforeUnloadCheckSync,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,PaintHolding,ThirdPartyStoragePartitioning,BlockOriginHeaderModificationOnRedirect,Translate,AutoDeElevate,OptimizationHints,NetworkTimeServiceQuerying,AimEnabled,msForceBrowserSignIn,msEdgeUpdateLaunchServicesPreferredVersion --enable-features=CDPScreenshotNewSurface --allow-pre-commit-input --disable-hang-monitor --disable-ipc-flooding-protection --disable-popup-blocking --disable-prompt-on-repost --disable-renderer-backgrounding --disable-updater-scheduler --force-color-profile=srgb --metrics-recording-only --no-first-run --password-store=basic --use-mock-keychain --no-service-autorun --export-tagged-pdf --disable-search-engine-choice-screen --unsafely-disable-devtools-self-xss-warnings --edge-skip-compat-layer-relaunch --disable-infobars --disable-search-engine-choice-screen --disable-sync --enable-unsafe-swiftshader --headless --hide-scrollbars --mute-audio --blink-settings=primaryHoverType=2,availableHoverTypes=2,primaryPointerType=4,availablePointerTypes=4 --user-data-dir=/tmp/playwright_chromiumdev_profile-6zpyQe --remote-debugging-pipe --no-startup-window --noerrdialogs --ozone-platform=headless --ozone-override-screen-size=800,600 --use-angle=swiftshader-webgl" + ], + "commandLine": "'/opt/google/chrome/chrome --disable-field-trial-config --disable-background-networking --disable-background-timer-throttling --disable-backgrounding-occluded-windows --disable-back-forward-cache --disable-breakpad --disable-client-side-phishing-detection --disable-component-extensions-with-background-pages --disable-component-update --no-default-browser-check --disable-default-apps --disable-dev-shm-usage --disable-edgeupdater --disable-extensions --disable-features=AvoidUnnecessaryBeforeUnloadCheckSync,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,PaintHolding,ThirdPartyStoragePartitioning,BlockOriginHeaderModificationOnRedirect,Translate,AutoDeElevate,OptimizationHints,NetworkTimeServiceQuerying,AimEnabled,msForceBrowserSignIn,msEdgeUpdateLaunchServicesPreferredVersion --enable-features=CDPScreenshotNewSurface --allow-pre-commit-input --disable-hang-monitor --disable-ipc-flooding-protection --disable-popup-blocking --disable-prompt-on-repost --disable-renderer-backgrounding --disable-updater-scheduler --force-color-profile=srgb --metrics-recording-only --no-first-run --password-store=basic --use-mock-keychain --no-service-autorun --export-tagged-pdf --disable-search-engine-choice-screen --unsafely-disable-devtools-self-xss-warnings --edge-skip-compat-layer-relaunch --disable-infobars --disable-search-engine-choice-screen --disable-sync --enable-unsafe-swiftshader --headless --hide-scrollbars --mute-audio --blink-settings=primaryHoverType=2,availableHoverTypes=2,primaryPointerType=4,availablePointerTypes=4 --user-data-dir=/tmp/playwright_chromiumdev_profile-6zpyQe --remote-debugging-pipe --no-startup-window --noerrdialogs --ozone-platform=headless --ozone-override-screen-size=800,600 --use-angle=swiftshader-webgl'", + "sandboxStatus": [ + "NSpid:\t1521728", + "NoNewPrivs:\t0", + "Seccomp:\t0", + "Seccomp_filters:\t0" + ] + }, + { + "pid": 1521822, + "ppid": 1521686, + "arguments": [ + "/opt/google/chrome/chrome --disable-field-trial-config --disable-background-networking --disable-background-timer-throttling --disable-backgrounding-occluded-windows --disable-back-forward-cache --disable-breakpad --disable-client-side-phishing-detection --disable-component-extensions-with-background-pages --disable-component-update --no-default-browser-check --disable-default-apps --disable-dev-shm-usage --disable-edgeupdater --disable-extensions --disable-features=AvoidUnnecessaryBeforeUnloadCheckSync,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,PaintHolding,ThirdPartyStoragePartitioning,BlockOriginHeaderModificationOnRedirect,Translate,AutoDeElevate,OptimizationHints,NetworkTimeServiceQuerying,AimEnabled,msForceBrowserSignIn,msEdgeUpdateLaunchServicesPreferredVersion --enable-features=CDPScreenshotNewSurface --allow-pre-commit-input --disable-hang-monitor --disable-ipc-flooding-protection --disable-popup-blocking --disable-prompt-on-repost --disable-renderer-backgrounding --disable-updater-scheduler --force-color-profile=srgb --metrics-recording-only --no-first-run --password-store=basic --use-mock-keychain --no-service-autorun --export-tagged-pdf --disable-search-engine-choice-screen --unsafely-disable-devtools-self-xss-warnings --edge-skip-compat-layer-relaunch --disable-infobars --disable-search-engine-choice-screen --disable-sync --enable-unsafe-swiftshader --headless --hide-scrollbars --mute-audio --blink-settings=primaryHoverType=2,availableHoverTypes=2,primaryPointerType=4,availablePointerTypes=4 --user-data-dir=/tmp/playwright_chromiumdev_profile-d551qg --remote-debugging-pipe --no-startup-window --noerrdialogs --ozone-platform=headless --ozone-override-screen-size=800,600 --use-angle=swiftshader-webgl" + ], + "commandLine": "'/opt/google/chrome/chrome --disable-field-trial-config --disable-background-networking --disable-background-timer-throttling --disable-backgrounding-occluded-windows --disable-back-forward-cache --disable-breakpad --disable-client-side-phishing-detection --disable-component-extensions-with-background-pages --disable-component-update --no-default-browser-check --disable-default-apps --disable-dev-shm-usage --disable-edgeupdater --disable-extensions --disable-features=AvoidUnnecessaryBeforeUnloadCheckSync,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,PaintHolding,ThirdPartyStoragePartitioning,BlockOriginHeaderModificationOnRedirect,Translate,AutoDeElevate,OptimizationHints,NetworkTimeServiceQuerying,AimEnabled,msForceBrowserSignIn,msEdgeUpdateLaunchServicesPreferredVersion --enable-features=CDPScreenshotNewSurface --allow-pre-commit-input --disable-hang-monitor --disable-ipc-flooding-protection --disable-popup-blocking --disable-prompt-on-repost --disable-renderer-backgrounding --disable-updater-scheduler --force-color-profile=srgb --metrics-recording-only --no-first-run --password-store=basic --use-mock-keychain --no-service-autorun --export-tagged-pdf --disable-search-engine-choice-screen --unsafely-disable-devtools-self-xss-warnings --edge-skip-compat-layer-relaunch --disable-infobars --disable-search-engine-choice-screen --disable-sync --enable-unsafe-swiftshader --headless --hide-scrollbars --mute-audio --blink-settings=primaryHoverType=2,availableHoverTypes=2,primaryPointerType=4,availablePointerTypes=4 --user-data-dir=/tmp/playwright_chromiumdev_profile-d551qg --remote-debugging-pipe --no-startup-window --noerrdialogs --ozone-platform=headless --ozone-override-screen-size=800,600 --use-angle=swiftshader-webgl'", + "sandboxStatus": [ + "NSpid:\t1521822", + "NoNewPrivs:\t0", + "Seccomp:\t0", + "Seccomp_filters:\t0" + ] + }, + { + "pid": 1523644, + "ppid": 1523631, + "arguments": [ + "/opt/google/chrome/chrome --disable-field-trial-config --disable-background-networking --disable-background-timer-throttling --disable-backgrounding-occluded-windows --disable-back-forward-cache --disable-breakpad --disable-client-side-phishing-detection --disable-component-extensions-with-background-pages --disable-component-update --no-default-browser-check --disable-default-apps --disable-dev-shm-usage --disable-edgeupdater --disable-extensions --disable-features=AvoidUnnecessaryBeforeUnloadCheckSync,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,PaintHolding,ThirdPartyStoragePartitioning,BlockOriginHeaderModificationOnRedirect,Translate,AutoDeElevate,OptimizationHints,NetworkTimeServiceQuerying,AimEnabled,msForceBrowserSignIn,msEdgeUpdateLaunchServicesPreferredVersion --enable-features=CDPScreenshotNewSurface --allow-pre-commit-input --disable-hang-monitor --disable-ipc-flooding-protection --disable-popup-blocking --disable-prompt-on-repost --disable-renderer-backgrounding --disable-updater-scheduler --force-color-profile=srgb --metrics-recording-only --no-first-run --password-store=basic --use-mock-keychain --no-service-autorun --export-tagged-pdf --disable-search-engine-choice-screen --unsafely-disable-devtools-self-xss-warnings --edge-skip-compat-layer-relaunch --disable-infobars --disable-search-engine-choice-screen --disable-sync --enable-unsafe-swiftshader --headless --hide-scrollbars --mute-audio --blink-settings=primaryHoverType=2,availableHoverTypes=2,primaryPointerType=4,availablePointerTypes=4 --user-data-dir=/tmp/playwright_chromiumdev_profile-uE2NXe --remote-debugging-pipe --no-startup-window --noerrdialogs --ozone-platform=headless --ozone-override-screen-size=800,600 --use-angle=swiftshader-webgl" + ], + "commandLine": "'/opt/google/chrome/chrome --disable-field-trial-config --disable-background-networking --disable-background-timer-throttling --disable-backgrounding-occluded-windows --disable-back-forward-cache --disable-breakpad --disable-client-side-phishing-detection --disable-component-extensions-with-background-pages --disable-component-update --no-default-browser-check --disable-default-apps --disable-dev-shm-usage --disable-edgeupdater --disable-extensions --disable-features=AvoidUnnecessaryBeforeUnloadCheckSync,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,PaintHolding,ThirdPartyStoragePartitioning,BlockOriginHeaderModificationOnRedirect,Translate,AutoDeElevate,OptimizationHints,NetworkTimeServiceQuerying,AimEnabled,msForceBrowserSignIn,msEdgeUpdateLaunchServicesPreferredVersion --enable-features=CDPScreenshotNewSurface --allow-pre-commit-input --disable-hang-monitor --disable-ipc-flooding-protection --disable-popup-blocking --disable-prompt-on-repost --disable-renderer-backgrounding --disable-updater-scheduler --force-color-profile=srgb --metrics-recording-only --no-first-run --password-store=basic --use-mock-keychain --no-service-autorun --export-tagged-pdf --disable-search-engine-choice-screen --unsafely-disable-devtools-self-xss-warnings --edge-skip-compat-layer-relaunch --disable-infobars --disable-search-engine-choice-screen --disable-sync --enable-unsafe-swiftshader --headless --hide-scrollbars --mute-audio --blink-settings=primaryHoverType=2,availableHoverTypes=2,primaryPointerType=4,availablePointerTypes=4 --user-data-dir=/tmp/playwright_chromiumdev_profile-uE2NXe --remote-debugging-pipe --no-startup-window --noerrdialogs --ozone-platform=headless --ozone-override-screen-size=800,600 --use-angle=swiftshader-webgl'", + "sandboxStatus": [ + "NSpid:\t1523644", + "NoNewPrivs:\t0", + "Seccomp:\t0", + "Seccomp_filters:\t0" + ] + }, + { + "pid": 1523794, + "ppid": 1523782, + "arguments": [ + "/opt/google/chrome/chrome --disable-field-trial-config --disable-background-networking --disable-background-timer-throttling --disable-backgrounding-occluded-windows --disable-back-forward-cache --disable-breakpad --disable-client-side-phishing-detection --disable-component-extensions-with-background-pages --disable-component-update --no-default-browser-check --disable-default-apps --disable-dev-shm-usage --disable-edgeupdater --disable-extensions --disable-features=AvoidUnnecessaryBeforeUnloadCheckSync,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,PaintHolding,ThirdPartyStoragePartitioning,BlockOriginHeaderModificationOnRedirect,Translate,AutoDeElevate,OptimizationHints,NetworkTimeServiceQuerying,AimEnabled,msForceBrowserSignIn,msEdgeUpdateLaunchServicesPreferredVersion --enable-features=CDPScreenshotNewSurface --allow-pre-commit-input --disable-hang-monitor --disable-ipc-flooding-protection --disable-popup-blocking --disable-prompt-on-repost --disable-renderer-backgrounding --disable-updater-scheduler --force-color-profile=srgb --metrics-recording-only --no-first-run --password-store=basic --use-mock-keychain --no-service-autorun --export-tagged-pdf --disable-search-engine-choice-screen --unsafely-disable-devtools-self-xss-warnings --edge-skip-compat-layer-relaunch --disable-infobars --disable-search-engine-choice-screen --disable-sync --enable-unsafe-swiftshader --headless --hide-scrollbars --mute-audio --blink-settings=primaryHoverType=2,availableHoverTypes=2,primaryPointerType=4,availablePointerTypes=4 --user-data-dir=/tmp/playwright_chromiumdev_profile-UiW664 --remote-debugging-pipe --no-startup-window --noerrdialogs --ozone-platform=headless --ozone-override-screen-size=800,600 --use-angle=swiftshader-webgl" + ], + "commandLine": "'/opt/google/chrome/chrome --disable-field-trial-config --disable-background-networking --disable-background-timer-throttling --disable-backgrounding-occluded-windows --disable-back-forward-cache --disable-breakpad --disable-client-side-phishing-detection --disable-component-extensions-with-background-pages --disable-component-update --no-default-browser-check --disable-default-apps --disable-dev-shm-usage --disable-edgeupdater --disable-extensions --disable-features=AvoidUnnecessaryBeforeUnloadCheckSync,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,PaintHolding,ThirdPartyStoragePartitioning,BlockOriginHeaderModificationOnRedirect,Translate,AutoDeElevate,OptimizationHints,NetworkTimeServiceQuerying,AimEnabled,msForceBrowserSignIn,msEdgeUpdateLaunchServicesPreferredVersion --enable-features=CDPScreenshotNewSurface --allow-pre-commit-input --disable-hang-monitor --disable-ipc-flooding-protection --disable-popup-blocking --disable-prompt-on-repost --disable-renderer-backgrounding --disable-updater-scheduler --force-color-profile=srgb --metrics-recording-only --no-first-run --password-store=basic --use-mock-keychain --no-service-autorun --export-tagged-pdf --disable-search-engine-choice-screen --unsafely-disable-devtools-self-xss-warnings --edge-skip-compat-layer-relaunch --disable-infobars --disable-search-engine-choice-screen --disable-sync --enable-unsafe-swiftshader --headless --hide-scrollbars --mute-audio --blink-settings=primaryHoverType=2,availableHoverTypes=2,primaryPointerType=4,availablePointerTypes=4 --user-data-dir=/tmp/playwright_chromiumdev_profile-UiW664 --remote-debugging-pipe --no-startup-window --noerrdialogs --ozone-platform=headless --ozone-override-screen-size=800,600 --use-angle=swiftshader-webgl'", + "sandboxStatus": [ + "NSpid:\t1523794", + "NoNewPrivs:\t0", + "Seccomp:\t0", + "Seccomp_filters:\t0" + ] + } + ] +} diff --git a/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/collect-browser-evidence-v2.py b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/collect-browser-evidence-v2.py new file mode 100644 index 0000000..d9a15ad --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/collect-browser-evidence-v2.py @@ -0,0 +1,68 @@ +"""Independently compare browser responses/decode measurements to the current manifests.""" +import base64 +import json +from pathlib import Path +import shutil +from urllib.parse import urlparse + +ROOT = Path(__file__).resolve().parents[4] +EVIDENCE = Path(__file__).resolve().parent +OUTPUT = EVIDENCE / 'browser-final' +report = json.loads((EVIDENCE / 'browser-results.json').read_text()) +assert report['stats']['expected'] == 30 +assert all(report['stats'][key] == 0 for key in ('unexpected', 'flaky', 'skipped')) +assert report.get('errors', []) == [] +expected = {} +for directory in ('audio', 'ambience'): + manifest = json.loads((ROOT / 'public' / directory / 'manifest.json').read_text()) + for entry in manifest['files']: + expected[f'/{directory}/{entry["file"]}'] = entry +summary = [] +(EVIDENCE / 'screenshots').mkdir(exist_ok=True) +runtime_attachments = {} +def visit(suites): + for suite in suites: + for spec in suite.get('specs', []): + for test in spec['tests']: + for result in test['results']: + for attachment in result.get('attachments', []): + if attachment['name'] == 'runtime-audit': + project = test['projectName'] + assert project not in runtime_attachments + runtime_attachments[project] = base64.b64decode(attachment['body'], validate=True) + visit(suite.get('suites', [])) +visit(report['suites']) +assert set(runtime_attachments) == {'desktop', 'mobile'} +for project in ('desktop', 'mobile'): + paths = list(OUTPUT.glob(f'*-{project}/browser-audio-integrity.json')) + assert len(paths) == 1 + data = json.loads(paths[0].read_text()) + assert len(data['files']) == 109 + assert data['external'] == data['errors'] == data['failed'] == [] + assert {urlparse(row['url']).path for row in data['files']} == set(expected) + max_rms_difference = max_peak_difference = 0 + for row in data['files']: + entry = expected[urlparse(row['url']).path] + assert row['sha256'] == entry['sha256'] and row['bytes'] == entry['bytes'] + assert row['duration'] == entry['duration'] and row['sampleRate'] == 24000 and row['channels'] == 1 + rms_difference = abs(row['rms'] - entry['rms']) + peak_difference = abs(row['peak'] - entry['peak']) + assert max(rms_difference, peak_difference) <= 1 / 32768 + max_rms_difference = max(max_rms_difference, rms_difference) + max_peak_difference = max(max_peak_difference, peak_difference) + name = f'{project}-audio-integrity.json' + shutil.copy2(paths[0], EVIDENCE / name) + summary.append({'project':project, 'chrome':data['chrome'], 'filesMatched':109, + 'externalRequests':0, 'consoleOrPageErrors':0, 'failedRequests':0, 'evidence':name, + 'levelTolerance':1 / 32768, 'maximumRmsDifference':max_rms_difference, 'maximumPeakDifference':max_peak_difference, + 'levelToleranceReason':'One PCM16 step allows browser float decode scaling; SHA-256 and bytes must match exactly.'}) + for source, target in [('home.png','start.png'), ('game.png','game.png'), ('results.png','normal-results.png'), ('early-exit.png','early-exit.png')]: + matches = list(OUTPUT.glob(f'*-{project}/{source}')) + assert len(matches) == 1, (project, source, matches) + shutil.copy2(matches[0], EVIDENCE / 'screenshots' / f'{project}-{target}') + raw = runtime_attachments[project] + audit = json.loads(raw) + assert audit['errors'] == audit['failed'] == audit['external'] == [] + with (EVIDENCE / f'{project}-runtime-audit.json').open('xb') as out: out.write(raw) +with (EVIDENCE / 'browser-integrity-summary.json').open('x') as out: out.write(json.dumps(summary, indent=2) + '\n') +print(json.dumps({'browserStats':report['stats'], 'integrity':summary}, indent=2)) diff --git a/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/collect-browser-evidence.py b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/collect-browser-evidence.py new file mode 100644 index 0000000..7948e0d --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/collect-browser-evidence.py @@ -0,0 +1,54 @@ +"""Independently compare browser responses/decode measurements to the current manifests.""" +import json +from pathlib import Path +import shutil +from urllib.parse import urlparse + +ROOT = Path(__file__).resolve().parents[4] +EVIDENCE = Path(__file__).resolve().parent +OUTPUT = EVIDENCE / 'browser-final' +report = json.loads((EVIDENCE / 'browser-results.json').read_text()) +assert report['stats']['expected'] == 30 +assert all(report['stats'][key] == 0 for key in ('unexpected', 'flaky', 'skipped')) +assert report.get('errors', []) == [] +expected = {} +for directory in ('audio', 'ambience'): + manifest = json.loads((ROOT / 'public' / directory / 'manifest.json').read_text()) + for entry in manifest['files']: + expected[f'/{directory}/{entry["file"]}'] = entry +summary = [] +(EVIDENCE / 'screenshots').mkdir() +for project in ('desktop', 'mobile'): + paths = list(OUTPUT.glob(f'*-{project}/browser-audio-integrity.json')) + assert len(paths) == 1 + data = json.loads(paths[0].read_text()) + assert len(data['files']) == 109 + assert data['external'] == data['errors'] == data['failed'] == [] + assert {urlparse(row['url']).path for row in data['files']} == set(expected) + max_rms_difference = max_peak_difference = 0 + for row in data['files']: + entry = expected[urlparse(row['url']).path] + assert row['sha256'] == entry['sha256'] and row['bytes'] == entry['bytes'] + assert row['duration'] == entry['duration'] and row['sampleRate'] == 24000 and row['channels'] == 1 + rms_difference = abs(row['rms'] - entry['rms']) + peak_difference = abs(row['peak'] - entry['peak']) + assert max(rms_difference, peak_difference) <= 1 / 32768 + max_rms_difference = max(max_rms_difference, rms_difference) + max_peak_difference = max(max_peak_difference, peak_difference) + name = f'{project}-audio-integrity.json' + shutil.copy2(paths[0], EVIDENCE / name) + summary.append({'project':project, 'chrome':data['chrome'], 'filesMatched':109, + 'externalRequests':0, 'consoleOrPageErrors':0, 'failedRequests':0, 'evidence':name, + 'levelTolerance':1 / 32768, 'maximumRmsDifference':max_rms_difference, 'maximumPeakDifference':max_peak_difference, + 'levelToleranceReason':'One PCM16 step allows browser float decode scaling; SHA-256 and bytes must match exactly.'}) + for source, target in [('home.png','start.png'), ('game.png','game.png'), ('results.png','normal-results.png'), ('early-exit.png','early-exit.png')]: + matches = list(OUTPUT.glob(f'*-{project}/{source}')) + assert len(matches) == 1, (project, source, matches) + shutil.copy2(matches[0], EVIDENCE / 'screenshots' / f'{project}-{target}') + matches = list(OUTPUT.glob(f'*-{project}/attachments/runtime-audit-*.json')) + assert len(matches) == 1 + audit = json.loads(matches[0].read_text()) + assert audit['errors'] == audit['failed'] == audit['external'] == [] + shutil.copy2(matches[0], EVIDENCE / f'{project}-runtime-audit.json') +with (EVIDENCE / 'browser-integrity-summary.json').open('x') as out: out.write(json.dumps(summary, indent=2) + '\n') +print(json.dumps({'browserStats':report['stats'], 'integrity':summary}, indent=2)) diff --git a/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/desktop-audio-integrity.json b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/desktop-audio-integrity.json new file mode 100644 index 0000000..b566f7b --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/desktop-audio-integrity.json @@ -0,0 +1,1098 @@ +{ + "chrome": "146.0.7680.80", + "external": [], + "errors": [], + "failed": [], + "files": [ + { + "url": "http://127.0.0.1:4173/audio/intro.wav?v=0.2.3", + "sha256": "90d9f46e6e3f9c8a0c1a781096df54d7809ef4ad38b289508ef7b8c0411465ce", + "bytes": 338732, + "sampleRate": 24000, + "channels": 1, + "duration": 7.056, + "rms": 0.10000144992850359, + "peak": 0.4998626708984375 + }, + { + "url": "http://127.0.0.1:4173/ambience/street.wav?v=0.2.3", + "sha256": "a8bffa201b174618955bc51b860167169125304811aabe2086b0bb35b06c3ae1", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.07999880181401388, + "peak": 0.3967711329460144 + }, + { + "url": "http://127.0.0.1:4173/ambience/mall.wav?v=0.2.3", + "sha256": "680a769940c08f0d12c6c954c08366598dd8b5745e276f39c82b10d1a88261a1", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.07999875178666456, + "peak": 0.7191991806030273 + }, + { + "url": "http://127.0.0.1:4173/ambience/theater.wav?v=0.2.3", + "sha256": "2d6a444fb7874cdf6b2d8a741a69175299b112eb66834912c025437d8277d635", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.07999878601263052, + "peak": 0.495086669921875 + }, + { + "url": "http://127.0.0.1:4173/ambience/department.wav?v=0.2.3", + "sha256": "aa43f3d1d3e7c2b1f8ace24ecbda45d0ea3a031db941c39506dc6c1665b8efa7", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.07999879026023995, + "peak": 0.4749900698661804 + }, + { + "url": "http://127.0.0.1:4173/ambience/market.wav?v=0.2.3", + "sha256": "d6f73d86aea98b83e2995e61baaa7315a0ea7adeebc093769d76e1569b207658", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.04309922340528536, + "peak": 0.8500015139579773 + }, + { + "url": "http://127.0.0.1:4173/ambience/subway.wav?v=0.2.3", + "sha256": "9faf70b68617d267b367a0f3692ed90015458543ab4b0844f6c704e6a724728f", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.079998775670051, + "peak": 0.42530596256256104 + }, + { + "url": "http://127.0.0.1:4173/ambience/cafe.wav?v=0.2.3", + "sha256": "6853c121104940041c268a2891eadae032c17aa22b4c3b3ddfbc025262434995", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.07999875794689627, + "peak": 0.4057435691356659 + }, + { + "url": "http://127.0.0.1:4173/ambience/rain.wav?v=0.2.3", + "sha256": "f4315084e820f742b0709de5bb0d1abd3d5af1730620e08c2948b70347356dd9", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.011384798571746246, + "peak": 0.1024169921875 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-apple.wav?v=0.2.3", + "sha256": "cb7da4e9a1288cac64d168b241f27d7d2bc2dfecace58744f9bbf2792dfad04e", + "bytes": 397484, + "sampleRate": 24000, + "channels": 1, + "duration": 8.28, + "rms": 0.10000142448574952, + "peak": 0.6414685249328613 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-market.wav?v=0.2.3", + "sha256": "b8d25b867497adcd0fe7c8b6a8a8d2e7a52965956738a83e53f58735708773f9", + "bytes": 405548, + "sampleRate": 24000, + "channels": 1, + "duration": 8.448, + "rms": 0.10000141405173993, + "peak": 0.491485595703125 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-sound.wav?v=0.2.3", + "sha256": "34e4d9758d2ed448646fda364610e34779c84794403d9051ab3d8c1d33e2c80c", + "bytes": 184364, + "sampleRate": 24000, + "channels": 1, + "duration": 3.84, + "rms": 0.10000138709171018, + "peak": 0.386322021484375 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-furniture.wav?v=0.2.3", + "sha256": "b45b1afc8d9b534ff3e0a2a2ecb99efc1f4e40d41f89f55c4ed8ba94ad6d76d4", + "bytes": 354860, + "sampleRate": 24000, + "channels": 1, + "duration": 7.392, + "rms": 0.1000015072973225, + "peak": 0.5576171875 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-market.wav?v=0.2.3", + "sha256": "cefa0e95649ea6bd1df4c8dfccd2b74b4f4c028714420ce1087b61db2f2a8d47", + "bytes": 248876, + "sampleRate": 24000, + "channels": 1, + "duration": 5.184, + "rms": 0.10000142548167161, + "peak": 0.4857020676136017 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-oil.wav?v=0.2.3", + "sha256": "f6eff0cdddcad9790351491e60c53cb2a70d222033a583652f2de0b8cd6abcc7", + "bytes": 406700, + "sampleRate": 24000, + "channels": 1, + "duration": 8.472, + "rms": 0.10000139122025363, + "peak": 0.470794677734375 + }, + { + "url": "http://127.0.0.1:4173/audio/first-hat.wav?v=0.2.3", + "sha256": "17c8cde90567e7574b0c0702663bd70713054089ee920241b5444d9b7869eef5", + "bytes": 357164, + "sampleRate": 24000, + "channels": 1, + "duration": 7.44, + "rms": 0.10000152904790521, + "peak": 0.5312662124633789 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-furniture.wav?v=0.2.3", + "sha256": "af82e03b686635c3356e706fe5b05c1231aeaaeab33f275aa5b8714988c65d43", + "bytes": 241964, + "sampleRate": 24000, + "channels": 1, + "duration": 5.04, + "rms": 0.10000137346142077, + "peak": 0.4852443039417267 + }, + { + "url": "http://127.0.0.1:4173/audio/password-sound.wav?v=0.2.3", + "sha256": "044aafff08a19e39f21e58b963644715a987cd155896998769ef8e9ce6449628", + "bytes": 236204, + "sampleRate": 24000, + "channels": 1, + "duration": 4.92, + "rms": 0.10000156641621728, + "peak": 0.4621112644672394 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-hat.wav?v=0.2.3", + "sha256": "f9f98c91cfbcfcb106eef7d5d3795a9cf3c3aab7e19a60f13d7dffe284d19f86", + "bytes": 398636, + "sampleRate": 24000, + "channels": 1, + "duration": 8.304, + "rms": 0.10000141071544869, + "peak": 0.470977783203125 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-apple.wav?v=0.2.3", + "sha256": "7c8f413f4b7e164f090e508ba090448f1376c6012649bbb6a917d45851313883", + "bytes": 188972, + "sampleRate": 24000, + "channels": 1, + "duration": 3.936, + "rms": 0.10000130469939268, + "peak": 0.401641845703125 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-sea.wav?v=0.2.3", + "sha256": "db2f235bee26ac804b5362e8e013b8f40c8da24fd3a34e0fb3b43c6d264feb36", + "bytes": 382508, + "sampleRate": 24000, + "channels": 1, + "duration": 7.968, + "rms": 0.10000145042993039, + "peak": 0.6843470335006714 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-furniture.wav?v=0.2.3", + "sha256": "442bdcb956f120c270e1f321feae0415c897de0183e468980fcc119b898b2a67", + "bytes": 403244, + "sampleRate": 24000, + "channels": 1, + "duration": 8.4, + "rms": 0.10000149119200713, + "peak": 0.5619068145751953 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-sea.wav?v=0.2.3", + "sha256": "b6dbe0af143ea775f05bd59a3d6af348bcc770ab378ac91ea75a56e06c326edf", + "bytes": 346796, + "sampleRate": 24000, + "channels": 1, + "duration": 7.224, + "rms": 0.10000144532868623, + "peak": 0.56494140625 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-sound.wav?v=0.2.3", + "sha256": "e9d636ff7f4777f38b1ff15bebdcec6fbde95b4b4b05625a7415b4cfa0025b59", + "bytes": 395180, + "sampleRate": 24000, + "channels": 1, + "duration": 8.232, + "rms": 0.10000164955559301, + "peak": 0.6114688515663147 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-apple.wav?v=0.2.3", + "sha256": "3ef42e276ff3500c3e197d149f29f79d6a0c1d5516ed1d5a2c57210333fded9c", + "bytes": 246572, + "sampleRate": 24000, + "channels": 1, + "duration": 5.136, + "rms": 0.10000144279302126, + "peak": 0.4701681435108185 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-market.wav?v=0.2.3", + "sha256": "356af25332bf2000ed349671f3ff39767929e1f4599af622c021f907d11fb7bf", + "bytes": 194732, + "sampleRate": 24000, + "channels": 1, + "duration": 4.056, + "rms": 0.10000132629820717, + "peak": 0.4022216796875 + }, + { + "url": "http://127.0.0.1:4173/audio/message-sea.wav?v=0.2.3", + "sha256": "28a461fbe03bffe2560030dea8b60715f7c0fe262dcf85b5b7f7daf483836382", + "bytes": 517292, + "sampleRate": 24000, + "channels": 1, + "duration": 10.776, + "rms": 0.10000130584401576, + "peak": 0.53521728515625 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-umbrella.wav?v=0.2.3", + "sha256": "c8988e604ba05d52597e561389541e8f9cda86e052279f1862bbf8399ead314e", + "bytes": 403244, + "sampleRate": 24000, + "channels": 1, + "duration": 8.4, + "rms": 0.10000148262660476, + "peak": 0.557830810546875 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-hat.wav?v=0.2.3", + "sha256": "308278ec2bd27d4224976a55632d1f7fa1edabb0792126d9d858a699c287aee4", + "bytes": 245420, + "sampleRate": 24000, + "channels": 1, + "duration": 5.112, + "rms": 0.10000140702099906, + "peak": 0.4498428404331207 + }, + { + "url": "http://127.0.0.1:4173/audio/password-furniture.wav?v=0.2.3", + "sha256": "fb2b631dd4e12120d08a84cce6450f9cd9cd68105d13d7001d808e7deaa1df4a", + "bytes": 233900, + "sampleRate": 24000, + "channels": 1, + "duration": 4.872, + "rms": 0.10000146718546903, + "peak": 0.4836573302745819 + }, + { + "url": "http://127.0.0.1:4173/audio/first-market.wav?v=0.2.3", + "sha256": "1e00b8f70a796cdebb0feb00c605fece7488b06915e6e036f54206f05e201e0c", + "bytes": 359468, + "sampleRate": 24000, + "channels": 1, + "duration": 7.488, + "rms": 0.10000152633991319, + "peak": 0.6390880942344666 + }, + { + "url": "http://127.0.0.1:4173/audio/first-meat.wav?v=0.2.3", + "sha256": "f51a37c1722fef581f7d642a4dcae7fcb9953b3c318dce971bf616cd1a81fecc", + "bytes": 345644, + "sampleRate": 24000, + "channels": 1, + "duration": 7.2, + "rms": 0.10000152244411063, + "peak": 0.5131382346153259 + }, + { + "url": "http://127.0.0.1:4173/audio/password-sea.wav?v=0.2.3", + "sha256": "03f45b8cb5b3dc72faf5c6e3d0e2a10cea6b60301ea400d0a4453596d2f0b337", + "bytes": 232748, + "sampleRate": 24000, + "channels": 1, + "duration": 4.848, + "rms": 0.10000144821976133, + "peak": 0.5339213013648987 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-sound.wav?v=0.2.3", + "sha256": "98387ccc7aab566f6487d4c250b2128082cc527e013a6f7b7bc4d0266ac295df", + "bytes": 394028, + "sampleRate": 24000, + "channels": 1, + "duration": 8.208, + "rms": 0.10000158053850364, + "peak": 0.5377971529960632 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-umbrella.wav?v=0.2.3", + "sha256": "5e59ef39113c3d5e106862356d715f4cef2862ef8ee02654a97e532675c1ac6d", + "bytes": 410156, + "sampleRate": 24000, + "channels": 1, + "duration": 8.544, + "rms": 0.10000147499132286, + "peak": 0.6748558282852173 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-hat.wav?v=0.2.3", + "sha256": "b01ef9762ac84e3eb757243bc9286c62f7d45444a821ae35ac36a8b095e1598a", + "bytes": 353708, + "sampleRate": 24000, + "channels": 1, + "duration": 7.368, + "rms": 0.10000153089787694, + "peak": 0.555206298828125 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-market.wav?v=0.2.3", + "sha256": "d89792da51c83ac49d27e55aa6d822a338899a5ee487b34b552748201e1522f6", + "bytes": 398636, + "sampleRate": 24000, + "channels": 1, + "duration": 8.304, + "rms": 0.10000149710778367, + "peak": 0.5728324055671692 + }, + { + "url": "http://127.0.0.1:4173/audio/password-umbrella.wav?v=0.2.3", + "sha256": "ab3ca6398c879971dc793eb25b472fcc0db72d76e386f11ef4d32c639f37c69d", + "bytes": 239660, + "sampleRate": 24000, + "channels": 1, + "duration": 4.992, + "rms": 0.100001426973271, + "peak": 0.4776757061481476 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-meat.wav?v=0.2.3", + "sha256": "48e91b3932d3798e852041a854b3ee08c72127e092c62083a47af6b99adff241", + "bytes": 403244, + "sampleRate": 24000, + "channels": 1, + "duration": 8.4, + "rms": 0.10000140336390047, + "peak": 0.481536865234375 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-hat.wav?v=0.2.3", + "sha256": "6e089a42fd7e65e82eec7186d369c926fb7fdac794365b2bd7658822fd92437c", + "bytes": 396332, + "sampleRate": 24000, + "channels": 1, + "duration": 8.256, + "rms": 0.1000015662548192, + "peak": 0.616748571395874 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-sound.wav?v=0.2.3", + "sha256": "4d00aa6114327f450a00dacbc7e7b572ebf1de4ce9dc2fe4b5505766cca71ce9", + "bytes": 353708, + "sampleRate": 24000, + "channels": 1, + "duration": 7.368, + "rms": 0.10000162019345048, + "peak": 0.5348368883132935 + }, + { + "url": "http://127.0.0.1:4173/audio/last-oil.wav?v=0.2.3", + "sha256": "b5ce34950b8b31b1baf6ce55410797f0d8aa5478a670d6eace87cf76d134d6d3", + "bytes": 337580, + "sampleRate": 24000, + "channels": 1, + "duration": 7.032, + "rms": 0.10000149980584365, + "peak": 0.55706787109375 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-sea.wav?v=0.2.3", + "sha256": "47aa31d757c9fb49c9b53a1c052d90a5ced4be57549d649850d9b48f8864045b", + "bytes": 191276, + "sampleRate": 24000, + "channels": 1, + "duration": 3.984, + "rms": 0.10000129182106483, + "peak": 0.388702392578125 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-sound.wav?v=0.2.3", + "sha256": "659eb0e2b06e6b165b46744769743e032e2282519f8486c57bc45e0f7d07a069", + "bytes": 240812, + "sampleRate": 24000, + "channels": 1, + "duration": 5.016, + "rms": 0.10000152909529536, + "peak": 0.45481735467910767 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-meat.wav?v=0.2.3", + "sha256": "6599d2fac73ea616a793151b4ce6f51af673988d630bac6219a77e78ae6cb34e", + "bytes": 380204, + "sampleRate": 24000, + "channels": 1, + "duration": 7.92, + "rms": 0.1000016061190976, + "peak": 0.5921201109886169 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-market.wav?v=0.2.3", + "sha256": "c855b449e0d4ace74681bfe68e5e7f0b063568827ae872017234dbe8ae119e4c", + "bytes": 356012, + "sampleRate": 24000, + "channels": 1, + "duration": 7.416, + "rms": 0.10000151456676445, + "peak": 0.5949888825416565 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-furniture.wav?v=0.2.3", + "sha256": "bf84dc6cff1f227924a3a62158d2fc18769fb0ca40b91418fa19e534dbf92f00", + "bytes": 397484, + "sampleRate": 24000, + "channels": 1, + "duration": 8.28, + "rms": 0.10000155255948041, + "peak": 0.6670430898666382 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-sound.wav?v=0.2.3", + "sha256": "5a603bc69979603afddcaeb6edf500a7c540b72405daeb33f5335d746b327da1", + "bytes": 397484, + "sampleRate": 24000, + "channels": 1, + "duration": 8.28, + "rms": 0.10000146491234768, + "peak": 0.469268798828125 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-meat.wav?v=0.2.3", + "sha256": "9183ef90b64f5ceaf3bb0178c689231ff3e9981d6ce889124a15f2a6e2b7a344", + "bytes": 395180, + "sampleRate": 24000, + "channels": 1, + "duration": 8.232, + "rms": 0.10000155087122137, + "peak": 0.5193029642105103 + }, + { + "url": "http://127.0.0.1:4173/audio/last-sound.wav?v=0.2.3", + "sha256": "ec9c49802aebeb6a8b898a1c0d8ad1daa127d2d64c905c197ed49a8e0c4eb64a", + "bytes": 354860, + "sampleRate": 24000, + "channels": 1, + "duration": 7.392, + "rms": 0.10000165748716579, + "peak": 0.5641041398048401 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-oil.wav?v=0.2.3", + "sha256": "5fb63e04520c312aa6b7b48b70c2f7c140b5ab480e5c6992edbc2ba85b9a06e7", + "bytes": 241964, + "sampleRate": 24000, + "channels": 1, + "duration": 5.04, + "rms": 0.10000143720418167, + "peak": 0.443586528301239 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-umbrella.wav?v=0.2.3", + "sha256": "92b54f04884ab915783945077efd8f3bd443849a1720f72168b6348cae1f8e85", + "bytes": 406700, + "sampleRate": 24000, + "channels": 1, + "duration": 8.472, + "rms": 0.10000140257790288, + "peak": 0.479034423828125 + }, + { + "url": "http://127.0.0.1:4173/audio/message-sound.wav?v=0.2.3", + "sha256": "1e682147dae8026ba78dc8f256c7f24acb3a6743bfd88a0fcc86096930eef078", + "bytes": 521900, + "sampleRate": 24000, + "channels": 1, + "duration": 10.872, + "rms": 0.10000138583471241, + "peak": 0.51953125 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-apple.wav?v=0.2.3", + "sha256": "ccd7327a3fb54d3320d049ffdced3bc17595861cee69429c0ee97182d454195b", + "bytes": 402092, + "sampleRate": 24000, + "channels": 1, + "duration": 8.376, + "rms": 0.10000140667715379, + "peak": 0.490325927734375 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-sea.wav?v=0.2.3", + "sha256": "5c91a36496e274d2be9c6fa8d9b506cd04f2a1b7ceb05ed1b7bb03fe7fca99d9", + "bytes": 399788, + "sampleRate": 24000, + "channels": 1, + "duration": 8.328, + "rms": 0.10000144241513113, + "peak": 0.5465559959411621 + }, + { + "url": "http://127.0.0.1:4173/audio/message-hat.wav?v=0.2.3", + "sha256": "5a713a8522b231bb8276805c014b385b9150b79f58ff2618446607e2b442495e", + "bytes": 518444, + "sampleRate": 24000, + "channels": 1, + "duration": 10.8, + "rms": 0.10000136927555209, + "peak": 0.587005615234375 + }, + { + "url": "http://127.0.0.1:4173/audio/password-meat.wav?v=0.2.3", + "sha256": "b009caadd56350d6a641ff17f0973e2b2724c183e1f45ae0bf3c483e237fa99e", + "bytes": 240812, + "sampleRate": 24000, + "channels": 1, + "duration": 5.016, + "rms": 0.10000148386024335, + "peak": 0.4978789687156677 + }, + { + "url": "http://127.0.0.1:4173/audio/message-market.wav?v=0.2.3", + "sha256": "9242d4cd6e0030e6b073e4d2360f84aa8a454d1749711cdb2d64c14f28a7ea20", + "bytes": 523052, + "sampleRate": 24000, + "channels": 1, + "duration": 10.896, + "rms": 0.10000133805787564, + "peak": 0.534820556640625 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-apple.wav?v=0.2.3", + "sha256": "8832f1b793ab3eedbe663875ea8dbeabb122c329bd5879437c71230b0418c3c8", + "bytes": 360620, + "sampleRate": 24000, + "channels": 1, + "duration": 7.512, + "rms": 0.10000145024648589, + "peak": 0.553558349609375 + }, + { + "url": "http://127.0.0.1:4173/audio/last-umbrella.wav?v=0.2.3", + "sha256": "c801293a34013a8d93d3289a2cc87cd3eed83f97ba4647f5060efa00b117a9ad", + "bytes": 370988, + "sampleRate": 24000, + "channels": 1, + "duration": 7.728, + "rms": 0.10000149360501835, + "peak": 0.59765625 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-sea.wav?v=0.2.3", + "sha256": "9233431d78ab4b144e3c33ad0cf0d49fc0fb91b29514343230ba32987b794bb3", + "bytes": 398636, + "sampleRate": 24000, + "channels": 1, + "duration": 8.304, + "rms": 0.10000134688905045, + "peak": 0.49616992473602295 + }, + { + "url": "http://127.0.0.1:4173/audio/password-apple.wav?v=0.2.3", + "sha256": "b6f5de3fe571fe3a7fdb722fe49250bcfeedef49475271e0ec76a7630907edd5", + "bytes": 235052, + "sampleRate": 24000, + "channels": 1, + "duration": 4.896, + "rms": 0.10000148212193387, + "peak": 0.4834437072277069 + }, + { + "url": "http://127.0.0.1:4173/audio/first-furniture.wav?v=0.2.3", + "sha256": "29f007b385b7182db1d8aeccad4fc3c260df5e66e14e52a46b0ef0fcd0ff3a0a", + "bytes": 364076, + "sampleRate": 24000, + "channels": 1, + "duration": 7.584, + "rms": 0.1000014551820741, + "peak": 0.5700552463531494 + }, + { + "url": "http://127.0.0.1:4173/audio/password-hat.wav?v=0.2.3", + "sha256": "e91bfc97df90a1675b6cd856880ac15c54de32cfc3b23603bdd1c2c5ac3ce6b8", + "bytes": 235052, + "sampleRate": 24000, + "channels": 1, + "duration": 4.896, + "rms": 0.10000146155157119, + "peak": 0.5059053301811218 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-oil.wav?v=0.2.3", + "sha256": "7a6b122b11c07da86c95fb78e2db2a70681b5219c63d6441fe56da1979ac1dc3", + "bytes": 334124, + "sampleRate": 24000, + "channels": 1, + "duration": 6.96, + "rms": 0.1000014880654183, + "peak": 0.539933443069458 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-meat.wav?v=0.2.3", + "sha256": "d416107cc05e7c5b92ca27100a10a8a9689de913346179945d5542de4a6bac0c", + "bytes": 342188, + "sampleRate": 24000, + "channels": 1, + "duration": 7.128, + "rms": 0.10000157422522808, + "peak": 0.510833740234375 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-apple.wav?v=0.2.3", + "sha256": "1bf2aef9a9f030af1a8fd7dee8f44aa420a397b3ba99b575feeb3dc7a63ec191", + "bytes": 395180, + "sampleRate": 24000, + "channels": 1, + "duration": 8.232, + "rms": 0.10000148399213096, + "peak": 0.563568115234375 + }, + { + "url": "http://127.0.0.1:4173/audio/first-oil.wav?v=0.2.3", + "sha256": "f415195e0cfc7ee711d09de7519e88eab62cc8b58d70772c83c3f5c27c267819", + "bytes": 335276, + "sampleRate": 24000, + "channels": 1, + "duration": 6.984, + "rms": 0.10000145886808136, + "peak": 0.5347453355789185 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-hat.wav?v=0.2.3", + "sha256": "31a6a4270bf368cda419094d87a303ac3cd5c22539786cb165f8044b0b8e9d6e", + "bytes": 402092, + "sampleRate": 24000, + "channels": 1, + "duration": 8.376, + "rms": 0.10000145804818952, + "peak": 0.541778564453125 + }, + { + "url": "http://127.0.0.1:4173/audio/message-furniture.wav?v=0.2.3", + "sha256": "26c331b7e12311236f4bb48f88918dfbf53cccd2f50b55741ea6ff4473e71dd8", + "bytes": 521900, + "sampleRate": 24000, + "channels": 1, + "duration": 10.872, + "rms": 0.10000134596838128, + "peak": 0.529327392578125 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-oil.wav?v=0.2.3", + "sha256": "3fa1e662a3af8f2726b17b2baa5bec2934406e6595ebc243c8380dd16e190977", + "bytes": 190124, + "sampleRate": 24000, + "channels": 1, + "duration": 3.96, + "rms": 0.10000134375667624, + "peak": 0.3817255198955536 + }, + { + "url": "http://127.0.0.1:4173/audio/last-sea.wav?v=0.2.3", + "sha256": "f755452e1da44674aa1df7d12edffa988091b89a394e7eb6d4a00eb721f07cbf", + "bytes": 345644, + "sampleRate": 24000, + "channels": 1, + "duration": 7.2, + "rms": 0.10000140162255576, + "peak": 0.591033935546875 + }, + { + "url": "http://127.0.0.1:4173/audio/password-oil.wav?v=0.2.3", + "sha256": "b472957b27ff98ea7b8894fa1ff12653f7e9f66f77870faa9e52a1c1bf116c41", + "bytes": 240812, + "sampleRate": 24000, + "channels": 1, + "duration": 5.016, + "rms": 0.10000146772662066, + "peak": 0.4945219159126282 + }, + { + "url": "http://127.0.0.1:4173/audio/first-umbrella.wav?v=0.2.3", + "sha256": "878e0bd2e6e4105f175aef51a028f6b141f3a2072be20f783193f3ba897a3ee0", + "bytes": 366380, + "sampleRate": 24000, + "channels": 1, + "duration": 7.632, + "rms": 0.10000147647908036, + "peak": 0.5700247287750244 + }, + { + "url": "http://127.0.0.1:4173/audio/last-apple.wav?v=0.2.3", + "sha256": "4cb2a8579fa3a7b91bb36363826ce8ca0d6d86e96e16a479e226a2802edd82f7", + "bytes": 356012, + "sampleRate": 24000, + "channels": 1, + "duration": 7.416, + "rms": 0.10000144523423521, + "peak": 0.622528076171875 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-market.wav?v=0.2.3", + "sha256": "68a5b899115a66ab225d610ec47b4de56cc8793657362bc38f533c06f741e4cc", + "bytes": 402092, + "sampleRate": 24000, + "channels": 1, + "duration": 8.376, + "rms": 0.10000160159844854, + "peak": 0.6822717785835266 + }, + { + "url": "http://127.0.0.1:4173/audio/message-oil.wav?v=0.2.3", + "sha256": "a2a71a7e5e07c81871a25c6cb7540c39aa0b32fc44f78cda66b5f34ace98d805", + "bytes": 509228, + "sampleRate": 24000, + "channels": 1, + "duration": 10.608, + "rms": 0.10000135184106136, + "peak": 0.51812744140625 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-meat.wav?v=0.2.3", + "sha256": "d36dfc395a5c53fbfa4abe9980db7bb59adfdac59e40318c4aca365365e3f2ab", + "bytes": 187820, + "sampleRate": 24000, + "channels": 1, + "duration": 3.912, + "rms": 0.1000013329979738, + "peak": 0.371124267578125 + }, + { + "url": "http://127.0.0.1:4173/audio/password-market.wav?v=0.2.3", + "sha256": "02e325fb753ef7a3ee585a03d2ca2aa3f1fbc58523b062222ae1136eeed7a95c", + "bytes": 230444, + "sampleRate": 24000, + "channels": 1, + "duration": 4.8, + "rms": 0.10000151520861549, + "peak": 0.48170414566993713 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-hat.wav?v=0.2.3", + "sha256": "4ff43dd042f4b5451e9fdeb3edd59f1e389a7d1dd488094587a3a9fc7dfffa44", + "bytes": 191276, + "sampleRate": 24000, + "channels": 1, + "duration": 3.984, + "rms": 0.10000132502946775, + "peak": 0.417083740234375 + }, + { + "url": "http://127.0.0.1:4173/audio/last-market.wav?v=0.2.3", + "sha256": "7857e87e9dbfe8fe849cc0b18c1d45b60916cb337328099c7a87a42c82e2821e", + "bytes": 359468, + "sampleRate": 24000, + "channels": 1, + "duration": 7.488, + "rms": 0.10000148064140717, + "peak": 0.600555419921875 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-meat.wav?v=0.2.3", + "sha256": "94f8a4f9e116a787e5ed052661d6de9ecf3ad8629db476661dd59ad03014b0c9", + "bytes": 244268, + "sampleRate": 24000, + "channels": 1, + "duration": 5.088, + "rms": 0.10000146176253134, + "peak": 0.44187748432159424 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-oil.wav?v=0.2.3", + "sha256": "55b2c7d6aa8bbce04edf8661882c9781da81c57f56217f99b80457a3bb895da0", + "bytes": 369836, + "sampleRate": 24000, + "channels": 1, + "duration": 7.704, + "rms": 0.10000146897241707, + "peak": 0.6239814162254333 + }, + { + "url": "http://127.0.0.1:4173/audio/first-sound.wav?v=0.2.3", + "sha256": "46f6adeed928a16af0700f1e8626cf8049f124632a04a5d10604426fb06f9596", + "bytes": 353708, + "sampleRate": 24000, + "channels": 1, + "duration": 7.368, + "rms": 0.10000157588418972, + "peak": 0.5189672708511353 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-umbrella.wav?v=0.2.3", + "sha256": "4b4c858a25659540f9dbc524664496fc6de61ab8c1627f3cfee8c9c744e11d5b", + "bytes": 247724, + "sampleRate": 24000, + "channels": 1, + "duration": 5.16, + "rms": 0.10000144286672341, + "peak": 0.46534621715545654 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-oil.wav?v=0.2.3", + "sha256": "3ca98682ff06d1d6b8af02c0fd5b2124f42266ac989884223eff4a9bbde1287a", + "bytes": 399788, + "sampleRate": 24000, + "channels": 1, + "duration": 8.328, + "rms": 0.10000149133669024, + "peak": 0.5243995189666748 + }, + { + "url": "http://127.0.0.1:4173/audio/first-sea.wav?v=0.2.3", + "sha256": "0f0b39314c5f7d7168d4854003c0c284e7bc3438cdc4d1d1c5adab7cb5ed30e5", + "bytes": 349100, + "sampleRate": 24000, + "channels": 1, + "duration": 7.272, + "rms": 0.10000142148394393, + "peak": 0.5717948079109192 + }, + { + "url": "http://127.0.0.1:4173/audio/last-meat.wav?v=0.2.3", + "sha256": "10f8ad4259ed8945c9da831e80b3902303c09caef96d400298599168fb1efed4", + "bytes": 346796, + "sampleRate": 24000, + "channels": 1, + "duration": 7.224, + "rms": 0.10000155834091913, + "peak": 0.537200927734375 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-umbrella.wav?v=0.2.3", + "sha256": "399ea2f681f755918f1117c8baba42739ceca64b307b999342f457a9235050b6", + "bytes": 368684, + "sampleRate": 24000, + "channels": 1, + "duration": 7.68, + "rms": 0.10000155028684544, + "peak": 0.569549560546875 + }, + { + "url": "http://127.0.0.1:4173/audio/message-meat.wav?v=0.2.3", + "sha256": "ce19735df079b54c171e775b6b365385a80160b9033442abab95b2b9c8505e1a", + "bytes": 512684, + "sampleRate": 24000, + "channels": 1, + "duration": 10.68, + "rms": 0.10000140834686953, + "peak": 0.5147705078125 + }, + { + "url": "http://127.0.0.1:4173/audio/message-umbrella.wav?v=0.2.3", + "sha256": "41d5866dae66600df4694a8312b531571d44cece6dba0e423e7c43d09d184819", + "bytes": 523052, + "sampleRate": 24000, + "channels": 1, + "duration": 10.896, + "rms": 0.10000120668553683, + "peak": 0.530364990234375 + }, + { + "url": "http://127.0.0.1:4173/audio/last-furniture.wav?v=0.2.3", + "sha256": "5ad4f776e35439d408abed0e66567d6b5cdc80fc54d579165472e474f1238776", + "bytes": 357164, + "sampleRate": 24000, + "channels": 1, + "duration": 7.44, + "rms": 0.10000152394963031, + "peak": 0.583587646484375 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-sea.wav?v=0.2.3", + "sha256": "8838d6a1ee8a790427dc5aa761e70b3d8872af62086efeed743297ff7f8b8a06", + "bytes": 243116, + "sampleRate": 24000, + "channels": 1, + "duration": 5.064, + "rms": 0.10000138788281714, + "peak": 0.45013427734375 + }, + { + "url": "http://127.0.0.1:4173/audio/message-apple.wav?v=0.2.3", + "sha256": "d85e6f47d871369f00de2274139e5ad6b4b5686b5e20e248df0ed6b9a320d942", + "bytes": 517292, + "sampleRate": 24000, + "channels": 1, + "duration": 10.776, + "rms": 0.10000133916854889, + "peak": 0.525360107421875 + }, + { + "url": "http://127.0.0.1:4173/audio/last-hat.wav?v=0.2.3", + "sha256": "bdaf8fbc54df8061e9e58aa8c14b3044a6e863dc54973ee3ee6ae2c5ae1a28f1", + "bytes": 354860, + "sampleRate": 24000, + "channels": 1, + "duration": 7.392, + "rms": 0.10000152378078818, + "peak": 0.550079345703125 + }, + { + "url": "http://127.0.0.1:4173/audio/first-apple.wav?v=0.2.3", + "sha256": "7c1dbcb3082055df2b8f087f7e906ec867c92f679de0894c34740c05e61a4bc1", + "bytes": 359468, + "sampleRate": 24000, + "channels": 1, + "duration": 7.488, + "rms": 0.10000143468253914, + "peak": 0.57977294921875 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-umbrella.wav?v=0.2.3", + "sha256": "8d3e8e8bc97e5fe3f3362184c4abb12f01a882a1f1174d2644f0f70aac677c0a", + "bytes": 192428, + "sampleRate": 24000, + "channels": 1, + "duration": 4.008, + "rms": 0.10000131475711933, + "peak": 0.385650634765625 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-furniture.wav?v=0.2.3", + "sha256": "5c004a7b2f5a4a918c9f689f1a2dcb219a620ed14313f40a9655b36dbf64948d", + "bytes": 398636, + "sampleRate": 24000, + "channels": 1, + "duration": 8.304, + "rms": 0.10000141690978645, + "peak": 0.487396240234375 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-tree.wav?v=0.2.3", + "sha256": "122f496834fb16d6da47f801e50e46e272e4e934af959467d1db4e490f79be7a", + "bytes": 183212, + "sampleRate": 24000, + "channels": 1, + "duration": 3.816, + "rms": 0.10000140751524371, + "peak": 0.36920166015625 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-tree.wav?v=0.2.3", + "sha256": "00d8e77ec0371971d632724d91f8cf8d947bfb83c582a513b6421be4c457a1da", + "bytes": 241964, + "sampleRate": 24000, + "channels": 1, + "duration": 5.04, + "rms": 0.10000146153372488, + "peak": 0.4585406184196472 + }, + { + "url": "http://127.0.0.1:4173/audio/message-tree.wav?v=0.2.3", + "sha256": "5d684aa710a63d36ed8dcc2a8bfbdd5c71b0b1c63dad2a324adecb76591e85b8", + "bytes": 540332, + "sampleRate": 24000, + "channels": 1, + "duration": 11.256, + "rms": 0.10000132424453942, + "peak": 0.5262451171875 + }, + { + "url": "http://127.0.0.1:4173/audio/last-tree.wav?v=0.2.3", + "sha256": "589e56d940a3c9e80ec02ae0b2dd93463fdc85ef019a753fcd0fded0752055f9", + "bytes": 382508, + "sampleRate": 24000, + "channels": 1, + "duration": 7.968, + "rms": 0.10000149781706567, + "peak": 0.5807672142982483 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-tree.wav?v=0.2.3", + "sha256": "341888c75275c13eb31058f53a1d4276be0daa0a1b5a3a45522036928b83b0c1", + "bytes": 382508, + "sampleRate": 24000, + "channels": 1, + "duration": 7.968, + "rms": 0.1000014873304774, + "peak": 0.600024402141571 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-tree.wav?v=0.2.3", + "sha256": "8735c3d9672561ca237fa87317beec2878492eb9063d6048d5b214423561acc1", + "bytes": 423980, + "sampleRate": 24000, + "channels": 1, + "duration": 8.832, + "rms": 0.10000150947389638, + "peak": 0.6187627911567688 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-furniture.wav?v=0.2.3", + "sha256": "52cb92cdb8ee92b6f581c9d68dbc346f180c470564809ba57185429c9eb84127", + "bytes": 186668, + "sampleRate": 24000, + "channels": 1, + "duration": 3.888, + "rms": 0.1000013480244084, + "peak": 0.387054443359375 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-tree.wav?v=0.2.3", + "sha256": "bc8e54f5407e8866bf1ca1ddfd4f6c63d85fee29bd9e430c7dd33e87974fc5b8", + "bytes": 409004, + "sampleRate": 24000, + "channels": 1, + "duration": 8.52, + "rms": 0.10000146559822108, + "peak": 0.5486617684364319 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-tree.wav?v=0.2.3", + "sha256": "b8e8bbe6b8b14727efd953fae9d4aed2caeb004055d52f611c6378322847edbe", + "bytes": 400940, + "sampleRate": 24000, + "channels": 1, + "duration": 8.352, + "rms": 0.10000144970799159, + "peak": 0.470611572265625 + }, + { + "url": "http://127.0.0.1:4173/audio/first-tree.wav?v=0.2.3", + "sha256": "3178230fd5850b6277a2153b438ec5289720e3db7ac929914cc213964f004bd5", + "bytes": 379052, + "sampleRate": 24000, + "channels": 1, + "duration": 7.896, + "rms": 0.10000144270360484, + "peak": 0.5833613276481628 + }, + { + "url": "http://127.0.0.1:4173/audio/password-tree.wav?v=0.2.3", + "sha256": "67da8147296e35134ec254bc82b58317630061b2c64d2d63c4be197ce8692d50", + "bytes": 233900, + "sampleRate": 24000, + "channels": 1, + "duration": 4.872, + "rms": 0.10000156310809623, + "peak": 0.4904019236564636 + } + ] +} diff --git a/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/desktop-runtime-audit.json b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/desktop-runtime-audit.json new file mode 100644 index 0000000..828e196 --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/desktop-runtime-audit.json @@ -0,0 +1,70 @@ +{ + "errors": [], + "failed": [], + "external": [], + "audio": { + "starts": [ + { + "loop": true, + "duration": 12 + }, + { + "loop": false, + "duration": 7.055986394557823 + }, + { + "loop": false, + "duration": 7.487981859410431 + }, + { + "loop": true, + "duration": 12 + }, + { + "loop": false, + "duration": 8.279977324263038 + }, + { + "loop": true, + "duration": 12 + }, + { + "loop": false, + "duration": 7.631995464852608 + }, + { + "loop": true, + "duration": 12 + }, + { + "loop": false, + "duration": 7.055986394557823 + }, + { + "loop": false, + "duration": 8.279977324263038 + }, + { + "loop": true, + "duration": 12 + }, + { + "loop": false, + "duration": 7.055986394557823 + }, + { + "loop": false, + "duration": 7.967981859410431 + }, + { + "loop": true, + "duration": 12 + }, + { + "loop": false, + "duration": 7.967981859410431 + } + ], + "stops": 15 + } +} \ No newline at end of file diff --git a/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/environment.json b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/environment.json new file mode 100644 index 0000000..e7d270f --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/environment.json @@ -0,0 +1,9 @@ +{ + "node": "v26.7.0", + "npm": "11.19.0", + "python": "Python 3.11.16", + "ffmpeg": "ffmpeg version 6.1.1-3ubuntu5 Copyright (c) 2000-2023 the FFmpeg developers", + "chrome": "Google Chrome 146.0.7680.80 ", + "head": "c92660b514f7af8eb556d3fa5c0fc80e4bdd4cf5", + "capturedAtUtc": "2026-10-14T09:39:34.284910+00:00" +} diff --git a/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/finalize.py b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/finalize.py new file mode 100644 index 0000000..eb85781 --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/finalize.py @@ -0,0 +1,107 @@ +"""Publish a current automation summary only after every required run succeeds.""" +from datetime import datetime, timezone +import json +from pathlib import Path + +ROOT = Path(__file__).resolve().parents[4] +EVIDENCE = Path(__file__).resolve().parent +for name in ('lint', 'unit', 'python', 'build'): + assert 'Exit code: 0' in (EVIDENCE / f'05-{name}.log').read_text(), name +assert '125 passed (125)' in (EVIDENCE / '05-unit.log').read_text() +assert 'Ran 36 tests' in (EVIDENCE / '05-python.log').read_text() +audit = json.loads((EVIDENCE / 'npm-audit.json').read_text()) +assert audit['metadata']['vulnerabilities']['total'] == 0 +browser = json.loads((EVIDENCE / 'browser-results.json').read_text()) +assert browser['stats']['expected'] == 30 +assert all(browser['stats'][name] == 0 for name in ('unexpected', 'flaky', 'skipped')) +assert browser.get('errors', []) == [] +sandbox = json.loads((EVIDENCE / 'chrome-sandbox.json').read_text()) +assert sandbox['exitCode'] == 0 and sandbox['noSandboxFlagPresent'] is False and sandbox['processes'] +integrity = json.loads((EVIDENCE / 'browser-integrity-summary.json').read_text()) +assert len(integrity) == 2 and all(e['filesMatched'] == 109 for e in integrity) +screen = json.loads((EVIDENCE.parent / 'final-asr.json').read_text()) +assert screen['requiredEmptyPassed'] is True +assert screen['limitations']['humanListeningAcceptance'] is False +assert screen['limitations']['legalPrivacyClearance'] is False +preservation = json.loads((EVIDENCE / 'preservation.json').read_text()) +summary = {'completedAtUtc':datetime.now(timezone.utc).isoformat(), + 'scope':'Requested automated release/screening checks only. Human listening acceptance and legal/privacy clearance were not performed.', + 'implementationAndAtomicRegenerationComplete':True, + 'allRequestedAutomatedAcceptanceChecksPassed':True, + 'requiredEmptyPassed':True, 'humanListeningAcceptance':False, 'legalPrivacyClearance':False, + 'blockingAutomatedCriterion':None, + 'checks':{ + 'lint':{'exitCode':0,'log':'05-lint.log'}, + 'unit':{'exitCode':0,'files':13,'passed':125,'failed':0,'skipped':0,'log':'05-unit.log'}, + 'python':{'exitCode':0,'passed':36,'failed':0,'skipped':0,'log':'05-python.log'}, + 'build':{'exitCode':0,'voiceFiles':101,'ambienceFiles':8,'log':'05-build.log'}, + 'audit':{'exitCode':0,'vulnerabilities':0,'evidence':'npm-audit.json'}, + 'sandboxedChrome':{'exitCode':0,'passed':30,'failed':0,'skipped':0,'flaky':0, + 'durationMs':browser['stats']['duration'],'projects':['desktop','mobile'], + 'evidence':'browser-results.json','sandboxEvidence':'chrome-sandbox.json'}}, + 'asr':{'evidence':'../final-asr.json','sha256':preservation['finalAsrSha256'], + 'method':'faster-whisper 1.2.1 tiny multilingual CPU int8; beam_size=5, best_of=5, default VAD, condition_on_previous_text=true', + 'selectedRequiredStarts':{'mall':36,'market':24,'cafe':0}, + 'segmentsByEnvironment':{e['environmentId']:len(e['segments']) for e in screen['files']}, + 'requiredEmptyPassed':True,'screeningOnly':True,'humanListeningAcceptance':False,'legalPrivacyClearance':False, + 'priorFailedAttempt':'../prior-attempt-market60-cafe180/final-asr.json', + 'historicalNoVadEvidence':'../no-vad-asr.json', + 'noVadLimitation':'Historical candidate text may be hallucinated, does not screen new market/cafe files and does not override the VAD gate. Neither method proves absence of speech/music.'}, + 'preservation':preservation,'head':preservation['head'], 'commitPushMergeTagDeployPerformed':False} +with (EVIDENCE / 'validation-summary.json').open('x') as out:out.write(json.dumps(summary,indent=2)+'\n') +current = EVIDENCE.parent / 'validation-summary.json' +assert current.read_bytes() == (EVIDENCE.parent / 'prior-attempt-market60-cafe180/validation-summary.json').read_bytes() +root_summary = dict(summary) +root_summary['evidenceBaseDirectory']='retry-market24-cafe0' +current.write_text(json.dumps(root_summary,indent=2)+'\n') +p = ROOT / '.agent/RESULT-v0.2.3.md' +s = p.read_text() +s = s.replace('이번 재시도의 전체 검증 결과는 맨 아래 **최종 privacy screening 재시도** 절에 기록한다.', + '전체 unit 125개·Python 36개·sandboxed Chrome 30개 및 lint/build가 통과했고 audit 취약점은 0개다.\n실행 원문은 맨 아래 **최종 privacy screening 재시도** 절에 있다.') +start = s.index('### 재시도 전체 검증') +base='evidence-v0.2.3/privacy-screening/retry-market24-cafe0' +s = s[:start]+f'''### 재시도 전체 검증 + +| 검사 | 실제 결과 | 근거 | +| --- | --- | --- | +| lint / typecheck | PASS, exit 0 | [05-lint]({base}/05-lint.log) | +| 전체 unit | 13 files / **125 passed, 0 failed, 0 skipped**, exit 0 | [05-unit]({base}/05-unit.log) | +| 전체 Python | **36 passed**, exit 0 | [05-python]({base}/05-python.log) | +| build | PASS, 101 voice + 8 ambience 및 notices, exit 0 | [05-build]({base}/05-build.log) | +| npm audit | **취약점 0**, exit 0 | [audit]({base}/npm-audit.json) | +| sandboxed Chrome desktop/mobile | **30 passed / 0 failed / 0 skipped / 0 flaky**, exit 0 | [06-browser]({base}/06-browser.log), [JSON]({base}/browser-results.json) | + +현재 자동 검증은 모두 통과했다. [validation-summary]({base}/validation-summary.json)는 위 실행들의 +실제 exit code·결과를 확인한 뒤 작성했으며 사람의 인수/법적 clearance를 포함한 전체 승인으로 해석하지 않는다. +현재 ASR gate 통과를 이전 실패의 통과로 바꾸어 기록하지 않았다. + +Chrome 146.0.7680.80, desktop 1280×1000 / mobile 360×800 touch emulation의 전체 suite는 +{browser['stats']['duration']/1000:.1f}초 걸렸다. 이 runner의 Chrome 자손 process {len(sandbox['processes'])}개에서 +`--no-sandbox`가 없음을 [실제 process 기록]({base}/chrome-sandbox.json)으로 확인했다. +설정은 `chromiumSandbox=true`이고 opt-out 환경변수는 제거했다. +양쪽에서 현재 **109 WAV response SHA-256/bytes·실제 decode·길이·채널·sample rate**를 전수 확인했다. +[desktop 오디오]({base}/desktop-audio-integrity.json), [mobile 오디오]({base}/mobile-audio-integrity.json), +[독립 실측 대조]({base}/browser-integrity-summary.json): hash/bytes 정확히 일치, +RMS/peak 차이는 브라우저 float scaling을 고려한 PCM16 한 step 이내다. +정상 요청에서 외부 요청·console/page 오류·failed request는 모두 0이며, +실제 여덟 ambience loop, 오류 재시도, UI·키보드·axe, 320/360px 어절·진행률 픽셀 검사도 통과했다. +[desktop runtime]({base}/desktop-runtime-audit.json), [mobile runtime]({base}/mobile-runtime-audit.json). + +| 현재 화면 | Desktop | Mobile | +| --- | --- | --- | +| 시작 | [PNG]({base}/screenshots/desktop-start.png) | [PNG]({base}/screenshots/mobile-start.png) | +| 게임 | [PNG]({base}/screenshots/desktop-game.png) | [PNG]({base}/screenshots/mobile-game.png) | +| 정상 결과 | [PNG]({base}/screenshots/desktop-normal-results.png) | [PNG]({base}/screenshots/mobile-normal-results.png) | +| 중도 종료 | [PNG]({base}/screenshots/desktop-early-exit.png) | [PNG]({base}/screenshots/mobile-early-exit.png) | + +[보존 검사]({base}/preservation.json): 101 voice·다섯 unaffected ambience·mall 바이트 동일, +이전 `.agent` 파일 484개·읽기 전용 prior-attempt 사본 89개·HEAD 추적 역사 파일 180개 해시 동일. +갱신 허용된 plan/RESULT/current ASR/current summary 4개는 이전 상태를 별도 보존했다. +원본 provenance는 지정 market/cafe 시작점 외에 변경이 없고 dist는 현재 bundle과 바이트 동일하다. + +**한계와 인계:** 지정된 자동 VAD acceptance를 충족했다. 사람의 청취 인수와 법적/privacy clearance는 +여전히 수행하지 않았으며 empty ASR은 말소리/음악의 부재 증거가 아니다. +mobile은 Chrome viewport/touch emulation이다. Git commit/push/merge/tag/deploy는 하지 않았다. +''' +p.write_text(s) +print(json.dumps({'automatedChecksPassed':True,'unitPassed':125,'pythonPassed':36,'browserPassed':30,'requiredEmptyPassed':True,'humanListeningAcceptance':False,'legalPrivacyClearance':False},indent=2)) diff --git a/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/mobile-audio-integrity.json b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/mobile-audio-integrity.json new file mode 100644 index 0000000..b566f7b --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/mobile-audio-integrity.json @@ -0,0 +1,1098 @@ +{ + "chrome": "146.0.7680.80", + "external": [], + "errors": [], + "failed": [], + "files": [ + { + "url": "http://127.0.0.1:4173/audio/intro.wav?v=0.2.3", + "sha256": "90d9f46e6e3f9c8a0c1a781096df54d7809ef4ad38b289508ef7b8c0411465ce", + "bytes": 338732, + "sampleRate": 24000, + "channels": 1, + "duration": 7.056, + "rms": 0.10000144992850359, + "peak": 0.4998626708984375 + }, + { + "url": "http://127.0.0.1:4173/ambience/street.wav?v=0.2.3", + "sha256": "a8bffa201b174618955bc51b860167169125304811aabe2086b0bb35b06c3ae1", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.07999880181401388, + "peak": 0.3967711329460144 + }, + { + "url": "http://127.0.0.1:4173/ambience/mall.wav?v=0.2.3", + "sha256": "680a769940c08f0d12c6c954c08366598dd8b5745e276f39c82b10d1a88261a1", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.07999875178666456, + "peak": 0.7191991806030273 + }, + { + "url": "http://127.0.0.1:4173/ambience/theater.wav?v=0.2.3", + "sha256": "2d6a444fb7874cdf6b2d8a741a69175299b112eb66834912c025437d8277d635", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.07999878601263052, + "peak": 0.495086669921875 + }, + { + "url": "http://127.0.0.1:4173/ambience/department.wav?v=0.2.3", + "sha256": "aa43f3d1d3e7c2b1f8ace24ecbda45d0ea3a031db941c39506dc6c1665b8efa7", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.07999879026023995, + "peak": 0.4749900698661804 + }, + { + "url": "http://127.0.0.1:4173/ambience/market.wav?v=0.2.3", + "sha256": "d6f73d86aea98b83e2995e61baaa7315a0ea7adeebc093769d76e1569b207658", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.04309922340528536, + "peak": 0.8500015139579773 + }, + { + "url": "http://127.0.0.1:4173/ambience/subway.wav?v=0.2.3", + "sha256": "9faf70b68617d267b367a0f3692ed90015458543ab4b0844f6c704e6a724728f", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.079998775670051, + "peak": 0.42530596256256104 + }, + { + "url": "http://127.0.0.1:4173/ambience/cafe.wav?v=0.2.3", + "sha256": "6853c121104940041c268a2891eadae032c17aa22b4c3b3ddfbc025262434995", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.07999875794689627, + "peak": 0.4057435691356659 + }, + { + "url": "http://127.0.0.1:4173/ambience/rain.wav?v=0.2.3", + "sha256": "f4315084e820f742b0709de5bb0d1abd3d5af1730620e08c2948b70347356dd9", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.011384798571746246, + "peak": 0.1024169921875 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-apple.wav?v=0.2.3", + "sha256": "cb7da4e9a1288cac64d168b241f27d7d2bc2dfecace58744f9bbf2792dfad04e", + "bytes": 397484, + "sampleRate": 24000, + "channels": 1, + "duration": 8.28, + "rms": 0.10000142448574952, + "peak": 0.6414685249328613 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-market.wav?v=0.2.3", + "sha256": "b8d25b867497adcd0fe7c8b6a8a8d2e7a52965956738a83e53f58735708773f9", + "bytes": 405548, + "sampleRate": 24000, + "channels": 1, + "duration": 8.448, + "rms": 0.10000141405173993, + "peak": 0.491485595703125 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-sound.wav?v=0.2.3", + "sha256": "34e4d9758d2ed448646fda364610e34779c84794403d9051ab3d8c1d33e2c80c", + "bytes": 184364, + "sampleRate": 24000, + "channels": 1, + "duration": 3.84, + "rms": 0.10000138709171018, + "peak": 0.386322021484375 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-furniture.wav?v=0.2.3", + "sha256": "b45b1afc8d9b534ff3e0a2a2ecb99efc1f4e40d41f89f55c4ed8ba94ad6d76d4", + "bytes": 354860, + "sampleRate": 24000, + "channels": 1, + "duration": 7.392, + "rms": 0.1000015072973225, + "peak": 0.5576171875 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-market.wav?v=0.2.3", + "sha256": "cefa0e95649ea6bd1df4c8dfccd2b74b4f4c028714420ce1087b61db2f2a8d47", + "bytes": 248876, + "sampleRate": 24000, + "channels": 1, + "duration": 5.184, + "rms": 0.10000142548167161, + "peak": 0.4857020676136017 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-oil.wav?v=0.2.3", + "sha256": "f6eff0cdddcad9790351491e60c53cb2a70d222033a583652f2de0b8cd6abcc7", + "bytes": 406700, + "sampleRate": 24000, + "channels": 1, + "duration": 8.472, + "rms": 0.10000139122025363, + "peak": 0.470794677734375 + }, + { + "url": "http://127.0.0.1:4173/audio/first-hat.wav?v=0.2.3", + "sha256": "17c8cde90567e7574b0c0702663bd70713054089ee920241b5444d9b7869eef5", + "bytes": 357164, + "sampleRate": 24000, + "channels": 1, + "duration": 7.44, + "rms": 0.10000152904790521, + "peak": 0.5312662124633789 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-furniture.wav?v=0.2.3", + "sha256": "af82e03b686635c3356e706fe5b05c1231aeaaeab33f275aa5b8714988c65d43", + "bytes": 241964, + "sampleRate": 24000, + "channels": 1, + "duration": 5.04, + "rms": 0.10000137346142077, + "peak": 0.4852443039417267 + }, + { + "url": "http://127.0.0.1:4173/audio/password-sound.wav?v=0.2.3", + "sha256": "044aafff08a19e39f21e58b963644715a987cd155896998769ef8e9ce6449628", + "bytes": 236204, + "sampleRate": 24000, + "channels": 1, + "duration": 4.92, + "rms": 0.10000156641621728, + "peak": 0.4621112644672394 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-hat.wav?v=0.2.3", + "sha256": "f9f98c91cfbcfcb106eef7d5d3795a9cf3c3aab7e19a60f13d7dffe284d19f86", + "bytes": 398636, + "sampleRate": 24000, + "channels": 1, + "duration": 8.304, + "rms": 0.10000141071544869, + "peak": 0.470977783203125 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-apple.wav?v=0.2.3", + "sha256": "7c8f413f4b7e164f090e508ba090448f1376c6012649bbb6a917d45851313883", + "bytes": 188972, + "sampleRate": 24000, + "channels": 1, + "duration": 3.936, + "rms": 0.10000130469939268, + "peak": 0.401641845703125 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-sea.wav?v=0.2.3", + "sha256": "db2f235bee26ac804b5362e8e013b8f40c8da24fd3a34e0fb3b43c6d264feb36", + "bytes": 382508, + "sampleRate": 24000, + "channels": 1, + "duration": 7.968, + "rms": 0.10000145042993039, + "peak": 0.6843470335006714 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-furniture.wav?v=0.2.3", + "sha256": "442bdcb956f120c270e1f321feae0415c897de0183e468980fcc119b898b2a67", + "bytes": 403244, + "sampleRate": 24000, + "channels": 1, + "duration": 8.4, + "rms": 0.10000149119200713, + "peak": 0.5619068145751953 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-sea.wav?v=0.2.3", + "sha256": "b6dbe0af143ea775f05bd59a3d6af348bcc770ab378ac91ea75a56e06c326edf", + "bytes": 346796, + "sampleRate": 24000, + "channels": 1, + "duration": 7.224, + "rms": 0.10000144532868623, + "peak": 0.56494140625 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-sound.wav?v=0.2.3", + "sha256": "e9d636ff7f4777f38b1ff15bebdcec6fbde95b4b4b05625a7415b4cfa0025b59", + "bytes": 395180, + "sampleRate": 24000, + "channels": 1, + "duration": 8.232, + "rms": 0.10000164955559301, + "peak": 0.6114688515663147 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-apple.wav?v=0.2.3", + "sha256": "3ef42e276ff3500c3e197d149f29f79d6a0c1d5516ed1d5a2c57210333fded9c", + "bytes": 246572, + "sampleRate": 24000, + "channels": 1, + "duration": 5.136, + "rms": 0.10000144279302126, + "peak": 0.4701681435108185 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-market.wav?v=0.2.3", + "sha256": "356af25332bf2000ed349671f3ff39767929e1f4599af622c021f907d11fb7bf", + "bytes": 194732, + "sampleRate": 24000, + "channels": 1, + "duration": 4.056, + "rms": 0.10000132629820717, + "peak": 0.4022216796875 + }, + { + "url": "http://127.0.0.1:4173/audio/message-sea.wav?v=0.2.3", + "sha256": "28a461fbe03bffe2560030dea8b60715f7c0fe262dcf85b5b7f7daf483836382", + "bytes": 517292, + "sampleRate": 24000, + "channels": 1, + "duration": 10.776, + "rms": 0.10000130584401576, + "peak": 0.53521728515625 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-umbrella.wav?v=0.2.3", + "sha256": "c8988e604ba05d52597e561389541e8f9cda86e052279f1862bbf8399ead314e", + "bytes": 403244, + "sampleRate": 24000, + "channels": 1, + "duration": 8.4, + "rms": 0.10000148262660476, + "peak": 0.557830810546875 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-hat.wav?v=0.2.3", + "sha256": "308278ec2bd27d4224976a55632d1f7fa1edabb0792126d9d858a699c287aee4", + "bytes": 245420, + "sampleRate": 24000, + "channels": 1, + "duration": 5.112, + "rms": 0.10000140702099906, + "peak": 0.4498428404331207 + }, + { + "url": "http://127.0.0.1:4173/audio/password-furniture.wav?v=0.2.3", + "sha256": "fb2b631dd4e12120d08a84cce6450f9cd9cd68105d13d7001d808e7deaa1df4a", + "bytes": 233900, + "sampleRate": 24000, + "channels": 1, + "duration": 4.872, + "rms": 0.10000146718546903, + "peak": 0.4836573302745819 + }, + { + "url": "http://127.0.0.1:4173/audio/first-market.wav?v=0.2.3", + "sha256": "1e00b8f70a796cdebb0feb00c605fece7488b06915e6e036f54206f05e201e0c", + "bytes": 359468, + "sampleRate": 24000, + "channels": 1, + "duration": 7.488, + "rms": 0.10000152633991319, + "peak": 0.6390880942344666 + }, + { + "url": "http://127.0.0.1:4173/audio/first-meat.wav?v=0.2.3", + "sha256": "f51a37c1722fef581f7d642a4dcae7fcb9953b3c318dce971bf616cd1a81fecc", + "bytes": 345644, + "sampleRate": 24000, + "channels": 1, + "duration": 7.2, + "rms": 0.10000152244411063, + "peak": 0.5131382346153259 + }, + { + "url": "http://127.0.0.1:4173/audio/password-sea.wav?v=0.2.3", + "sha256": "03f45b8cb5b3dc72faf5c6e3d0e2a10cea6b60301ea400d0a4453596d2f0b337", + "bytes": 232748, + "sampleRate": 24000, + "channels": 1, + "duration": 4.848, + "rms": 0.10000144821976133, + "peak": 0.5339213013648987 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-sound.wav?v=0.2.3", + "sha256": "98387ccc7aab566f6487d4c250b2128082cc527e013a6f7b7bc4d0266ac295df", + "bytes": 394028, + "sampleRate": 24000, + "channels": 1, + "duration": 8.208, + "rms": 0.10000158053850364, + "peak": 0.5377971529960632 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-umbrella.wav?v=0.2.3", + "sha256": "5e59ef39113c3d5e106862356d715f4cef2862ef8ee02654a97e532675c1ac6d", + "bytes": 410156, + "sampleRate": 24000, + "channels": 1, + "duration": 8.544, + "rms": 0.10000147499132286, + "peak": 0.6748558282852173 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-hat.wav?v=0.2.3", + "sha256": "b01ef9762ac84e3eb757243bc9286c62f7d45444a821ae35ac36a8b095e1598a", + "bytes": 353708, + "sampleRate": 24000, + "channels": 1, + "duration": 7.368, + "rms": 0.10000153089787694, + "peak": 0.555206298828125 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-market.wav?v=0.2.3", + "sha256": "d89792da51c83ac49d27e55aa6d822a338899a5ee487b34b552748201e1522f6", + "bytes": 398636, + "sampleRate": 24000, + "channels": 1, + "duration": 8.304, + "rms": 0.10000149710778367, + "peak": 0.5728324055671692 + }, + { + "url": "http://127.0.0.1:4173/audio/password-umbrella.wav?v=0.2.3", + "sha256": "ab3ca6398c879971dc793eb25b472fcc0db72d76e386f11ef4d32c639f37c69d", + "bytes": 239660, + "sampleRate": 24000, + "channels": 1, + "duration": 4.992, + "rms": 0.100001426973271, + "peak": 0.4776757061481476 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-meat.wav?v=0.2.3", + "sha256": "48e91b3932d3798e852041a854b3ee08c72127e092c62083a47af6b99adff241", + "bytes": 403244, + "sampleRate": 24000, + "channels": 1, + "duration": 8.4, + "rms": 0.10000140336390047, + "peak": 0.481536865234375 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-hat.wav?v=0.2.3", + "sha256": "6e089a42fd7e65e82eec7186d369c926fb7fdac794365b2bd7658822fd92437c", + "bytes": 396332, + "sampleRate": 24000, + "channels": 1, + "duration": 8.256, + "rms": 0.1000015662548192, + "peak": 0.616748571395874 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-sound.wav?v=0.2.3", + "sha256": "4d00aa6114327f450a00dacbc7e7b572ebf1de4ce9dc2fe4b5505766cca71ce9", + "bytes": 353708, + "sampleRate": 24000, + "channels": 1, + "duration": 7.368, + "rms": 0.10000162019345048, + "peak": 0.5348368883132935 + }, + { + "url": "http://127.0.0.1:4173/audio/last-oil.wav?v=0.2.3", + "sha256": "b5ce34950b8b31b1baf6ce55410797f0d8aa5478a670d6eace87cf76d134d6d3", + "bytes": 337580, + "sampleRate": 24000, + "channels": 1, + "duration": 7.032, + "rms": 0.10000149980584365, + "peak": 0.55706787109375 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-sea.wav?v=0.2.3", + "sha256": "47aa31d757c9fb49c9b53a1c052d90a5ced4be57549d649850d9b48f8864045b", + "bytes": 191276, + "sampleRate": 24000, + "channels": 1, + "duration": 3.984, + "rms": 0.10000129182106483, + "peak": 0.388702392578125 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-sound.wav?v=0.2.3", + "sha256": "659eb0e2b06e6b165b46744769743e032e2282519f8486c57bc45e0f7d07a069", + "bytes": 240812, + "sampleRate": 24000, + "channels": 1, + "duration": 5.016, + "rms": 0.10000152909529536, + "peak": 0.45481735467910767 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-meat.wav?v=0.2.3", + "sha256": "6599d2fac73ea616a793151b4ce6f51af673988d630bac6219a77e78ae6cb34e", + "bytes": 380204, + "sampleRate": 24000, + "channels": 1, + "duration": 7.92, + "rms": 0.1000016061190976, + "peak": 0.5921201109886169 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-market.wav?v=0.2.3", + "sha256": "c855b449e0d4ace74681bfe68e5e7f0b063568827ae872017234dbe8ae119e4c", + "bytes": 356012, + "sampleRate": 24000, + "channels": 1, + "duration": 7.416, + "rms": 0.10000151456676445, + "peak": 0.5949888825416565 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-furniture.wav?v=0.2.3", + "sha256": "bf84dc6cff1f227924a3a62158d2fc18769fb0ca40b91418fa19e534dbf92f00", + "bytes": 397484, + "sampleRate": 24000, + "channels": 1, + "duration": 8.28, + "rms": 0.10000155255948041, + "peak": 0.6670430898666382 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-sound.wav?v=0.2.3", + "sha256": "5a603bc69979603afddcaeb6edf500a7c540b72405daeb33f5335d746b327da1", + "bytes": 397484, + "sampleRate": 24000, + "channels": 1, + "duration": 8.28, + "rms": 0.10000146491234768, + "peak": 0.469268798828125 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-meat.wav?v=0.2.3", + "sha256": "9183ef90b64f5ceaf3bb0178c689231ff3e9981d6ce889124a15f2a6e2b7a344", + "bytes": 395180, + "sampleRate": 24000, + "channels": 1, + "duration": 8.232, + "rms": 0.10000155087122137, + "peak": 0.5193029642105103 + }, + { + "url": "http://127.0.0.1:4173/audio/last-sound.wav?v=0.2.3", + "sha256": "ec9c49802aebeb6a8b898a1c0d8ad1daa127d2d64c905c197ed49a8e0c4eb64a", + "bytes": 354860, + "sampleRate": 24000, + "channels": 1, + "duration": 7.392, + "rms": 0.10000165748716579, + "peak": 0.5641041398048401 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-oil.wav?v=0.2.3", + "sha256": "5fb63e04520c312aa6b7b48b70c2f7c140b5ab480e5c6992edbc2ba85b9a06e7", + "bytes": 241964, + "sampleRate": 24000, + "channels": 1, + "duration": 5.04, + "rms": 0.10000143720418167, + "peak": 0.443586528301239 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-umbrella.wav?v=0.2.3", + "sha256": "92b54f04884ab915783945077efd8f3bd443849a1720f72168b6348cae1f8e85", + "bytes": 406700, + "sampleRate": 24000, + "channels": 1, + "duration": 8.472, + "rms": 0.10000140257790288, + "peak": 0.479034423828125 + }, + { + "url": "http://127.0.0.1:4173/audio/message-sound.wav?v=0.2.3", + "sha256": "1e682147dae8026ba78dc8f256c7f24acb3a6743bfd88a0fcc86096930eef078", + "bytes": 521900, + "sampleRate": 24000, + "channels": 1, + "duration": 10.872, + "rms": 0.10000138583471241, + "peak": 0.51953125 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-apple.wav?v=0.2.3", + "sha256": "ccd7327a3fb54d3320d049ffdced3bc17595861cee69429c0ee97182d454195b", + "bytes": 402092, + "sampleRate": 24000, + "channels": 1, + "duration": 8.376, + "rms": 0.10000140667715379, + "peak": 0.490325927734375 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-sea.wav?v=0.2.3", + "sha256": "5c91a36496e274d2be9c6fa8d9b506cd04f2a1b7ceb05ed1b7bb03fe7fca99d9", + "bytes": 399788, + "sampleRate": 24000, + "channels": 1, + "duration": 8.328, + "rms": 0.10000144241513113, + "peak": 0.5465559959411621 + }, + { + "url": "http://127.0.0.1:4173/audio/message-hat.wav?v=0.2.3", + "sha256": "5a713a8522b231bb8276805c014b385b9150b79f58ff2618446607e2b442495e", + "bytes": 518444, + "sampleRate": 24000, + "channels": 1, + "duration": 10.8, + "rms": 0.10000136927555209, + "peak": 0.587005615234375 + }, + { + "url": "http://127.0.0.1:4173/audio/password-meat.wav?v=0.2.3", + "sha256": "b009caadd56350d6a641ff17f0973e2b2724c183e1f45ae0bf3c483e237fa99e", + "bytes": 240812, + "sampleRate": 24000, + "channels": 1, + "duration": 5.016, + "rms": 0.10000148386024335, + "peak": 0.4978789687156677 + }, + { + "url": "http://127.0.0.1:4173/audio/message-market.wav?v=0.2.3", + "sha256": "9242d4cd6e0030e6b073e4d2360f84aa8a454d1749711cdb2d64c14f28a7ea20", + "bytes": 523052, + "sampleRate": 24000, + "channels": 1, + "duration": 10.896, + "rms": 0.10000133805787564, + "peak": 0.534820556640625 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-apple.wav?v=0.2.3", + "sha256": "8832f1b793ab3eedbe663875ea8dbeabb122c329bd5879437c71230b0418c3c8", + "bytes": 360620, + "sampleRate": 24000, + "channels": 1, + "duration": 7.512, + "rms": 0.10000145024648589, + "peak": 0.553558349609375 + }, + { + "url": "http://127.0.0.1:4173/audio/last-umbrella.wav?v=0.2.3", + "sha256": "c801293a34013a8d93d3289a2cc87cd3eed83f97ba4647f5060efa00b117a9ad", + "bytes": 370988, + "sampleRate": 24000, + "channels": 1, + "duration": 7.728, + "rms": 0.10000149360501835, + "peak": 0.59765625 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-sea.wav?v=0.2.3", + "sha256": "9233431d78ab4b144e3c33ad0cf0d49fc0fb91b29514343230ba32987b794bb3", + "bytes": 398636, + "sampleRate": 24000, + "channels": 1, + "duration": 8.304, + "rms": 0.10000134688905045, + "peak": 0.49616992473602295 + }, + { + "url": "http://127.0.0.1:4173/audio/password-apple.wav?v=0.2.3", + "sha256": "b6f5de3fe571fe3a7fdb722fe49250bcfeedef49475271e0ec76a7630907edd5", + "bytes": 235052, + "sampleRate": 24000, + "channels": 1, + "duration": 4.896, + "rms": 0.10000148212193387, + "peak": 0.4834437072277069 + }, + { + "url": "http://127.0.0.1:4173/audio/first-furniture.wav?v=0.2.3", + "sha256": "29f007b385b7182db1d8aeccad4fc3c260df5e66e14e52a46b0ef0fcd0ff3a0a", + "bytes": 364076, + "sampleRate": 24000, + "channels": 1, + "duration": 7.584, + "rms": 0.1000014551820741, + "peak": 0.5700552463531494 + }, + { + "url": "http://127.0.0.1:4173/audio/password-hat.wav?v=0.2.3", + "sha256": "e91bfc97df90a1675b6cd856880ac15c54de32cfc3b23603bdd1c2c5ac3ce6b8", + "bytes": 235052, + "sampleRate": 24000, + "channels": 1, + "duration": 4.896, + "rms": 0.10000146155157119, + "peak": 0.5059053301811218 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-oil.wav?v=0.2.3", + "sha256": "7a6b122b11c07da86c95fb78e2db2a70681b5219c63d6441fe56da1979ac1dc3", + "bytes": 334124, + "sampleRate": 24000, + "channels": 1, + "duration": 6.96, + "rms": 0.1000014880654183, + "peak": 0.539933443069458 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-meat.wav?v=0.2.3", + "sha256": "d416107cc05e7c5b92ca27100a10a8a9689de913346179945d5542de4a6bac0c", + "bytes": 342188, + "sampleRate": 24000, + "channels": 1, + "duration": 7.128, + "rms": 0.10000157422522808, + "peak": 0.510833740234375 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-apple.wav?v=0.2.3", + "sha256": "1bf2aef9a9f030af1a8fd7dee8f44aa420a397b3ba99b575feeb3dc7a63ec191", + "bytes": 395180, + "sampleRate": 24000, + "channels": 1, + "duration": 8.232, + "rms": 0.10000148399213096, + "peak": 0.563568115234375 + }, + { + "url": "http://127.0.0.1:4173/audio/first-oil.wav?v=0.2.3", + "sha256": "f415195e0cfc7ee711d09de7519e88eab62cc8b58d70772c83c3f5c27c267819", + "bytes": 335276, + "sampleRate": 24000, + "channels": 1, + "duration": 6.984, + "rms": 0.10000145886808136, + "peak": 0.5347453355789185 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-hat.wav?v=0.2.3", + "sha256": "31a6a4270bf368cda419094d87a303ac3cd5c22539786cb165f8044b0b8e9d6e", + "bytes": 402092, + "sampleRate": 24000, + "channels": 1, + "duration": 8.376, + "rms": 0.10000145804818952, + "peak": 0.541778564453125 + }, + { + "url": "http://127.0.0.1:4173/audio/message-furniture.wav?v=0.2.3", + "sha256": "26c331b7e12311236f4bb48f88918dfbf53cccd2f50b55741ea6ff4473e71dd8", + "bytes": 521900, + "sampleRate": 24000, + "channels": 1, + "duration": 10.872, + "rms": 0.10000134596838128, + "peak": 0.529327392578125 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-oil.wav?v=0.2.3", + "sha256": "3fa1e662a3af8f2726b17b2baa5bec2934406e6595ebc243c8380dd16e190977", + "bytes": 190124, + "sampleRate": 24000, + "channels": 1, + "duration": 3.96, + "rms": 0.10000134375667624, + "peak": 0.3817255198955536 + }, + { + "url": "http://127.0.0.1:4173/audio/last-sea.wav?v=0.2.3", + "sha256": "f755452e1da44674aa1df7d12edffa988091b89a394e7eb6d4a00eb721f07cbf", + "bytes": 345644, + "sampleRate": 24000, + "channels": 1, + "duration": 7.2, + "rms": 0.10000140162255576, + "peak": 0.591033935546875 + }, + { + "url": "http://127.0.0.1:4173/audio/password-oil.wav?v=0.2.3", + "sha256": "b472957b27ff98ea7b8894fa1ff12653f7e9f66f77870faa9e52a1c1bf116c41", + "bytes": 240812, + "sampleRate": 24000, + "channels": 1, + "duration": 5.016, + "rms": 0.10000146772662066, + "peak": 0.4945219159126282 + }, + { + "url": "http://127.0.0.1:4173/audio/first-umbrella.wav?v=0.2.3", + "sha256": "878e0bd2e6e4105f175aef51a028f6b141f3a2072be20f783193f3ba897a3ee0", + "bytes": 366380, + "sampleRate": 24000, + "channels": 1, + "duration": 7.632, + "rms": 0.10000147647908036, + "peak": 0.5700247287750244 + }, + { + "url": "http://127.0.0.1:4173/audio/last-apple.wav?v=0.2.3", + "sha256": "4cb2a8579fa3a7b91bb36363826ce8ca0d6d86e96e16a479e226a2802edd82f7", + "bytes": 356012, + "sampleRate": 24000, + "channels": 1, + "duration": 7.416, + "rms": 0.10000144523423521, + "peak": 0.622528076171875 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-market.wav?v=0.2.3", + "sha256": "68a5b899115a66ab225d610ec47b4de56cc8793657362bc38f533c06f741e4cc", + "bytes": 402092, + "sampleRate": 24000, + "channels": 1, + "duration": 8.376, + "rms": 0.10000160159844854, + "peak": 0.6822717785835266 + }, + { + "url": "http://127.0.0.1:4173/audio/message-oil.wav?v=0.2.3", + "sha256": "a2a71a7e5e07c81871a25c6cb7540c39aa0b32fc44f78cda66b5f34ace98d805", + "bytes": 509228, + "sampleRate": 24000, + "channels": 1, + "duration": 10.608, + "rms": 0.10000135184106136, + "peak": 0.51812744140625 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-meat.wav?v=0.2.3", + "sha256": "d36dfc395a5c53fbfa4abe9980db7bb59adfdac59e40318c4aca365365e3f2ab", + "bytes": 187820, + "sampleRate": 24000, + "channels": 1, + "duration": 3.912, + "rms": 0.1000013329979738, + "peak": 0.371124267578125 + }, + { + "url": "http://127.0.0.1:4173/audio/password-market.wav?v=0.2.3", + "sha256": "02e325fb753ef7a3ee585a03d2ca2aa3f1fbc58523b062222ae1136eeed7a95c", + "bytes": 230444, + "sampleRate": 24000, + "channels": 1, + "duration": 4.8, + "rms": 0.10000151520861549, + "peak": 0.48170414566993713 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-hat.wav?v=0.2.3", + "sha256": "4ff43dd042f4b5451e9fdeb3edd59f1e389a7d1dd488094587a3a9fc7dfffa44", + "bytes": 191276, + "sampleRate": 24000, + "channels": 1, + "duration": 3.984, + "rms": 0.10000132502946775, + "peak": 0.417083740234375 + }, + { + "url": "http://127.0.0.1:4173/audio/last-market.wav?v=0.2.3", + "sha256": "7857e87e9dbfe8fe849cc0b18c1d45b60916cb337328099c7a87a42c82e2821e", + "bytes": 359468, + "sampleRate": 24000, + "channels": 1, + "duration": 7.488, + "rms": 0.10000148064140717, + "peak": 0.600555419921875 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-meat.wav?v=0.2.3", + "sha256": "94f8a4f9e116a787e5ed052661d6de9ecf3ad8629db476661dd59ad03014b0c9", + "bytes": 244268, + "sampleRate": 24000, + "channels": 1, + "duration": 5.088, + "rms": 0.10000146176253134, + "peak": 0.44187748432159424 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-oil.wav?v=0.2.3", + "sha256": "55b2c7d6aa8bbce04edf8661882c9781da81c57f56217f99b80457a3bb895da0", + "bytes": 369836, + "sampleRate": 24000, + "channels": 1, + "duration": 7.704, + "rms": 0.10000146897241707, + "peak": 0.6239814162254333 + }, + { + "url": "http://127.0.0.1:4173/audio/first-sound.wav?v=0.2.3", + "sha256": "46f6adeed928a16af0700f1e8626cf8049f124632a04a5d10604426fb06f9596", + "bytes": 353708, + "sampleRate": 24000, + "channels": 1, + "duration": 7.368, + "rms": 0.10000157588418972, + "peak": 0.5189672708511353 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-umbrella.wav?v=0.2.3", + "sha256": "4b4c858a25659540f9dbc524664496fc6de61ab8c1627f3cfee8c9c744e11d5b", + "bytes": 247724, + "sampleRate": 24000, + "channels": 1, + "duration": 5.16, + "rms": 0.10000144286672341, + "peak": 0.46534621715545654 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-oil.wav?v=0.2.3", + "sha256": "3ca98682ff06d1d6b8af02c0fd5b2124f42266ac989884223eff4a9bbde1287a", + "bytes": 399788, + "sampleRate": 24000, + "channels": 1, + "duration": 8.328, + "rms": 0.10000149133669024, + "peak": 0.5243995189666748 + }, + { + "url": "http://127.0.0.1:4173/audio/first-sea.wav?v=0.2.3", + "sha256": "0f0b39314c5f7d7168d4854003c0c284e7bc3438cdc4d1d1c5adab7cb5ed30e5", + "bytes": 349100, + "sampleRate": 24000, + "channels": 1, + "duration": 7.272, + "rms": 0.10000142148394393, + "peak": 0.5717948079109192 + }, + { + "url": "http://127.0.0.1:4173/audio/last-meat.wav?v=0.2.3", + "sha256": "10f8ad4259ed8945c9da831e80b3902303c09caef96d400298599168fb1efed4", + "bytes": 346796, + "sampleRate": 24000, + "channels": 1, + "duration": 7.224, + "rms": 0.10000155834091913, + "peak": 0.537200927734375 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-umbrella.wav?v=0.2.3", + "sha256": "399ea2f681f755918f1117c8baba42739ceca64b307b999342f457a9235050b6", + "bytes": 368684, + "sampleRate": 24000, + "channels": 1, + "duration": 7.68, + "rms": 0.10000155028684544, + "peak": 0.569549560546875 + }, + { + "url": "http://127.0.0.1:4173/audio/message-meat.wav?v=0.2.3", + "sha256": "ce19735df079b54c171e775b6b365385a80160b9033442abab95b2b9c8505e1a", + "bytes": 512684, + "sampleRate": 24000, + "channels": 1, + "duration": 10.68, + "rms": 0.10000140834686953, + "peak": 0.5147705078125 + }, + { + "url": "http://127.0.0.1:4173/audio/message-umbrella.wav?v=0.2.3", + "sha256": "41d5866dae66600df4694a8312b531571d44cece6dba0e423e7c43d09d184819", + "bytes": 523052, + "sampleRate": 24000, + "channels": 1, + "duration": 10.896, + "rms": 0.10000120668553683, + "peak": 0.530364990234375 + }, + { + "url": "http://127.0.0.1:4173/audio/last-furniture.wav?v=0.2.3", + "sha256": "5ad4f776e35439d408abed0e66567d6b5cdc80fc54d579165472e474f1238776", + "bytes": 357164, + "sampleRate": 24000, + "channels": 1, + "duration": 7.44, + "rms": 0.10000152394963031, + "peak": 0.583587646484375 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-sea.wav?v=0.2.3", + "sha256": "8838d6a1ee8a790427dc5aa761e70b3d8872af62086efeed743297ff7f8b8a06", + "bytes": 243116, + "sampleRate": 24000, + "channels": 1, + "duration": 5.064, + "rms": 0.10000138788281714, + "peak": 0.45013427734375 + }, + { + "url": "http://127.0.0.1:4173/audio/message-apple.wav?v=0.2.3", + "sha256": "d85e6f47d871369f00de2274139e5ad6b4b5686b5e20e248df0ed6b9a320d942", + "bytes": 517292, + "sampleRate": 24000, + "channels": 1, + "duration": 10.776, + "rms": 0.10000133916854889, + "peak": 0.525360107421875 + }, + { + "url": "http://127.0.0.1:4173/audio/last-hat.wav?v=0.2.3", + "sha256": "bdaf8fbc54df8061e9e58aa8c14b3044a6e863dc54973ee3ee6ae2c5ae1a28f1", + "bytes": 354860, + "sampleRate": 24000, + "channels": 1, + "duration": 7.392, + "rms": 0.10000152378078818, + "peak": 0.550079345703125 + }, + { + "url": "http://127.0.0.1:4173/audio/first-apple.wav?v=0.2.3", + "sha256": "7c1dbcb3082055df2b8f087f7e906ec867c92f679de0894c34740c05e61a4bc1", + "bytes": 359468, + "sampleRate": 24000, + "channels": 1, + "duration": 7.488, + "rms": 0.10000143468253914, + "peak": 0.57977294921875 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-umbrella.wav?v=0.2.3", + "sha256": "8d3e8e8bc97e5fe3f3362184c4abb12f01a882a1f1174d2644f0f70aac677c0a", + "bytes": 192428, + "sampleRate": 24000, + "channels": 1, + "duration": 4.008, + "rms": 0.10000131475711933, + "peak": 0.385650634765625 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-furniture.wav?v=0.2.3", + "sha256": "5c004a7b2f5a4a918c9f689f1a2dcb219a620ed14313f40a9655b36dbf64948d", + "bytes": 398636, + "sampleRate": 24000, + "channels": 1, + "duration": 8.304, + "rms": 0.10000141690978645, + "peak": 0.487396240234375 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-tree.wav?v=0.2.3", + "sha256": "122f496834fb16d6da47f801e50e46e272e4e934af959467d1db4e490f79be7a", + "bytes": 183212, + "sampleRate": 24000, + "channels": 1, + "duration": 3.816, + "rms": 0.10000140751524371, + "peak": 0.36920166015625 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-tree.wav?v=0.2.3", + "sha256": "00d8e77ec0371971d632724d91f8cf8d947bfb83c582a513b6421be4c457a1da", + "bytes": 241964, + "sampleRate": 24000, + "channels": 1, + "duration": 5.04, + "rms": 0.10000146153372488, + "peak": 0.4585406184196472 + }, + { + "url": "http://127.0.0.1:4173/audio/message-tree.wav?v=0.2.3", + "sha256": "5d684aa710a63d36ed8dcc2a8bfbdd5c71b0b1c63dad2a324adecb76591e85b8", + "bytes": 540332, + "sampleRate": 24000, + "channels": 1, + "duration": 11.256, + "rms": 0.10000132424453942, + "peak": 0.5262451171875 + }, + { + "url": "http://127.0.0.1:4173/audio/last-tree.wav?v=0.2.3", + "sha256": "589e56d940a3c9e80ec02ae0b2dd93463fdc85ef019a753fcd0fded0752055f9", + "bytes": 382508, + "sampleRate": 24000, + "channels": 1, + "duration": 7.968, + "rms": 0.10000149781706567, + "peak": 0.5807672142982483 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-tree.wav?v=0.2.3", + "sha256": "341888c75275c13eb31058f53a1d4276be0daa0a1b5a3a45522036928b83b0c1", + "bytes": 382508, + "sampleRate": 24000, + "channels": 1, + "duration": 7.968, + "rms": 0.1000014873304774, + "peak": 0.600024402141571 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-tree.wav?v=0.2.3", + "sha256": "8735c3d9672561ca237fa87317beec2878492eb9063d6048d5b214423561acc1", + "bytes": 423980, + "sampleRate": 24000, + "channels": 1, + "duration": 8.832, + "rms": 0.10000150947389638, + "peak": 0.6187627911567688 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-furniture.wav?v=0.2.3", + "sha256": "52cb92cdb8ee92b6f581c9d68dbc346f180c470564809ba57185429c9eb84127", + "bytes": 186668, + "sampleRate": 24000, + "channels": 1, + "duration": 3.888, + "rms": 0.1000013480244084, + "peak": 0.387054443359375 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-tree.wav?v=0.2.3", + "sha256": "bc8e54f5407e8866bf1ca1ddfd4f6c63d85fee29bd9e430c7dd33e87974fc5b8", + "bytes": 409004, + "sampleRate": 24000, + "channels": 1, + "duration": 8.52, + "rms": 0.10000146559822108, + "peak": 0.5486617684364319 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-tree.wav?v=0.2.3", + "sha256": "b8e8bbe6b8b14727efd953fae9d4aed2caeb004055d52f611c6378322847edbe", + "bytes": 400940, + "sampleRate": 24000, + "channels": 1, + "duration": 8.352, + "rms": 0.10000144970799159, + "peak": 0.470611572265625 + }, + { + "url": "http://127.0.0.1:4173/audio/first-tree.wav?v=0.2.3", + "sha256": "3178230fd5850b6277a2153b438ec5289720e3db7ac929914cc213964f004bd5", + "bytes": 379052, + "sampleRate": 24000, + "channels": 1, + "duration": 7.896, + "rms": 0.10000144270360484, + "peak": 0.5833613276481628 + }, + { + "url": "http://127.0.0.1:4173/audio/password-tree.wav?v=0.2.3", + "sha256": "67da8147296e35134ec254bc82b58317630061b2c64d2d63c4be197ce8692d50", + "bytes": 233900, + "sampleRate": 24000, + "channels": 1, + "duration": 4.872, + "rms": 0.10000156310809623, + "peak": 0.4904019236564636 + } + ] +} diff --git a/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/mobile-runtime-audit.json b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/mobile-runtime-audit.json new file mode 100644 index 0000000..fd9db84 --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/mobile-runtime-audit.json @@ -0,0 +1,70 @@ +{ + "errors": [], + "failed": [], + "external": [], + "audio": { + "starts": [ + { + "loop": true, + "duration": 12 + }, + { + "loop": false, + "duration": 7.055986394557823 + }, + { + "loop": false, + "duration": 8.375986394557824 + }, + { + "loop": true, + "duration": 12 + }, + { + "loop": false, + "duration": 5.039977324263038 + }, + { + "loop": true, + "duration": 12 + }, + { + "loop": false, + "duration": 10.895986394557823 + }, + { + "loop": true, + "duration": 12 + }, + { + "loop": false, + "duration": 7.055986394557823 + }, + { + "loop": false, + "duration": 8.279977324263038 + }, + { + "loop": true, + "duration": 12 + }, + { + "loop": false, + "duration": 7.055986394557823 + }, + { + "loop": false, + "duration": 7.4399773242630385 + }, + { + "loop": true, + "duration": 12 + }, + { + "loop": false, + "duration": 7.4399773242630385 + } + ], + "stops": 15 + } +} \ No newline at end of file diff --git a/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/npm-audit.json b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/npm-audit.json new file mode 100644 index 0000000..c046bc2 --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/npm-audit.json @@ -0,0 +1,22 @@ +{ + "auditReportVersion": 2, + "vulnerabilities": {}, + "metadata": { + "vulnerabilities": { + "info": 0, + "low": 0, + "moderate": 0, + "high": 0, + "critical": 0, + "total": 0 + }, + "dependencies": { + "prod": 4, + "dev": 260, + "optional": 27, + "peer": 8, + "peerOptional": 0, + "total": 263 + } + } +} diff --git a/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/preservation.json b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/preservation.json new file mode 100644 index 0000000..e20bc57 --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/preservation.json @@ -0,0 +1,35 @@ +{ + "completedAtUtc": "2026-10-14T09:37:31.286690+00:00", + "voiceWavsUnchanged": 101, + "unaffectedAmbienceWavsUnchanged": 5, + "mallWavUnchanged": true, + "allAmbienceWavsUnchangedInRetry": [ + "public/ambience/department.wav", + "public/ambience/mall.wav", + "public/ambience/rain.wav", + "public/ambience/street.wav", + "public/ambience/subway.wav", + "public/ambience/theater.wav" + ], + "changedWavs": [ + { + "file": "public/ambience/cafe.wav", + "beforeSha256": "802a956e91b85a2fdd0e1f161d75bfada7a53499bcb57ba7f578411480ded216", + "afterSha256": "6853c121104940041c268a2891eadae032c17aa22b4c3b3ddfbc025262434995" + }, + { + "file": "public/ambience/market.wav", + "beforeSha256": "7a7a980845a4aade2a7e8a108eae746220a4688e92792ee93d3deb76b2a762f6", + "afterSha256": "d6f73d86aea98b83e2995e61baaa7315a0ea7adeebc093769d76e1569b207658" + } + ], + "priorAgentFilesUnchanged": 484, + "archivedPriorAttemptFilesUnchanged": 89, + "archiveFilesReadOnly": true, + "gitTrackedHistoricalAgentFilesUnchanged": 180, + "sourceProvenanceUnchangedExceptAuthorizedStarts": true, + "distMatchesCurrentAmbienceBundle": true, + "finalScreenMatchesCurrentFilesAndScript": true, + "finalAsrSha256": "82df338d83f7b6c8b6b04ecf43c7218b6787cc1b72d73d5c898197ec957a7070", + "head": "c92660b514f7af8eb556d3fa5c0fc80e4bdd4cf5" +} diff --git a/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/regenerate.py b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/regenerate.py new file mode 100644 index 0000000..5eac2f2 --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/regenerate.py @@ -0,0 +1,47 @@ +"""Rebuild through the hardened generator; keep this run's source/output audit.""" +import json +from datetime import datetime, timezone +from pathlib import Path +import subprocess +import sys + +ROOT = Path(__file__).resolve().parents[4] +sys.path.insert(0, str(ROOT / 'scripts')) +import ambience_audio as audio + +EVIDENCE = Path(__file__).resolve().parent +plan_path = ROOT / '.agent/AMBIENCE-SOURCES-v0.2.3.json' +plan_bytes = plan_path.read_bytes() +plan = json.loads(plan_bytes) +source_directory = Path('/tmp/findword-ambience-sources') +records = [] +for asset in plan['assets']: + path = audio.source_path(source_directory, asset['environmentId']) + probe = json.loads(subprocess.check_output(['ffprobe', '-v', 'error', '-show_entries', 'format=duration', '-of', 'json', str(path)], text=True)) + record = {'environmentId': asset['environmentId'], 'sha256': audio.digest(path), 'bytes': path.stat().st_size, + 'directMediaDurationSeconds': float(probe['format']['duration']), 'selectedSegmentStartSeconds': asset['selectedSegmentStartSeconds']} + assert record['sha256'] == asset['expectedSourceSha256'] + assert record['bytes'] == asset['sourceBytes'] + assert record['directMediaDurationSeconds'] == asset['directMediaDurationSeconds'] + records.append(record) +print('All eight source SHA-256, byte counts and direct-media durations match before conversion.', flush=True) +manifest = audio.generate(plan, source_directory, ROOT / 'public/ambience') +assert plan_path.read_bytes() == plan_bytes +assert plan == json.loads(plan_bytes) +audio.validate_bundle(ROOT / 'public/ambience', plan) +record = {'completedAtUtc': datetime.now(timezone.utc).isoformat(), 'method': 'ambience_audio.generate: source preflight, full staged bundle validation, atomic directory exchange', + 'allSourcesMatchedBeforeConversion': True, 'planUnmodified': True, 'sources': records, 'manifestSha256': audio.digest(ROOT / 'public/ambience/manifest.json'), + 'toolVersions': manifest['toolVersions'], 'outputs': [{k: e[k] for k in ('environmentId', 'selectedSegmentStartSeconds', 'sha256', 'bytes', 'duration', 'rms', 'peak', 'conversion')} for e in manifest['files']]} +with (EVIDENCE / 'regeneration.json').open('x') as stream: + stream.write(json.dumps(record, ensure_ascii=False, indent=2) + '\n') +baseline = json.loads((EVIDENCE / 'baseline.json').read_text()) +changed = [] +for name, before in baseline['wavSha256'].items(): + after = audio.digest(ROOT / name) + if name in ('public/ambience/market.wav', 'public/ambience/cafe.wav'): + assert after != before + changed.append(name) + else: + assert after == before, name +print('Preserved 101 voice WAVs and six ambience WAVs including mall; changed only market and cafe.', flush=True) +print(json.dumps(record, ensure_ascii=False, indent=2)) diff --git a/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/regeneration.json b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/regeneration.json new file mode 100644 index 0000000..03da104 --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/regeneration.json @@ -0,0 +1,254 @@ +{ + "completedAtUtc": "2026-10-14T09:33:24.596833+00:00", + "method": "ambience_audio.generate: source preflight, full staged bundle validation, atomic directory exchange", + "allSourcesMatchedBeforeConversion": true, + "planUnmodified": true, + "sources": [ + { + "environmentId": "street", + "sha256": "0ddb0be7eb3427f781c8268bcbc74b8ad7e1fbf75b9f6966e65274dbe85f3d9d", + "bytes": 3414104, + "directMediaDurationSeconds": 264.254694, + "selectedSegmentStartSeconds": 35 + }, + { + "environmentId": "mall", + "sha256": "bb066e130e5d665db57cb5f88e820d053c724d8f777b275213998d2074c6529a", + "bytes": 1666896, + "directMediaDurationSeconds": 60.05551, + "selectedSegmentStartSeconds": 36 + }, + { + "environmentId": "theater", + "sha256": "05c3ece7c088f34700b7610f791c0ad848a24c77be2c32fd1503a78356739a43", + "bytes": 1485015, + "directMediaDurationSeconds": 176.901224, + "selectedSegmentStartSeconds": 45 + }, + { + "environmentId": "department", + "sha256": "261fda28722fba623483a90b32e7a2ec388c59887f56a5247156b53f1ffb6ccd", + "bytes": 2445024, + "directMediaDurationSeconds": 292.872, + "selectedSegmentStartSeconds": 90 + }, + { + "environmentId": "market", + "sha256": "fc0075dce8ad05b56460c9f18754c27b2021f21f1c780a595ccda648d33c941d", + "bytes": 622200, + "directMediaDurationSeconds": 76.696961, + "selectedSegmentStartSeconds": 24 + }, + { + "environmentId": "subway", + "sha256": "41fcf064cde53cef1528fe98721347851e60c070d8ff9f213f354025cf272d4c", + "bytes": 3343901, + "directMediaDurationSeconds": 425.024, + "selectedSegmentStartSeconds": 65 + }, + { + "environmentId": "cafe", + "sha256": "6360791fdcee1f64638f0fc9abd6d2c7a1aa75fd3d2b80033170a02d025099dc", + "bytes": 19947952, + "directMediaDurationSeconds": 1200.000998, + "selectedSegmentStartSeconds": 0 + }, + { + "environmentId": "rain", + "sha256": "ef0511593b1bb0ba47d5c5dafd83eb07ba854b5a65fd5d41b8c76a1b3ff2c22a", + "bytes": 91187572, + "directMediaDurationSeconds": 1800.0, + "selectedSegmentStartSeconds": 180 + } + ], + "manifestSha256": "2aeae8bb7a1f6e12543ba7e32a233b47b1ebcfdd65c7e55f67fc8f22f8d0f8c1", + "toolVersions": { + "ffmpeg": "ffmpeg version 6.1.1-3ubuntu5 Copyright (c) 2000-2023 the FFmpeg developers" + }, + "outputs": [ + { + "environmentId": "street", + "selectedSegmentStartSeconds": 35, + "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", + "selectedSegmentStartSeconds": 36, + "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", + "selectedSegmentStartSeconds": 45, + "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", + "selectedSegmentStartSeconds": 90, + "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", + "selectedSegmentStartSeconds": 24, + "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", + "selectedSegmentStartSeconds": 65, + "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", + "selectedSegmentStartSeconds": 0, + "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", + "selectedSegmentStartSeconds": 180, + "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" + } + } + ] +} diff --git a/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/run-browser.py b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/run-browser.py new file mode 100644 index 0000000..debc5ff --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/run-browser.py @@ -0,0 +1,63 @@ +"""Run the complete Chrome suite and preserve its own descendant sandbox evidence.""" +from datetime import datetime, timezone +import json +import os +from pathlib import Path +import shlex +import subprocess +import sys +import time + +ROOT = Path(__file__).resolve().parents[4] +EVIDENCE = Path(__file__).resolve().parent + +def now(): return datetime.now(timezone.utc).isoformat() + +def descendants(runner_pid): + processes = {} + for directory in Path('/proc').iterdir(): + if not directory.name.isdigit(): continue + try: + stat = (directory / 'stat').read_text().rsplit(')', 1)[1].split() + arguments = (directory / 'cmdline').read_bytes().decode(errors='replace').rstrip('\0').split('\0') + status = (directory / 'status').read_text().splitlines() + processes[int(directory.name)] = {'pid': int(directory.name), 'ppid': int(stat[1]), + 'arguments': arguments, 'commandLine': shlex.join(arguments), + 'sandboxStatus': [line for line in status if line.startswith(('NoNewPrivs:', 'Seccomp:', 'Seccomp_filters:', 'NSpid:'))]} + except (OSError, ValueError): continue + family = {runner_pid} + while True: + children = {pid for pid, record in processes.items() if record['ppid'] in family} + if children <= family: break + family |= children + return [record for pid, record in processes.items() if pid in family and record['arguments'] + and record['arguments'][0].startswith('/opt/google/chrome/') + and 'crashpad' not in record['arguments'][0]] + +env = os.environ.copy() +env.pop('PLAYWRIGHT_NO_SANDBOX', None) +env['CHROME_PATH'] = '/usr/bin/google-chrome' +env['PLAYWRIGHT_JSON_OUTPUT_FILE'] = str(EVIDENCE / 'browser-results.json') +command = ['npx', 'playwright', 'test', '--reporter=line,json', '--output', str(EVIDENCE / 'browser-final')] +started = now() +observed = {} +with (EVIDENCE / '06-browser.log').open('x') as log: + log.write('$ ' + shlex.join(command) + '\nStarted UTC: ' + started + '\nCHROME_PATH=/usr/bin/google-chrome; PLAYWRIGHT_NO_SANDBOX unset; chromiumSandbox=true\n') + log.flush() + process = subprocess.Popen(command, cwd=ROOT, env=env, stdout=log, stderr=subprocess.STDOUT) + while process.poll() is None: + for record in descendants(process.pid): + observed[record['pid']] = record + time.sleep(2) + log.write('\nExit code: ' + str(process.returncode) + '\nFinished UTC: ' + now() + '\n') +assert observed, 'No suite Chrome processes observed' +assert all('--no-sandbox' not in row['arguments'] for row in observed.values()) +report = {'startedAtUtc': started, 'completedAtUtc': now(), 'runnerPid': process.pid, + 'command': command, 'chrome': subprocess.check_output(['/usr/bin/google-chrome', '--version'], text=True).strip(), + 'method': 'Actual Chrome descendants of this suite runner; Playwright chromiumSandbox=true and opt-out unset.', + 'noSandboxFlagPresent': False, 'exitCode': process.returncode, + 'processes': list(observed.values())} +with (EVIDENCE / 'chrome-sandbox.json').open('x') as out: out.write(json.dumps(report, indent=2) + '\n') +print(json.dumps({'exitCode': process.returncode, 'observedChromeProcesses': len(observed), 'noSandboxFlagPresent': False})) +print('\n'.join((EVIDENCE / '06-browser.log').read_text().splitlines()[-16:])) +sys.exit(process.returncode) diff --git a/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/screen-final.py b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/screen-final.py new file mode 100644 index 0000000..a627fed --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/screen-final.py @@ -0,0 +1,86 @@ +"""Offline tiny-model heuristic screening of the exact final WAV bytes; never clearance.""" +from dataclasses import asdict +from datetime import datetime, timezone +import hashlib +from importlib.metadata import version +import inspect +import json +import math +from pathlib import Path +import platform +import sys +import ctranslate2 +from faster_whisper import WhisperModel + +ROOT = Path(__file__).resolve().parents[4] +EVIDENCE = Path(__file__).resolve().parent.parent +REVISION = 'd90ca5fe260221311c53c58e660288d3deb8d356' +SNAPSHOT = Path.home() / '.cache/huggingface/hub/models--Systran--faster-whisper-tiny/snapshots' / REVISION + +def json_safe(value): + # JSON has no infinity; retain its exact semantic value as an explicit tagged object. + if isinstance(value, float) and not math.isfinite(value): + return {'nonFiniteFloat': 'NaN' if math.isnan(value) else 'Infinity' if value > 0 else '-Infinity'} + if isinstance(value, dict): return {key: json_safe(item) for key, item in value.items()} + if isinstance(value, (list, tuple)): return [json_safe(item) for item in value] + return value + +def sha(path): + with path.open('rb') as stream: return hashlib.file_digest(stream, 'sha256').hexdigest() + +assert version('faster-whisper') == '1.2.1' +started = datetime.now(timezone.utc).isoformat() +manifest_path = ROOT / 'public/ambience/manifest.json' +manifest_hash = sha(manifest_path) +manifest = json.loads(manifest_path.read_text()) +# Preserve all effective API defaults rather than relying on undocumented invocation settings. +parameters = {name: parameter.default for name, parameter in inspect.signature(WhisperModel.transcribe).parameters.items() + if name not in ('self', 'audio')} +parameters.update(language=None, task='transcribe', beam_size=5, best_of=5, vad_filter=True, vad_parameters=None, condition_on_previous_text=True) +prior_path = EVIDENCE / 'prior-attempt-market60-cafe180/final-asr.json' +prior = json.loads(prior_path.read_text()) +assert prior['requiredEmptyPassed'] is False +assert json_safe(parameters) == prior['method']['parameters'], 'Decoder/VAD settings must remain identical' +ctranslate2.set_random_seed(0) +model = WhisperModel(str(SNAPSHOT), device='cpu', compute_type='int8', cpu_threads=4, num_workers=1, local_files_only=True) +assert model.model.is_multilingual +results = [] +for entry in manifest['files']: + path = ROOT / 'public/ambience' / entry['file'] + before = sha(path) + assert before == entry['sha256'] and path.stat().st_size == entry['bytes'] + segments, info = model.transcribe(str(path), **parameters) + segments = [asdict(segment) for segment in segments] # Exhaust lazy inference; retain exact unedited results. + assert sha(path) == before + record = {'environmentId': entry['environmentId'], 'file': str(path.relative_to(ROOT)), 'sha256': before, + 'bytes': path.stat().st_size, 'durationSeconds': entry['duration'], + 'selectedSegmentStartSeconds': entry['selectedSegmentStartSeconds'], 'sourceSha256': entry['sourceSha256'], + 'language': info.language, 'languageProbability': info.language_probability, + 'segments': segments, 'text': ''.join(segment['text'] for segment in segments), 'info': asdict(info)} + results.append(record) + print(json.dumps({k: record[k] for k in ('environmentId','sha256','language','languageProbability','segments','text')}, ensure_ascii=False), flush=True) +assert sha(manifest_path) == manifest_hash +required = ['mall', 'market', 'cafe'] +selected = {result['environmentId']: result for result in results if result['environmentId'] in required} +assert set(selected) == set(required) +assert {key: result['selectedSegmentStartSeconds'] for key, result in selected.items()} == {'mall': 36, 'market': 24, 'cafe': 0} +passed = all(result['segments'] == [] and result['text'] == '' for result in selected.values()) +report = {'schemaVersion': 1, 'startedAtUtc': started, 'completedAtUtc': datetime.now(timezone.utc).isoformat(), + 'tool': {'name': 'faster-whisper', 'version': version('faster-whisper'), 'python': platform.python_version(), + 'dependencies': {name: version(name) for name in ('ctranslate2', 'av', 'numpy', 'tokenizers', 'huggingface-hub')}}, + 'model': {'name': 'tiny', 'multilingual': True, 'repository': 'Systran/faster-whisper-tiny', 'revision': REVISION, + 'files': {path.name: sha(path) for path in sorted(SNAPSHOT.iterdir()) if path.is_file()}}, + 'method': {'input': 'Exact final 12-second public/ambience WAV files, hash verified before and after inference; built-in Silero VAD with package defaults, no text editing or manual filtering.', + 'device': 'cpu', 'computeType': 'int8', 'cpuThreads': 4, 'numWorkers': 1, 'randomSeed': 0, + 'nonFiniteNumberEncoding': 'Non-finite default options use {nonFiniteFloat: Infinity|-Infinity|NaN} tagged objects; no ASR segments or text are discarded.', 'offline': True, 'parameters': parameters, 'manifestSha256': manifest_hash, + 'vadModelSha256': sha(Path(__import__('faster_whisper').__file__).parent / 'assets/silero_vad_v6.onnx'), 'scriptSha256': sha(Path(__file__)), 'command': '/tmp/findword-asr-venv/bin/python .agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/screen-final.py'}, + 'limitations': {'screeningOnly': True, 'humanListeningAcceptance': False, 'legalPrivacyClearance': False, + 'textIsVerifiedTranscript': False, + 'explanation': 'Tiny-model ASR is only a screening signal. Empty segments do not prove absence of speech, music or private conversation. Candidate text and language guesses may be hallucinated and are not faithful transcripts. This is NOT human listening acceptance or legal/privacy clearance.'}, + 'priorFailedAttempt': {'file': 'prior-attempt-market60-cafe180/final-asr.json', 'sha256': sha(prior_path), 'requiredEmptyPassed': False}, + 'supplementaryNoVadRun': {'file': 'no-vad-asr.json', 'sha256': sha(EVIDENCE / 'no-vad-asr.json'), 'requiredEmptyPassed': False, 'explanation': 'Historical no-VAD run on mall 36s, market 60s and cafe 180s emitted candidate text that may be hallucinated. It is retained unchanged, is not a screen of the replacement market/cafe WAVs, and does not override the specified VAD gate. Neither empty VAD results nor no-VAD text proves absence or presence of speech/music or provides human listening acceptance or legal/privacy clearance.'}, 'requiredEmptyEnvironmentIds': required, 'requiredEmptyPassed': passed, 'files': results} +serialized = json.dumps(json_safe(report), ensure_ascii=False, indent=2, allow_nan=False) + '\n' +with (EVIDENCE / 'final-asr.json').open('x') as stream: + stream.write(serialized) +if not passed: sys.exit('Required changed excerpts produced ASR segments; screening criterion failed.') +print('All three changed excerpts have zero emitted segments. Screening signal only; no listening acceptance or legal/privacy clearance.', flush=True) diff --git a/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/screenshots/desktop-early-exit.png b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/screenshots/desktop-early-exit.png new file mode 100644 index 0000000..811489d Binary files /dev/null and b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/screenshots/desktop-early-exit.png differ diff --git a/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/screenshots/desktop-game.png b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/screenshots/desktop-game.png new file mode 100644 index 0000000..f7d81f8 Binary files /dev/null and b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/screenshots/desktop-game.png differ diff --git a/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/screenshots/desktop-normal-results.png b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/screenshots/desktop-normal-results.png new file mode 100644 index 0000000..60986f0 Binary files /dev/null and b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/screenshots/desktop-normal-results.png differ diff --git a/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/screenshots/desktop-start.png b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/screenshots/desktop-start.png new file mode 100644 index 0000000..3e1863d Binary files /dev/null and b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/screenshots/desktop-start.png differ diff --git a/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/screenshots/mobile-early-exit.png b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/screenshots/mobile-early-exit.png new file mode 100644 index 0000000..122ee5d Binary files /dev/null and b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/screenshots/mobile-early-exit.png differ diff --git a/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/screenshots/mobile-game.png b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/screenshots/mobile-game.png new file mode 100644 index 0000000..c6c5d2b Binary files /dev/null and b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/screenshots/mobile-game.png differ diff --git a/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/screenshots/mobile-normal-results.png b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/screenshots/mobile-normal-results.png new file mode 100644 index 0000000..46bdd67 Binary files /dev/null and b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/screenshots/mobile-normal-results.png differ diff --git a/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/screenshots/mobile-start.png b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/screenshots/mobile-start.png new file mode 100644 index 0000000..93c1298 Binary files /dev/null and b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/screenshots/mobile-start.png differ diff --git a/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/selection-context.json b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/selection-context.json new file mode 100644 index 0000000..ad1925c --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/selection-context.json @@ -0,0 +1,29 @@ +{ + "source": "User-provided Neo rescan findings; no new raw rescan file was supplied. Final WAV inference is independently rerun and recorded.", + "converter": "scripts/ambience_audio.convert", + "model": "faster-whisper 1.2.1 tiny multilingual CPU int8", + "parameters": { + "beam_size": 5, + "best_of": 5, + "vad_filter": true, + "vad_parameters": null, + "condition_on_previous_text": true + }, + "reportedCandidates": [ + { + "environmentId": "market", + "startSeconds": 24, + "endSeconds": 36, + "duration_after_vad": 0.0 + }, + { + "environmentId": "cafe", + "startSeconds": 0, + "endSeconds": 12, + "duration_after_vad": 0.0 + } + ], + "unchangedMallStartSeconds": 36, + "humanListeningAcceptance": false, + "legalPrivacyClearance": false +} diff --git a/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/validation-summary.json b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/validation-summary.json new file mode 100644 index 0000000..4fa67f4 --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/validation-summary.json @@ -0,0 +1,120 @@ +{ + "completedAtUtc": "2026-10-14T09:41:28.406402+00:00", + "scope": "Requested automated release/screening checks only. Human listening acceptance and legal/privacy clearance were not performed.", + "implementationAndAtomicRegenerationComplete": true, + "allRequestedAutomatedAcceptanceChecksPassed": true, + "requiredEmptyPassed": true, + "humanListeningAcceptance": false, + "legalPrivacyClearance": false, + "blockingAutomatedCriterion": null, + "checks": { + "lint": { + "exitCode": 0, + "log": "05-lint.log" + }, + "unit": { + "exitCode": 0, + "files": 13, + "passed": 125, + "failed": 0, + "skipped": 0, + "log": "05-unit.log" + }, + "python": { + "exitCode": 0, + "passed": 36, + "failed": 0, + "skipped": 0, + "log": "05-python.log" + }, + "build": { + "exitCode": 0, + "voiceFiles": 101, + "ambienceFiles": 8, + "log": "05-build.log" + }, + "audit": { + "exitCode": 0, + "vulnerabilities": 0, + "evidence": "npm-audit.json" + }, + "sandboxedChrome": { + "exitCode": 0, + "passed": 30, + "failed": 0, + "skipped": 0, + "flaky": 0, + "durationMs": 240675.669, + "projects": [ + "desktop", + "mobile" + ], + "evidence": "browser-results.json", + "sandboxEvidence": "chrome-sandbox.json" + } + }, + "asr": { + "evidence": "../final-asr.json", + "sha256": "82df338d83f7b6c8b6b04ecf43c7218b6787cc1b72d73d5c898197ec957a7070", + "method": "faster-whisper 1.2.1 tiny multilingual CPU int8; beam_size=5, best_of=5, default VAD, condition_on_previous_text=true", + "selectedRequiredStarts": { + "mall": 36, + "market": 24, + "cafe": 0 + }, + "segmentsByEnvironment": { + "street": 0, + "mall": 0, + "theater": 0, + "department": 0, + "market": 0, + "subway": 0, + "cafe": 0, + "rain": 0 + }, + "requiredEmptyPassed": true, + "screeningOnly": true, + "humanListeningAcceptance": false, + "legalPrivacyClearance": false, + "priorFailedAttempt": "../prior-attempt-market60-cafe180/final-asr.json", + "historicalNoVadEvidence": "../no-vad-asr.json", + "noVadLimitation": "Historical candidate text may be hallucinated, does not screen new market/cafe files and does not override the VAD gate. Neither method proves absence of speech/music." + }, + "preservation": { + "completedAtUtc": "2026-10-14T09:37:31.286690+00:00", + "voiceWavsUnchanged": 101, + "unaffectedAmbienceWavsUnchanged": 5, + "mallWavUnchanged": true, + "allAmbienceWavsUnchangedInRetry": [ + "public/ambience/department.wav", + "public/ambience/mall.wav", + "public/ambience/rain.wav", + "public/ambience/street.wav", + "public/ambience/subway.wav", + "public/ambience/theater.wav" + ], + "changedWavs": [ + { + "file": "public/ambience/cafe.wav", + "beforeSha256": "802a956e91b85a2fdd0e1f161d75bfada7a53499bcb57ba7f578411480ded216", + "afterSha256": "6853c121104940041c268a2891eadae032c17aa22b4c3b3ddfbc025262434995" + }, + { + "file": "public/ambience/market.wav", + "beforeSha256": "7a7a980845a4aade2a7e8a108eae746220a4688e92792ee93d3deb76b2a762f6", + "afterSha256": "d6f73d86aea98b83e2995e61baaa7315a0ea7adeebc093769d76e1569b207658" + } + ], + "priorAgentFilesUnchanged": 484, + "archivedPriorAttemptFilesUnchanged": 89, + "archiveFilesReadOnly": true, + "gitTrackedHistoricalAgentFilesUnchanged": 180, + "sourceProvenanceUnchangedExceptAuthorizedStarts": true, + "distMatchesCurrentAmbienceBundle": true, + "finalScreenMatchesCurrentFilesAndScript": true, + "finalAsrSha256": "82df338d83f7b6c8b6b04ecf43c7218b6787cc1b72d73d5c898197ec957a7070", + "head": "c92660b514f7af8eb556d3fa5c0fc80e4bdd4cf5" + }, + "head": "c92660b514f7af8eb556d3fa5c0fc80e4bdd4cf5", + "commitPushMergeTagDeployPerformed": false +} diff --git a/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/verified-files-sha256.json b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/verified-files-sha256.json new file mode 100644 index 0000000..f034df4 --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/verified-files-sha256.json @@ -0,0 +1,161 @@ +{ + ".agent/AMBIENCE-SOURCES-v0.2.3.json": "3529c8534be204208ac504a0f4c1a69b312131f9bbff92aa9a3135d61d24db65", + ".agent/RESULT-v0.2.3.md": "dc50f09f1e8a2cabfcdd4c7249b1c7274686a72adbfdf4a06e0cb799c518cdef", + "CHANGELOG.md": "22ed457c02a4da2ecef757646813afdc9151b6405860c0ec7ba18ba3fa84ebf2", + "README.md": "eca51fbb0061f8d3f391eeaf9840d977356d2e22ed52b67abf3dc58287859848", + "docs/ARCHITECTURE.md": "b3064b90e85ab8acca2b94ab1a692c2dc90cd45f32eff5c35b25d98cd9303357", + "docs/AUDIO_PROVENANCE.md": "34f9aac413aeae7223b6212034e6adb3a5be13e53bc5b7e84004183f42d6dc9f", + "docs/DEPLOYMENT.md": "cd74fc986a819ea02cc962cc84e18abb292395dc51c802a030a5d6f497aca9b3", + "docs/WORDS.md": "f415558b2fcb9b4b6a69f30d5ce36a69f4d3cfef486a5fe29cafad3b3908162a", + "package-lock.json": "ed6a8708221076b3bfe9128c911e500ed0c6367eb1f34c9b89479f0e828410cb", + "package.json": "48faf460c99bf186d4b583bfc94ca6cfdd6893d14685220fcdd0e6e7ef59a788", + "playwright.config.ts": "e175b4905ff5b3e33fb62766617e469aaca3a3bc8065637c528d5490dc6a6d34", + "public/THIRD_PARTY_NOTICES.md": "d39cf239c24ea5b83cc2ee2496fb880914624c68d74757b4d08e06bfa92b5f7e", + "public/ambience/AMBIENCE_NOTICES.md": "dc3b61da7d2829e9025573cde5d23a8b3d9b44da6154a620463adfc1f5455040", + "public/ambience/cafe.wav": "6853c121104940041c268a2891eadae032c17aa22b4c3b3ddfbc025262434995", + "public/ambience/department.wav": "aa43f3d1d3e7c2b1f8ace24ecbda45d0ea3a031db941c39506dc6c1665b8efa7", + "public/ambience/mall.wav": "680a769940c08f0d12c6c954c08366598dd8b5745e276f39c82b10d1a88261a1", + "public/ambience/manifest.json": "2aeae8bb7a1f6e12543ba7e32a233b47b1ebcfdd65c7e55f67fc8f22f8d0f8c1", + "public/ambience/market.wav": "d6f73d86aea98b83e2995e61baaa7315a0ea7adeebc093769d76e1569b207658", + "public/ambience/rain.wav": "f4315084e820f742b0709de5bb0d1abd3d5af1730620e08c2948b70347356dd9", + "public/ambience/street.wav": "a8bffa201b174618955bc51b860167169125304811aabe2086b0bb35b06c3ae1", + "public/ambience/subway.wav": "9faf70b68617d267b367a0f3692ed90015458543ab4b0844f6c704e6a724728f", + "public/ambience/theater.wav": "2d6a444fb7874cdf6b2d8a741a69175299b112eb66834912c025437d8277d635", + "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/manifest.json": "ad2a24d75da19888b724cfb025025f9aa78a49883c610be93082b83edf8f471a", + "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", + "scripts/ambience_audio.py": "bcf3d633056add68b3c894f360584a54f9830d898ae79d2d4ba7db222b1302f3", + "scripts/check-build.mjs": "3b3588392c8c6ec893eb82e9b4a9cf61e9a55d7f85a626ac7040f80dbcc4daf8", + "scripts/generate_audio.py": "7f4a74c1baab3ec2f02ea6c298d19c266bc4bb98123a7fe11659a3afdbc1e2b9", + "scripts/neural_audio.py": "a8b2fa8d4296fd5ccebc09cf4d01d5552a6eba3631e7d8f2214de34790f0501b", + "src/App.tsx": "d05fbcf62b6a6ef3d923e858ccee6234bacc9733f24beee025fc493bf6430587", + "src/audio/assets.ts": "d67cbf8b8a824078187bd5c1bb9a5c70867b77127b8744b4799087fdac176d73", + "src/audio/dsp.ts": "f02f6ebf20b9fe3ca21763fa0c2a00969338750758e93c4468db860a28bfec94", + "src/audio/engine.ts": "80670c8c970b1191889449676b50d8f003d0394d7c520d8677cf00e48d618359", + "src/content.ts": "d5c526bbc95fa27cf74263c83930ac19a39564b7770b0efea29625b4ac30a14c", + "src/game.ts": "9d738fd0935ff899c4da717b5b0dc2b87db3bc7e5f36e96a3c990ba463ea33a0", + "src/main.tsx": "eeab7184c76db4d03f45af69697f19affaaf318de056e36c8782000807d5e88e", + "src/styles.css": "bd1eb826fc167c31580174153d1d8658cfc1c1a9285b236d05aa414a145b535a", + "tests/App.test.tsx": "06ae088c98b6b85d7b7cafdbe80c7d70c437044e47905c21428073928b05d4ce", + "tests/ambience.test.ts": "aa95bc6b2bf20d18460fa7bb25e323f8239e263d0499ebf370017de330d0e25d", + "tests/assets.test.ts": "c99bdfd30209312d8780d3410df4016862342d04d33e54fb6b338d05f4503817", + "tests/audio-requests.test.ts": "07df9eb0df743b020637610660b806de31cbb557a66ccbc65c004e2b9a0998f5", + "tests/audio.test.ts": "5015c95875e737e29d5451ed5683ca7ab37a0669cb087182801015331094c4c2", + "tests/browser/audio-requests.ts": "3dff162cbc5a9b735fb8f911ed83ca04d646ba011511c4f922faf712f8094295", + "tests/browser/audio.spec.ts": "b23d8977ad08391849d8ea2d444796ab5f181ee4f53102f8ce4be9b5b3dd8a2a", + "tests/browser/game.spec.ts": "173fad16b0b2ae1afb04e75b424ccc1fe0677e0ff48a6d4562e8b5dcaf3bdea6", + "tests/browser/release.spec.ts": "53a925dfb0effa689bfd32dab179fcd7f4d037e66d7f85b63740f9e4f1f8b8c6", + "tests/browser/review-fixes.spec.ts": "683daaca67f6186b066a0d27f1e7d8bab99a290b93a70679e9baf1c567c1efae", + "tests/browser/rounds.spec.ts": "5ee8bbedc090c6ce31b9c484631c7ad70f0bc01fe1774ff7a1c3afa8a27cfdee", + "tests/browser/ui.spec.ts": "f544fb3c08e04342c7c2a89d445527c924cd9ea3f6571403700a7ebda674bb64", + "tests/build.test.ts": "7dfc48795f4d18c51f1e84256ed0d7bc89c1ce8ef4e0e8d05ba5a28ca2292818", + "tests/content.test.ts": "3e24eb95e6948a60569d9f428cad224b6fb891388356ba4e54b42a9b6f997a95", + "tests/dsp.test.ts": "52e8685d46045e435052b85c050e2247e23845dfd69b68f1d2c0f25042c2d8af", + "tests/game.test.ts": "5080a0d30fd6530d81536c98aef63652ce8b44e3e6291a7e29323a7ab4aa9f85", + "tests/generator.test.ts": "4832bba7f055b8df52663a860a99e47def86d19ebc8a0ee941ff676e7e3fc1cb", + "tests/neural-release.test.ts": "d0799e51f37c4f97466a954fc5a64331c34c6b359564423ba171585e307675e7", + "tests/playwright-config.test.ts": "896fdec70784b581df9518c7c6fb954000f0df1a4e320308a5db9d8e8aab1ef8", + "tests/python/test_ambience_audio.py": "8c31abdb43752a8b7108dcff30709268a84599bcad4c975d3923893fd930fa2f", + "tests/python/test_neural_audio.py": "969dcd5af9feb658ec5023f9e960e524ece9eaae50f1f3f304558414919b8d1f", + "tests/release.test.ts": "d0eca1d495905517a401f460a7bd487f3e6968b6562096afcd19ef31ca7c4a34", + "tests/setup.ts": "5e018534ee646b800286bcf4a94e5f33a0b8d0759f96fcccf5436f07b2e2a80c" +} diff --git a/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/verify-preservation.py b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/verify-preservation.py new file mode 100644 index 0000000..0d18e29 --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/verify-preservation.py @@ -0,0 +1,74 @@ +"""Check saved baselines against current files without rewriting historical evidence.""" +from datetime import datetime, timezone +import hashlib +import json +from pathlib import Path +import subprocess + +ROOT = Path(__file__).resolve().parents[4] +EVIDENCE = Path(__file__).resolve().parent + +def sha(path): + with path.open('rb') as stream: return hashlib.file_digest(stream, 'sha256').hexdigest() + +baseline = json.loads((EVIDENCE / 'baseline.json').read_text()) +changed, voices, ambience = [], [], [] +for name, before in baseline['wavSha256'].items(): + after = sha(ROOT / name) + if after != before: + assert name in ('public/ambience/market.wav', 'public/ambience/cafe.wav'), name + changed.append({'file': name, 'beforeSha256': before, 'afterSha256': after}) + elif name.startswith('public/audio/'): + voices.append(name) + else: + ambience.append(name) +assert len(voices) == 101 and len(ambience) == 6 and len(changed) == 2 +assert 'public/ambience/mall.wav' in ambience +for name, before in baseline['immutablePriorAttemptFiles'].items(): + assert sha(ROOT / name) == before, name + assert (ROOT / name).stat().st_mode & 0o222 == 0, name +preserved = [] +for name, before in baseline['priorAgentFiles'].items(): + if name in baseline['mutableAgentFiles']: continue + assert sha(ROOT / name) == before, name + preserved.append(name) +older = json.loads((EVIDENCE.parent / 'baseline.json').read_text()) +assert all(sha(ROOT / name) == before for name, before in older['priorAgentFiles'].items() if name not in older['mutableAgentFiles']) +assert all(sha(ROOT / name) == before for name, before in older['wavSha256'].items() + if name not in ('public/ambience/mall.wav', 'public/ambience/market.wav', 'public/ambience/cafe.wav')) +tracked = subprocess.check_output(['git', 'ls-files', '.agent'], cwd=ROOT, text=True).splitlines() +for name in tracked: + saved = subprocess.check_output(['git', 'rev-parse', 'HEAD:' + name], cwd=ROOT, text=True).strip() + actual = subprocess.check_output(['git', 'hash-object', name], cwd=ROOT, text=True).strip() + assert actual == saved, name +before_plan = json.loads((EVIDENCE / 'before-source-plan.json').read_text()) +plan = json.loads((ROOT / '.agent/AMBIENCE-SOURCES-v0.2.3.json').read_text()) +assert [a['environmentId'] for a in before_plan['assets']] == [a['environmentId'] for a in plan['assets']] +for before, after in zip(before_plan['assets'], plan['assets']): + expected = dict(before) + if before['environmentId'] in ('market', 'cafe'): + expected['selectedSegmentStartSeconds'] = {'market':24, 'cafe':0}[before['environmentId']] + assert after == expected, after['environmentId'] +for name in ['manifest.json', 'AMBIENCE_NOTICES.md', *[p.name for p in (ROOT / 'public/ambience').glob('*.wav')]]: + assert (ROOT / 'public/ambience' / name).read_bytes() == (ROOT / 'dist/ambience' / name).read_bytes(), name +screen_path = EVIDENCE.parent / 'final-asr.json' +screen = json.loads(screen_path.read_text()) +assert screen['requiredEmptyPassed'] is True +assert screen['limitations']['humanListeningAcceptance'] is False +assert screen['limitations']['legalPrivacyClearance'] is False +assert sha(ROOT / 'public/ambience/manifest.json') == screen['method']['manifestSha256'] +assert sha(EVIDENCE / 'screen-final.py') == screen['method']['scriptSha256'] +assert sha(EVIDENCE.parent / screen['priorFailedAttempt']['file']) == screen['priorFailedAttempt']['sha256'] +assert sha(EVIDENCE.parent / screen['supplementaryNoVadRun']['file']) == screen['supplementaryNoVadRun']['sha256'] +for entry in screen['files']: + assert sha(ROOT / entry['file']) == entry['sha256'] +report = {'completedAtUtc': datetime.now(timezone.utc).isoformat(), 'voiceWavsUnchanged': len(voices), + 'unaffectedAmbienceWavsUnchanged': 5, 'mallWavUnchanged': True, 'allAmbienceWavsUnchangedInRetry': ambience, + 'changedWavs': changed, 'priorAgentFilesUnchanged': len(preserved), + 'archivedPriorAttemptFilesUnchanged': len(baseline['immutablePriorAttemptFiles']), + 'archiveFilesReadOnly': True, 'gitTrackedHistoricalAgentFilesUnchanged': len(tracked), + 'sourceProvenanceUnchangedExceptAuthorizedStarts': True, 'distMatchesCurrentAmbienceBundle': True, + 'finalScreenMatchesCurrentFilesAndScript': True, 'finalAsrSha256': sha(screen_path), + 'head': subprocess.check_output(['git', 'rev-parse', 'HEAD'], cwd=ROOT, text=True).strip()} +with (EVIDENCE / 'preservation.json').open('x') as out: out.write(json.dumps(report, indent=2) + '\n') +print(json.dumps(report, indent=2)) diff --git a/.agent/evidence-v0.2.3/privacy-screening/screen-final.py b/.agent/evidence-v0.2.3/privacy-screening/screen-final.py new file mode 100644 index 0000000..05f9263 --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/screen-final.py @@ -0,0 +1,68 @@ +"""Offline tiny-model heuristic screening of the exact final WAV bytes; never clearance.""" +from dataclasses import asdict +from datetime import datetime, timezone +import hashlib +from importlib.metadata import version +import inspect +import json +from pathlib import Path +import platform +import sys +import ctranslate2 +from faster_whisper import WhisperModel + +ROOT = Path(__file__).resolve().parents[3] +EVIDENCE = Path(__file__).resolve().parent +REVISION = 'd90ca5fe260221311c53c58e660288d3deb8d356' +SNAPSHOT = Path.home() / '.cache/huggingface/hub/models--Systran--faster-whisper-tiny/snapshots' / REVISION + +def sha(path): + with path.open('rb') as stream: return hashlib.file_digest(stream, 'sha256').hexdigest() + +assert version('faster-whisper') == '1.2.1' +started = datetime.now(timezone.utc).isoformat() +manifest_path = ROOT / 'public/ambience/manifest.json' +manifest_hash = sha(manifest_path) +manifest = json.loads(manifest_path.read_text()) +# Preserve all effective API defaults rather than relying on undocumented invocation settings. +parameters = {name: parameter.default for name, parameter in inspect.signature(WhisperModel.transcribe).parameters.items() + if name not in ('self', 'audio')} +parameters.update(language=None, task='transcribe', beam_size=5, vad_filter=False) +ctranslate2.set_random_seed(0) +model = WhisperModel(str(SNAPSHOT), device='cpu', compute_type='int8', cpu_threads=4, num_workers=1, local_files_only=True) +assert model.model.is_multilingual +results = [] +for entry in manifest['files']: + path = ROOT / 'public/ambience' / entry['file'] + before = sha(path) + assert before == entry['sha256'] and path.stat().st_size == entry['bytes'] + segments, info = model.transcribe(str(path), **parameters) + segments = [asdict(segment) for segment in segments] # Exhaust lazy inference; retain exact unedited results. + assert sha(path) == before + record = {'environmentId': entry['environmentId'], 'file': str(path.relative_to(ROOT)), 'sha256': before, + 'bytes': path.stat().st_size, 'durationSeconds': entry['duration'], + 'selectedSegmentStartSeconds': entry['selectedSegmentStartSeconds'], 'sourceSha256': entry['sourceSha256'], + 'language': info.language, 'languageProbability': info.language_probability, + 'segments': segments, 'text': ''.join(segment['text'] for segment in segments), 'info': asdict(info)} + results.append(record) + print(json.dumps({k: record[k] for k in ('environmentId','sha256','language','languageProbability','segments','text')}, ensure_ascii=False), flush=True) +assert sha(manifest_path) == manifest_hash +required = ['mall', 'market', 'cafe'] +passed = all(result['segments'] == [] for result in results if result['environmentId'] in required) +report = {'schemaVersion': 1, 'startedAtUtc': started, 'completedAtUtc': datetime.now(timezone.utc).isoformat(), + 'tool': {'name': 'faster-whisper', 'version': version('faster-whisper'), 'python': platform.python_version(), + 'dependencies': {name: version(name) for name in ('ctranslate2', 'av', 'numpy', 'tokenizers', 'huggingface-hub')}}, + 'model': {'name': 'tiny', 'multilingual': True, 'repository': 'Systran/faster-whisper-tiny', 'revision': REVISION, + 'files': {path.name: sha(path) for path in sorted(SNAPSHOT.iterdir()) if path.is_file()}}, + 'method': {'input': 'Exact final 12-second public/ambience WAV files, hash verified before and after inference; no source scan, VAD, text editing or manual filtering.', + 'device': 'cpu', 'computeType': 'int8', 'cpuThreads': 4, 'numWorkers': 1, 'randomSeed': 0, + 'offline': True, 'parameters': parameters, 'manifestSha256': manifest_hash, + 'scriptSha256': sha(Path(__file__)), 'command': '/tmp/findword-asr-venv/bin/python .agent/evidence-v0.2.3/privacy-screening/screen-final.py'}, + 'limitations': {'screeningOnly': True, 'humanListeningAcceptance': False, 'legalPrivacyClearance': False, + 'textIsVerifiedTranscript': False, + 'explanation': 'Tiny-model ASR is only a screening signal. Empty segments do not prove absence of speech, music or private conversation. Candidate text and language guesses may be hallucinated and are not faithful transcripts. This is NOT human listening acceptance or legal/privacy clearance.'}, + 'requiredEmptyEnvironmentIds': required, 'requiredEmptyPassed': passed, 'files': results} +with (EVIDENCE / 'final-asr.json').open('x') as stream: + stream.write(json.dumps(report, ensure_ascii=False, indent=2, allow_nan=False) + '\n') +if not passed: sys.exit('Required changed excerpts produced ASR segments; screening criterion failed.') +print('All three changed excerpts have zero emitted segments. Screening signal only; no listening acceptance or legal/privacy clearance.', flush=True) diff --git a/.agent/evidence-v0.2.3/privacy-screening/screen-with-vad-json.py b/.agent/evidence-v0.2.3/privacy-screening/screen-with-vad-json.py new file mode 100644 index 0000000..aa8a59d --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/screen-with-vad-json.py @@ -0,0 +1,78 @@ +"""Offline tiny-model heuristic screening of the exact final WAV bytes; never clearance.""" +from dataclasses import asdict +from datetime import datetime, timezone +import hashlib +from importlib.metadata import version +import inspect +import json +import math +from pathlib import Path +import platform +import sys +import ctranslate2 +from faster_whisper import WhisperModel + +ROOT = Path(__file__).resolve().parents[3] +EVIDENCE = Path(__file__).resolve().parent +REVISION = 'd90ca5fe260221311c53c58e660288d3deb8d356' +SNAPSHOT = Path.home() / '.cache/huggingface/hub/models--Systran--faster-whisper-tiny/snapshots' / REVISION + +def json_safe(value): + # JSON has no infinity; retain its exact semantic value as an explicit tagged object. + if isinstance(value, float) and not math.isfinite(value): + return {'nonFiniteFloat': 'NaN' if math.isnan(value) else 'Infinity' if value > 0 else '-Infinity'} + if isinstance(value, dict): return {key: json_safe(item) for key, item in value.items()} + if isinstance(value, (list, tuple)): return [json_safe(item) for item in value] + return value + +def sha(path): + with path.open('rb') as stream: return hashlib.file_digest(stream, 'sha256').hexdigest() + +assert version('faster-whisper') == '1.2.1' +started = datetime.now(timezone.utc).isoformat() +manifest_path = ROOT / 'public/ambience/manifest.json' +manifest_hash = sha(manifest_path) +manifest = json.loads(manifest_path.read_text()) +# Preserve all effective API defaults rather than relying on undocumented invocation settings. +parameters = {name: parameter.default for name, parameter in inspect.signature(WhisperModel.transcribe).parameters.items() + if name not in ('self', 'audio')} +parameters.update(language=None, task='transcribe', beam_size=5, vad_filter=True) +ctranslate2.set_random_seed(0) +model = WhisperModel(str(SNAPSHOT), device='cpu', compute_type='int8', cpu_threads=4, num_workers=1, local_files_only=True) +assert model.model.is_multilingual +results = [] +for entry in manifest['files']: + path = ROOT / 'public/ambience' / entry['file'] + before = sha(path) + assert before == entry['sha256'] and path.stat().st_size == entry['bytes'] + segments, info = model.transcribe(str(path), **parameters) + segments = [asdict(segment) for segment in segments] # Exhaust lazy inference; retain exact unedited results. + assert sha(path) == before + record = {'environmentId': entry['environmentId'], 'file': str(path.relative_to(ROOT)), 'sha256': before, + 'bytes': path.stat().st_size, 'durationSeconds': entry['duration'], + 'selectedSegmentStartSeconds': entry['selectedSegmentStartSeconds'], 'sourceSha256': entry['sourceSha256'], + 'language': info.language, 'languageProbability': info.language_probability, + 'segments': segments, 'text': ''.join(segment['text'] for segment in segments), 'info': asdict(info)} + results.append(record) + print(json.dumps({k: record[k] for k in ('environmentId','sha256','language','languageProbability','segments','text')}, ensure_ascii=False), flush=True) +assert sha(manifest_path) == manifest_hash +required = ['mall', 'market', 'cafe'] +passed = all(result['segments'] == [] for result in results if result['environmentId'] in required) +report = {'schemaVersion': 1, 'startedAtUtc': started, 'completedAtUtc': datetime.now(timezone.utc).isoformat(), + 'tool': {'name': 'faster-whisper', 'version': version('faster-whisper'), 'python': platform.python_version(), + 'dependencies': {name: version(name) for name in ('ctranslate2', 'av', 'numpy', 'tokenizers', 'huggingface-hub')}}, + 'model': {'name': 'tiny', 'multilingual': True, 'repository': 'Systran/faster-whisper-tiny', 'revision': REVISION, + 'files': {path.name: sha(path) for path in sorted(SNAPSHOT.iterdir()) if path.is_file()}}, + 'method': {'input': 'Exact final 12-second public/ambience WAV files, hash verified before and after inference; built-in Silero VAD with package defaults, no text editing or manual filtering.', + 'device': 'cpu', 'computeType': 'int8', 'cpuThreads': 4, 'numWorkers': 1, 'randomSeed': 0, + 'nonFiniteNumberEncoding': 'Non-finite default options use {nonFiniteFloat: Infinity|-Infinity|NaN} tagged objects; no ASR segments or text are discarded.', 'offline': True, 'parameters': parameters, 'manifestSha256': manifest_hash, + 'vadModelSha256': sha(Path(__import__('faster_whisper').__file__).parent / 'assets/silero_vad_v6.onnx'), 'scriptSha256': sha(Path(__file__)), 'command': '/tmp/findword-asr-venv/bin/python .agent/evidence-v0.2.3/privacy-screening/screen-with-vad-json.py'}, + 'limitations': {'screeningOnly': True, 'humanListeningAcceptance': False, 'legalPrivacyClearance': False, + 'textIsVerifiedTranscript': False, + 'explanation': 'Tiny-model ASR is only a screening signal. Empty segments do not prove absence of speech, music or private conversation. Candidate text and language guesses may be hallucinated and are not faithful transcripts. This is NOT human listening acceptance or legal/privacy clearance.'}, + 'supplementaryNoVadRun': {'file': 'no-vad-asr.json', 'sha256': sha(EVIDENCE / 'no-vad-asr.json'), 'requiredEmptyPassed': False, 'explanation': 'The separate unfiltered run emitted candidate segments for all three changed excerpts. The primary VAD-enabled screen does not supersede or invalidate that evidence. Neo original VAD/decoder settings were not recorded, so methodological equivalence is unverified.'}, 'requiredEmptyEnvironmentIds': required, 'requiredEmptyPassed': passed, 'files': results} +serialized = json.dumps(json_safe(report), ensure_ascii=False, indent=2, allow_nan=False) + '\n' +with (EVIDENCE / 'final-asr.json').open('x') as stream: + stream.write(serialized) +if not passed: sys.exit('Required changed excerpts produced ASR segments; screening criterion failed.') +print('All three changed excerpts have zero emitted segments. Screening signal only; no listening acceptance or legal/privacy clearance.', flush=True) diff --git a/.agent/evidence-v0.2.3/privacy-screening/screen-with-vad.py b/.agent/evidence-v0.2.3/privacy-screening/screen-with-vad.py new file mode 100644 index 0000000..7861b11 --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/screen-with-vad.py @@ -0,0 +1,68 @@ +"""Offline tiny-model heuristic screening of the exact final WAV bytes; never clearance.""" +from dataclasses import asdict +from datetime import datetime, timezone +import hashlib +from importlib.metadata import version +import inspect +import json +from pathlib import Path +import platform +import sys +import ctranslate2 +from faster_whisper import WhisperModel + +ROOT = Path(__file__).resolve().parents[3] +EVIDENCE = Path(__file__).resolve().parent +REVISION = 'd90ca5fe260221311c53c58e660288d3deb8d356' +SNAPSHOT = Path.home() / '.cache/huggingface/hub/models--Systran--faster-whisper-tiny/snapshots' / REVISION + +def sha(path): + with path.open('rb') as stream: return hashlib.file_digest(stream, 'sha256').hexdigest() + +assert version('faster-whisper') == '1.2.1' +started = datetime.now(timezone.utc).isoformat() +manifest_path = ROOT / 'public/ambience/manifest.json' +manifest_hash = sha(manifest_path) +manifest = json.loads(manifest_path.read_text()) +# Preserve all effective API defaults rather than relying on undocumented invocation settings. +parameters = {name: parameter.default for name, parameter in inspect.signature(WhisperModel.transcribe).parameters.items() + if name not in ('self', 'audio')} +parameters.update(language=None, task='transcribe', beam_size=5, vad_filter=True) +ctranslate2.set_random_seed(0) +model = WhisperModel(str(SNAPSHOT), device='cpu', compute_type='int8', cpu_threads=4, num_workers=1, local_files_only=True) +assert model.model.is_multilingual +results = [] +for entry in manifest['files']: + path = ROOT / 'public/ambience' / entry['file'] + before = sha(path) + assert before == entry['sha256'] and path.stat().st_size == entry['bytes'] + segments, info = model.transcribe(str(path), **parameters) + segments = [asdict(segment) for segment in segments] # Exhaust lazy inference; retain exact unedited results. + assert sha(path) == before + record = {'environmentId': entry['environmentId'], 'file': str(path.relative_to(ROOT)), 'sha256': before, + 'bytes': path.stat().st_size, 'durationSeconds': entry['duration'], + 'selectedSegmentStartSeconds': entry['selectedSegmentStartSeconds'], 'sourceSha256': entry['sourceSha256'], + 'language': info.language, 'languageProbability': info.language_probability, + 'segments': segments, 'text': ''.join(segment['text'] for segment in segments), 'info': asdict(info)} + results.append(record) + print(json.dumps({k: record[k] for k in ('environmentId','sha256','language','languageProbability','segments','text')}, ensure_ascii=False), flush=True) +assert sha(manifest_path) == manifest_hash +required = ['mall', 'market', 'cafe'] +passed = all(result['segments'] == [] for result in results if result['environmentId'] in required) +report = {'schemaVersion': 1, 'startedAtUtc': started, 'completedAtUtc': datetime.now(timezone.utc).isoformat(), + 'tool': {'name': 'faster-whisper', 'version': version('faster-whisper'), 'python': platform.python_version(), + 'dependencies': {name: version(name) for name in ('ctranslate2', 'av', 'numpy', 'tokenizers', 'huggingface-hub')}}, + 'model': {'name': 'tiny', 'multilingual': True, 'repository': 'Systran/faster-whisper-tiny', 'revision': REVISION, + 'files': {path.name: sha(path) for path in sorted(SNAPSHOT.iterdir()) if path.is_file()}}, + 'method': {'input': 'Exact final 12-second public/ambience WAV files, hash verified before and after inference; built-in Silero VAD with package defaults, no text editing or manual filtering.', + 'device': 'cpu', 'computeType': 'int8', 'cpuThreads': 4, 'numWorkers': 1, 'randomSeed': 0, + 'offline': True, 'parameters': parameters, 'manifestSha256': manifest_hash, + 'vadModelSha256': sha(Path(__import__('faster_whisper').__file__).parent / 'assets/silero_vad_v6.onnx'), 'scriptSha256': sha(Path(__file__)), 'command': '/tmp/findword-asr-venv/bin/python .agent/evidence-v0.2.3/privacy-screening/screen-with-vad.py'}, + 'limitations': {'screeningOnly': True, 'humanListeningAcceptance': False, 'legalPrivacyClearance': False, + 'textIsVerifiedTranscript': False, + 'explanation': 'Tiny-model ASR is only a screening signal. Empty segments do not prove absence of speech, music or private conversation. Candidate text and language guesses may be hallucinated and are not faithful transcripts. This is NOT human listening acceptance or legal/privacy clearance.'}, + 'supplementaryNoVadRun': {'file': 'no-vad-asr.json', 'sha256': sha(EVIDENCE / 'no-vad-asr.json'), 'requiredEmptyPassed': False, 'explanation': 'The separate unfiltered run emitted candidate segments for all three changed excerpts. The primary VAD-enabled screen does not supersede or invalidate that evidence. Neo original VAD/decoder settings were not recorded, so methodological equivalence is unverified.'}, 'requiredEmptyEnvironmentIds': required, 'requiredEmptyPassed': passed, 'files': results} +with (EVIDENCE / 'final-asr.json').open('x') as stream: + stream.write(json.dumps(report, ensure_ascii=False, indent=2, allow_nan=False) + '\n') +if not passed: sys.exit('Required changed excerpts produced ASR segments; screening criterion failed.') +print('All three changed excerpts have zero emitted segments. Screening signal only; no listening acceptance or legal/privacy clearance.', flush=True) diff --git a/.agent/evidence-v0.2.3/privacy-screening/seek-diagnostics-followup.json b/.agent/evidence-v0.2.3/privacy-screening/seek-diagnostics-followup.json new file mode 100644 index 0000000..d2b1680 --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/seek-diagnostics-followup.json @@ -0,0 +1,48 @@ +[ + { + "method": "sample_trim_continuous_pts", + "command": [ + "ffmpeg", + "-v", + "error", + "-i", + "/tmp/findword-ambience-sources/cafe.ogg", + "-af", + "aresample=24000,atrim=start_sample=4320000:end_sample=4608000,asetpts=N/SR/TB", + "-t", + "12", + "-ar", + "24000", + "-ac", + "1", + "-f", + "f32le", + "pipe:1" + ], + "frames": 288000, + "exitCode": 0, + "stderr": "" + }, + { + "method": "sample_trim_no_duration_limit", + "command": [ + "ffmpeg", + "-v", + "error", + "-i", + "/tmp/findword-ambience-sources/cafe.ogg", + "-af", + "aresample=24000,atrim=start_sample=4320000:end_sample=4608000,asetpts=PTS-STARTPTS", + "-ar", + "24000", + "-ac", + "1", + "-f", + "f32le", + "pipe:1" + ], + "frames": 288000, + "exitCode": 0, + "stderr": "" + } +] diff --git a/.agent/evidence-v0.2.3/privacy-screening/seek-diagnostics.json b/.agent/evidence-v0.2.3/privacy-screening/seek-diagnostics.json new file mode 100644 index 0000000..c6d9894 --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/seek-diagnostics.json @@ -0,0 +1,152 @@ +[ + { + "environmentId": "market", + "method": "input_seek", + "command": [ + "ffmpeg", + "-v", + "error", + "-ss", + "60", + "-i", + "/tmp/findword-ambience-sources/market.ogg", + "-t", + "12", + "-ar", + "24000", + "-ac", + "1", + "-f", + "f32le", + "pipe:1" + ], + "exitCode": 0, + "frames": 287958, + "stderr": "" + }, + { + "environmentId": "market", + "method": "output_seek", + "command": [ + "ffmpeg", + "-v", + "error", + "-i", + "/tmp/findword-ambience-sources/market.ogg", + "-ss", + "60", + "-t", + "12", + "-ar", + "24000", + "-ac", + "1", + "-f", + "f32le", + "pipe:1" + ], + "exitCode": 0, + "frames": 288000, + "stderr": "" + }, + { + "environmentId": "market", + "method": "sample_trim", + "command": [ + "ffmpeg", + "-v", + "error", + "-i", + "/tmp/findword-ambience-sources/market.ogg", + "-af", + "aresample=24000,atrim=start_sample=1440000:end_sample=1728000,asetpts=PTS-STARTPTS", + "-t", + "12", + "-ar", + "24000", + "-ac", + "1", + "-f", + "f32le", + "pipe:1" + ], + "exitCode": 0, + "frames": 288000, + "stderr": "" + }, + { + "environmentId": "cafe", + "method": "input_seek", + "command": [ + "ffmpeg", + "-v", + "error", + "-ss", + "180", + "-i", + "/tmp/findword-ambience-sources/cafe.ogg", + "-t", + "12", + "-ar", + "24000", + "-ac", + "1", + "-f", + "f32le", + "pipe:1" + ], + "exitCode": 0, + "frames": 287809, + "stderr": "" + }, + { + "environmentId": "cafe", + "method": "output_seek", + "command": [ + "ffmpeg", + "-v", + "error", + "-i", + "/tmp/findword-ambience-sources/cafe.ogg", + "-ss", + "180", + "-t", + "12", + "-ar", + "24000", + "-ac", + "1", + "-f", + "f32le", + "pipe:1" + ], + "exitCode": 0, + "frames": 287809, + "stderr": "" + }, + { + "environmentId": "cafe", + "method": "sample_trim", + "command": [ + "ffmpeg", + "-v", + "error", + "-i", + "/tmp/findword-ambience-sources/cafe.ogg", + "-af", + "aresample=24000,atrim=start_sample=4320000:end_sample=4608000,asetpts=PTS-STARTPTS", + "-t", + "12", + "-ar", + "24000", + "-ac", + "1", + "-f", + "f32le", + "pipe:1" + ], + "exitCode": 0, + "frames": 287809, + "stderr": "" + } +] diff --git a/.agent/evidence-v0.2.3/privacy-screening/validation-summary.json b/.agent/evidence-v0.2.3/privacy-screening/validation-summary.json new file mode 100644 index 0000000..1924f9b --- /dev/null +++ b/.agent/evidence-v0.2.3/privacy-screening/validation-summary.json @@ -0,0 +1,121 @@ +{ + "completedAtUtc": "2026-10-14T09:41:28.406402+00:00", + "scope": "Requested automated release/screening checks only. Human listening acceptance and legal/privacy clearance were not performed.", + "implementationAndAtomicRegenerationComplete": true, + "allRequestedAutomatedAcceptanceChecksPassed": true, + "requiredEmptyPassed": true, + "humanListeningAcceptance": false, + "legalPrivacyClearance": false, + "blockingAutomatedCriterion": null, + "checks": { + "lint": { + "exitCode": 0, + "log": "05-lint.log" + }, + "unit": { + "exitCode": 0, + "files": 13, + "passed": 125, + "failed": 0, + "skipped": 0, + "log": "05-unit.log" + }, + "python": { + "exitCode": 0, + "passed": 36, + "failed": 0, + "skipped": 0, + "log": "05-python.log" + }, + "build": { + "exitCode": 0, + "voiceFiles": 101, + "ambienceFiles": 8, + "log": "05-build.log" + }, + "audit": { + "exitCode": 0, + "vulnerabilities": 0, + "evidence": "npm-audit.json" + }, + "sandboxedChrome": { + "exitCode": 0, + "passed": 30, + "failed": 0, + "skipped": 0, + "flaky": 0, + "durationMs": 240675.669, + "projects": [ + "desktop", + "mobile" + ], + "evidence": "browser-results.json", + "sandboxEvidence": "chrome-sandbox.json" + } + }, + "asr": { + "evidence": "../final-asr.json", + "sha256": "82df338d83f7b6c8b6b04ecf43c7218b6787cc1b72d73d5c898197ec957a7070", + "method": "faster-whisper 1.2.1 tiny multilingual CPU int8; beam_size=5, best_of=5, default VAD, condition_on_previous_text=true", + "selectedRequiredStarts": { + "mall": 36, + "market": 24, + "cafe": 0 + }, + "segmentsByEnvironment": { + "street": 0, + "mall": 0, + "theater": 0, + "department": 0, + "market": 0, + "subway": 0, + "cafe": 0, + "rain": 0 + }, + "requiredEmptyPassed": true, + "screeningOnly": true, + "humanListeningAcceptance": false, + "legalPrivacyClearance": false, + "priorFailedAttempt": "../prior-attempt-market60-cafe180/final-asr.json", + "historicalNoVadEvidence": "../no-vad-asr.json", + "noVadLimitation": "Historical candidate text may be hallucinated, does not screen new market/cafe files and does not override the VAD gate. Neither method proves absence of speech/music." + }, + "preservation": { + "completedAtUtc": "2026-10-14T09:37:31.286690+00:00", + "voiceWavsUnchanged": 101, + "unaffectedAmbienceWavsUnchanged": 5, + "mallWavUnchanged": true, + "allAmbienceWavsUnchangedInRetry": [ + "public/ambience/department.wav", + "public/ambience/mall.wav", + "public/ambience/rain.wav", + "public/ambience/street.wav", + "public/ambience/subway.wav", + "public/ambience/theater.wav" + ], + "changedWavs": [ + { + "file": "public/ambience/cafe.wav", + "beforeSha256": "802a956e91b85a2fdd0e1f161d75bfada7a53499bcb57ba7f578411480ded216", + "afterSha256": "6853c121104940041c268a2891eadae032c17aa22b4c3b3ddfbc025262434995" + }, + { + "file": "public/ambience/market.wav", + "beforeSha256": "7a7a980845a4aade2a7e8a108eae746220a4688e92792ee93d3deb76b2a762f6", + "afterSha256": "d6f73d86aea98b83e2995e61baaa7315a0ea7adeebc093769d76e1569b207658" + } + ], + "priorAgentFilesUnchanged": 484, + "archivedPriorAttemptFilesUnchanged": 89, + "archiveFilesReadOnly": true, + "gitTrackedHistoricalAgentFilesUnchanged": 180, + "sourceProvenanceUnchangedExceptAuthorizedStarts": true, + "distMatchesCurrentAmbienceBundle": true, + "finalScreenMatchesCurrentFilesAndScript": true, + "finalAsrSha256": "82df338d83f7b6c8b6b04ecf43c7218b6787cc1b72d73d5c898197ec957a7070", + "head": "c92660b514f7af8eb556d3fa5c0fc80e4bdd4cf5" + }, + "head": "c92660b514f7af8eb556d3fa5c0fc80e4bdd4cf5", + "commitPushMergeTagDeployPerformed": false, + "evidenceBaseDirectory": "retry-market24-cafe0" +} diff --git a/.agent/evidence-v0.2.3/rain-download.log b/.agent/evidence-v0.2.3/rain-download.log new file mode 100644 index 0000000..f331bf3 --- /dev/null +++ b/.agent/evidence-v0.2.3/rain-download.log @@ -0,0 +1,3 @@ + % Total % Received % Xferd Average Speed Time Time Time Current + Dload Upload Total Spent Left Speed + 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 0 86.9M 0 192k 0 0 264k 0 0:05:36 --:--:-- 0:05:36 264k 28 86.9M 28 24.5M 0 0 14.2M 0 0:00:06 0:00:01 0:00:05 14.2M 61 86.9M 61 53.7M 0 0 19.6M 0 0:00:04 0:00:02 0:00:02 19.6M 95 86.9M 95 82.8M 0 0 22.2M 0 0:00:03 0:00:03 --:--:-- 22.2M 100 86.9M 100 86.9M 0 0 22.4M 0 0:00:03 0:00:03 --:--:-- 22.4M diff --git a/.agent/evidence-v0.2.3/review-fixes/01-ui-GREEN-02.log b/.agent/evidence-v0.2.3/review-fixes/01-ui-GREEN-02.log new file mode 100644 index 0000000..f72f408 --- /dev/null +++ b/.agent/evidence-v0.2.3/review-fixes/01-ui-GREEN-02.log @@ -0,0 +1,12 @@ +$ npx vitest run tests/App.test.tsx tests/neural-release.test.ts + + RUN v5.0.4 /home/hermes/worktrees/find-word-v0.2.3 + + + Test Files 2 passed (2) + Tests 27 passed (27) + Start at 08:48:26 + Duration 4.75s (tests 80%, environment 12%, setup 5%, transform 2%, import 1%) + + +EXIT_CODE=0 diff --git a/.agent/evidence-v0.2.3/review-fixes/01-ui-GREEN.log b/.agent/evidence-v0.2.3/review-fixes/01-ui-GREEN.log new file mode 100644 index 0000000..cf16746 --- /dev/null +++ b/.agent/evidence-v0.2.3/review-fixes/01-ui-GREEN.log @@ -0,0 +1,569 @@ +$ npx vitest run tests/App.test.tsx tests/neural-release.test.ts + + RUN v5.0.4 /home/hermes/worktrees/find-word-v0.2.3 + + ❯ tests/App.test.tsx (23 tests | 1 failed) 3909ms + ❯ 시작부터 결과까지 사용자 흐름 (13) + × 혼합 모드 세 문제를 키보드·텍스트로 풀고 결과에서 다시 시작한다 403ms + +⎯⎯⎯⎯⎯⎯⎯ Failed Tests 1 ⎯⎯⎯⎯⎯⎯⎯ + + FAIL tests/App.test.tsx > 시작부터 결과까지 사용자 흐름 > 혼합 모드 세 문제를 키보드·텍스트로 풀고 결과에서 다시 시작한다 +TestingLibraryElementError: Unable to find an accessible element with the role "heading" and name `/오늘의 소리 탐험/` + +Here are the accessible roles: + + link: + + Name "본문으로 건너뛰기": +  + + Name "환경음 출처·라이선스": +  + + -------------------------------------------------- + banner: + + Name "": +  + + -------------------------------------------------- + heading: + + Name "단어를 맞춰라": + 

 + + Name "1단계 문제 풀이를 마쳤어요.": +  + + -------------------------------------------------- + main: + + Name "": +  + + -------------------------------------------------- + paragraph: + + Name "": +  + + Name "": + 

 + + Name "": +  + + Name "": + 

 + + Name "": + 

 + + -------------------------------------------------- + strong: + + Name "": +  + + Name "": +  + + Name "": +  + + -------------------------------------------------- + table: + + Name "난이도별 결과": +  + + -------------------------------------------------- + rowgroup: + + Name "": +  + + Name "": +  + + -------------------------------------------------- + row: + + Name "난이도 SNR 맞힌 문제": +  + + Name "1단계 SNR +6 dB 3 / 3": +  + + Name "2단계 SNR +3 dB 미진행": +  + + Name "3단계 SNR 0 dB 미진행": +  + + Name "4단계 SNR -3 dB 미진행": +  + + Name "5단계 SNR -6 dB 미진행": +  + + -------------------------------------------------- + columnheader: + + Name "난이도": +  + + Name "SNR": +  + + Name "맞힌 문제": +  + + -------------------------------------------------- + rowheader: + + Name "1단계": +  + + Name "2단계": +  + + Name "3단계": +  + + Name "4단계": +  + + Name "5단계": +  + + -------------------------------------------------- + cell: + + Name "SNR +6 dB": +  + + Name "3 / 3": +  + + Name "SNR +3 dB": +  + + Name "미진행": +  + + Name "SNR 0 dB": +  + + Name "미진행": +  + + Name "SNR -3 dB": +  + + Name "미진행": +  + + Name "SNR -6 dB": +  + + Name "미진행": +  + + -------------------------------------------------- + button: + + Name "다음 난이도 · 2단계": +  + + Name "처음 화면으로": +  + + -------------------------------------------------- + slider: + + Name "전체 음량": +  + + -------------------------------------------------- + status: + + Name "": +  + + -------------------------------------------------- + contentinfo: + + Name "": +  + + -------------------------------------------------- + +Ignored nodes: comments, script, style + + 

 +  + 본문으로 건너뛰기 +  +  +  +  +  +  +  +  +  + 

 + 단어를 맞춰라 + 

 +  + v0.2.3 +  + 
 +  +  + 소리에 집중하는 시간 +  +  +  +  +  + 세 번의 귀 기울임, 하나의 발견 +  +  +  +  +  +  +  +  +  + S +  +  +  +  + 1단계 문제 풀이를 마쳤어요. + 

 +  + 이번 단계의 결과를 확인하고 다음 도전을 이어 가세요. + 

 + 

 + 응답  + 3 + 문항 · 정답  + 3 + 문항 + 

 +  + 
 +  + 330 +  +  + 총 점수 +  + 
 + 
 +  + 100% +  +  + 정답률 ·  + 3/3 +  + 
 + 
 +  + 3 +  + 회 +  +  +  + 최고 연속 정답 +  + 
 +  +  +  +  +  + 난이도 +  +  + SNR +  +  + 맞힌 문제 +  +  +  +  +  +  + 1 + 단계 +  +  + SNR +6 dB +  +  + 3 / 3 +  +  +  +  + 2 + 단계 +  +  + SNR +3 dB +  +  + 미진행 +  +  +  +  + 3 + 단계 +  +  + SNR 0 dB +  +  + 미진행 +  +  +  +  + 4 + 단계 +  +  + SNR -3 dB +  +  + 미진행 +  +  +  +  + 5 + 단계 +  +  + SNR -6 dB +  +  + 미진행 +  +  +  +  +  + 정답마다 단계 × 100점 + 연속 정답 보너스 (문항별 최대 +   + 20 + 점, 라운드 합계 최대 +   + 30 + 점) + 

 +  + 다음 난이도 · 2단계 +  +  + 처음 화면으로 +  +  +  +  +  + ◖)) +  +  전체 음량 +  +  +  + 35 + % +  +  +  +  + 

 + Designed by OZ at Heat-T Medical Inc. + 

 + 

 + 청각적 주의·식별 게임 · 의료적 진단이나 치료를 제공하지 않습니다. + 

 +  + 개인정보 수집 없이, 오직 플레이만. +  +  + 환경음 출처·라이선스 +  +  +  + + ❯ Object.getElementError node_modules/@testing-library/dom/dist/config.js:37:19 + ❯ node_modules/@testing-library/dom/dist/query-helpers.js:76:38 + ❯ node_modules/@testing-library/dom/dist/query-helpers.js:52:17 + ❯ node_modules/@testing-library/dom/dist/query-helpers.js:95:19 + ❯ tests/App.test.tsx:269:14 + 267| } + 268| expect( + 269| screen.getByRole("heading", { name: /오늘의 소리 탐험/ }), + | ^ + 270| ).toBeInTheDocument(); + 271| expect(screen.getByText("100%")).toBeInTheDocument(); + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[1/1]⎯ + + + Test Files 1 failed | 1 passed (2) + Tests 1 failed | 26 passed (27) + Start at 08:48:05 + Duration 4.93s (tests 79%, environment 13%, setup 4%, transform 2%, import 1%) + + +EXIT_CODE=1 diff --git a/.agent/evidence-v0.2.3/review-fixes/01-ui-RED.log b/.agent/evidence-v0.2.3/review-fixes/01-ui-RED.log new file mode 100644 index 0000000..ec4662d --- /dev/null +++ b/.agent/evidence-v0.2.3/review-fixes/01-ui-RED.log @@ -0,0 +1,2347 @@ +$ npx vitest run tests/App.test.tsx tests/neural-release.test.ts + + RUN v5.0.4 /home/hermes/worktrees/find-word-v0.2.3 + + ❯ tests/neural-release.test.ts (4 tests | 1 failed) 54ms + × README는 현재 리뷰 증거 경로와 정확한 라운드 보너스를 안내한다 44ms + ❯ tests/App.test.tsx (23 tests | 6 failed) 6299ms + × 오디오 started=false 중 종료는 즉시 정지하고 결과를 거쳐 홈으로 간다 227ms + × 오디오 started=true 중 종료는 즉시 정지하고 결과를 거쳐 홈으로 간다 208ms + × 5단계 완료는 6단계 대신 같은 단계의 새 세 문항을 시작한다 601ms + × 세 문항 라운드에서 가능한 연속 정답 보너스 상한을 설명한다 100ms + × 현재 문항 진행률은 1/3→2/3→3/3이고 1단계 만점은 330점이다 221ms + × 무응답 종료는 정답률 대신 미응답 상태와 단계별 미진행을 보여 준다 215ms + +⎯⎯⎯⎯⎯⎯⎯ Failed Tests 7 ⎯⎯⎯⎯⎯⎯⎯ + + FAIL tests/App.test.tsx > 오디오 started=false 중 종료는 즉시 정지하고 결과를 거쳐 홈으로 간다 + FAIL tests/App.test.tsx > 오디오 started=true 중 종료는 즉시 정지하고 결과를 거쳐 홈으로 간다 +TestingLibraryElementError: Unable to find an accessible element with the role "heading" and name "문제 풀이를 중간에 종료했어요." + +Here are the accessible roles: + + link: + + Name "본문으로 건너뛰기": +  + + Name "환경음 출처·라이선스": +  + + -------------------------------------------------- + banner: + + Name "": +  + + -------------------------------------------------- + heading: + + Name "단어를 맞춰라": + 

 + + Name "문제 풀이를 종료했어요.": +  + + -------------------------------------------------- + main: + + Name "": +  + + -------------------------------------------------- + paragraph: + + Name "": +  + + Name "": + 

 + + Name "": +  + + Name "": + 

 + + Name "": + 

 + + -------------------------------------------------- + strong: + + Name "": +  + + Name "": +  + + Name "": +  + + -------------------------------------------------- + table: + + Name "난이도별 결과": +  + + -------------------------------------------------- + rowgroup: + + Name "": +  + + Name "": +  + + -------------------------------------------------- + row: + + Name "난이도 SNR 맞힌 문제": +  + + Name "1단계 SNR +6 dB 0 / 0": +  + + Name "2단계 SNR +3 dB 0 / 0": +  + + Name "3단계 SNR 0 dB 0 / 0": +  + + Name "4단계 SNR -3 dB 0 / 0": +  + + Name "5단계 SNR -6 dB 0 / 0": +  + + -------------------------------------------------- + columnheader: + + Name "난이도": +  + + Name "SNR": +  + + Name "맞힌 문제": +  + + -------------------------------------------------- + rowheader: + + Name "1단계": +  + + Name "2단계": +  + + Name "3단계": +  + + Name "4단계": +  + + Name "5단계": +  + + -------------------------------------------------- + cell: + + Name "SNR +6 dB": +  + + Name "0 / 0": +  + + Name "SNR +3 dB": +  + + Name "0 / 0": +  + + Name "SNR 0 dB": +  + + Name "0 / 0": +  + + Name "SNR -3 dB": +  + + Name "0 / 0": +  + + Name "SNR -6 dB": +  + + Name "0 / 0": +  + + -------------------------------------------------- + button: + + Name "처음 화면으로": +  + + -------------------------------------------------- + slider: + + Name "전체 음량": +  + + -------------------------------------------------- + status: + + Name "": +  + + -------------------------------------------------- + contentinfo: + + Name "": +  + + -------------------------------------------------- + +Ignored nodes: comments, script, style + + 

 +  + 본문으로 건너뛰기 +  +  +  +  +  +  +  +  +  + 

 + 단어를 맞춰라 + 

 +  + v0.2.3 +  + 
 +  +  + 소리에 집중하는 시간 +  +  +  +  +  + 지금까지의 소리 탐험 +  +  +  +  +  +  +  +  +  + S +  +  +  +  + 문제 풀이를 종료했어요. + 

 +  + 작은 소리에 집중한 당신, 다음 탐험에서도 만나요. + 

 + 

 + 응답  + 0 + 문항 · 정답  + 0 + 문항 + 

 +  + 
 +  + 0 +  +  + 총 점수 +  + 
 + 
 +  + 0 + % +  +  + 정답률 ·  + 0 + / + 0 +  + 
 + 
 +  + 0 +  + 회 +  +  +  + 최고 연속 정답 +  + 
 +  +  +  +  +  + 난이도 +  +  + SNR +  +  + 맞힌 문제 +  +  +  +  +  +  + 1 + 단계 +  +  + SNR +6 dB +  +  + 0 +  /  + 0 +  +  +  +  + 2 + 단계 +  +  + SNR +3 dB +  +  + 0 +  /  + 0 +  +  +  +  + 3 + 단계 +  +  + SNR 0 dB +  +  + 0 +  /  + 0 +  +  +  +  + 4 + 단계 +  +  + SNR -3 dB +  +  + 0 +  /  + 0 +  +  +  +  + 5 + 단계 +  +  + SNR -6 dB +  +  + 0 +  /  + 0 +  +  +  +  +  + 단계 × 100점 + 연속 정답 보너스 (라운드 내 최대 +   + 20 + 점) + 

 +  + 처음 화면으로 +  +  +  +  +  + ◖)) +  +  전체 음량 +  +  +  + 35 + % +  +  +  +  + 

 + Designed by OZ at Heat-T Medical Inc. + 

 + 

 + 청각적 주의·식별 게임 · 의료적 진단이나 치료를 제공하지 않습니다. + 

 +  + 개인정보 수집 없이, 오직 플레이만. +  +  + 환경음 출처·라이선스 +  +  +  + + ❯ Object.getElementError node_modules/@testing-library/dom/dist/config.js:37:19 + ❯ node_modules/@testing-library/dom/dist/query-helpers.js:76:38 + ❯ node_modules/@testing-library/dom/dist/query-helpers.js:52:17 + ❯ node_modules/@testing-library/dom/dist/query-helpers.js:95:19 + ❯ tests/App.test.tsx:415:14 + 413| expect(f.audio.stop).toHaveBeenCalledOnce(); + 414| expect( + 415| screen.getByRole("heading", { name: "문제 풀이를 중간에 종료했어요." }), + | ^ + 416| ).toHaveFocus(); + 417| expect(screen.getByText("응답 0문항 · 정답 0문항")).toBeInTheDocument(); + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[1/8]⎯ + + FAIL tests/App.test.tsx > 5단계 완료는 6단계 대신 같은 단계의 새 세 문항을 시작한다 +Error: expect(element).toHaveAttribute("value", "1") // element.getAttribute("value") === "1" + +Expected the element to have attribute: + value="1" +Received: + value="0" + ❯ tests/App.test.tsx:477:43 + 475| ); + 476| expect(screen.getByRole("progressbar")).toHaveAttribute("max", "3"); + 477| expect(screen.getByRole("progressbar")).toHaveAttribute("value", "1"… + | ^ + 478| await f.finish(); + 479| }); + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[2/8]⎯ + + FAIL tests/App.test.tsx > 세 문항 라운드에서 가능한 연속 정답 보너스 상한을 설명한다 +TestingLibraryElementError: Unable to find an element with the text: 정답마다 단계 × 100점 + 연속 정답 보너스 (문항별 최대 20점, 라운드 합계 최대 30점). This could be because the text is broken up by multiple elements. In this case, you can provide a function for your text matcher to make your matcher more flexible. + +Ignored nodes: comments, script, style + + 
 +  + 본문으로 건너뛰기 +  +  +  +  +  +  +  +  +  + 

 + 단어를 맞춰라 + 

 +  + v0.2.3 +  + 
 +  +  + 소리에 집중하는 시간 +  +  +  +  +  + 지금까지의 소리 탐험 +  +  +  +  +  +  +  +  +  + S +  +  +  +  + 문제 풀이를 종료했어요. +  +  + 작은 소리에 집중한 당신, 다음 탐험에서도 만나요. + 

 + 

 + 응답  + 0 + 문항 · 정답  + 0 + 문항 + 

 +  + 
 +  + 0 +  +  + 총 점수 +  + 
 + 
 +  + 0 + % +  +  + 정답률 ·  + 0 + / + 0 +  + 
 + 
 +  + 0 +  + 회 +  +  +  + 최고 연속 정답 +  + 
 +  +  +  +  +  + 난이도 +  +  + SNR +  +  + 맞힌 문제 +  +  +  +  +  +  + 1 + 단계 +  +  + SNR +6 dB +  +  + 0 +  /  + 0 +  +  +  +  + 2 + 단계 +  +  + SNR +3 dB +  +  + 0 +  /  + 0 +  +  +  +  + 3 + 단계 +  +  + SNR 0 dB +  +  + 0 +  /  + 0 +  +  +  +  + 4 + 단계 +  +  + SNR -3 dB +  +  + 0 +  /  + 0 +  +  +  +  + 5 + 단계 +  +  + SNR -6 dB +  +  + 0 +  /  + 0 +  +  +  +  +  + 단계 × 100점 + 연속 정답 보너스 (라운드 내 최대 +   + 20 + 점) + 

 +  + 처음 화면으로 +  +  +  +  +  + ◖)) +  +  전체 음량 +  +  +  + 35 + % +  +  +  +  + 

 + Designed by OZ at Heat-T Medical Inc. + 

 + 

 + 청각적 주의·식별 게임 · 의료적 진단이나 치료를 제공하지 않습니다. + 

 +  + 개인정보 수집 없이, 오직 플레이만. +  +  + 환경음 출처·라이선스 +  +  +  + + ❯ Object.getElementError node_modules/@testing-library/dom/dist/config.js:37:19 + ❯ node_modules/@testing-library/dom/dist/query-helpers.js:76:38 + ❯ node_modules/@testing-library/dom/dist/query-helpers.js:52:17 + ❯ node_modules/@testing-library/dom/dist/query-helpers.js:95:19 + ❯ tests/App.test.tsx:507:12 + 505| await f.user.click(screen.getByRole("button", { name: "문제 풀이 종료" })); + 506| expect( + 507| screen.getByText("정답마다 단계 × 100점 + 연속 정답 보너스 (문항별 최대 20점, 라운드 합계 최… + | ^ + 508| ).toBeInTheDocument(); + 509| await f.finish(); + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[3/8]⎯ + + FAIL tests/App.test.tsx > 현재 문항 진행률은 1/3→2/3→3/3이고 1단계 만점은 330점이다 +TestingLibraryElementError: Unable to find an accessible element with the role "progressbar" and name "현재 문항 진행률" + +Here are the accessible roles: + + link: + + Name "본문으로 건너뛰기": +  + + Name "환경음 출처·라이선스": +  + + -------------------------------------------------- + banner: + + Name "": +  + + -------------------------------------------------- + heading: + + Name "단어를 맞춰라": + 

 + + Name "카페": + 

 + + Name "소리 사이에 집중해 보세요.": +  + + -------------------------------------------------- + button: + + Name "문제 풀이 종료": +  + + Name "듣는 중…": +  + + Name "듣기 중단": +  + + -------------------------------------------------- + main: + + Name "": +  + + -------------------------------------------------- + region: + + Name "단어 찾기 게임": +  + + -------------------------------------------------- + progressbar: + + Name "전체 진행률": +  + + -------------------------------------------------- + complementary: + + Name "": +  + + -------------------------------------------------- + paragraph: + + Name "": +  + + Name "": + 

 + + Name "": +  + + Name "": +  + + Name "": + 

 + + Name "": + 

 + + Name "": + 

 + + -------------------------------------------------- + slider: + + Name "목표 음성 SNR": +  + + Name "전체 음량": +  + + -------------------------------------------------- + status: + + Name "": +  + + Name "": +  + + Name "": +  + + -------------------------------------------------- + contentinfo: + + Name "": +  + + -------------------------------------------------- + +Ignored nodes: comments, script, style + + 

 +  + 본문으로 건너뛰기 +  +  +  +  +  +  +  +  +  + 

 + 단어를 맞춰라 + 

 +  + v0.2.3 +  + 
 +  +  + 문제 풀이 종료 +  +  + 소리에 집중하는 시간 +  +  +  +  +  +  + 나의 소리 탐험 +  +  + 문제  +  + 01 +  +  / +   + 3 +  +  +  +  +  +  + 지금 듣고 있는 공간 + 

 + 

 + 카페 + 

 + 

 + 부드러운 웅성임과 잔의 울림 + 

 +  +  +  +  +  +  +  + S +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 1 + 단계 ·  + SNR +6 dB +  +  + 소리에 익숙해지기 + 

 +  +  + 목표 음성 SNR +  +  +  + SNR +6 dB +  +  + 음성이 배경보다 6 dB 커요. +  범위 −12~+12 dB · 1 dB 간격. 양수는 음성이 더 크게, 0은 같게, 음수는 더 작게 들려요. 변경은 다음 재생·재청취부터 적용돼요. + 

 +  +  +  +  + ◖)) +  +  전체 음량 +  +  +  + 35 + % +  +  +  +  + 점수  +  + 0 +  +  +  + 연속 정답  +  + 0 +  +  +  +  +  +  +  + 두 번의 힌트 +  +  + 객관식 +  +  +  +  + ♬ +  +  + 소리 사이에 집중해 보세요. + 

 + 

 + 문장이 끝나면 질문이 나타나요. + 
 + 작은 단어 하나를 기억해 주세요. + 

 +  + 에스의 목소리를 듣고 있어요… + 

 +  +  +  + 듣는 중… +  +  + 듣기 중단 +  +  + 다시 들어도 점수는 줄어들지 않아요. +  +  +  +  +  +  +  + 

 + Designed by OZ at Heat-T Medical Inc. + 

 + 

 + 청각적 주의·식별 게임 · 의료적 진단이나 치료를 제공하지 않습니다. + 

 +  + 개인정보 수집 없이, 오직 플레이만. +  +  + 환경음 출처·라이선스 +  +  +  + + ❯ Object.getElementError node_modules/@testing-library/dom/dist/config.js:37:19 + ❯ node_modules/@testing-library/dom/dist/query-helpers.js:76:38 + ❯ node_modules/@testing-library/dom/dist/query-helpers.js:52:17 + ❯ node_modules/@testing-library/dom/dist/query-helpers.js:95:19 + ❯ tests/App.test.tsx:518:24 + 516| await f.user.click(screen.getByRole("button", { name: "게임 시작 · 소리 듣기… + 517| for (let index = 0; index < 3; index++) { + 518| const bar = screen.getByRole("progressbar", { name: "현재 문항 진행률" }); + | ^ + 519| expect(bar).toHaveAttribute("max", "3"); + 520| expect(bar).toHaveAttribute("value", String(index + 1)); + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[4/8]⎯ + + FAIL tests/App.test.tsx > 무응답 종료는 정답률 대신 미응답 상태와 단계별 미진행을 보여 준다 +TestingLibraryElementError: Unable to find an accessible element with the role "heading" and name "문제 풀이를 중간에 종료했어요." + +Here are the accessible roles: + + link: + + Name "본문으로 건너뛰기": +  + + Name "환경음 출처·라이선스": +  + + -------------------------------------------------- + banner: + + Name "": +  + + -------------------------------------------------- + heading: + + Name "단어를 맞춰라": + 

 + + Name "문제 풀이를 종료했어요.": +  + + -------------------------------------------------- + main: + + Name "": +  + + -------------------------------------------------- + paragraph: + + Name "": +  + + Name "": + 

 + + Name "": +  + + Name "": + 

 + + Name "": + 

 + + -------------------------------------------------- + strong: + + Name "": +  + + Name "": +  + + Name "": +  + + -------------------------------------------------- + table: + + Name "난이도별 결과": +  + + -------------------------------------------------- + rowgroup: + + Name "": +  + + Name "": +  + + -------------------------------------------------- + row: + + Name "난이도 SNR 맞힌 문제": +  + + Name "1단계 SNR +6 dB 0 / 0": +  + + Name "2단계 SNR +3 dB 0 / 0": +  + + Name "3단계 SNR 0 dB 0 / 0": +  + + Name "4단계 SNR -3 dB 0 / 0": +  + + Name "5단계 SNR -6 dB 0 / 0": +  + + -------------------------------------------------- + columnheader: + + Name "난이도": +  + + Name "SNR": +  + + Name "맞힌 문제": +  + + -------------------------------------------------- + rowheader: + + Name "1단계": +  + + Name "2단계": +  + + Name "3단계": +  + + Name "4단계": +  + + Name "5단계": +  + + -------------------------------------------------- + cell: + + Name "SNR +6 dB": +  + + Name "0 / 0": +  + + Name "SNR +3 dB": +  + + Name "0 / 0": +  + + Name "SNR 0 dB": +  + + Name "0 / 0": +  + + Name "SNR -3 dB": +  + + Name "0 / 0": +  + + Name "SNR -6 dB": +  + + Name "0 / 0": +  + + -------------------------------------------------- + button: + + Name "처음 화면으로": +  + + -------------------------------------------------- + slider: + + Name "전체 음량": +  + + -------------------------------------------------- + status: + + Name "": +  + + -------------------------------------------------- + contentinfo: + + Name "": +  + + -------------------------------------------------- + +Ignored nodes: comments, script, style + + 

 +  + 본문으로 건너뛰기 +  +  +  +  +  +  +  +  +  + 

 + 단어를 맞춰라 + 

 +  + v0.2.3 +  + 
 +  +  + 소리에 집중하는 시간 +  +  +  +  +  + 지금까지의 소리 탐험 +  +  +  +  +  +  +  +  +  + S +  +  +  +  + 문제 풀이를 종료했어요. + 

 +  + 작은 소리에 집중한 당신, 다음 탐험에서도 만나요. + 

 + 

 + 응답  + 0 + 문항 · 정답  + 0 + 문항 + 

 +  + 
 +  + 0 +  +  + 총 점수 +  + 
 + 
 +  + 0 + % +  +  + 정답률 ·  + 0 + / + 0 +  + 
 + 
 +  + 0 +  + 회 +  +  +  + 최고 연속 정답 +  + 
 +  +  +  +  +  + 난이도 +  +  + SNR +  +  + 맞힌 문제 +  +  +  +  +  +  + 1 + 단계 +  +  + SNR +6 dB +  +  + 0 +  /  + 0 +  +  +  +  + 2 + 단계 +  +  + SNR +3 dB +  +  + 0 +  /  + 0 +  +  +  +  + 3 + 단계 +  +  + SNR 0 dB +  +  + 0 +  /  + 0 +  +  +  +  + 4 + 단계 +  +  + SNR -3 dB +  +  + 0 +  /  + 0 +  +  +  +  + 5 + 단계 +  +  + SNR -6 dB +  +  + 0 +  /  + 0 +  +  +  +  +  + 단계 × 100점 + 연속 정답 보너스 (라운드 내 최대 +   + 20 + 점) + 

 +  + 처음 화면으로 +  +  +  +  +  + ◖)) +  +  전체 음량 +  +  +  + 35 + % +  +  +  +  + 

 + Designed by OZ at Heat-T Medical Inc. + 

 + 

 + 청각적 주의·식별 게임 · 의료적 진단이나 치료를 제공하지 않습니다. + 

 +  + 개인정보 수집 없이, 오직 플레이만. +  +  + 환경음 출처·라이선스 +  +  +  + + ❯ Object.getElementError node_modules/@testing-library/dom/dist/config.js:37:19 + ❯ node_modules/@testing-library/dom/dist/query-helpers.js:76:38 + ❯ node_modules/@testing-library/dom/dist/query-helpers.js:52:17 + ❯ node_modules/@testing-library/dom/dist/query-helpers.js:95:19 + ❯ tests/App.test.tsx:538:17 + 536| await f.user.click(screen.getByRole("button", { name: "게임 시작 · 소리 듣기… + 537| await f.user.click(screen.getByRole("button", { name: "문제 풀이 종료" })); + 538| expect(screen.getByRole("heading", { name: "문제 풀이를 중간에 종료했어요." })).t… + | ^ + 539| expect(screen.getByText("—")).toBeInTheDocument(); + 540| expect(screen.getByText("정답률 · 응답 없음")).toBeInTheDocument(); + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[5/8]⎯ + + FAIL tests/neural-release.test.ts > README는 현재 리뷰 증거 경로와 정확한 라운드 보너스를 안내한다 +AssertionError: expected '# 단어를 맞춰라 · Find-Word v0.2.3\n\n소음 속에…' to contain '.agent/evidence-v0.2.3/review-fixes/' + +- Expected ++ Received + +- .agent/evidence-v0.2.3/review-fixes/ ++ # 단어를 맞춰라 · Find-Word v0.2.3 ++ ++ 소음 속에 숨은 한국어 단어를 듣고 찾는 반응형 웹 게임입니다. ++ ++ **Designed by OZ at Heat-T Medical Inc.** ++ ++ Canonical repository: [OZ-Group/Find-Word](https://source.ibit.kr/OZ-Group/Find-Word). ++ 프로젝트 자체는 **private / all-rights-reserved**이며 `package.json`의 ++ `license`는 `UNLICENSED`입니다. [LICENSE](LICENSE)를 참고하세요. ++ 런타임 의존성 React, ReactDOM, scheduler의 MIT 전문은 ++ [THIRD_PARTY_NOTICES.md](THIRD_PARTY_NOTICES.md)에 보존하며, ++ `public/THIRD_PARTY_NOTICES.md`가 빌드 시 `dist/THIRD_PARTY_NOTICES.md`로 복사됩니다. ++ 빌드 검증기는 설치된 의존성의 라이선스 전문·버전과 세 사본을 대조합니다. ++ ++ React + TypeScript strict + Vite로 만든 정적 SPA입니다. 로그인, 개인정보 저장, ++ 분석 도구, 외부 CDN, 런타임 TTS/API 요청이 없습니다. 청각적 주의·식별 게임이며 ++ 의료적 진단·치료나 효과를 주장하지 않습니다. ++ ++ ## 실행 ++ ++ Node.js 최소 버전은 **22.22.2** (`>=22.22.2`)입니다. 잠긴 jsdom 계열 의존성이 ++ 요구하는 지원 범위는 22.x의 22.22.2 이상, 24.x의 24.15.0 이상 또는 26.0.0 이상입니다. ++ 이 중 지원되는 LTS 버전을 사용하세요. `package-lock.json`을 ++ 포함하므로 새 환경에서는 `npm ci`를 사용합니다. 이번 검증 환경은 Node 26.7.0입니다. ++ ++ ```bash ++ npm ci ++ npm run dev ++ ``` ++ ++ 표시되는 `http://127.0.0.1:5173`에서 사용합니다. 소리는 사용자가 **게임 시작 · 소리 듣기**를 ++ 누른 뒤에만 재생합니다. 낮은 음량부터 조절하고 헤드폰이나 스피커를 사용할 수 있습니다. ++ ++ ## 플레이 ++ ++ - 골고루 풀기, 보기에서 선택, 직접 입력 중 선택합니다. ++ - 8개 실제 현장 녹음 환경 중 하나를 지정하거나 라운드마다 섞어 세 곳을 방문합니다. ++ - 에스의 안내가 배경에 묻힌 뒤 목표 문장이 나옵니다. 재생 후 질문에 답합니다. ++ - 시작 난이도 1~5를 고르고 정확히 **3문항**을 같은 단계에서 풉니다. 단계 기본값은 **SNR +6, +3, 0, −3, −6 dB**입니다. ++ - 목표 음성 SNR을 **−12~+12 dB, 1 dB 간격**으로 직접 조절할 수 있습니다. 재생 중 변경은 다음 재생·재청취와 남은 문제부터 적용합니다. ++ 양수는 음성이 배경보다 크고, 0은 같고, 음수는 더 작다는 뜻입니다. ++ - 다시 듣기는 감점하지 않습니다. 정답은 `단계 × 100점`, 연속 정답은 라운드 내 최대 20점의 보너스를 받습니다. ++ - 정상 결과에서 다음 단계의 새 3문항을 바로 시작합니다. 5단계에서는 같은 단계 재도전과 홈 복귀를 제공합니다. 수동 SNR은 다음 라운드에도 유지되고, 홈 복귀 시 선택한 시작 단계의 기본값으로 돌아갑니다. ++ - 언제든 **문제 풀이 종료**를 누르면 즉시 오디오를 취소하고 **응답 수·정답 수**를 보여 줍니다. 무응답은 오답으로 세지 않으며 결과에서 **처음 화면으로** 돌아갑니다. ++ - 결과의 SNR은 실제 마지막 청취값을 기록합니다. 점수·정답률·최고 연속 정답·단계별 결과를 확인합니다. ++ - 새로고침하면 기록이 사라집니다. 결과를 브라우저나 서버에 저장하지 않습니다. ++ ++ 10개 유형 × 10개 단어의 100개 목표 문장을 저장했습니다. 각 세션은 유형과 ++ 단어를 섞어 출제하며 정답 위치도 섞습니다. 사전 표제어와 변형 규칙은 ++ [WORDS.md](docs/WORDS.md)에 설명했습니다. ++ 청취 과제는 직접 목표 식별, 연습 암호와 진짜 암호 구별, 앞 단어를 잊고 다음 ++ 단어 기억, 첫째·마지막·가운데 선택, 반복 찾기, 정정 반영, 신호 조건 적용, ++ 오른쪽 표지 선택의 10가지입니다. 문장에 실제 보기의 오답도 포함됩니다. ++ ++ ## 검증과 정적 빌드 ++ ++ ```bash ++ npm run lint ++ npm test ++ python3 -m unittest discover -s tests/python -v ++ npm run build ++ npm audit ++ npm run preview ++ ``` ++ ++ `lint`는 ESLint와 TypeScript 검사, `test`는 unit/component/자산/빌드 검증기 ++ 테스트를 실행합니다. `build`는 `dist/`를 만들고 음성 101개와 현장음 8개가 manifest 해시 그대로 ++ 포함되었는지 확인합니다. 빌드에는 음성 합성 도구가 필요하지 않습니다. ++ 런타임 MIT notice와 현장음 attribution/license notice가 `dist/`에 전문 그대로 포함되는지도 검증합니다. ++ ++ 실제 오디오·360px/1280px 화면·키보드·접근성·오류 재시도 검증: ++ ++ ```bash ++ # Chromium이 없는 개발 환경에서 한 번만 실행합니다. ++ npx playwright install chromium ++ npm run test:browser ++ # 이미 설치된 Chrome을 사용할 때의 대안입니다. ++ CHROME_PATH=/usr/bin/google-chrome npm run test:browser ++ ``` ++ ++ Chromium sandbox는 기본으로 켭니다. sandbox를 지원하지 않는 격리된 개발 ++ 환경에서만 `PLAYWRIGHT_NO_SANDBOX=1`을 명시해 끌 수 있습니다. `0`, `false`, ++ 빈 값이나 미설정은 sandbox를 유지합니다. `CHROME_PATH` 지정은 sandbox를 끄지 않습니다. ++ ++ 브라우저 테스트는 기존 `dist/`를 사용하므로 소스 변경 후 먼저 빌드하세요. ++ 실제 음성 재생이 끝나기를 기다려 몇 분이 걸립니다. 로컬 4173 포트를 ++ 테스트 중에만 열고 종료합니다. 스크린샷과 109개 WAV의 query URL·해시·디코드 ++ 결과는 `test-results/`에 저장합니다. 인수 기록은 실행별 새 evidence 경로에 ++ 복사하여 `.agent/evidence-v0.1.1/`의 과거 결과를 보존합니다. ++ ++ ## 음성과 문서 ++ ++ 한국어 WAV 101개는 직접 쓴 문장을 Microsoft Edge online TTS의 ++ `ko-KR-HyunsuMultilingualNeural`로 v0.1.1에서 생성했으며 WAV 바이트는 그대로 보존했습니다. edge-tts **7.3.1**, ++ rate `-6%`, pitch `-4Hz`이며 FFmpeg로 **24kHz mono PCM16**으로 변환합니다. ++ 생성 시 네트워크가 필요하며 앱은 저장된 WAV만 재생합니다. 환경음은 공개 라이선스의 실제 현장 녹음 8개를 각 12초로 변환해 번들합니다. 생성 음성의 독점 권리를 주장하지 않습니다. ++ ++ intro와 목표 WAV는 모두 `/audio/파일명.wav?v=0.2.3`로 요청합니다. ++ `src/audio/assets.ts`의 자산 버전 한 곳을 사용하며, 같은 파일명으로 음성을 ++ 교체할 때 이 값을 갱신해 기존 7일 캐시와 구분합니다. 배경은 `/ambience/환경.wav?v=0.2.3`입니다. 제품 버전은 0.2.3입니다. ++ ++ Linux에서 Python 3.11 이상과 FFmpeg를 준비한 뒤 다음 명령을 사용합니다. ++ 클라이언트 버전을 고정해도 원격 모델 변경으로 동일 바이트 재생성은 보장하지 않습니다. ++ ++ ```bash ++ python3 -m venv .venv-audio ++ .venv-audio/bin/python -m pip install -r requirements-audio.txt ++ .venv-audio/bin/python -m pip check ++ npm run audio:generate ++ ``` ++ ++ 고정 venv의 Python이 101개 모두 임시 생성·검증하고 디렉터리를 원자 교체합니다. ++ 요청별 60초 제한과 최대 3회 시도를 적용하며, 실패 시 기존 자산을 보존합니다. ++ 청취 샘플: [안내](public/audio/intro.wav), [행운의 사과](public/audio/luck-apple.wav). ++ 생성 방법, 도구 라이선스, 합성 음질의 한계는 [AUDIO_PROVENANCE.md](docs/AUDIO_PROVENANCE.md)를 ++ 참고하세요. 실제 음량은 출력 장치에 따라 달라지며 표기 dB는 디지털 상대값입니다. ++ ++ 현장음 원본은 `/tmp/findword-ambience-sources`에서만 보관하고 배포하지 않습니다. ++ `python3 scripts/ambience_audio.py`로 검증된 원본의 파생본과 manifest를 재현합니다. ++ PD·CC0·CC BY 4.0·CC BY-SA 4.0의 정확한 출처·저작자·변환·해시는 ++ [현장음 manifest](public/ambience/manifest.json), [배포 고지](public/AMBIENCE_NOTICES.md)에 있습니다. ++ 시장 파생본은 CC BY-SA 4.0을 유지합니다. 외부 링크는 출처 확인용이며 앱은 이를 요청하지 않습니다. ++ ++ - [변경 이력](CHANGELOG.md) ++ - [v0.2.3 구현·검증 결과](.agent/RESULT-v0.2.3.md) ++ - [설계와 상태 전이](docs/ARCHITECTURE.md) ++ - [Neo를 위한 정적 배포 안내](docs/DEPLOYMENT.md) ++ - [v0.1.1 RED/GREEN 및 실제 검증 결과](.agent/RESULT-v0.1.1.md) ++ - [v0.1 역사 기록](.agent/RESULT.md) ++ ++ 이번 작업에서는 서버 배포와 Git commit/push를 실행하지 않습니다. ++ + + ❯ tests/neural-release.test.ts:72:20 + 70| it("README는 현재 리뷰 증거 경로와 정확한 라운드 보너스를 안내한다", () => { + 71| const doc = readFileSync("README.md", "utf8"); + 72| expect.soft(doc).toContain(".agent/evidence-v0.2.3/review-fixes/"); + | ^ + 73| expect.soft(doc).toContain("문항별 최대 20점, 라운드 합계 최대 30점"); + 74| }); + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[6/8]⎯ + + FAIL tests/neural-release.test.ts > README는 현재 리뷰 증거 경로와 정확한 라운드 보너스를 안내한다 +AssertionError: expected '# 단어를 맞춰라 · Find-Word v0.2.3\n\n소음 속에…' to contain '문항별 최대 20점, 라운드 합계 최대 30점' + +- Expected ++ Received + +- 문항별 최대 20점, 라운드 합계 최대 30점 ++ # 단어를 맞춰라 · Find-Word v0.2.3 ++ ++ 소음 속에 숨은 한국어 단어를 듣고 찾는 반응형 웹 게임입니다. ++ ++ **Designed by OZ at Heat-T Medical Inc.** ++ ++ Canonical repository: [OZ-Group/Find-Word](https://source.ibit.kr/OZ-Group/Find-Word). ++ 프로젝트 자체는 **private / all-rights-reserved**이며 `package.json`의 ++ `license`는 `UNLICENSED`입니다. [LICENSE](LICENSE)를 참고하세요. ++ 런타임 의존성 React, ReactDOM, scheduler의 MIT 전문은 ++ [THIRD_PARTY_NOTICES.md](THIRD_PARTY_NOTICES.md)에 보존하며, ++ `public/THIRD_PARTY_NOTICES.md`가 빌드 시 `dist/THIRD_PARTY_NOTICES.md`로 복사됩니다. ++ 빌드 검증기는 설치된 의존성의 라이선스 전문·버전과 세 사본을 대조합니다. ++ ++ React + TypeScript strict + Vite로 만든 정적 SPA입니다. 로그인, 개인정보 저장, ++ 분석 도구, 외부 CDN, 런타임 TTS/API 요청이 없습니다. 청각적 주의·식별 게임이며 ++ 의료적 진단·치료나 효과를 주장하지 않습니다. ++ ++ ## 실행 ++ ++ Node.js 최소 버전은 **22.22.2** (`>=22.22.2`)입니다. 잠긴 jsdom 계열 의존성이 ++ 요구하는 지원 범위는 22.x의 22.22.2 이상, 24.x의 24.15.0 이상 또는 26.0.0 이상입니다. ++ 이 중 지원되는 LTS 버전을 사용하세요. `package-lock.json`을 ++ 포함하므로 새 환경에서는 `npm ci`를 사용합니다. 이번 검증 환경은 Node 26.7.0입니다. ++ ++ ```bash ++ npm ci ++ npm run dev ++ ``` ++ ++ 표시되는 `http://127.0.0.1:5173`에서 사용합니다. 소리는 사용자가 **게임 시작 · 소리 듣기**를 ++ 누른 뒤에만 재생합니다. 낮은 음량부터 조절하고 헤드폰이나 스피커를 사용할 수 있습니다. ++ ++ ## 플레이 ++ ++ - 골고루 풀기, 보기에서 선택, 직접 입력 중 선택합니다. ++ - 8개 실제 현장 녹음 환경 중 하나를 지정하거나 라운드마다 섞어 세 곳을 방문합니다. ++ - 에스의 안내가 배경에 묻힌 뒤 목표 문장이 나옵니다. 재생 후 질문에 답합니다. ++ - 시작 난이도 1~5를 고르고 정확히 **3문항**을 같은 단계에서 풉니다. 단계 기본값은 **SNR +6, +3, 0, −3, −6 dB**입니다. ++ - 목표 음성 SNR을 **−12~+12 dB, 1 dB 간격**으로 직접 조절할 수 있습니다. 재생 중 변경은 다음 재생·재청취와 남은 문제부터 적용합니다. ++ 양수는 음성이 배경보다 크고, 0은 같고, 음수는 더 작다는 뜻입니다. ++ - 다시 듣기는 감점하지 않습니다. 정답은 `단계 × 100점`, 연속 정답은 라운드 내 최대 20점의 보너스를 받습니다. ++ - 정상 결과에서 다음 단계의 새 3문항을 바로 시작합니다. 5단계에서는 같은 단계 재도전과 홈 복귀를 제공합니다. 수동 SNR은 다음 라운드에도 유지되고, 홈 복귀 시 선택한 시작 단계의 기본값으로 돌아갑니다. ++ - 언제든 **문제 풀이 종료**를 누르면 즉시 오디오를 취소하고 **응답 수·정답 수**를 보여 줍니다. 무응답은 오답으로 세지 않으며 결과에서 **처음 화면으로** 돌아갑니다. ++ - 결과의 SNR은 실제 마지막 청취값을 기록합니다. 점수·정답률·최고 연속 정답·단계별 결과를 확인합니다. ++ - 새로고침하면 기록이 사라집니다. 결과를 브라우저나 서버에 저장하지 않습니다. ++ ++ 10개 유형 × 10개 단어의 100개 목표 문장을 저장했습니다. 각 세션은 유형과 ++ 단어를 섞어 출제하며 정답 위치도 섞습니다. 사전 표제어와 변형 규칙은 ++ [WORDS.md](docs/WORDS.md)에 설명했습니다. ++ 청취 과제는 직접 목표 식별, 연습 암호와 진짜 암호 구별, 앞 단어를 잊고 다음 ++ 단어 기억, 첫째·마지막·가운데 선택, 반복 찾기, 정정 반영, 신호 조건 적용, ++ 오른쪽 표지 선택의 10가지입니다. 문장에 실제 보기의 오답도 포함됩니다. ++ ++ ## 검증과 정적 빌드 ++ ++ ```bash ++ npm run lint ++ npm test ++ python3 -m unittest discover -s tests/python -v ++ npm run build ++ npm audit ++ npm run preview ++ ``` ++ ++ `lint`는 ESLint와 TypeScript 검사, `test`는 unit/component/자산/빌드 검증기 ++ 테스트를 실행합니다. `build`는 `dist/`를 만들고 음성 101개와 현장음 8개가 manifest 해시 그대로 ++ 포함되었는지 확인합니다. 빌드에는 음성 합성 도구가 필요하지 않습니다. ++ 런타임 MIT notice와 현장음 attribution/license notice가 `dist/`에 전문 그대로 포함되는지도 검증합니다. ++ ++ 실제 오디오·360px/1280px 화면·키보드·접근성·오류 재시도 검증: ++ ++ ```bash ++ # Chromium이 없는 개발 환경에서 한 번만 실행합니다. ++ npx playwright install chromium ++ npm run test:browser ++ # 이미 설치된 Chrome을 사용할 때의 대안입니다. ++ CHROME_PATH=/usr/bin/google-chrome npm run test:browser ++ ``` ++ ++ Chromium sandbox는 기본으로 켭니다. sandbox를 지원하지 않는 격리된 개발 ++ 환경에서만 `PLAYWRIGHT_NO_SANDBOX=1`을 명시해 끌 수 있습니다. `0`, `false`, ++ 빈 값이나 미설정은 sandbox를 유지합니다. `CHROME_PATH` 지정은 sandbox를 끄지 않습니다. ++ ++ 브라우저 테스트는 기존 `dist/`를 사용하므로 소스 변경 후 먼저 빌드하세요. ++ 실제 음성 재생이 끝나기를 기다려 몇 분이 걸립니다. 로컬 4173 포트를 ++ 테스트 중에만 열고 종료합니다. 스크린샷과 109개 WAV의 query URL·해시·디코드 ++ 결과는 `test-results/`에 저장합니다. 인수 기록은 실행별 새 evidence 경로에 ++ 복사하여 `.agent/evidence-v0.1.1/`의 과거 결과를 보존합니다. ++ ++ ## 음성과 문서 ++ ++ 한국어 WAV 101개는 직접 쓴 문장을 Microsoft Edge online TTS의 ++ `ko-KR-HyunsuMultilingualNeural`로 v0.1.1에서 생성했으며 WAV 바이트는 그대로 보존했습니다. edge-tts **7.3.1**, ++ rate `-6%`, pitch `-4Hz`이며 FFmpeg로 **24kHz mono PCM16**으로 변환합니다. ++ 생성 시 네트워크가 필요하며 앱은 저장된 WAV만 재생합니다. 환경음은 공개 라이선스의 실제 현장 녹음 8개를 각 12초로 변환해 번들합니다. 생성 음성의 독점 권리를 주장하지 않습니다. ++ ++ intro와 목표 WAV는 모두 `/audio/파일명.wav?v=0.2.3`로 요청합니다. ++ `src/audio/assets.ts`의 자산 버전 한 곳을 사용하며, 같은 파일명으로 음성을 ++ 교체할 때 이 값을 갱신해 기존 7일 캐시와 구분합니다. 배경은 `/ambience/환경.wav?v=0.2.3`입니다. 제품 버전은 0.2.3입니다. ++ ++ Linux에서 Python 3.11 이상과 FFmpeg를 준비한 뒤 다음 명령을 사용합니다. ++ 클라이언트 버전을 고정해도 원격 모델 변경으로 동일 바이트 재생성은 보장하지 않습니다. ++ ++ ```bash ++ python3 -m venv .venv-audio ++ .venv-audio/bin/python -m pip install -r requirements-audio.txt ++ .venv-audio/bin/python -m pip check ++ npm run audio:generate ++ ``` ++ ++ 고정 venv의 Python이 101개 모두 임시 생성·검증하고 디렉터리를 원자 교체합니다. ++ 요청별 60초 제한과 최대 3회 시도를 적용하며, 실패 시 기존 자산을 보존합니다. ++ 청취 샘플: [안내](public/audio/intro.wav), [행운의 사과](public/audio/luck-apple.wav). ++ 생성 방법, 도구 라이선스, 합성 음질의 한계는 [AUDIO_PROVENANCE.md](docs/AUDIO_PROVENANCE.md)를 ++ 참고하세요. 실제 음량은 출력 장치에 따라 달라지며 표기 dB는 디지털 상대값입니다. ++ ++ 현장음 원본은 `/tmp/findword-ambience-sources`에서만 보관하고 배포하지 않습니다. ++ `python3 scripts/ambience_audio.py`로 검증된 원본의 파생본과 manifest를 재현합니다. ++ PD·CC0·CC BY 4.0·CC BY-SA 4.0의 정확한 출처·저작자·변환·해시는 ++ [현장음 manifest](public/ambience/manifest.json), [배포 고지](public/AMBIENCE_NOTICES.md)에 있습니다. ++ 시장 파생본은 CC BY-SA 4.0을 유지합니다. 외부 링크는 출처 확인용이며 앱은 이를 요청하지 않습니다. ++ ++ - [변경 이력](CHANGELOG.md) ++ - [v0.2.3 구현·검증 결과](.agent/RESULT-v0.2.3.md) ++ - [설계와 상태 전이](docs/ARCHITECTURE.md) ++ - [Neo를 위한 정적 배포 안내](docs/DEPLOYMENT.md) ++ - [v0.1.1 RED/GREEN 및 실제 검증 결과](.agent/RESULT-v0.1.1.md) ++ - [v0.1 역사 기록](.agent/RESULT.md) ++ ++ 이번 작업에서는 서버 배포와 Git commit/push를 실행하지 않습니다. ++ + + ❯ tests/neural-release.test.ts:73:20 + 71| const doc = readFileSync("README.md", "utf8"); + 72| expect.soft(doc).toContain(".agent/evidence-v0.2.3/review-fixes/"); + 73| expect.soft(doc).toContain("문항별 최대 20점, 라운드 합계 최대 30점"); + | ^ + 74| }); + 75| + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[7/8]⎯ + + + Test Files 2 failed (2) + Tests 7 failed | 20 passed (27) + Start at 08:46:34 + Duration 7.76s (tests 81%, environment 12%, setup 4%, transform 2%, import 1%) + + +EXIT_CODE=1 diff --git a/.agent/evidence-v0.2.3/review-fixes/02-browser-GREEN.log b/.agent/evidence-v0.2.3/review-fixes/02-browser-GREEN.log new file mode 100644 index 0000000..acb649a --- /dev/null +++ b/.agent/evidence-v0.2.3/review-fixes/02-browser-GREEN.log @@ -0,0 +1,20 @@ +$ env CHROME_PATH=/usr/bin/google-chrome PLAYWRIGHT_NO_SANDBOX=0 npx playwright test tests/browser/review-fixes.spec.ts --output=.agent/evidence-v0.2.3/review-fixes/browser-green +[WebServer] (node:1036807) 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 4 tests using 2 workers + +(node:1036840) 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:1036841) 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 [desktop] › tests/browser/review-fixes.spec.ts:24:1 › 리뷰: 한국어 모드·결과 어절은 320px와 360px에서도 갈라지거나 넘치지 않는다 (2.7s) +(node:1037134) 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 [mobile] › tests/browser/review-fixes.spec.ts:24:1 › 리뷰: 한국어 모드·결과 어절은 320px와 360px에서도 갈라지거나 넘치지 않는다 (2.3s) + ✓ 2 [desktop] › tests/browser/review-fixes.spec.ts:38:1 › 리뷰: 실제 진행 막대는 현재 문항의 1/3·2/3·3/3을 채운다 (30.4s) + ✓ 4 [mobile] › tests/browser/review-fixes.spec.ts:38:1 › 리뷰: 실제 진행 막대는 현재 문항의 1/3·2/3·3/3을 채운다 (37.5s) + + 4 passed (45.1s) + +EXIT_CODE=0 diff --git a/.agent/evidence-v0.2.3/review-fixes/02-browser-RED.log b/.agent/evidence-v0.2.3/review-fixes/02-browser-RED.log new file mode 100644 index 0000000..b77e6eb --- /dev/null +++ b/.agent/evidence-v0.2.3/review-fixes/02-browser-RED.log @@ -0,0 +1,458 @@ +$ env CHROME_PATH=/usr/bin/google-chrome PLAYWRIGHT_NO_SANDBOX=0 npx playwright test tests/browser/review-fixes.spec.ts --output=.agent/evidence-v0.2.3/review-fixes/browser-red +[WebServer] (node:1035667) 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 4 tests using 2 workers + +(node:1035689) 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:1035688) 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 [desktop] › tests/browser/review-fixes.spec.ts:24:1 › 리뷰: 한국어 모드·결과 어절은 320px와 360px에서도 갈라지거나 넘치지 않는다 (3.0s) +(node:1035956) 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 [mobile] › tests/browser/review-fixes.spec.ts:24:1 › 리뷰: 한국어 모드·결과 어절은 320px와 360px에서도 갈라지거나 넘치지 않는다 (2.6s) +(node:1036087) 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) + ✘ 2 [desktop] › tests/browser/review-fixes.spec.ts:38:1 › 리뷰: 실제 진행 막대는 현재 문항의 1/3·2/3·3/3을 채운다 (36.4s) + ✘ 4 [mobile] › tests/browser/review-fixes.spec.ts:38:1 › 리뷰: 실제 진행 막대는 현재 문항의 1/3·2/3·3/3을 채운다 (39.3s) + + + 1) [desktop] › tests/browser/review-fixes.spec.ts:24:1 › 리뷰: 한국어 모드·결과 어절은 320px와 360px에서도 갈라지거나 넘치지 않는다 + + Error: expect(received).toEqual(expected) // deep equality + + - Expected - 1 + + Received + 4 + + - Array [] + + Array [ + + "split: 탐험에서도", + + "split: 라운드", + + ] + + 30 | await page.getByRole("button", { name: "게임 시작 · 소리 듣기" }).click(); + 31 | await page.getByRole("button", { name: "문제 풀이 종료" }).click(); + > 32 | expect.soft(await copyLayout(page, ".results-panel h2, .results-panel p, .stats span, .results-panel th, .results-panel td")).toEqual([]); + | ^ + 33 | expect.soft(await page.evaluate(() => document.documentElement.scrollWidth <= innerWidth)).toBe(true); + 34 | await page.screenshot({ path: info.outputPath(`copy-${width}-results.png`), fullPage: true }); + 35 | } + at /home/hermes/worktrees/find-word-v0.2.3/tests/browser/review-fixes.spec.ts:32:131 + + Error: expect(received).toEqual(expected) // deep equality + + - Expected - 1 + + Received + 3 + + - Array [] + + Array [ + + "split: 입력", + + ] + + 26 | await page.setViewportSize({ width, height: 800 }); + 27 | await page.goto("/"); + > 28 | expect.soft(await copyLayout(page, ".mode-option small")).toEqual([]); + | ^ + 29 | await page.screenshot({ path: info.outputPath(`copy-${width}-home.png`), fullPage: true }); + 30 | await page.getByRole("button", { name: "게임 시작 · 소리 듣기" }).click(); + 31 | await page.getByRole("button", { name: "문제 풀이 종료" }).click(); + at /home/hermes/worktrees/find-word-v0.2.3/tests/browser/review-fixes.spec.ts:28:63 + + Error: expect(received).toEqual(expected) // deep equality + + - Expected - 1 + + Received + 4 + + - Array [] + + Array [ + + "split: 만나요", + + "split: 최대", + + ] + + 30 | await page.getByRole("button", { name: "게임 시작 · 소리 듣기" }).click(); + 31 | await page.getByRole("button", { name: "문제 풀이 종료" }).click(); + > 32 | expect.soft(await copyLayout(page, ".results-panel h2, .results-panel p, .stats span, .results-panel th, .results-panel td")).toEqual([]); + | ^ + 33 | expect.soft(await page.evaluate(() => document.documentElement.scrollWidth <= innerWidth)).toBe(true); + 34 | await page.screenshot({ path: info.outputPath(`copy-${width}-results.png`), fullPage: true }); + 35 | } + at /home/hermes/worktrees/find-word-v0.2.3/tests/browser/review-fixes.spec.ts:32:131 + + Error Context: .agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-desktop/error-context.md + + attachment #2: trace (application/zip) ───────────────────────────────────────────────────────── + .agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-desktop/trace.zip + Usage: + + npx playwright show-trace .agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-desktop/trace.zip + + ──────────────────────────────────────────────────────────────────────────────────────────────── + + 2) [desktop] › tests/browser/review-fixes.spec.ts:38:1 › 리뷰: 실제 진행 막대는 현재 문항의 1/3·2/3·3/3을 채운다 ─── + + Error: expect(received).toBeCloseTo(expected) + + Expected: 0.3333333333333333 + Received: 0 + + Expected precision: 2 + Expected difference: < 0.005 + Received difference: 0.3333333333333333 + + 47 | for (let index = 0; index < 3; index++) { + 48 | const bar = page.getByRole("progressbar"); + > 49 | expect.soft(await bar.evaluate((el) => (el as HTMLProgressElement).position)).toBeCloseTo((index + 1) / 3); + | ^ + 50 | await expect.soft(bar).toHaveAccessibleName("현재 문항 진행률", { timeout: 1000 }); + 51 | await bar.screenshot({ path: info.outputPath(`progress-${index + 1}.png`) }); + 52 | if (index) await page.getByRole("button", { name: /문장 듣기/ }).click(); + at /home/hermes/worktrees/find-word-v0.2.3/tests/browser/review-fixes.spec.ts:49:83 + + Error: expect(locator).toHaveAccessibleName(expected) failed + + Locator: getByRole('progressbar') + Expected: "현재 문항 진행률" + Received: "전체 진행률" + Timeout: 1000ms + + Call log: + - Expect "soft toHaveAccessibleName" getByRole('progressbar') with timeout 1000ms + - waiting for getByRole('progressbar') + 11 × locator resolved to + - unexpected value "전체 진행률" + + + 48 | const bar = page.getByRole("progressbar"); + 49 | expect.soft(await bar.evaluate((el) => (el as HTMLProgressElement).position)).toBeCloseTo((index + 1) / 3); + > 50 | await expect.soft(bar).toHaveAccessibleName("현재 문항 진행률", { timeout: 1000 }); + | ^ + 51 | await bar.screenshot({ path: info.outputPath(`progress-${index + 1}.png`) }); + 52 | if (index) await page.getByRole("button", { name: /문장 듣기/ }).click(); + 53 | await expect(page.getByRole("group", { name: "답 선택" })).toBeVisible({ timeout: 30000 }); + at /home/hermes/worktrees/find-word-v0.2.3/tests/browser/review-fixes.spec.ts:50:28 + + Error: expect(received).toBeCloseTo(expected) + + Expected: 0.6666666666666666 + Received: 0.3333333333333333 + + Expected precision: 2 + Expected difference: < 0.005 + Received difference: 0.3333333333333333 + + 47 | for (let index = 0; index < 3; index++) { + 48 | const bar = page.getByRole("progressbar"); + > 49 | expect.soft(await bar.evaluate((el) => (el as HTMLProgressElement).position)).toBeCloseTo((index + 1) / 3); + | ^ + 50 | await expect.soft(bar).toHaveAccessibleName("현재 문항 진행률", { timeout: 1000 }); + 51 | await bar.screenshot({ path: info.outputPath(`progress-${index + 1}.png`) }); + 52 | if (index) await page.getByRole("button", { name: /문장 듣기/ }).click(); + at /home/hermes/worktrees/find-word-v0.2.3/tests/browser/review-fixes.spec.ts:49:83 + + Error: expect(locator).toHaveAccessibleName(expected) failed + + Locator: getByRole('progressbar') + Expected: "현재 문항 진행률" + Received: "전체 진행률" + Timeout: 1000ms + + Call log: + - Expect "soft toHaveAccessibleName" getByRole('progressbar') with timeout 1000ms + - waiting for getByRole('progressbar') + 11 × locator resolved to + - unexpected value "전체 진행률" + + + 48 | const bar = page.getByRole("progressbar"); + 49 | expect.soft(await bar.evaluate((el) => (el as HTMLProgressElement).position)).toBeCloseTo((index + 1) / 3); + > 50 | await expect.soft(bar).toHaveAccessibleName("현재 문항 진행률", { timeout: 1000 }); + | ^ + 51 | await bar.screenshot({ path: info.outputPath(`progress-${index + 1}.png`) }); + 52 | if (index) await page.getByRole("button", { name: /문장 듣기/ }).click(); + 53 | await expect(page.getByRole("group", { name: "답 선택" })).toBeVisible({ timeout: 30000 }); + at /home/hermes/worktrees/find-word-v0.2.3/tests/browser/review-fixes.spec.ts:50:28 + + Error: expect(received).toBeCloseTo(expected) + + Expected: 1 + Received: 0.6666666666666666 + + Expected precision: 2 + Expected difference: < 0.005 + Received difference: 0.33333333333333337 + + 47 | for (let index = 0; index < 3; index++) { + 48 | const bar = page.getByRole("progressbar"); + > 49 | expect.soft(await bar.evaluate((el) => (el as HTMLProgressElement).position)).toBeCloseTo((index + 1) / 3); + | ^ + 50 | await expect.soft(bar).toHaveAccessibleName("현재 문항 진행률", { timeout: 1000 }); + 51 | await bar.screenshot({ path: info.outputPath(`progress-${index + 1}.png`) }); + 52 | if (index) await page.getByRole("button", { name: /문장 듣기/ }).click(); + at /home/hermes/worktrees/find-word-v0.2.3/tests/browser/review-fixes.spec.ts:49:83 + + Error: expect(locator).toHaveAccessibleName(expected) failed + + Locator: getByRole('progressbar') + Expected: "현재 문항 진행률" + Received: "전체 진행률" + Timeout: 1000ms + + Call log: + - Expect "soft toHaveAccessibleName" getByRole('progressbar') with timeout 1000ms + - waiting for getByRole('progressbar') + 11 × locator resolved to + - unexpected value "전체 진행률" + + + 48 | const bar = page.getByRole("progressbar"); + 49 | expect.soft(await bar.evaluate((el) => (el as HTMLProgressElement).position)).toBeCloseTo((index + 1) / 3); + > 50 | await expect.soft(bar).toHaveAccessibleName("현재 문항 진행률", { timeout: 1000 }); + | ^ + 51 | await bar.screenshot({ path: info.outputPath(`progress-${index + 1}.png`) }); + 52 | if (index) await page.getByRole("button", { name: /문장 듣기/ }).click(); + 53 | await expect(page.getByRole("group", { name: "답 선택" })).toBeVisible({ timeout: 30000 }); + at /home/hermes/worktrees/find-word-v0.2.3/tests/browser/review-fixes.spec.ts:50:28 + + Error Context: .agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-desktop/error-context.md + + attachment #2: trace (application/zip) ───────────────────────────────────────────────────────── + .agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-desktop/trace.zip + Usage: + + npx playwright show-trace .agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-desktop/trace.zip + + ──────────────────────────────────────────────────────────────────────────────────────────────── + + 3) [mobile] › tests/browser/review-fixes.spec.ts:24:1 › 리뷰: 한국어 모드·결과 어절은 320px와 360px에서도 갈라지거나 넘치지 않는다 + + Error: expect(received).toEqual(expected) // deep equality + + - Expected - 1 + + Received + 4 + + - Array [] + + Array [ + + "split: 탐험에서도", + + "split: 라운드", + + ] + + 30 | await page.getByRole("button", { name: "게임 시작 · 소리 듣기" }).click(); + 31 | await page.getByRole("button", { name: "문제 풀이 종료" }).click(); + > 32 | expect.soft(await copyLayout(page, ".results-panel h2, .results-panel p, .stats span, .results-panel th, .results-panel td")).toEqual([]); + | ^ + 33 | expect.soft(await page.evaluate(() => document.documentElement.scrollWidth <= innerWidth)).toBe(true); + 34 | await page.screenshot({ path: info.outputPath(`copy-${width}-results.png`), fullPage: true }); + 35 | } + at /home/hermes/worktrees/find-word-v0.2.3/tests/browser/review-fixes.spec.ts:32:131 + + Error: expect(received).toEqual(expected) // deep equality + + - Expected - 1 + + Received + 3 + + - Array [] + + Array [ + + "split: 입력", + + ] + + 26 | await page.setViewportSize({ width, height: 800 }); + 27 | await page.goto("/"); + > 28 | expect.soft(await copyLayout(page, ".mode-option small")).toEqual([]); + | ^ + 29 | await page.screenshot({ path: info.outputPath(`copy-${width}-home.png`), fullPage: true }); + 30 | await page.getByRole("button", { name: "게임 시작 · 소리 듣기" }).click(); + 31 | await page.getByRole("button", { name: "문제 풀이 종료" }).click(); + at /home/hermes/worktrees/find-word-v0.2.3/tests/browser/review-fixes.spec.ts:28:63 + + Error: expect(received).toEqual(expected) // deep equality + + - Expected - 1 + + Received + 4 + + - Array [] + + Array [ + + "split: 만나요", + + "split: 최대", + + ] + + 30 | await page.getByRole("button", { name: "게임 시작 · 소리 듣기" }).click(); + 31 | await page.getByRole("button", { name: "문제 풀이 종료" }).click(); + > 32 | expect.soft(await copyLayout(page, ".results-panel h2, .results-panel p, .stats span, .results-panel th, .results-panel td")).toEqual([]); + | ^ + 33 | expect.soft(await page.evaluate(() => document.documentElement.scrollWidth <= innerWidth)).toBe(true); + 34 | await page.screenshot({ path: info.outputPath(`copy-${width}-results.png`), fullPage: true }); + 35 | } + at /home/hermes/worktrees/find-word-v0.2.3/tests/browser/review-fixes.spec.ts:32:131 + + Error Context: .agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-mobile/error-context.md + + attachment #2: trace (application/zip) ───────────────────────────────────────────────────────── + .agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-mobile/trace.zip + Usage: + + npx playwright show-trace .agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-mobile/trace.zip + + ──────────────────────────────────────────────────────────────────────────────────────────────── + + 4) [mobile] › tests/browser/review-fixes.spec.ts:38:1 › 리뷰: 실제 진행 막대는 현재 문항의 1/3·2/3·3/3을 채운다 ──── + + Error: expect(received).toBeCloseTo(expected) + + Expected: 0.3333333333333333 + Received: 0 + + Expected precision: 2 + Expected difference: < 0.005 + Received difference: 0.3333333333333333 + + 47 | for (let index = 0; index < 3; index++) { + 48 | const bar = page.getByRole("progressbar"); + > 49 | expect.soft(await bar.evaluate((el) => (el as HTMLProgressElement).position)).toBeCloseTo((index + 1) / 3); + | ^ + 50 | await expect.soft(bar).toHaveAccessibleName("현재 문항 진행률", { timeout: 1000 }); + 51 | await bar.screenshot({ path: info.outputPath(`progress-${index + 1}.png`) }); + 52 | if (index) await page.getByRole("button", { name: /문장 듣기/ }).click(); + at /home/hermes/worktrees/find-word-v0.2.3/tests/browser/review-fixes.spec.ts:49:83 + + Error: expect(locator).toHaveAccessibleName(expected) failed + + Locator: getByRole('progressbar') + Expected: "현재 문항 진행률" + Received: "전체 진행률" + Timeout: 1000ms + + Call log: + - Expect "soft toHaveAccessibleName" getByRole('progressbar') with timeout 1000ms + - waiting for getByRole('progressbar') + 11 × locator resolved to + - unexpected value "전체 진행률" + + + 48 | const bar = page.getByRole("progressbar"); + 49 | expect.soft(await bar.evaluate((el) => (el as HTMLProgressElement).position)).toBeCloseTo((index + 1) / 3); + > 50 | await expect.soft(bar).toHaveAccessibleName("현재 문항 진행률", { timeout: 1000 }); + | ^ + 51 | await bar.screenshot({ path: info.outputPath(`progress-${index + 1}.png`) }); + 52 | if (index) await page.getByRole("button", { name: /문장 듣기/ }).click(); + 53 | await expect(page.getByRole("group", { name: "답 선택" })).toBeVisible({ timeout: 30000 }); + at /home/hermes/worktrees/find-word-v0.2.3/tests/browser/review-fixes.spec.ts:50:28 + + Error: expect(received).toBeCloseTo(expected) + + Expected: 0.6666666666666666 + Received: 0.3333333333333333 + + Expected precision: 2 + Expected difference: < 0.005 + Received difference: 0.3333333333333333 + + 47 | for (let index = 0; index < 3; index++) { + 48 | const bar = page.getByRole("progressbar"); + > 49 | expect.soft(await bar.evaluate((el) => (el as HTMLProgressElement).position)).toBeCloseTo((index + 1) / 3); + | ^ + 50 | await expect.soft(bar).toHaveAccessibleName("현재 문항 진행률", { timeout: 1000 }); + 51 | await bar.screenshot({ path: info.outputPath(`progress-${index + 1}.png`) }); + 52 | if (index) await page.getByRole("button", { name: /문장 듣기/ }).click(); + at /home/hermes/worktrees/find-word-v0.2.3/tests/browser/review-fixes.spec.ts:49:83 + + Error: expect(locator).toHaveAccessibleName(expected) failed + + Locator: getByRole('progressbar') + Expected: "현재 문항 진행률" + Received: "전체 진행률" + Timeout: 1000ms + + Call log: + - Expect "soft toHaveAccessibleName" getByRole('progressbar') with timeout 1000ms + - waiting for getByRole('progressbar') + 11 × locator resolved to + - unexpected value "전체 진행률" + + + 48 | const bar = page.getByRole("progressbar"); + 49 | expect.soft(await bar.evaluate((el) => (el as HTMLProgressElement).position)).toBeCloseTo((index + 1) / 3); + > 50 | await expect.soft(bar).toHaveAccessibleName("현재 문항 진행률", { timeout: 1000 }); + | ^ + 51 | await bar.screenshot({ path: info.outputPath(`progress-${index + 1}.png`) }); + 52 | if (index) await page.getByRole("button", { name: /문장 듣기/ }).click(); + 53 | await expect(page.getByRole("group", { name: "답 선택" })).toBeVisible({ timeout: 30000 }); + at /home/hermes/worktrees/find-word-v0.2.3/tests/browser/review-fixes.spec.ts:50:28 + + Error: expect(received).toBeCloseTo(expected) + + Expected: 1 + Received: 0.6666666666666666 + + Expected precision: 2 + Expected difference: < 0.005 + Received difference: 0.33333333333333337 + + 47 | for (let index = 0; index < 3; index++) { + 48 | const bar = page.getByRole("progressbar"); + > 49 | expect.soft(await bar.evaluate((el) => (el as HTMLProgressElement).position)).toBeCloseTo((index + 1) / 3); + | ^ + 50 | await expect.soft(bar).toHaveAccessibleName("현재 문항 진행률", { timeout: 1000 }); + 51 | await bar.screenshot({ path: info.outputPath(`progress-${index + 1}.png`) }); + 52 | if (index) await page.getByRole("button", { name: /문장 듣기/ }).click(); + at /home/hermes/worktrees/find-word-v0.2.3/tests/browser/review-fixes.spec.ts:49:83 + + Error: expect(locator).toHaveAccessibleName(expected) failed + + Locator: getByRole('progressbar') + Expected: "현재 문항 진행률" + Received: "전체 진행률" + Timeout: 1000ms + + Call log: + - Expect "soft toHaveAccessibleName" getByRole('progressbar') with timeout 1000ms + - waiting for getByRole('progressbar') + 11 × locator resolved to + - unexpected value "전체 진행률" + + + 48 | const bar = page.getByRole("progressbar"); + 49 | expect.soft(await bar.evaluate((el) => (el as HTMLProgressElement).position)).toBeCloseTo((index + 1) / 3); + > 50 | await expect.soft(bar).toHaveAccessibleName("현재 문항 진행률", { timeout: 1000 }); + | ^ + 51 | await bar.screenshot({ path: info.outputPath(`progress-${index + 1}.png`) }); + 52 | if (index) await page.getByRole("button", { name: /문장 듣기/ }).click(); + 53 | await expect(page.getByRole("group", { name: "답 선택" })).toBeVisible({ timeout: 30000 }); + at /home/hermes/worktrees/find-word-v0.2.3/tests/browser/review-fixes.spec.ts:50:28 + + Error: expect(received).toEqual(expected) // deep equality + + - Expected - 1 + + Received + 4 + + - Array [] + + Array [ + + "split: 만나요", + + "split: 최대", + + ] + + 57 | } + 58 | await page.screenshot({ path: info.outputPath("normal-results.png"), fullPage: true }); + > 59 | expect(await copyLayout(page, ".results-panel h2, .results-panel p, .stats span")).toEqual([]); + | ^ + 60 | }); + 61 | + at /home/hermes/worktrees/find-word-v0.2.3/tests/browser/review-fixes.spec.ts:59:86 + + Error Context: .agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-mobile/error-context.md + + attachment #2: trace (application/zip) ───────────────────────────────────────────────────────── + .agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-mobile/trace.zip + Usage: + + npx playwright show-trace .agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-mobile/trace.zip + + ──────────────────────────────────────────────────────────────────────────────────────────────── + + 4 failed + [desktop] › tests/browser/review-fixes.spec.ts:24:1 › 리뷰: 한국어 모드·결과 어절은 320px와 360px에서도 갈라지거나 넘치지 않는다 + [desktop] › tests/browser/review-fixes.spec.ts:38:1 › 리뷰: 실제 진행 막대는 현재 문항의 1/3·2/3·3/3을 채운다 ──── + [mobile] › tests/browser/review-fixes.spec.ts:24:1 › 리뷰: 한국어 모드·결과 어절은 320px와 360px에서도 갈라지거나 넘치지 않는다 + [mobile] › tests/browser/review-fixes.spec.ts:38:1 › 리뷰: 실제 진행 막대는 현재 문항의 1/3·2/3·3/3을 채운다 ───── + +EXIT_CODE=1 diff --git a/.agent/evidence-v0.2.3/review-fixes/02-progress-pixels-GREEN.log b/.agent/evidence-v0.2.3/review-fixes/02-progress-pixels-GREEN.log new file mode 100644 index 0000000..bd5208e --- /dev/null +++ b/.agent/evidence-v0.2.3/review-fixes/02-progress-pixels-GREEN.log @@ -0,0 +1,9 @@ +$ python3 .cache/review_pixels.py browser-green +desktop progress-1.png green pixels: 365 expected: 365.3333333333333 +desktop progress-2.png green pixels: 731 expected: 730.6666666666666 +desktop progress-3.png green pixels: 1096 expected: 1096.0 +-mobile progress-1.png green pixels: 107 expected: 106.66666666666667 +-mobile progress-2.png green pixels: 213 expected: 213.33333333333334 +-mobile progress-3.png green pixels: 320 expected: 320.0 + +EXIT_CODE=0 diff --git a/.agent/evidence-v0.2.3/review-fixes/02-progress-pixels-RED.log b/.agent/evidence-v0.2.3/review-fixes/02-progress-pixels-RED.log new file mode 100644 index 0000000..96ff1f5 --- /dev/null +++ b/.agent/evidence-v0.2.3/review-fixes/02-progress-pixels-RED.log @@ -0,0 +1,14 @@ +$ python3 .cache/review_pixels.py browser-red +desktop progress-1.png green pixels: 0 expected: 365.3333333333333 +desktop progress-2.png green pixels: 365 expected: 730.6666666666666 +desktop progress-3.png green pixels: 731 expected: 1096.0 +-mobile progress-1.png green pixels: 0 expected: 106.66666666666667 +-mobile progress-2.png green pixels: 107 expected: 213.33333333333334 +-mobile progress-3.png green pixels: 213 expected: 320.0 +Traceback (most recent call last): + File "/home/hermes/worktrees/find-word-v0.2.3/.cache/review_pixels.py", line 11, in + assert not errors, errors + ^^^^^^^^^^ +AssertionError: ['.agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-desktop/progress-1.png', '.agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-desktop/progress-2.png', '.agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-desktop/progress-3.png', '.agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-mobile/progress-1.png', '.agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-mobile/progress-2.png', '.agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-mobile/progress-3.png'] + +EXIT_CODE=1 diff --git a/.agent/evidence-v0.2.3/review-fixes/02-ui-build.log b/.agent/evidence-v0.2.3/review-fixes/02-ui-build.log new file mode 100644 index 0000000..4c21e48 --- /dev/null +++ b/.agent/evidence-v0.2.3/review-fixes/02-ui-build.log @@ -0,0 +1,18 @@ +$ npm run build + +> find-word@0.2.3 build +> tsc --noEmit && vite build && node scripts/check-build.mjs + +vite v8.3.4 building client environment for production... +transforming... +✓ 21 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-gnlu2pc2.js 247.94 kB │ gzip: 78.06 kB + +✓ built in 179ms +빌드 음성 자산 101개 + 현장음 8개 및 런타임/현장음 notice 확인 + +EXIT_CODE=0 diff --git a/.agent/evidence-v0.2.3/review-fixes/03-voice-inventory-GREEN.log b/.agent/evidence-v0.2.3/review-fixes/03-voice-inventory-GREEN.log new file mode 100644 index 0000000..5989055 --- /dev/null +++ b/.agent/evidence-v0.2.3/review-fixes/03-voice-inventory-GREEN.log @@ -0,0 +1,12 @@ +$ npx vitest run tests/build.test.ts + + RUN v5.0.4 /home/hermes/worktrees/find-word-v0.2.3 + + + Test Files 1 passed (1) + Tests 13 passed (13) + Start at 08:48:11 + Duration 3.74s (tests 97%, setup 3%) + + +EXIT_CODE=0 diff --git a/.agent/evidence-v0.2.3/review-fixes/03-voice-inventory-RED.log b/.agent/evidence-v0.2.3/review-fixes/03-voice-inventory-RED.log new file mode 100644 index 0000000..cd23148 --- /dev/null +++ b/.agent/evidence-v0.2.3/review-fixes/03-voice-inventory-RED.log @@ -0,0 +1,37 @@ +$ npx vitest run tests/build.test.ts -t 음성 목록과 + + RUN v5.0.4 /home/hermes/worktrees/find-word-v0.2.3 + + ❯ tests/build.test.ts (13 tests | 5 failed | 7 skipped) 1587ms + × 음성 목록과 폴더를 함께 바꾼 empty 배포를 거부한다 209ms + × 음성 목록과 폴더를 함께 바꾼 truncated 배포를 거부한다 285ms + × 음성 목록과 폴더를 함께 바꾼 duplicate 배포를 거부한다 260ms + × 음성 목록과 폴더를 함께 바꾼 renamed 배포를 거부한다 323ms + × 음성 목록과 폴더를 함께 바꾼 extra 배포를 거부한다 322ms + +⎯⎯⎯⎯⎯⎯⎯ Failed Tests 5 ⎯⎯⎯⎯⎯⎯⎯ + + FAIL tests/build.test.ts > 음성 목록과 폴더를 함께 바꾼 empty 배포를 거부한다 + FAIL tests/build.test.ts > 음성 목록과 폴더를 함께 바꾼 truncated 배포를 거부한다 + FAIL tests/build.test.ts > 음성 목록과 폴더를 함께 바꾼 duplicate 배포를 거부한다 + FAIL tests/build.test.ts > 음성 목록과 폴더를 함께 바꾼 renamed 배포를 거부한다 + FAIL tests/build.test.ts > 음성 목록과 폴더를 함께 바꾼 extra 배포를 거부한다 +AssertionError: expected [Function] to throw an error + ❯ tests/build.test.ts:133:45 + 131| expect(() => execFileSync("node", ["--input-type=module", "-e", + 132| `import {verifyBuild} from ${JSON.stringify(resolve("scripts/c… + 133| { cwd: temporary, stdio: "pipe" })).toThrow(); + | ^ + 134| } finally { rmSync(temporary, { recursive: true, force: true }); } + 135| }, + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[1/5]⎯ + + + Test Files 1 failed (1) + Tests 5 failed | 1 passed | 7 skipped (13) + Start at 08:47:36 + Duration 2.02s (tests 86%, setup 10%, transform 4%) + + +EXIT_CODE=1 diff --git a/.agent/evidence-v0.2.3/review-fixes/04-source-plan-GREEN.log b/.agent/evidence-v0.2.3/review-fixes/04-source-plan-GREEN.log new file mode 100644 index 0000000..8367024 --- /dev/null +++ b/.agent/evidence-v0.2.3/review-fixes/04-source-plan-GREEN.log @@ -0,0 +1,12 @@ +$ npx vitest run tests/ambience.test.ts + + RUN v5.0.4 /home/hermes/worktrees/find-word-v0.2.3 + + + Test Files 1 passed (1) + Tests 2 passed (2) + Start at 08:49:27 + Duration 494ms (tests 66%, setup 28%, transform 3%, import 2%, worker 1%) + + +EXIT_CODE=0 diff --git a/.agent/evidence-v0.2.3/review-fixes/04-source-plan-RED.log b/.agent/evidence-v0.2.3/review-fixes/04-source-plan-RED.log new file mode 100644 index 0000000..12e7174 --- /dev/null +++ b/.agent/evidence-v0.2.3/review-fixes/04-source-plan-RED.log @@ -0,0 +1,1003 @@ +$ npx vitest run tests/ambience.test.ts -t 원본 계획 + + RUN v5.0.4 /home/hermes/worktrees/find-word-v0.2.3 + + ❯ tests/ambience.test.ts (2 tests | 1 failed | 1 skipped) 117ms + × 원본 계획은 임시 경로 대신 검증된 해시·바이트·직접 미디어 길이를 고정한다 112ms + +⎯⎯⎯⎯⎯⎯⎯ Failed Tests 1 ⎯⎯⎯⎯⎯⎯⎯ + + FAIL tests/ambience.test.ts > 원본 계획은 임시 경로 대신 검증된 해시·바이트·직접 미디어 길이를 고정한다 +AssertionError: expected { environmentId: 'street', …(9) } to not have property "verifiedLocalSource" + +- Expected: +undefined + ++ Received: +"/tmp/findword-ambience-sources/street.ogg" + + ❯ tests/ambience.test.ts:85:28 + 83| for (const [index, asset] of plan.assets.entries()) { + 84| const original = evidence.find((e: { file: string }) => e.file.spl… + 85| expect.soft(asset).not.toHaveProperty("verifiedLocalSource"); + | ^ + 86| expect.soft(asset).not.toHaveProperty("sourceDurationSeconds"); + 87| expect.soft(asset.expectedSourceSha256).toBe(original.sha256); + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[1/64]⎯ + + FAIL tests/ambience.test.ts > 원본 계획은 임시 경로 대신 검증된 해시·바이트·직접 미디어 길이를 고정한다 +AssertionError: expected { environmentId: 'street', …(9) } to not have property "sourceDurationSeconds" + +- Expected: +undefined + ++ Received: +264.254694 + + ❯ tests/ambience.test.ts:86:28 + 84| const original = evidence.find((e: { file: string }) => e.file.spl… + 85| expect.soft(asset).not.toHaveProperty("verifiedLocalSource"); + 86| expect.soft(asset).not.toHaveProperty("sourceDurationSeconds"); + | ^ + 87| expect.soft(asset.expectedSourceSha256).toBe(original.sha256); + 88| expect.soft(asset.sourceBytes).toBe(original.bytes); + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[2/64]⎯ + + FAIL tests/ambience.test.ts > 원본 계획은 임시 경로 대신 검증된 해시·바이트·직접 미디어 길이를 고정한다 +AssertionError: expected undefined to be '0ddb0be7eb3427f781c8268bcbc74b8ad7e1f…' // Object.is equality + +- Expected: +"0ddb0be7eb3427f781c8268bcbc74b8ad7e1fbf75b9f6966e65274dbe85f3d9d" + ++ Received: +undefined + + ❯ tests/ambience.test.ts:87:45 + 85| expect.soft(asset).not.toHaveProperty("verifiedLocalSource"); + 86| expect.soft(asset).not.toHaveProperty("sourceDurationSeconds"); + 87| expect.soft(asset.expectedSourceSha256).toBe(original.sha256); + | ^ + 88| expect.soft(asset.sourceBytes).toBe(original.bytes); + 89| expect.soft(asset.directMediaDurationSeconds).toBe(Number(original… + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[3/64]⎯ + + FAIL tests/ambience.test.ts > 원본 계획은 임시 경로 대신 검증된 해시·바이트·직접 미디어 길이를 고정한다 +AssertionError: expected undefined to be 3414104 // Object.is equality + +- Expected: +3414104 + ++ Received: +undefined + + ❯ tests/ambience.test.ts:88:36 + + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[4/64]⎯ + + FAIL tests/ambience.test.ts > 원본 계획은 임시 경로 대신 검증된 해시·바이트·직접 미디어 길이를 고정한다 +AssertionError: expected undefined to be 264.254694 // Object.is equality + +- Expected: +264.254694 + ++ Received: +undefined + + ❯ tests/ambience.test.ts:89:51 + + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[5/64]⎯ + + FAIL tests/ambience.test.ts > 원본 계획은 임시 경로 대신 검증된 해시·바이트·직접 미디어 길이를 고정한다 + FAIL tests/ambience.test.ts > 원본 계획은 임시 경로 대신 검증된 해시·바이트·직접 미디어 길이를 고정한다 + FAIL tests/ambience.test.ts > 원본 계획은 임시 경로 대신 검증된 해시·바이트·직접 미디어 길이를 고정한다 + FAIL tests/ambience.test.ts > 원본 계획은 임시 경로 대신 검증된 해시·바이트·직접 미디어 길이를 고정한다 + FAIL tests/ambience.test.ts > 원본 계획은 임시 경로 대신 검증된 해시·바이트·직접 미디어 길이를 고정한다 + FAIL tests/ambience.test.ts > 원본 계획은 임시 경로 대신 검증된 해시·바이트·직접 미디어 길이를 고정한다 + FAIL tests/ambience.test.ts > 원본 계획은 임시 경로 대신 검증된 해시·바이트·직접 미디어 길이를 고정한다 + FAIL tests/ambience.test.ts > 원본 계획은 임시 경로 대신 검증된 해시·바이트·직접 미디어 길이를 고정한다 +AssertionError: expected undefined to deeply equal { status: 'verified', …(3) } + +- Expected: +{ + "dateUtc": "2026-10-14", + "evidence": ".agent/evidence-v0.2.3/source-integrity.json", + "method": "SHA-256, byte count, ffprobe format.duration, full FFmpeg decode", + "status": "verified", +} + ++ Received: +undefined + + ❯ tests/ambience.test.ts:90:43 + + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[6/64]⎯ + + FAIL tests/ambience.test.ts > 원본 계획은 임시 경로 대신 검증된 해시·바이트·직접 미디어 길이를 고정한다 +AssertionError: expected { environmentId: 'street', …(19) } to match object { environmentId: 'street', …(9) } +(22 matching properties omitted from actual) + +- Expected ++ Received + +@@ -6,7 +6,6 @@ + "environmentId": "street", + "license": "Public domain (PD-author)", + "licenseUrl": "https://commons.wikimedia.org/wiki/Template:PD-author", + "pageUrl": "https://commons.wikimedia.org/wiki/File:Sunday_in_the_city_street_noise2.ogg", + "sourceDurationSeconds": 264.254694, +- "verifiedLocalSource": "/tmp/findword-ambience-sources/street.ogg", + } + + ❯ tests/ambience.test.ts:91:40 + + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[7/64]⎯ + + FAIL tests/ambience.test.ts > 원본 계획은 임시 경로 대신 검증된 해시·바이트·직접 미디어 길이를 고정한다 +AssertionError: expected '0ddb0be7eb3427f781c8268bcbc74b8ad7e1f…' to be undefined // Object.is equality + +- Expected: +undefined + ++ Received: +"0ddb0be7eb3427f781c8268bcbc74b8ad7e1fbf75b9f6966e65274dbe85f3d9d" + + ❯ tests/ambience.test.ts:92:53 + + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[8/64]⎯ + + FAIL tests/ambience.test.ts > 원본 계획은 임시 경로 대신 검증된 해시·바이트·직접 미디어 길이를 고정한다 +AssertionError: expected { environmentId: 'mall', …(9) } to not have property "verifiedLocalSource" + +- Expected: +undefined + ++ Received: +"/tmp/findword-ambience-sources/mall.ogg" + + ❯ tests/ambience.test.ts:85:28 + 83| for (const [index, asset] of plan.assets.entries()) { + 84| const original = evidence.find((e: { file: string }) => e.file.spl… + 85| expect.soft(asset).not.toHaveProperty("verifiedLocalSource"); + | ^ + 86| expect.soft(asset).not.toHaveProperty("sourceDurationSeconds"); + 87| expect.soft(asset.expectedSourceSha256).toBe(original.sha256); + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[9/64]⎯ + + FAIL tests/ambience.test.ts > 원본 계획은 임시 경로 대신 검증된 해시·바이트·직접 미디어 길이를 고정한다 +AssertionError: expected { environmentId: 'mall', …(9) } to not have property "sourceDurationSeconds" + +- Expected: +undefined + ++ Received: +60.05551 + + ❯ tests/ambience.test.ts:86:28 + 84| const original = evidence.find((e: { file: string }) => e.file.spl… + 85| expect.soft(asset).not.toHaveProperty("verifiedLocalSource"); + 86| expect.soft(asset).not.toHaveProperty("sourceDurationSeconds"); + | ^ + 87| expect.soft(asset.expectedSourceSha256).toBe(original.sha256); + 88| expect.soft(asset.sourceBytes).toBe(original.bytes); + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[10/64]⎯ + + FAIL tests/ambience.test.ts > 원본 계획은 임시 경로 대신 검증된 해시·바이트·직접 미디어 길이를 고정한다 +AssertionError: expected undefined to be 'bb066e130e5d665db57cb5f88e820d053c724…' // Object.is equality + +- Expected: +"bb066e130e5d665db57cb5f88e820d053c724d8f777b275213998d2074c6529a" + ++ Received: +undefined + + ❯ tests/ambience.test.ts:87:45 + 85| expect.soft(asset).not.toHaveProperty("verifiedLocalSource"); + 86| expect.soft(asset).not.toHaveProperty("sourceDurationSeconds"); + 87| expect.soft(asset.expectedSourceSha256).toBe(original.sha256); + | ^ + 88| expect.soft(asset.sourceBytes).toBe(original.bytes); + 89| expect.soft(asset.directMediaDurationSeconds).toBe(Number(original… + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[11/64]⎯ + + FAIL tests/ambience.test.ts > 원본 계획은 임시 경로 대신 검증된 해시·바이트·직접 미디어 길이를 고정한다 +AssertionError: expected undefined to be 1666896 // Object.is equality + +- Expected: +1666896 + ++ Received: +undefined + + ❯ tests/ambience.test.ts:88:36 + + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[12/64]⎯ + + FAIL tests/ambience.test.ts > 원본 계획은 임시 경로 대신 검증된 해시·바이트·직접 미디어 길이를 고정한다 +AssertionError: expected undefined to be 60.05551 // Object.is equality + +- Expected: +60.05551 + ++ Received: +undefined + + ❯ tests/ambience.test.ts:89:51 + + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[13/64]⎯ + + FAIL tests/ambience.test.ts > 원본 계획은 임시 경로 대신 검증된 해시·바이트·직접 미디어 길이를 고정한다 +AssertionError: expected { environmentId: 'mall', …(19) } to match object { environmentId: 'mall', …(9) } +(22 matching properties omitted from actual) + +- Expected ++ Received + +@@ -6,7 +6,6 @@ + "environmentId": "mall", + "license": "Public domain (PD-author)", + "licenseUrl": "https://commons.wikimedia.org/wiki/Template:PD-author", + "pageUrl": "https://commons.wikimedia.org/wiki/File:1_minute_at_the_alexa_mall_in_berlin.ogg", + "sourceDurationSeconds": 60.05551, +- "verifiedLocalSource": "/tmp/findword-ambience-sources/mall.ogg", + } + + ❯ tests/ambience.test.ts:91:40 + + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[14/64]⎯ + + FAIL tests/ambience.test.ts > 원본 계획은 임시 경로 대신 검증된 해시·바이트·직접 미디어 길이를 고정한다 +AssertionError: expected 'bb066e130e5d665db57cb5f88e820d053c724…' to be undefined // Object.is equality + +- Expected: +undefined + ++ Received: +"bb066e130e5d665db57cb5f88e820d053c724d8f777b275213998d2074c6529a" + + ❯ tests/ambience.test.ts:92:53 + + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[15/64]⎯ + + FAIL tests/ambience.test.ts > 원본 계획은 임시 경로 대신 검증된 해시·바이트·직접 미디어 길이를 고정한다 +AssertionError: expected { environmentId: 'theater', …(9) } to not have property "verifiedLocalSource" + +- Expected: +undefined + ++ Received: +"/tmp/findword-ambience-sources/theater.mp3" + + ❯ tests/ambience.test.ts:85:28 + 83| for (const [index, asset] of plan.assets.entries()) { + 84| const original = evidence.find((e: { file: string }) => e.file.spl… + 85| expect.soft(asset).not.toHaveProperty("verifiedLocalSource"); + | ^ + 86| expect.soft(asset).not.toHaveProperty("sourceDurationSeconds"); + 87| expect.soft(asset.expectedSourceSha256).toBe(original.sha256); + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[16/64]⎯ + + FAIL tests/ambience.test.ts > 원본 계획은 임시 경로 대신 검증된 해시·바이트·직접 미디어 길이를 고정한다 +AssertionError: expected { environmentId: 'theater', …(9) } to not have property "sourceDurationSeconds" + +- Expected: +undefined + ++ Received: +176.901224 + + ❯ tests/ambience.test.ts:86:28 + 84| const original = evidence.find((e: { file: string }) => e.file.spl… + 85| expect.soft(asset).not.toHaveProperty("verifiedLocalSource"); + 86| expect.soft(asset).not.toHaveProperty("sourceDurationSeconds"); + | ^ + 87| expect.soft(asset.expectedSourceSha256).toBe(original.sha256); + 88| expect.soft(asset.sourceBytes).toBe(original.bytes); + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[17/64]⎯ + + FAIL tests/ambience.test.ts > 원본 계획은 임시 경로 대신 검증된 해시·바이트·직접 미디어 길이를 고정한다 +AssertionError: expected undefined to be '05c3ece7c088f34700b7610f791c0ad848a24…' // Object.is equality + +- Expected: +"05c3ece7c088f34700b7610f791c0ad848a24c77be2c32fd1503a78356739a43" + ++ Received: +undefined + + ❯ tests/ambience.test.ts:87:45 + 85| expect.soft(asset).not.toHaveProperty("verifiedLocalSource"); + 86| expect.soft(asset).not.toHaveProperty("sourceDurationSeconds"); + 87| expect.soft(asset.expectedSourceSha256).toBe(original.sha256); + | ^ + 88| expect.soft(asset.sourceBytes).toBe(original.bytes); + 89| expect.soft(asset.directMediaDurationSeconds).toBe(Number(original… + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[18/64]⎯ + + FAIL tests/ambience.test.ts > 원본 계획은 임시 경로 대신 검증된 해시·바이트·직접 미디어 길이를 고정한다 +AssertionError: expected undefined to be 1485015 // Object.is equality + +- Expected: +1485015 + ++ Received: +undefined + + ❯ tests/ambience.test.ts:88:36 + + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[19/64]⎯ + + FAIL tests/ambience.test.ts > 원본 계획은 임시 경로 대신 검증된 해시·바이트·직접 미디어 길이를 고정한다 +AssertionError: expected undefined to be 176.901224 // Object.is equality + +- Expected: +176.901224 + ++ Received: +undefined + + ❯ tests/ambience.test.ts:89:51 + + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[20/64]⎯ + + FAIL tests/ambience.test.ts > 원본 계획은 임시 경로 대신 검증된 해시·바이트·직접 미디어 길이를 고정한다 +AssertionError: expected { environmentId: 'theater', …(19) } to match object { environmentId: 'theater', …(9) } +(22 matching properties omitted from actual) + +- Expected ++ Received + +@@ -6,7 +6,6 @@ + "environmentId": "theater", + "license": "CC0 1.0 Universal", + "licenseUrl": "https://creativecommons.org/publicdomain/zero/1.0/", + "pageUrl": "https://freesound.org/people/ElevatorFan2020/sounds/853576/", + "sourceDurationSeconds": 176.901224, +- "verifiedLocalSource": "/tmp/findword-ambience-sources/theater.mp3", + } + + ❯ tests/ambience.test.ts:91:40 + + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[21/64]⎯ + + FAIL tests/ambience.test.ts > 원본 계획은 임시 경로 대신 검증된 해시·바이트·직접 미디어 길이를 고정한다 +AssertionError: expected '05c3ece7c088f34700b7610f791c0ad848a24…' to be undefined // Object.is equality + +- Expected: +undefined + ++ Received: +"05c3ece7c088f34700b7610f791c0ad848a24c77be2c32fd1503a78356739a43" + + ❯ tests/ambience.test.ts:92:53 + + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[22/64]⎯ + + FAIL tests/ambience.test.ts > 원본 계획은 임시 경로 대신 검증된 해시·바이트·직접 미디어 길이를 고정한다 +AssertionError: expected { environmentId: 'department', …(9) } to not have property "verifiedLocalSource" + +- Expected: +undefined + ++ Received: +"/tmp/findword-ambience-sources/department.mp3" + + ❯ tests/ambience.test.ts:85:28 + 83| for (const [index, asset] of plan.assets.entries()) { + 84| const original = evidence.find((e: { file: string }) => e.file.spl… + 85| expect.soft(asset).not.toHaveProperty("verifiedLocalSource"); + | ^ + 86| expect.soft(asset).not.toHaveProperty("sourceDurationSeconds"); + 87| expect.soft(asset.expectedSourceSha256).toBe(original.sha256); + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[23/64]⎯ + + FAIL tests/ambience.test.ts > 원본 계획은 임시 경로 대신 검증된 해시·바이트·직접 미디어 길이를 고정한다 +AssertionError: expected { environmentId: 'department', …(9) } to not have property "sourceDurationSeconds" + +- Expected: +undefined + ++ Received: +292.872 + + ❯ tests/ambience.test.ts:86:28 + 84| const original = evidence.find((e: { file: string }) => e.file.spl… + 85| expect.soft(asset).not.toHaveProperty("verifiedLocalSource"); + 86| expect.soft(asset).not.toHaveProperty("sourceDurationSeconds"); + | ^ + 87| expect.soft(asset.expectedSourceSha256).toBe(original.sha256); + 88| expect.soft(asset.sourceBytes).toBe(original.bytes); + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[24/64]⎯ + + FAIL tests/ambience.test.ts > 원본 계획은 임시 경로 대신 검증된 해시·바이트·직접 미디어 길이를 고정한다 +AssertionError: expected undefined to be '261fda28722fba623483a90b32e7a2ec388c5…' // Object.is equality + +- Expected: +"261fda28722fba623483a90b32e7a2ec388c59887f56a5247156b53f1ffb6ccd" + ++ Received: +undefined + + ❯ tests/ambience.test.ts:87:45 + 85| expect.soft(asset).not.toHaveProperty("verifiedLocalSource"); + 86| expect.soft(asset).not.toHaveProperty("sourceDurationSeconds"); + 87| expect.soft(asset.expectedSourceSha256).toBe(original.sha256); + | ^ + 88| expect.soft(asset.sourceBytes).toBe(original.bytes); + 89| expect.soft(asset.directMediaDurationSeconds).toBe(Number(original… + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[25/64]⎯ + + FAIL tests/ambience.test.ts > 원본 계획은 임시 경로 대신 검증된 해시·바이트·직접 미디어 길이를 고정한다 +AssertionError: expected undefined to be 2445024 // Object.is equality + +- Expected: +2445024 + ++ Received: +undefined + + ❯ tests/ambience.test.ts:88:36 + + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[26/64]⎯ + + FAIL tests/ambience.test.ts > 원본 계획은 임시 경로 대신 검증된 해시·바이트·직접 미디어 길이를 고정한다 +AssertionError: expected undefined to be 292.872 // Object.is equality + +- Expected: +292.872 + ++ Received: +undefined + + ❯ tests/ambience.test.ts:89:51 + + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[27/64]⎯ + + FAIL tests/ambience.test.ts > 원본 계획은 임시 경로 대신 검증된 해시·바이트·직접 미디어 길이를 고정한다 +AssertionError: expected { environmentId: 'department', …(19) } to match object { environmentId: 'department', …(9) } +(22 matching properties omitted from actual) + +- Expected ++ Received + +@@ -6,7 +6,6 @@ + "environmentId": "department", + "license": "CC0 1.0 Universal", + "licenseUrl": "https://creativecommons.org/publicdomain/zero/1.0/", + "pageUrl": "https://freesound.org/people/icmusic/sounds/268941/", + "sourceDurationSeconds": 292.872, +- "verifiedLocalSource": "/tmp/findword-ambience-sources/department.mp3", + } + + ❯ tests/ambience.test.ts:91:40 + + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[28/64]⎯ + + FAIL tests/ambience.test.ts > 원본 계획은 임시 경로 대신 검증된 해시·바이트·직접 미디어 길이를 고정한다 +AssertionError: expected '261fda28722fba623483a90b32e7a2ec388c5…' to be undefined // Object.is equality + +- Expected: +undefined + ++ Received: +"261fda28722fba623483a90b32e7a2ec388c59887f56a5247156b53f1ffb6ccd" + + ❯ tests/ambience.test.ts:92:53 + + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[29/64]⎯ + + FAIL tests/ambience.test.ts > 원본 계획은 임시 경로 대신 검증된 해시·바이트·직접 미디어 길이를 고정한다 +AssertionError: expected { environmentId: 'market', …(9) } to not have property "verifiedLocalSource" + +- Expected: +undefined + ++ Received: +"/tmp/findword-ambience-sources/market.ogg" + + ❯ tests/ambience.test.ts:85:28 + 83| for (const [index, asset] of plan.assets.entries()) { + 84| const original = evidence.find((e: { file: string }) => e.file.spl… + 85| expect.soft(asset).not.toHaveProperty("verifiedLocalSource"); + | ^ + 86| expect.soft(asset).not.toHaveProperty("sourceDurationSeconds"); + 87| expect.soft(asset.expectedSourceSha256).toBe(original.sha256); + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[30/64]⎯ + + FAIL tests/ambience.test.ts > 원본 계획은 임시 경로 대신 검증된 해시·바이트·직접 미디어 길이를 고정한다 +AssertionError: expected { environmentId: 'market', …(9) } to not have property "sourceDurationSeconds" + +- Expected: +undefined + ++ Received: +76.696961 + + ❯ tests/ambience.test.ts:86:28 + 84| const original = evidence.find((e: { file: string }) => e.file.spl… + 85| expect.soft(asset).not.toHaveProperty("verifiedLocalSource"); + 86| expect.soft(asset).not.toHaveProperty("sourceDurationSeconds"); + | ^ + 87| expect.soft(asset.expectedSourceSha256).toBe(original.sha256); + 88| expect.soft(asset.sourceBytes).toBe(original.bytes); + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[31/64]⎯ + + FAIL tests/ambience.test.ts > 원본 계획은 임시 경로 대신 검증된 해시·바이트·직접 미디어 길이를 고정한다 +AssertionError: expected undefined to be 'fc0075dce8ad05b56460c9f18754c27b2021f…' // Object.is equality + +- Expected: +"fc0075dce8ad05b56460c9f18754c27b2021f21f1c780a595ccda648d33c941d" + ++ Received: +undefined + + ❯ tests/ambience.test.ts:87:45 + 85| expect.soft(asset).not.toHaveProperty("verifiedLocalSource"); + 86| expect.soft(asset).not.toHaveProperty("sourceDurationSeconds"); + 87| expect.soft(asset.expectedSourceSha256).toBe(original.sha256); + | ^ + 88| expect.soft(asset.sourceBytes).toBe(original.bytes); + 89| expect.soft(asset.directMediaDurationSeconds).toBe(Number(original… + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[32/64]⎯ + + FAIL tests/ambience.test.ts > 원본 계획은 임시 경로 대신 검증된 해시·바이트·직접 미디어 길이를 고정한다 +AssertionError: expected undefined to be 622200 // Object.is equality + +- Expected: +622200 + ++ Received: +undefined + + ❯ tests/ambience.test.ts:88:36 + + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[33/64]⎯ + + FAIL tests/ambience.test.ts > 원본 계획은 임시 경로 대신 검증된 해시·바이트·직접 미디어 길이를 고정한다 +AssertionError: expected undefined to be 76.696961 // Object.is equality + +- Expected: +76.696961 + ++ Received: +undefined + + ❯ tests/ambience.test.ts:89:51 + + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[34/64]⎯ + + FAIL tests/ambience.test.ts > 원본 계획은 임시 경로 대신 검증된 해시·바이트·직접 미디어 길이를 고정한다 +AssertionError: expected { environmentId: 'market', …(19) } to match object { environmentId: 'market', …(9) } +(22 matching properties omitted from actual) + +- Expected ++ Received + +@@ -6,7 +6,6 @@ + "environmentId": "market", + "license": "CC BY-SA 4.0", + "licenseUrl": "https://creativecommons.org/licenses/by-sa/4.0/", + "pageUrl": "https://commons.wikimedia.org/wiki/File:Italia_Palermo_mercato-Ballaro_20161225_122421.ogg", + "sourceDurationSeconds": 76.696961, +- "verifiedLocalSource": "/tmp/findword-ambience-sources/market.ogg", + } + + ❯ tests/ambience.test.ts:91:40 + + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[35/64]⎯ + + FAIL tests/ambience.test.ts > 원본 계획은 임시 경로 대신 검증된 해시·바이트·직접 미디어 길이를 고정한다 +AssertionError: expected 'fc0075dce8ad05b56460c9f18754c27b2021f…' to be undefined // Object.is equality + +- Expected: +undefined + ++ Received: +"fc0075dce8ad05b56460c9f18754c27b2021f21f1c780a595ccda648d33c941d" + + ❯ tests/ambience.test.ts:92:53 + + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[36/64]⎯ + + FAIL tests/ambience.test.ts > 원본 계획은 임시 경로 대신 검증된 해시·바이트·직접 미디어 길이를 고정한다 +AssertionError: expected { environmentId: 'subway', …(9) } to not have property "verifiedLocalSource" + +- Expected: +undefined + ++ Received: +"/tmp/findword-ambience-sources/subway.ogg" + + ❯ tests/ambience.test.ts:85:28 + 83| for (const [index, asset] of plan.assets.entries()) { + 84| const original = evidence.find((e: { file: string }) => e.file.spl… + 85| expect.soft(asset).not.toHaveProperty("verifiedLocalSource"); + | ^ + 86| expect.soft(asset).not.toHaveProperty("sourceDurationSeconds"); + 87| expect.soft(asset.expectedSourceSha256).toBe(original.sha256); + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[37/64]⎯ + + FAIL tests/ambience.test.ts > 원본 계획은 임시 경로 대신 검증된 해시·바이트·직접 미디어 길이를 고정한다 +AssertionError: expected { environmentId: 'subway', …(9) } to not have property "sourceDurationSeconds" + +- Expected: +undefined + ++ Received: +425.024 + + ❯ tests/ambience.test.ts:86:28 + 84| const original = evidence.find((e: { file: string }) => e.file.spl… + 85| expect.soft(asset).not.toHaveProperty("verifiedLocalSource"); + 86| expect.soft(asset).not.toHaveProperty("sourceDurationSeconds"); + | ^ + 87| expect.soft(asset.expectedSourceSha256).toBe(original.sha256); + 88| expect.soft(asset.sourceBytes).toBe(original.bytes); + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[38/64]⎯ + + FAIL tests/ambience.test.ts > 원본 계획은 임시 경로 대신 검증된 해시·바이트·직접 미디어 길이를 고정한다 +AssertionError: expected undefined to be '41fcf064cde53cef1528fe98721347851e60c…' // Object.is equality + +- Expected: +"41fcf064cde53cef1528fe98721347851e60c070d8ff9f213f354025cf272d4c" + ++ Received: +undefined + + ❯ tests/ambience.test.ts:87:45 + 85| expect.soft(asset).not.toHaveProperty("verifiedLocalSource"); + 86| expect.soft(asset).not.toHaveProperty("sourceDurationSeconds"); + 87| expect.soft(asset.expectedSourceSha256).toBe(original.sha256); + | ^ + 88| expect.soft(asset.sourceBytes).toBe(original.bytes); + 89| expect.soft(asset.directMediaDurationSeconds).toBe(Number(original… + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[39/64]⎯ + + FAIL tests/ambience.test.ts > 원본 계획은 임시 경로 대신 검증된 해시·바이트·직접 미디어 길이를 고정한다 +AssertionError: expected undefined to be 3343901 // Object.is equality + +- Expected: +3343901 + ++ Received: +undefined + + ❯ tests/ambience.test.ts:88:36 + + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[40/64]⎯ + + FAIL tests/ambience.test.ts > 원본 계획은 임시 경로 대신 검증된 해시·바이트·직접 미디어 길이를 고정한다 +AssertionError: expected undefined to be 425.024 // Object.is equality + +- Expected: +425.024 + ++ Received: +undefined + + ❯ tests/ambience.test.ts:89:51 + + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[41/64]⎯ + + FAIL tests/ambience.test.ts > 원본 계획은 임시 경로 대신 검증된 해시·바이트·직접 미디어 길이를 고정한다 +AssertionError: expected { environmentId: 'subway', …(19) } to match object { environmentId: 'subway', …(9) } +(22 matching properties omitted from actual) + +- Expected ++ Received + +@@ -6,7 +6,6 @@ + "environmentId": "subway", + "license": "CC BY 4.0", + "licenseUrl": "https://creativecommons.org/licenses/by/4.0/", + "pageUrl": "https://commons.wikimedia.org/wiki/File:TTC_Subway_Line_1_Ambience_-_Museum_to_Union_(Freesound).ogg", + "sourceDurationSeconds": 425.024, +- "verifiedLocalSource": "/tmp/findword-ambience-sources/subway.ogg", + } + + ❯ tests/ambience.test.ts:91:40 + + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[42/64]⎯ + + FAIL tests/ambience.test.ts > 원본 계획은 임시 경로 대신 검증된 해시·바이트·직접 미디어 길이를 고정한다 +AssertionError: expected '41fcf064cde53cef1528fe98721347851e60c…' to be undefined // Object.is equality + +- Expected: +undefined + ++ Received: +"41fcf064cde53cef1528fe98721347851e60c070d8ff9f213f354025cf272d4c" + + ❯ tests/ambience.test.ts:92:53 + + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[43/64]⎯ + + FAIL tests/ambience.test.ts > 원본 계획은 임시 경로 대신 검증된 해시·바이트·직접 미디어 길이를 고정한다 +AssertionError: expected { environmentId: 'cafe', …(9) } to not have property "verifiedLocalSource" + +- Expected: +undefined + ++ Received: +null + + ❯ tests/ambience.test.ts:85:28 + 83| for (const [index, asset] of plan.assets.entries()) { + 84| const original = evidence.find((e: { file: string }) => e.file.spl… + 85| expect.soft(asset).not.toHaveProperty("verifiedLocalSource"); + | ^ + 86| expect.soft(asset).not.toHaveProperty("sourceDurationSeconds"); + 87| expect.soft(asset.expectedSourceSha256).toBe(original.sha256); + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[44/64]⎯ + + FAIL tests/ambience.test.ts > 원본 계획은 임시 경로 대신 검증된 해시·바이트·직접 미디어 길이를 고정한다 +AssertionError: expected { environmentId: 'cafe', …(9) } to not have property "sourceDurationSeconds" + +- Expected: +undefined + ++ Received: +1200.001 + + ❯ tests/ambience.test.ts:86:28 + 84| const original = evidence.find((e: { file: string }) => e.file.spl… + 85| expect.soft(asset).not.toHaveProperty("verifiedLocalSource"); + 86| expect.soft(asset).not.toHaveProperty("sourceDurationSeconds"); + | ^ + 87| expect.soft(asset.expectedSourceSha256).toBe(original.sha256); + 88| expect.soft(asset.sourceBytes).toBe(original.bytes); + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[45/64]⎯ + + FAIL tests/ambience.test.ts > 원본 계획은 임시 경로 대신 검증된 해시·바이트·직접 미디어 길이를 고정한다 +AssertionError: expected undefined to be '6360791fdcee1f64638f0fc9abd6d2c7a1aa7…' // Object.is equality + +- Expected: +"6360791fdcee1f64638f0fc9abd6d2c7a1aa75fd3d2b80033170a02d025099dc" + ++ Received: +undefined + + ❯ tests/ambience.test.ts:87:45 + 85| expect.soft(asset).not.toHaveProperty("verifiedLocalSource"); + 86| expect.soft(asset).not.toHaveProperty("sourceDurationSeconds"); + 87| expect.soft(asset.expectedSourceSha256).toBe(original.sha256); + | ^ + 88| expect.soft(asset.sourceBytes).toBe(original.bytes); + 89| expect.soft(asset.directMediaDurationSeconds).toBe(Number(original… + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[46/64]⎯ + + FAIL tests/ambience.test.ts > 원본 계획은 임시 경로 대신 검증된 해시·바이트·직접 미디어 길이를 고정한다 +AssertionError: expected undefined to be 19947952 // Object.is equality + +- Expected: +19947952 + ++ Received: +undefined + + ❯ tests/ambience.test.ts:88:36 + + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[47/64]⎯ + + FAIL tests/ambience.test.ts > 원본 계획은 임시 경로 대신 검증된 해시·바이트·직접 미디어 길이를 고정한다 +AssertionError: expected undefined to be 1200.000998 // Object.is equality + +- Expected: +1200.000998 + ++ Received: +undefined + + ❯ tests/ambience.test.ts:89:51 + + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[48/64]⎯ + + FAIL tests/ambience.test.ts > 원본 계획은 임시 경로 대신 검증된 해시·바이트·직접 미디어 길이를 고정한다 +AssertionError: expected { environmentId: 'cafe', …(19) } to match object { environmentId: 'cafe', …(9) } +(22 matching properties omitted from actual) + +- Expected ++ Received + +@@ -6,7 +6,6 @@ + "environmentId": "cafe", + "license": "CC0 1.0 Universal", + "licenseUrl": "https://creativecommons.org/publicdomain/zero/1.0/", + "pageUrl": "https://commons.wikimedia.org/wiki/File:Cafe_ambiance.ogg", + "sourceDurationSeconds": 1200.001, +- "verifiedLocalSource": null, + } + + ❯ tests/ambience.test.ts:91:40 + + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[49/64]⎯ + + FAIL tests/ambience.test.ts > 원본 계획은 임시 경로 대신 검증된 해시·바이트·직접 미디어 길이를 고정한다 +AssertionError: expected '6360791fdcee1f64638f0fc9abd6d2c7a1aa7…' to be undefined // Object.is equality + +- Expected: +undefined + ++ Received: +"6360791fdcee1f64638f0fc9abd6d2c7a1aa75fd3d2b80033170a02d025099dc" + + ❯ tests/ambience.test.ts:92:53 + + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[50/64]⎯ + + FAIL tests/ambience.test.ts > 원본 계획은 임시 경로 대신 검증된 해시·바이트·직접 미디어 길이를 고정한다 +AssertionError: expected { environmentId: 'rain', …(9) } to not have property "verifiedLocalSource" + +- Expected: +undefined + ++ Received: +null + + ❯ tests/ambience.test.ts:85:28 + 83| for (const [index, asset] of plan.assets.entries()) { + 84| const original = evidence.find((e: { file: string }) => e.file.spl… + 85| expect.soft(asset).not.toHaveProperty("verifiedLocalSource"); + | ^ + 86| expect.soft(asset).not.toHaveProperty("sourceDurationSeconds"); + 87| expect.soft(asset.expectedSourceSha256).toBe(original.sha256); + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[51/64]⎯ + + FAIL tests/ambience.test.ts > 원본 계획은 임시 경로 대신 검증된 해시·바이트·직접 미디어 길이를 고정한다 +AssertionError: expected { environmentId: 'rain', …(9) } to not have property "sourceDurationSeconds" + +- Expected: +undefined + ++ Received: +1800 + + ❯ tests/ambience.test.ts:86:28 + 84| const original = evidence.find((e: { file: string }) => e.file.spl… + 85| expect.soft(asset).not.toHaveProperty("verifiedLocalSource"); + 86| expect.soft(asset).not.toHaveProperty("sourceDurationSeconds"); + | ^ + 87| expect.soft(asset.expectedSourceSha256).toBe(original.sha256); + 88| expect.soft(asset.sourceBytes).toBe(original.bytes); + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[52/64]⎯ + + FAIL tests/ambience.test.ts > 원본 계획은 임시 경로 대신 검증된 해시·바이트·직접 미디어 길이를 고정한다 +AssertionError: expected undefined to be 'ef0511593b1bb0ba47d5c5dafd83eb07ba854…' // Object.is equality + +- Expected: +"ef0511593b1bb0ba47d5c5dafd83eb07ba854b5a65fd5d41b8c76a1b3ff2c22a" + ++ Received: +undefined + + ❯ tests/ambience.test.ts:87:45 + 85| expect.soft(asset).not.toHaveProperty("verifiedLocalSource"); + 86| expect.soft(asset).not.toHaveProperty("sourceDurationSeconds"); + 87| expect.soft(asset.expectedSourceSha256).toBe(original.sha256); + | ^ + 88| expect.soft(asset.sourceBytes).toBe(original.bytes); + 89| expect.soft(asset.directMediaDurationSeconds).toBe(Number(original… + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[53/64]⎯ + + FAIL tests/ambience.test.ts > 원본 계획은 임시 경로 대신 검증된 해시·바이트·직접 미디어 길이를 고정한다 +AssertionError: expected undefined to be 91187572 // Object.is equality + +- Expected: +91187572 + ++ Received: +undefined + + ❯ tests/ambience.test.ts:88:36 + + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[54/64]⎯ + + FAIL tests/ambience.test.ts > 원본 계획은 임시 경로 대신 검증된 해시·바이트·직접 미디어 길이를 고정한다 +AssertionError: expected undefined to be 1800 // Object.is equality + +- Expected: +1800 + ++ Received: +undefined + + ❯ tests/ambience.test.ts:89:51 + + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[55/64]⎯ + + FAIL tests/ambience.test.ts > 원본 계획은 임시 경로 대신 검증된 해시·바이트·직접 미디어 길이를 고정한다 +AssertionError: expected { environmentId: 'rain', …(19) } to match object { environmentId: 'rain', …(9) } +(22 matching properties omitted from actual) + +- Expected ++ Received + +@@ -6,7 +6,6 @@ + "environmentId": "rain", + "license": "CC0 1.0 Universal", + "licenseUrl": "https://creativecommons.org/publicdomain/zero/1.0/", + "pageUrl": "https://commons.wikimedia.org/wiki/File:Urban_Street_on_a_Rainy_Afternoon.flac", + "sourceDurationSeconds": 1800, +- "verifiedLocalSource": null, + } + + ❯ tests/ambience.test.ts:91:40 + + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[56/64]⎯ + + FAIL tests/ambience.test.ts > 원본 계획은 임시 경로 대신 검증된 해시·바이트·직접 미디어 길이를 고정한다 +AssertionError: expected 'ef0511593b1bb0ba47d5c5dafd83eb07ba854…' to be undefined // Object.is equality + +- Expected: +undefined + ++ Received: +"ef0511593b1bb0ba47d5c5dafd83eb07ba854b5a65fd5d41b8c76a1b3ff2c22a" + + ❯ tests/ambience.test.ts:92:53 + + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[57/64]⎯ + + + Test Files 1 failed (1) + Tests 1 failed | 1 skipped (2) + Start at 08:48:48 + Duration 1.44s (setup 51%, transform 26%, tests 18%, import 4%, worker 1%) + + +EXIT_CODE=1 diff --git a/.agent/evidence-v0.2.3/review-fixes/05-source-guard-GREEN.log b/.agent/evidence-v0.2.3/review-fixes/05-source-guard-GREEN.log new file mode 100644 index 0000000..0ca64e6 --- /dev/null +++ b/.agent/evidence-v0.2.3/review-fixes/05-source-guard-GREEN.log @@ -0,0 +1,13 @@ +$ python3 -m unittest discover -s tests/python -p test_ambience_audio.py -v +test_convert_format_fade_normalization_and_reproducibility (test_ambience_audio.AmbienceConversion.test_convert_format_fade_normalization_and_reproducibility) +스테레오 48kHz 입력을 실제로 내려 섞고 길이·양끝·안전 피크를 확인한다. ... ok +test_silence_fails_before_publishing (test_ambience_audio.AmbienceConversion.test_silence_fails_before_publishing) +무음을 정상 현장 녹음으로 포장하지 않는다. ... ok +test_all_sources_checked_before_first_conversion (test_ambience_audio.SourceGuard.test_all_sources_checked_before_first_conversion) ... ok + +---------------------------------------------------------------------- +Ran 3 tests in 1.108s + +OK + +EXIT_CODE=0 diff --git a/.agent/evidence-v0.2.3/review-fixes/05-source-guard-RED.log b/.agent/evidence-v0.2.3/review-fixes/05-source-guard-RED.log new file mode 100644 index 0000000..2c3d559 --- /dev/null +++ b/.agent/evidence-v0.2.3/review-fixes/05-source-guard-RED.log @@ -0,0 +1,59 @@ +$ python3 -m unittest discover -s tests/python -p test_ambience_audio.py -k SourceGuard -v +test_all_sources_checked_before_first_conversion (test_ambience_audio.SourceGuard.test_all_sources_checked_before_first_conversion) ... + test_all_sources_checked_before_first_conversion (test_ambience_audio.SourceGuard.test_all_sources_checked_before_first_conversion) (damage='hash') ... ERROR + test_all_sources_checked_before_first_conversion (test_ambience_audio.SourceGuard.test_all_sources_checked_before_first_conversion) (damage='bytes') ... ERROR + test_all_sources_checked_before_first_conversion (test_ambience_audio.SourceGuard.test_all_sources_checked_before_first_conversion) (damage='missing') ... ERROR + test_all_sources_checked_before_first_conversion (test_ambience_audio.SourceGuard.test_all_sources_checked_before_first_conversion) (damage='duplicate') ... ERROR + test_all_sources_checked_before_first_conversion (test_ambience_audio.SourceGuard.test_all_sources_checked_before_first_conversion) (damage='inventory') ... ERROR + +====================================================================== +ERROR: test_all_sources_checked_before_first_conversion (test_ambience_audio.SourceGuard.test_all_sources_checked_before_first_conversion) (damage='hash') +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/home/hermes/worktrees/find-word-v0.2.3/tests/python/test_ambience_audio.py", line 85, in test_all_sources_checked_before_first_conversion + audio.generate(plan, self.sources, self.output, converter=self.converter) + ^^^^^^^^^^^^^^ +AttributeError: module 'ambience_audio' has no attribute 'generate' + +====================================================================== +ERROR: test_all_sources_checked_before_first_conversion (test_ambience_audio.SourceGuard.test_all_sources_checked_before_first_conversion) (damage='bytes') +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/home/hermes/worktrees/find-word-v0.2.3/tests/python/test_ambience_audio.py", line 85, in test_all_sources_checked_before_first_conversion + audio.generate(plan, self.sources, self.output, converter=self.converter) + ^^^^^^^^^^^^^^ +AttributeError: module 'ambience_audio' has no attribute 'generate' + +====================================================================== +ERROR: test_all_sources_checked_before_first_conversion (test_ambience_audio.SourceGuard.test_all_sources_checked_before_first_conversion) (damage='missing') +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/home/hermes/worktrees/find-word-v0.2.3/tests/python/test_ambience_audio.py", line 85, in test_all_sources_checked_before_first_conversion + audio.generate(plan, self.sources, self.output, converter=self.converter) + ^^^^^^^^^^^^^^ +AttributeError: module 'ambience_audio' has no attribute 'generate' + +====================================================================== +ERROR: test_all_sources_checked_before_first_conversion (test_ambience_audio.SourceGuard.test_all_sources_checked_before_first_conversion) (damage='duplicate') +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/home/hermes/worktrees/find-word-v0.2.3/tests/python/test_ambience_audio.py", line 85, in test_all_sources_checked_before_first_conversion + audio.generate(plan, self.sources, self.output, converter=self.converter) + ^^^^^^^^^^^^^^ +AttributeError: module 'ambience_audio' has no attribute 'generate' + +====================================================================== +ERROR: test_all_sources_checked_before_first_conversion (test_ambience_audio.SourceGuard.test_all_sources_checked_before_first_conversion) (damage='inventory') +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/home/hermes/worktrees/find-word-v0.2.3/tests/python/test_ambience_audio.py", line 85, in test_all_sources_checked_before_first_conversion + audio.generate(plan, self.sources, self.output, converter=self.converter) + ^^^^^^^^^^^^^^ +AttributeError: module 'ambience_audio' has no attribute 'generate' + +---------------------------------------------------------------------- +Ran 1 test in 0.026s + +FAILED (errors=5) + +EXIT_CODE=1 diff --git a/.agent/evidence-v0.2.3/review-fixes/06-atomic-GREEN.log b/.agent/evidence-v0.2.3/review-fixes/06-atomic-GREEN.log new file mode 100644 index 0000000..59c43cf --- /dev/null +++ b/.agent/evidence-v0.2.3/review-fixes/06-atomic-GREEN.log @@ -0,0 +1,22 @@ +$ python3 -m unittest discover -s tests/python -p test_ambience_audio.py -v +test_convert_format_fade_normalization_and_reproducibility (test_ambience_audio.AmbienceConversion.test_convert_format_fade_normalization_and_reproducibility) +스테레오 48kHz 입력을 실제로 내려 섞고 길이·양끝·안전 피크를 확인한다. ... ok +test_silence_fails_before_publishing (test_ambience_audio.AmbienceConversion.test_silence_fails_before_publishing) +무음을 정상 현장 녹음으로 포장하지 않는다. ... 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_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_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_all_sources_checked_before_first_conversion (test_ambience_audio.SourceGuard.test_all_sources_checked_before_first_conversion) ... ok + +---------------------------------------------------------------------- +Ran 12 tests in 5.500s + +OK + +EXIT_CODE=0 diff --git a/.agent/evidence-v0.2.3/review-fixes/06-atomic-RED.log b/.agent/evidence-v0.2.3/review-fixes/06-atomic-RED.log new file mode 100644 index 0000000..dac16ec --- /dev/null +++ b/.agent/evidence-v0.2.3/review-fixes/06-atomic-RED.log @@ -0,0 +1,224 @@ +$ python3 -m unittest discover -s tests/python -p test_ambience_audio.py -k AtomicPublication -v +test_all_eight_assets_validated_before_publication (test_ambience_audio.AtomicPublication.test_all_eight_assets_validated_before_publication) ... { + "files": 8, + "bytes": 4608352 +} + + test_all_eight_assets_validated_before_publication (test_ambience_audio.AtomicPublication.test_all_eight_assets_validated_before_publication) (asset='street') ... FAIL +{ + "files": 8, + "bytes": 4608352 +} + test_all_eight_assets_validated_before_publication (test_ambience_audio.AtomicPublication.test_all_eight_assets_validated_before_publication) (asset='mall') ... FAIL +{ + "files": 8, + "bytes": 4608352 +} + test_all_eight_assets_validated_before_publication (test_ambience_audio.AtomicPublication.test_all_eight_assets_validated_before_publication) (asset='theater') ... FAIL +{ + "files": 8, + "bytes": 4608352 +} + test_all_eight_assets_validated_before_publication (test_ambience_audio.AtomicPublication.test_all_eight_assets_validated_before_publication) (asset='department') ... FAIL +{ + "files": 8, + "bytes": 4608352 +} + test_all_eight_assets_validated_before_publication (test_ambience_audio.AtomicPublication.test_all_eight_assets_validated_before_publication) (asset='market') ... FAIL +{ + "files": 8, + "bytes": 4608352 +} + test_all_eight_assets_validated_before_publication (test_ambience_audio.AtomicPublication.test_all_eight_assets_validated_before_publication) (asset='subway') ... FAIL +{ + "files": 8, + "bytes": 4608352 +} + test_all_eight_assets_validated_before_publication (test_ambience_audio.AtomicPublication.test_all_eight_assets_validated_before_publication) (asset='cafe') ... FAIL +{ + "files": 8, + "bytes": 4608352 +} + test_all_eight_assets_validated_before_publication (test_ambience_audio.AtomicPublication.test_all_eight_assets_validated_before_publication) (asset='rain') ... FAIL +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) ... { + "files": 8, + "bytes": 4608352 +} +FAIL +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) ... ERROR +test_first_publication_and_real_exchange (test_ambience_audio.AtomicPublication.test_first_publication_and_real_exchange) ... { + "files": 8, + "bytes": 4608352 +} +FAIL +test_manifest_and_notice_write_failures_preserve_prior_directory (test_ambience_audio.AtomicPublication.test_manifest_and_notice_write_failures_preserve_prior_directory) ... + test_manifest_and_notice_write_failures_preserve_prior_directory (test_ambience_audio.AtomicPublication.test_manifest_and_notice_write_failures_preserve_prior_directory) (file='AMBIENCE_NOTICES.md') ... FAIL +test_sigterm_before_commit_preserves_prior_directory (test_ambience_audio.AtomicPublication.test_sigterm_before_commit_preserves_prior_directory) ... Process ForkProcess-1: +Traceback (most recent call last): + File "/home/hermes/.local/share/uv/python/cpython-3.11.16-linux-x86_64-gnu/lib/python3.11/multiprocessing/process.py", line 314, in _bootstrap + self.run() + File "/home/hermes/.local/share/uv/python/cpython-3.11.16-linux-x86_64-gnu/lib/python3.11/multiprocessing/process.py", line 108, in run + self._target(*self._args, **self._kwargs) + File "/home/hermes/worktrees/find-word-v0.2.3/tests/python/test_ambience_audio.py", line 229, in child + with patch.object(audio, "atomic_publish", pause): self.run_generate() + File "/home/hermes/.local/share/uv/python/cpython-3.11.16-linux-x86_64-gnu/lib/python3.11/unittest/mock.py", line 1446, in __enter__ + original, local = self.get_original() + ^^^^^^^^^^^^^^^^^^^ + File "/home/hermes/.local/share/uv/python/cpython-3.11.16-linux-x86_64-gnu/lib/python3.11/unittest/mock.py", line 1419, in get_original + raise AttributeError( +AttributeError: does not have the attribute 'atomic_publish' +FAIL +test_staged_manifest_notice_and_inventory_tampering_are_rejected (test_ambience_audio.AtomicPublication.test_staged_manifest_notice_and_inventory_tampering_are_rejected) ... ERROR +test_symlink_output_is_rejected_before_conversion (test_ambience_audio.AtomicPublication.test_symlink_output_is_rejected_before_conversion) ... + test_symlink_output_is_rejected_before_conversion (test_ambience_audio.AtomicPublication.test_symlink_output_is_rejected_before_conversion) (dangling=False) ... ERROR + test_symlink_output_is_rejected_before_conversion (test_ambience_audio.AtomicPublication.test_symlink_output_is_rejected_before_conversion) (dangling=True) ... ERROR + +====================================================================== +ERROR: test_exchange_failure_preserves_prior_directory (test_ambience_audio.AtomicPublication.test_exchange_failure_preserves_prior_directory) +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/home/hermes/worktrees/find-word-v0.2.3/tests/python/test_ambience_audio.py", line 204, in test_exchange_failure_preserves_prior_directory + with patch.object(audio.ctypes, "CDLL") as mocked: + ^^^^^^^^^^^^ +AttributeError: module 'ambience_audio' has no attribute 'ctypes' + +====================================================================== +ERROR: test_staged_manifest_notice_and_inventory_tampering_are_rejected (test_ambience_audio.AtomicPublication.test_staged_manifest_notice_and_inventory_tampering_are_rejected) +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/home/hermes/worktrees/find-word-v0.2.3/tests/python/test_ambience_audio.py", line 181, in test_staged_manifest_notice_and_inventory_tampering_are_rejected + validate = audio.validate_bundle + ^^^^^^^^^^^^^^^^^^^^^ +AttributeError: module 'ambience_audio' has no attribute 'validate_bundle' + +====================================================================== +ERROR: test_symlink_output_is_rejected_before_conversion (test_ambience_audio.AtomicPublication.test_symlink_output_is_rejected_before_conversion) (dangling=False) +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/home/hermes/worktrees/find-word-v0.2.3/tests/python/test_ambience_audio.py", line 174, in test_symlink_output_is_rejected_before_conversion + audio.generate(self.plan, self.sources, link, converter=converter) + File "/home/hermes/worktrees/find-word-v0.2.3/scripts/ambience_audio.py", line 114, in generate + entry.update({"file": name, "sourceSha256": digest(source), "sourceBytes": source.stat().st_size, + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +TypeError: Mock.keys() returned a non-iterable (type Mock) + +====================================================================== +ERROR: test_symlink_output_is_rejected_before_conversion (test_ambience_audio.AtomicPublication.test_symlink_output_is_rejected_before_conversion) (dangling=True) +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/home/hermes/worktrees/find-word-v0.2.3/tests/python/test_ambience_audio.py", line 174, in test_symlink_output_is_rejected_before_conversion + audio.generate(self.plan, self.sources, link, converter=converter) + File "/home/hermes/worktrees/find-word-v0.2.3/scripts/ambience_audio.py", line 114, in generate + entry.update({"file": name, "sourceSha256": digest(source), "sourceBytes": source.stat().st_size, + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +TypeError: Mock.keys() returned a non-iterable (type Mock) + +====================================================================== +FAIL: test_all_eight_assets_validated_before_publication (test_ambience_audio.AtomicPublication.test_all_eight_assets_validated_before_publication) (asset='street') +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/home/hermes/worktrees/find-word-v0.2.3/tests/python/test_ambience_audio.py", line 139, in test_all_eight_assets_validated_before_publication + with self.assertRaises(ValueError): self.run_generate(broken) +AssertionError: ValueError not raised + +====================================================================== +FAIL: test_all_eight_assets_validated_before_publication (test_ambience_audio.AtomicPublication.test_all_eight_assets_validated_before_publication) (asset='mall') +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/home/hermes/worktrees/find-word-v0.2.3/tests/python/test_ambience_audio.py", line 139, in test_all_eight_assets_validated_before_publication + with self.assertRaises(ValueError): self.run_generate(broken) +AssertionError: ValueError not raised + +====================================================================== +FAIL: test_all_eight_assets_validated_before_publication (test_ambience_audio.AtomicPublication.test_all_eight_assets_validated_before_publication) (asset='theater') +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/home/hermes/worktrees/find-word-v0.2.3/tests/python/test_ambience_audio.py", line 139, in test_all_eight_assets_validated_before_publication + with self.assertRaises(ValueError): self.run_generate(broken) +AssertionError: ValueError not raised + +====================================================================== +FAIL: test_all_eight_assets_validated_before_publication (test_ambience_audio.AtomicPublication.test_all_eight_assets_validated_before_publication) (asset='department') +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/home/hermes/worktrees/find-word-v0.2.3/tests/python/test_ambience_audio.py", line 139, in test_all_eight_assets_validated_before_publication + with self.assertRaises(ValueError): self.run_generate(broken) +AssertionError: ValueError not raised + +====================================================================== +FAIL: test_all_eight_assets_validated_before_publication (test_ambience_audio.AtomicPublication.test_all_eight_assets_validated_before_publication) (asset='market') +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/home/hermes/worktrees/find-word-v0.2.3/tests/python/test_ambience_audio.py", line 139, in test_all_eight_assets_validated_before_publication + with self.assertRaises(ValueError): self.run_generate(broken) +AssertionError: ValueError not raised + +====================================================================== +FAIL: test_all_eight_assets_validated_before_publication (test_ambience_audio.AtomicPublication.test_all_eight_assets_validated_before_publication) (asset='subway') +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/home/hermes/worktrees/find-word-v0.2.3/tests/python/test_ambience_audio.py", line 139, in test_all_eight_assets_validated_before_publication + with self.assertRaises(ValueError): self.run_generate(broken) +AssertionError: ValueError not raised + +====================================================================== +FAIL: test_all_eight_assets_validated_before_publication (test_ambience_audio.AtomicPublication.test_all_eight_assets_validated_before_publication) (asset='cafe') +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/home/hermes/worktrees/find-word-v0.2.3/tests/python/test_ambience_audio.py", line 139, in test_all_eight_assets_validated_before_publication + with self.assertRaises(ValueError): self.run_generate(broken) +AssertionError: ValueError not raised + +====================================================================== +FAIL: test_all_eight_assets_validated_before_publication (test_ambience_audio.AtomicPublication.test_all_eight_assets_validated_before_publication) (asset='rain') +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/home/hermes/worktrees/find-word-v0.2.3/tests/python/test_ambience_audio.py", line 139, in test_all_eight_assets_validated_before_publication + with self.assertRaises(ValueError): self.run_generate(broken) +AssertionError: ValueError not raised + +====================================================================== +FAIL: 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) +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/home/hermes/worktrees/find-word-v0.2.3/tests/python/test_ambience_audio.py", line 118, in test_atomic_success_removes_stale_files_and_stages_notice_on_same_filesystem + self.assertEqual({p.name for p in self.output.iterdir()}, expected) +AssertionError: Items in the first set but not the second: +'old' +Items in the second set but not the first: +'AMBIENCE_NOTICES.md' + +====================================================================== +FAIL: test_first_publication_and_real_exchange (test_ambience_audio.AtomicPublication.test_first_publication_and_real_exchange) +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/home/hermes/worktrees/find-word-v0.2.3/tests/python/test_ambience_audio.py", line 214, in test_first_publication_and_real_exchange + self.assertTrue((self.output / "AMBIENCE_NOTICES.md").is_file()) +AssertionError: False is not true + +====================================================================== +FAIL: test_manifest_and_notice_write_failures_preserve_prior_directory (test_ambience_audio.AtomicPublication.test_manifest_and_notice_write_failures_preserve_prior_directory) (file='AMBIENCE_NOTICES.md') +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/home/hermes/worktrees/find-word-v0.2.3/tests/python/test_ambience_audio.py", line 164, in test_manifest_and_notice_write_failures_preserve_prior_directory + self.assert_prior() + File "/home/hermes/worktrees/find-word-v0.2.3/tests/python/test_ambience_audio.py", line 112, in assert_prior + self.assertEqual({p.name: p.read_bytes() for p in self.output.iterdir()}, {"old": b"prior release"}) +AssertionError: {'subway.wav': b'RIFF$\xca\x08\x00WAVEfmt \[15606259 chars]x00'} != {'old': b'prior release'} +Diff is 21440297 characters long. Set self.maxDiff to None to see it. + +====================================================================== +FAIL: test_sigterm_before_commit_preserves_prior_directory (test_ambience_audio.AtomicPublication.test_sigterm_before_commit_preserves_prior_directory) +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/home/hermes/worktrees/find-word-v0.2.3/tests/python/test_ambience_audio.py", line 233, in test_sigterm_before_commit_preserves_prior_directory + self.assertTrue(reached.wait(10), "validated stage must reach commit") +AssertionError: False is not true : validated stage must reach commit + +---------------------------------------------------------------------- +Ran 9 tests in 12.490s + +FAILED (failures=12, errors=4) + +EXIT_CODE=1 diff --git a/.agent/evidence-v0.2.3/review-fixes/07-notice-path-GREEN.log b/.agent/evidence-v0.2.3/review-fixes/07-notice-path-GREEN.log new file mode 100644 index 0000000..8179d23 --- /dev/null +++ b/.agent/evidence-v0.2.3/review-fixes/07-notice-path-GREEN.log @@ -0,0 +1,12 @@ +$ npx vitest run tests/ambience.test.ts tests/App.test.tsx -t 현장 녹음은|환경음 저작자 + + RUN v5.0.4 /home/hermes/worktrees/find-word-v0.2.3 + + + Test Files 2 passed (2) + Tests 2 passed | 23 skipped (25) + Start at 08:53:30 + Duration 1.18s (environment 42%, tests 33%, setup 15%, transform 7%, import 4%, worker 1%) + + +EXIT_CODE=0 diff --git a/.agent/evidence-v0.2.3/review-fixes/07-notice-path-RED.log b/.agent/evidence-v0.2.3/review-fixes/07-notice-path-RED.log new file mode 100644 index 0000000..0ef05a9 --- /dev/null +++ b/.agent/evidence-v0.2.3/review-fixes/07-notice-path-RED.log @@ -0,0 +1,61 @@ +$ npx vitest run tests/ambience.test.ts tests/App.test.tsx -t 현장 녹음은|환경음 저작자 + + RUN v5.0.4 /home/hermes/worktrees/find-word-v0.2.3 + + ❯ tests/ambience.test.ts (2 tests | 1 failed | 1 skipped) 16ms + × 여덟 현장 녹음은 고유 PCM16 WAV·짧은 fade·완전한 provenance/notice를 가진다 15ms + ❯ tests/App.test.tsx (23 tests | 1 failed | 22 skipped) 200ms + × 환경음 저작자·라이선스 고지를 같은 출처 링크로 제공한다 198ms + +⎯⎯⎯⎯⎯⎯⎯ Failed Tests 2 ⎯⎯⎯⎯⎯⎯⎯ + + FAIL tests/App.test.tsx > 환경음 저작자·라이선스 고지를 같은 출처 링크로 제공한다 +Error: expect(element).toHaveAttribute("href", "/ambience/AMBIENCE_NOTICES.md") // element.getAttribute("href") === "/ambience/AMBIENCE_NOTICES.md" + +Expected the element to have attribute: + href="/ambience/AMBIENCE_NOTICES.md" +Received: + href="/AMBIENCE_NOTICES.md" + ❯ tests/App.test.tsx:485:5 + 483| expect( + 484| screen.getByRole("link", { name: "환경음 출처·라이선스" }), + 485| ).toHaveAttribute("href", "/ambience/AMBIENCE_NOTICES.md"); + | ^ + 486| }); + 487| + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[1/2]⎯ + + FAIL tests/ambience.test.ts > 여덟 현장 녹음은 고유 PCM16 WAV·짧은 fade·완전한 provenance/notice를 가진다 +AssertionError: expected [ 'cafe.wav', 'department.wav', …(7) ] to deeply equal [ 'AMBIENCE_NOTICES.md', …(9) ] + +- Expected ++ Received + +@@ -1,7 +1,6 @@ + [ +- "AMBIENCE_NOTICES.md", + "cafe.wav", + "department.wav", + "mall.wav", + "manifest.json", + "market.wav", + + ❯ tests/ambience.test.ts:16:49 + 14| manifest.files.map((f: { environmentId: string }) => f.environment… + 15| ).toEqual(ENVIRONMENTS.map((e) => e.id)); + 16| expect(readdirSync("public/ambience").sort()).toEqual( + | ^ + 17| [...ENVIRONMENTS.map((e) => `${e.id}.wav`), "manifest.json", "AMBI… + 18| ); + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[2/2]⎯ + + + Test Files 2 failed (2) + Tests 2 failed | 23 skipped (25) + Start at 08:51:12 + Duration 1.15s (environment 50%, setup 19%, tests 18%, transform 7%, import 5%, worker 1%) + + +EXIT_CODE=1 diff --git a/.agent/evidence-v0.2.3/review-fixes/08-09-build-GREEN.log b/.agent/evidence-v0.2.3/review-fixes/08-09-build-GREEN.log new file mode 100644 index 0000000..db994e1 --- /dev/null +++ b/.agent/evidence-v0.2.3/review-fixes/08-09-build-GREEN.log @@ -0,0 +1,12 @@ +$ npx vitest run tests/build.test.ts + + RUN v5.0.4 /home/hermes/worktrees/find-word-v0.2.3 + + + Test Files 1 passed (1) + Tests 27 passed (27) + Start at 08:54:02 + Duration 17.24s (tests 99%, setup 1%) + + +EXIT_CODE=0 diff --git a/.agent/evidence-v0.2.3/review-fixes/08-notice-verifier-RED.log b/.agent/evidence-v0.2.3/review-fixes/08-notice-verifier-RED.log new file mode 100644 index 0000000..9ca8aa3 --- /dev/null +++ b/.agent/evidence-v0.2.3/review-fixes/08-notice-verifier-RED.log @@ -0,0 +1,480 @@ +$ npx vitest run tests/build.test.ts -t 고지는 각 + + RUN v5.0.4 /home/hermes/worktrees/find-word-v0.2.3 + + ❯ tests/build.test.ts (21 tests | 8 failed | 13 skipped) 11103ms + × street 고지는 각 항목에 저작자·원문·다운로드·라이선스·파생권리·변경을 모두 포함한다 1389ms + × mall 고지는 각 항목에 저작자·원문·다운로드·라이선스·파생권리·변경을 모두 포함한다 1388ms + × theater 고지는 각 항목에 저작자·원문·다운로드·라이선스·파생권리·변경을 모두 포함한다 1377ms + × department 고지는 각 항목에 저작자·원문·다운로드·라이선스·파생권리·변경을 모두 포함한다 1360ms + × market 고지는 각 항목에 저작자·원문·다운로드·라이선스·파생권리·변경을 모두 포함한다 1376ms + × subway 고지는 각 항목에 저작자·원문·다운로드·라이선스·파생권리·변경을 모두 포함한다 1387ms + × cafe 고지는 각 항목에 저작자·원문·다운로드·라이선스·파생권리·변경을 모두 포함한다 1408ms + × rain 고지는 각 항목에 저작자·원문·다운로드·라이선스·파생권리·변경을 모두 포함한다 1416ms + +⎯⎯⎯⎯⎯⎯⎯ Failed Tests 8 ⎯⎯⎯⎯⎯⎯⎯ + + FAIL tests/build.test.ts > street 고지는 각 항목에 저작자·원문·다운로드·라이선스·파생권리·변경을 모두 포함한다 +AssertionError: street: Creator:: expected [Function verify] to throw an error + ❯ tests/build.test.ts:172:48 + 170| modified[index] = modified[index]!.split("\n").filter((line) =… + 171| writeNotice(modified.join("## ")); + 172| expect.soft(verify, `${id}: ${field}`).toThrow(); + | ^ + 173| } + 174| } finally { rmSync(temporary, { recursive: true, force: true }); } + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[1/38]⎯ + + FAIL tests/build.test.ts > street 고지는 각 항목에 저작자·원문·다운로드·라이선스·파생권리·변경을 모두 포함한다 +AssertionError: street: Download:: expected [Function verify] to throw an error + ❯ tests/build.test.ts:172:48 + 170| modified[index] = modified[index]!.split("\n").filter((line) =… + 171| writeNotice(modified.join("## ")); + 172| expect.soft(verify, `${id}: ${field}`).toThrow(); + | ^ + 173| } + 174| } finally { rmSync(temporary, { recursive: true, force: true }); } + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[2/38]⎯ + + FAIL tests/build.test.ts > street 고지는 각 항목에 저작자·원문·다운로드·라이선스·파생권리·변경을 모두 포함한다 +AssertionError: street: License:: expected [Function verify] to throw an error + ❯ tests/build.test.ts:172:48 + 170| modified[index] = modified[index]!.split("\n").filter((line) =… + 171| writeNotice(modified.join("## ")); + 172| expect.soft(verify, `${id}: ${field}`).toThrow(); + | ^ + 173| } + 174| } finally { rmSync(temporary, { recursive: true, force: true }); } + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[3/38]⎯ + + FAIL tests/build.test.ts > street 고지는 각 항목에 저작자·원문·다운로드·라이선스·파생권리·변경을 모두 포함한다 +AssertionError: street: Output license:: expected [Function verify] to throw an error + ❯ tests/build.test.ts:172:48 + 170| modified[index] = modified[index]!.split("\n").filter((line) =… + 171| writeNotice(modified.join("## ")); + 172| expect.soft(verify, `${id}: ${field}`).toThrow(); + | ^ + 173| } + 174| } finally { rmSync(temporary, { recursive: true, force: true }); } + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[4/38]⎯ + + FAIL tests/build.test.ts > street 고지는 각 항목에 저작자·원문·다운로드·라이선스·파생권리·변경을 모두 포함한다 +AssertionError: street: Changes:: expected [Function verify] to throw an error + ❯ tests/build.test.ts:172:48 + 170| modified[index] = modified[index]!.split("\n").filter((line) =… + 171| writeNotice(modified.join("## ")); + 172| expect.soft(verify, `${id}: ${field}`).toThrow(); + | ^ + 173| } + 174| } finally { rmSync(temporary, { recursive: true, force: true }); } + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[5/38]⎯ + + FAIL tests/build.test.ts > mall 고지는 각 항목에 저작자·원문·다운로드·라이선스·파생권리·변경을 모두 포함한다 +AssertionError: mall: Creator:: expected [Function verify] to throw an error + ❯ tests/build.test.ts:172:48 + 170| modified[index] = modified[index]!.split("\n").filter((line) =… + 171| writeNotice(modified.join("## ")); + 172| expect.soft(verify, `${id}: ${field}`).toThrow(); + | ^ + 173| } + 174| } finally { rmSync(temporary, { recursive: true, force: true }); } + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[6/38]⎯ + + FAIL tests/build.test.ts > mall 고지는 각 항목에 저작자·원문·다운로드·라이선스·파생권리·변경을 모두 포함한다 +AssertionError: mall: Download:: expected [Function verify] to throw an error + ❯ tests/build.test.ts:172:48 + 170| modified[index] = modified[index]!.split("\n").filter((line) =… + 171| writeNotice(modified.join("## ")); + 172| expect.soft(verify, `${id}: ${field}`).toThrow(); + | ^ + 173| } + 174| } finally { rmSync(temporary, { recursive: true, force: true }); } + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[7/38]⎯ + + FAIL tests/build.test.ts > mall 고지는 각 항목에 저작자·원문·다운로드·라이선스·파생권리·변경을 모두 포함한다 +AssertionError: mall: License:: expected [Function verify] to throw an error + ❯ tests/build.test.ts:172:48 + 170| modified[index] = modified[index]!.split("\n").filter((line) =… + 171| writeNotice(modified.join("## ")); + 172| expect.soft(verify, `${id}: ${field}`).toThrow(); + | ^ + 173| } + 174| } finally { rmSync(temporary, { recursive: true, force: true }); } + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[8/38]⎯ + + FAIL tests/build.test.ts > mall 고지는 각 항목에 저작자·원문·다운로드·라이선스·파생권리·변경을 모두 포함한다 +AssertionError: mall: Output license:: expected [Function verify] to throw an error + ❯ tests/build.test.ts:172:48 + 170| modified[index] = modified[index]!.split("\n").filter((line) =… + 171| writeNotice(modified.join("## ")); + 172| expect.soft(verify, `${id}: ${field}`).toThrow(); + | ^ + 173| } + 174| } finally { rmSync(temporary, { recursive: true, force: true }); } + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[9/38]⎯ + + FAIL tests/build.test.ts > mall 고지는 각 항목에 저작자·원문·다운로드·라이선스·파생권리·변경을 모두 포함한다 +AssertionError: mall: Changes:: expected [Function verify] to throw an error + ❯ tests/build.test.ts:172:48 + 170| modified[index] = modified[index]!.split("\n").filter((line) =… + 171| writeNotice(modified.join("## ")); + 172| expect.soft(verify, `${id}: ${field}`).toThrow(); + | ^ + 173| } + 174| } finally { rmSync(temporary, { recursive: true, force: true }); } + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[10/38]⎯ + + FAIL tests/build.test.ts > theater 고지는 각 항목에 저작자·원문·다운로드·라이선스·파생권리·변경을 모두 포함한다 +AssertionError: theater: Creator:: expected [Function verify] to throw an error + ❯ tests/build.test.ts:172:48 + 170| modified[index] = modified[index]!.split("\n").filter((line) =… + 171| writeNotice(modified.join("## ")); + 172| expect.soft(verify, `${id}: ${field}`).toThrow(); + | ^ + 173| } + 174| } finally { rmSync(temporary, { recursive: true, force: true }); } + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[11/38]⎯ + + FAIL tests/build.test.ts > theater 고지는 각 항목에 저작자·원문·다운로드·라이선스·파생권리·변경을 모두 포함한다 +AssertionError: theater: Download:: expected [Function verify] to throw an error + ❯ tests/build.test.ts:172:48 + 170| modified[index] = modified[index]!.split("\n").filter((line) =… + 171| writeNotice(modified.join("## ")); + 172| expect.soft(verify, `${id}: ${field}`).toThrow(); + | ^ + 173| } + 174| } finally { rmSync(temporary, { recursive: true, force: true }); } + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[12/38]⎯ + + FAIL tests/build.test.ts > theater 고지는 각 항목에 저작자·원문·다운로드·라이선스·파생권리·변경을 모두 포함한다 +AssertionError: theater: License:: expected [Function verify] to throw an error + ❯ tests/build.test.ts:172:48 + 170| modified[index] = modified[index]!.split("\n").filter((line) =… + 171| writeNotice(modified.join("## ")); + 172| expect.soft(verify, `${id}: ${field}`).toThrow(); + | ^ + 173| } + 174| } finally { rmSync(temporary, { recursive: true, force: true }); } + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[13/38]⎯ + + FAIL tests/build.test.ts > theater 고지는 각 항목에 저작자·원문·다운로드·라이선스·파생권리·변경을 모두 포함한다 +AssertionError: theater: Output license:: expected [Function verify] to throw an error + ❯ tests/build.test.ts:172:48 + 170| modified[index] = modified[index]!.split("\n").filter((line) =… + 171| writeNotice(modified.join("## ")); + 172| expect.soft(verify, `${id}: ${field}`).toThrow(); + | ^ + 173| } + 174| } finally { rmSync(temporary, { recursive: true, force: true }); } + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[14/38]⎯ + + FAIL tests/build.test.ts > theater 고지는 각 항목에 저작자·원문·다운로드·라이선스·파생권리·변경을 모두 포함한다 +AssertionError: theater: Changes:: expected [Function verify] to throw an error + ❯ tests/build.test.ts:172:48 + 170| modified[index] = modified[index]!.split("\n").filter((line) =… + 171| writeNotice(modified.join("## ")); + 172| expect.soft(verify, `${id}: ${field}`).toThrow(); + | ^ + 173| } + 174| } finally { rmSync(temporary, { recursive: true, force: true }); } + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[15/38]⎯ + + FAIL tests/build.test.ts > department 고지는 각 항목에 저작자·원문·다운로드·라이선스·파생권리·변경을 모두 포함한다 +AssertionError: department: Creator:: expected [Function verify] to throw an error + ❯ tests/build.test.ts:172:48 + 170| modified[index] = modified[index]!.split("\n").filter((line) =… + 171| writeNotice(modified.join("## ")); + 172| expect.soft(verify, `${id}: ${field}`).toThrow(); + | ^ + 173| } + 174| } finally { rmSync(temporary, { recursive: true, force: true }); } + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[16/38]⎯ + + FAIL tests/build.test.ts > department 고지는 각 항목에 저작자·원문·다운로드·라이선스·파생권리·변경을 모두 포함한다 +AssertionError: department: Download:: expected [Function verify] to throw an error + ❯ tests/build.test.ts:172:48 + 170| modified[index] = modified[index]!.split("\n").filter((line) =… + 171| writeNotice(modified.join("## ")); + 172| expect.soft(verify, `${id}: ${field}`).toThrow(); + | ^ + 173| } + 174| } finally { rmSync(temporary, { recursive: true, force: true }); } + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[17/38]⎯ + + FAIL tests/build.test.ts > department 고지는 각 항목에 저작자·원문·다운로드·라이선스·파생권리·변경을 모두 포함한다 +AssertionError: department: License:: expected [Function verify] to throw an error + ❯ tests/build.test.ts:172:48 + 170| modified[index] = modified[index]!.split("\n").filter((line) =… + 171| writeNotice(modified.join("## ")); + 172| expect.soft(verify, `${id}: ${field}`).toThrow(); + | ^ + 173| } + 174| } finally { rmSync(temporary, { recursive: true, force: true }); } + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[18/38]⎯ + + FAIL tests/build.test.ts > department 고지는 각 항목에 저작자·원문·다운로드·라이선스·파생권리·변경을 모두 포함한다 +AssertionError: department: Output license:: expected [Function verify] to throw an error + ❯ tests/build.test.ts:172:48 + 170| modified[index] = modified[index]!.split("\n").filter((line) =… + 171| writeNotice(modified.join("## ")); + 172| expect.soft(verify, `${id}: ${field}`).toThrow(); + | ^ + 173| } + 174| } finally { rmSync(temporary, { recursive: true, force: true }); } + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[19/38]⎯ + + FAIL tests/build.test.ts > department 고지는 각 항목에 저작자·원문·다운로드·라이선스·파생권리·변경을 모두 포함한다 +AssertionError: department: Changes:: expected [Function verify] to throw an error + ❯ tests/build.test.ts:172:48 + 170| modified[index] = modified[index]!.split("\n").filter((line) =… + 171| writeNotice(modified.join("## ")); + 172| expect.soft(verify, `${id}: ${field}`).toThrow(); + | ^ + 173| } + 174| } finally { rmSync(temporary, { recursive: true, force: true }); } + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[20/38]⎯ + + FAIL tests/build.test.ts > market 고지는 각 항목에 저작자·원문·다운로드·라이선스·파생권리·변경을 모두 포함한다 +AssertionError: market: Creator:: expected [Function verify] to throw an error + ❯ tests/build.test.ts:172:48 + 170| modified[index] = modified[index]!.split("\n").filter((line) =… + 171| writeNotice(modified.join("## ")); + 172| expect.soft(verify, `${id}: ${field}`).toThrow(); + | ^ + 173| } + 174| } finally { rmSync(temporary, { recursive: true, force: true }); } + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[21/38]⎯ + + FAIL tests/build.test.ts > market 고지는 각 항목에 저작자·원문·다운로드·라이선스·파생권리·변경을 모두 포함한다 +AssertionError: market: Download:: expected [Function verify] to throw an error + ❯ tests/build.test.ts:172:48 + 170| modified[index] = modified[index]!.split("\n").filter((line) =… + 171| writeNotice(modified.join("## ")); + 172| expect.soft(verify, `${id}: ${field}`).toThrow(); + | ^ + 173| } + 174| } finally { rmSync(temporary, { recursive: true, force: true }); } + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[22/38]⎯ + + FAIL tests/build.test.ts > market 고지는 각 항목에 저작자·원문·다운로드·라이선스·파생권리·변경을 모두 포함한다 +AssertionError: market: Output license:: expected [Function verify] to throw an error + ❯ tests/build.test.ts:172:48 + 170| modified[index] = modified[index]!.split("\n").filter((line) =… + 171| writeNotice(modified.join("## ")); + 172| expect.soft(verify, `${id}: ${field}`).toThrow(); + | ^ + 173| } + 174| } finally { rmSync(temporary, { recursive: true, force: true }); } + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[23/38]⎯ + + FAIL tests/build.test.ts > market 고지는 각 항목에 저작자·원문·다운로드·라이선스·파생권리·변경을 모두 포함한다 +AssertionError: market: Changes:: expected [Function verify] to throw an error + ❯ tests/build.test.ts:172:48 + 170| modified[index] = modified[index]!.split("\n").filter((line) =… + 171| writeNotice(modified.join("## ")); + 172| expect.soft(verify, `${id}: ${field}`).toThrow(); + | ^ + 173| } + 174| } finally { rmSync(temporary, { recursive: true, force: true }); } + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[24/38]⎯ + + FAIL tests/build.test.ts > subway 고지는 각 항목에 저작자·원문·다운로드·라이선스·파생권리·변경을 모두 포함한다 +AssertionError: subway: Creator:: expected [Function verify] to throw an error + ❯ tests/build.test.ts:172:48 + 170| modified[index] = modified[index]!.split("\n").filter((line) =… + 171| writeNotice(modified.join("## ")); + 172| expect.soft(verify, `${id}: ${field}`).toThrow(); + | ^ + 173| } + 174| } finally { rmSync(temporary, { recursive: true, force: true }); } + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[25/38]⎯ + + FAIL tests/build.test.ts > subway 고지는 각 항목에 저작자·원문·다운로드·라이선스·파생권리·변경을 모두 포함한다 +AssertionError: subway: Download:: expected [Function verify] to throw an error + ❯ tests/build.test.ts:172:48 + 170| modified[index] = modified[index]!.split("\n").filter((line) =… + 171| writeNotice(modified.join("## ")); + 172| expect.soft(verify, `${id}: ${field}`).toThrow(); + | ^ + 173| } + 174| } finally { rmSync(temporary, { recursive: true, force: true }); } + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[26/38]⎯ + + FAIL tests/build.test.ts > subway 고지는 각 항목에 저작자·원문·다운로드·라이선스·파생권리·변경을 모두 포함한다 +AssertionError: subway: Output license:: expected [Function verify] to throw an error + ❯ tests/build.test.ts:172:48 + 170| modified[index] = modified[index]!.split("\n").filter((line) =… + 171| writeNotice(modified.join("## ")); + 172| expect.soft(verify, `${id}: ${field}`).toThrow(); + | ^ + 173| } + 174| } finally { rmSync(temporary, { recursive: true, force: true }); } + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[27/38]⎯ + + FAIL tests/build.test.ts > subway 고지는 각 항목에 저작자·원문·다운로드·라이선스·파생권리·변경을 모두 포함한다 +AssertionError: subway: Changes:: expected [Function verify] to throw an error + ❯ tests/build.test.ts:172:48 + 170| modified[index] = modified[index]!.split("\n").filter((line) =… + 171| writeNotice(modified.join("## ")); + 172| expect.soft(verify, `${id}: ${field}`).toThrow(); + | ^ + 173| } + 174| } finally { rmSync(temporary, { recursive: true, force: true }); } + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[28/38]⎯ + + FAIL tests/build.test.ts > cafe 고지는 각 항목에 저작자·원문·다운로드·라이선스·파생권리·변경을 모두 포함한다 +AssertionError: cafe: Creator:: expected [Function verify] to throw an error + ❯ tests/build.test.ts:172:48 + 170| modified[index] = modified[index]!.split("\n").filter((line) =… + 171| writeNotice(modified.join("## ")); + 172| expect.soft(verify, `${id}: ${field}`).toThrow(); + | ^ + 173| } + 174| } finally { rmSync(temporary, { recursive: true, force: true }); } + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[29/38]⎯ + + FAIL tests/build.test.ts > cafe 고지는 각 항목에 저작자·원문·다운로드·라이선스·파생권리·변경을 모두 포함한다 +AssertionError: cafe: Download:: expected [Function verify] to throw an error + ❯ tests/build.test.ts:172:48 + 170| modified[index] = modified[index]!.split("\n").filter((line) =… + 171| writeNotice(modified.join("## ")); + 172| expect.soft(verify, `${id}: ${field}`).toThrow(); + | ^ + 173| } + 174| } finally { rmSync(temporary, { recursive: true, force: true }); } + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[30/38]⎯ + + FAIL tests/build.test.ts > cafe 고지는 각 항목에 저작자·원문·다운로드·라이선스·파생권리·변경을 모두 포함한다 +AssertionError: cafe: License:: expected [Function verify] to throw an error + ❯ tests/build.test.ts:172:48 + 170| modified[index] = modified[index]!.split("\n").filter((line) =… + 171| writeNotice(modified.join("## ")); + 172| expect.soft(verify, `${id}: ${field}`).toThrow(); + | ^ + 173| } + 174| } finally { rmSync(temporary, { recursive: true, force: true }); } + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[31/38]⎯ + + FAIL tests/build.test.ts > cafe 고지는 각 항목에 저작자·원문·다운로드·라이선스·파생권리·변경을 모두 포함한다 +AssertionError: cafe: Output license:: expected [Function verify] to throw an error + ❯ tests/build.test.ts:172:48 + 170| modified[index] = modified[index]!.split("\n").filter((line) =… + 171| writeNotice(modified.join("## ")); + 172| expect.soft(verify, `${id}: ${field}`).toThrow(); + | ^ + 173| } + 174| } finally { rmSync(temporary, { recursive: true, force: true }); } + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[32/38]⎯ + + FAIL tests/build.test.ts > cafe 고지는 각 항목에 저작자·원문·다운로드·라이선스·파생권리·변경을 모두 포함한다 +AssertionError: cafe: Changes:: expected [Function verify] to throw an error + ❯ tests/build.test.ts:172:48 + 170| modified[index] = modified[index]!.split("\n").filter((line) =… + 171| writeNotice(modified.join("## ")); + 172| expect.soft(verify, `${id}: ${field}`).toThrow(); + | ^ + 173| } + 174| } finally { rmSync(temporary, { recursive: true, force: true }); } + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[33/38]⎯ + + FAIL tests/build.test.ts > rain 고지는 각 항목에 저작자·원문·다운로드·라이선스·파생권리·변경을 모두 포함한다 +AssertionError: rain: Creator:: expected [Function verify] to throw an error + ❯ tests/build.test.ts:172:48 + 170| modified[index] = modified[index]!.split("\n").filter((line) =… + 171| writeNotice(modified.join("## ")); + 172| expect.soft(verify, `${id}: ${field}`).toThrow(); + | ^ + 173| } + 174| } finally { rmSync(temporary, { recursive: true, force: true }); } + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[34/38]⎯ + + FAIL tests/build.test.ts > rain 고지는 각 항목에 저작자·원문·다운로드·라이선스·파생권리·변경을 모두 포함한다 +AssertionError: rain: Download:: expected [Function verify] to throw an error + ❯ tests/build.test.ts:172:48 + 170| modified[index] = modified[index]!.split("\n").filter((line) =… + 171| writeNotice(modified.join("## ")); + 172| expect.soft(verify, `${id}: ${field}`).toThrow(); + | ^ + 173| } + 174| } finally { rmSync(temporary, { recursive: true, force: true }); } + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[35/38]⎯ + + FAIL tests/build.test.ts > rain 고지는 각 항목에 저작자·원문·다운로드·라이선스·파생권리·변경을 모두 포함한다 +AssertionError: rain: License:: expected [Function verify] to throw an error + ❯ tests/build.test.ts:172:48 + 170| modified[index] = modified[index]!.split("\n").filter((line) =… + 171| writeNotice(modified.join("## ")); + 172| expect.soft(verify, `${id}: ${field}`).toThrow(); + | ^ + 173| } + 174| } finally { rmSync(temporary, { recursive: true, force: true }); } + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[36/38]⎯ + + FAIL tests/build.test.ts > rain 고지는 각 항목에 저작자·원문·다운로드·라이선스·파생권리·변경을 모두 포함한다 +AssertionError: rain: Output license:: expected [Function verify] to throw an error + ❯ tests/build.test.ts:172:48 + 170| modified[index] = modified[index]!.split("\n").filter((line) =… + 171| writeNotice(modified.join("## ")); + 172| expect.soft(verify, `${id}: ${field}`).toThrow(); + | ^ + 173| } + 174| } finally { rmSync(temporary, { recursive: true, force: true }); } + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[37/38]⎯ + + FAIL tests/build.test.ts > rain 고지는 각 항목에 저작자·원문·다운로드·라이선스·파생권리·변경을 모두 포함한다 +AssertionError: rain: Changes:: expected [Function verify] to throw an error + ❯ tests/build.test.ts:172:48 + 170| modified[index] = modified[index]!.split("\n").filter((line) =… + 171| writeNotice(modified.join("## ")); + 172| expect.soft(verify, `${id}: ${field}`).toThrow(); + | ^ + 173| } + 174| } finally { rmSync(temporary, { recursive: true, force: true }); } + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[38/38]⎯ + + + Test Files 1 failed (1) + Tests 8 failed | 13 skipped (21) + Start at 08:52:37 + Duration 11.45s (tests 99%, setup 1%) + + +EXIT_CODE=1 diff --git a/.agent/evidence-v0.2.3/review-fixes/09-build-plan-RED.log b/.agent/evidence-v0.2.3/review-fixes/09-build-plan-RED.log new file mode 100644 index 0000000..ea51309 --- /dev/null +++ b/.agent/evidence-v0.2.3/review-fixes/09-build-plan-RED.log @@ -0,0 +1,39 @@ +$ npx vitest run tests/build.test.ts -t 승인 .*계약 + + RUN v5.0.4 /home/hermes/worktrees/find-word-v0.2.3 + + ❯ tests/build.test.ts (27 tests | 6 failed | 21 skipped) 2633ms + × 현장음 manifest 사본을 함께 바꿔도 승인 sourceSha256 계약 위반을 거부한다 452ms + × 현장음 manifest 사본을 함께 바꿔도 승인 expectedSourceSha256 계약 위반을 거부한다 433ms + × 현장음 manifest 사본을 함께 바꿔도 승인 sourceBytes 계약 위반을 거부한다 434ms + × 현장음 manifest 사본을 함께 바꿔도 승인 directMediaDurationSeconds 계약 위반을 거부한다 441ms + × 현장음 manifest 사본을 함께 바꿔도 승인 outputLicense 계약 위반을 거부한다 438ms + × 현장음 manifest 사본을 함께 바꿔도 승인 operations 계약 위반을 거부한다 433ms + +⎯⎯⎯⎯⎯⎯⎯ Failed Tests 6 ⎯⎯⎯⎯⎯⎯⎯ + + FAIL tests/build.test.ts > 현장음 manifest 사본을 함께 바꿔도 승인 sourceSha256 계약 위반을 거부한다 + FAIL tests/build.test.ts > 현장음 manifest 사본을 함께 바꿔도 승인 expectedSourceSha256 계약 위반을 거부한다 + FAIL tests/build.test.ts > 현장음 manifest 사본을 함께 바꿔도 승인 sourceBytes 계약 위반을 거부한다 + FAIL tests/build.test.ts > 현장음 manifest 사본을 함께 바꿔도 승인 directMediaDurationSeconds 계약 위반을 거부한다 + FAIL tests/build.test.ts > 현장음 manifest 사본을 함께 바꿔도 승인 outputLicense 계약 위반을 거부한다 + FAIL tests/build.test.ts > 현장음 manifest 사본을 함께 바꿔도 승인 operations 계약 위반을 거부한다 +AssertionError: expected [Function verify] to throw an error + ❯ tests/build.test.ts:196:22 + 194| for (const dir of ["public", "dist"]) + 195| writeFileSync(join(temporary, dir, "ambience/manifest.json"), … + 196| expect(verify).toThrow(); + | ^ + 197| } finally { rmSync(temporary, { recursive: true, force: true }); } + 198| }, + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[1/6]⎯ + + + Test Files 1 failed (1) + Tests 6 failed | 21 skipped (27) + Start at 08:53:03 + Duration 2.92s (tests 94%, setup 4%, transform 1%) + + +EXIT_CODE=1 diff --git a/.agent/evidence-v0.2.3/review-fixes/10-atomic-additional.log b/.agent/evidence-v0.2.3/review-fixes/10-atomic-additional.log new file mode 100644 index 0000000..0b2aaa9 --- /dev/null +++ b/.agent/evidence-v0.2.3/review-fixes/10-atomic-additional.log @@ -0,0 +1,19 @@ +$ python3 -m unittest discover -s tests/python -p test_ambience_audio.py -k AtomicPublication -v +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_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_readers_observe_whole_directory_during_real_exchange (test_ambience_audio.AtomicPublication.test_readers_observe_whole_directory_during_real_exchange) ... 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 + +---------------------------------------------------------------------- +Ran 11 tests in 4.791s + +OK + +EXIT_CODE=0 diff --git a/.agent/evidence-v0.2.3/review-fixes/11-audit.log b/.agent/evidence-v0.2.3/review-fixes/11-audit.log new file mode 100644 index 0000000..a5b0d82 --- /dev/null +++ b/.agent/evidence-v0.2.3/review-fixes/11-audit.log @@ -0,0 +1,25 @@ +$ npm audit --json +{ + "auditReportVersion": 2, + "vulnerabilities": {}, + "metadata": { + "vulnerabilities": { + "info": 0, + "low": 0, + "moderate": 0, + "high": 0, + "critical": 0, + "total": 0 + }, + "dependencies": { + "prod": 4, + "dev": 260, + "optional": 27, + "peer": 8, + "peerOptional": 0, + "total": 263 + } + } +} + +EXIT_CODE=0 diff --git a/.agent/evidence-v0.2.3/review-fixes/11-build.log b/.agent/evidence-v0.2.3/review-fixes/11-build.log new file mode 100644 index 0000000..8ef3ed4 --- /dev/null +++ b/.agent/evidence-v0.2.3/review-fixes/11-build.log @@ -0,0 +1,18 @@ +$ npm run build + +> find-word@0.2.3 build +> tsc --noEmit && vite build && node scripts/check-build.mjs + +vite v8.3.4 building client environment for production... +transforming... +✓ 21 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-BChkBncw.js 247.95 kB │ gzip: 78.07 kB + +✓ built in 438ms +빌드 음성 자산 101개 + 현장음 8개 및 런타임/현장음 notice 확인 + +EXIT_CODE=0 diff --git a/.agent/evidence-v0.2.3/review-fixes/11-lint.log b/.agent/evidence-v0.2.3/review-fixes/11-lint.log new file mode 100644 index 0000000..802efd5 --- /dev/null +++ b/.agent/evidence-v0.2.3/review-fixes/11-lint.log @@ -0,0 +1,7 @@ +$ npm run lint + +> find-word@0.2.3 lint +> eslint . && tsc --noEmit + + +EXIT_CODE=0 diff --git a/.agent/evidence-v0.2.3/review-fixes/11-python.log b/.agent/evidence-v0.2.3/review-fixes/11-python.log new file mode 100644 index 0000000..21de50f --- /dev/null +++ b/.agent/evidence-v0.2.3/review-fixes/11-python.log @@ -0,0 +1,451 @@ +$ python3 -m unittest discover -s tests/python -v +test_convert_format_fade_normalization_and_reproducibility (test_ambience_audio.AmbienceConversion.test_convert_format_fade_normalization_and_reproducibility) +스테레오 48kHz 입력을 실제로 내려 섞고 길이·양끝·안전 피크를 확인한다. ... ok +test_silence_fails_before_publishing (test_ambience_audio.AmbienceConversion.test_silence_fails_before_publishing) +무음을 정상 현장 녹음으로 포장하지 않는다. ... 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_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_readers_observe_whole_directory_during_real_exchange (test_ambience_audio.AtomicPublication.test_readers_observe_whole_directory_during_real_exchange) ... 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_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 32 tests in 22.430s + +OK + +EXIT_CODE=0 diff --git a/.agent/evidence-v0.2.3/review-fixes/11-unit.log b/.agent/evidence-v0.2.3/review-fixes/11-unit.log new file mode 100644 index 0000000..d58a877 --- /dev/null +++ b/.agent/evidence-v0.2.3/review-fixes/11-unit.log @@ -0,0 +1,19 @@ +$ npm test + +> find-word@0.2.3 test +> vitest run + + + RUN v5.0.4 /home/hermes/worktrees/find-word-v0.2.3 + + + Test Files 13 passed (13) + Tests 118 passed (118) + Start at 08:56:47 + Duration 31.35s (tests 88%, environment 7%, setup 3%, transform 1%) + + Isolate 13 workers spawned · ~637ms startup each (spawn + environment, per file) + at least ~2.12s faster with isolate: false — reuses workers across files instead of one per file + + +EXIT_CODE=0 diff --git a/.agent/evidence-v0.2.3/review-fixes/12-browser.log b/.agent/evidence-v0.2.3/review-fixes/12-browser.log new file mode 100644 index 0000000..adffd84 --- /dev/null +++ b/.agent/evidence-v0.2.3/review-fixes/12-browser.log @@ -0,0 +1,56 @@ +$ env CHROME_PATH=/usr/bin/google-chrome PLAYWRIGHT_NO_SANDBOX=0 PLAYWRIGHT_JSON_OUTPUT_FILE=.agent/evidence-v0.2.3/review-fixes/browser-results.json npx playwright test --reporter=line,json --output=.agent/evidence-v0.2.3/review-fixes/browser-final +[WebServer] (node:1040610) 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 30 tests using 2 workers + +(node:1040714) 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:1040717) 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/30] [desktop] › tests/browser/audio.spec.ts:7:1 › 음성·현장음 109개 versioned WAV를 실제 Chrome에서 해시·디코드 검증한다 +[2/30] [desktop] › tests/browser/game.spec.ts:8:1 › 실제 오디오로 혼합 모드 완주·레이아웃·접근성·외부 요청 없음 +[3/30] [desktop] › tests/browser/game.spec.ts:130:3 › intro WAV query URL의 404를 표시하고 같은 URL로 재시도·정답 mapping한다 +[4/30] [desktop] › tests/browser/game.spec.ts:130:3 › target WAV query URL의 404를 표시하고 같은 URL로 재시도·정답 mapping한다 +[5/30] [desktop] › tests/browser/release.spec.ts:6:1 › 릴리스는 사용자 크레딧과 런타임 MIT notice 전문을 제공한다 +[6/30] [desktop] › tests/browser/release.spec.ts:24:1 › 누락 음성·환경음은 query와 HTML accept에도 404이고 출처 고지는 번들된다 +[7/30] [desktop] › tests/browser/review-fixes.spec.ts:27:1 › 리뷰: 한국어 모드·결과 어절은 320px와 360px에서도 갈라지거나 넘치지 않는다 +[8/30] [desktop] › tests/browser/review-fixes.spec.ts:62:1 › 리뷰: 실제 진행 막대는 현재 문항의 1/3·2/3·3/3을 채운다 +[9/30] [desktop] › tests/browser/rounds.spec.ts:35:1 › 시작 단계·SNR·3문항 완료→다음 단계·재생 중 종료·응답 후 종료·홈 초기화 +[10/30] [desktop] › tests/browser/rounds.spec.ts:135:1 › 여덟 환경의 실제 WAV를 각각 디코드하고 루프 재생한 뒤 즉시 정지한다 +[11/30] [desktop] › tests/browser/rounds.spec.ts:178:1 › 환경음 404는 한국어 오류와 재시도 후 정상 답변으로 복구한다 +[12/30] [desktop] › tests/browser/ui.spec.ts:4:1 › 전체 음량은 설정 흐름 안에 들어가며 키보드로 조절된다 +[13/30] [desktop] › tests/browser/ui.spec.ts:52:1 › 난이도 설명은 모바일에서도 보인다 +[14/30] [desktop] › tests/browser/ui.spec.ts:68:1 › 한국어 제목은 단어 중간에서 줄바꿈하지 않는다 +[15/30] [desktop] › tests/browser/ui.spec.ts:121:1 › 시작 단계와 SNR 설정은 카드 안에 들어가고 터치 영역을 확보한다 +(node:1041784) 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) + + +[16/30] [mobile] › tests/browser/audio.spec.ts:7:1 › 음성·현장음 109개 versioned WAV를 실제 Chrome에서 해시·디코드 검증한다 +(node:1041930) 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) + + +[17/30] [mobile] › tests/browser/game.spec.ts:8:1 › 실제 오디오로 혼합 모드 완주·레이아웃·접근성·외부 요청 없음 +[18/30] [mobile] › tests/browser/game.spec.ts:130:3 › intro WAV query URL의 404를 표시하고 같은 URL로 재시도·정답 mapping한다 +[19/30] [mobile] › tests/browser/game.spec.ts:130:3 › target WAV query URL의 404를 표시하고 같은 URL로 재시도·정답 mapping한다 +[20/30] [mobile] › tests/browser/release.spec.ts:6:1 › 릴리스는 사용자 크레딧과 런타임 MIT notice 전문을 제공한다 +[21/30] [mobile] › tests/browser/release.spec.ts:24:1 › 누락 음성·환경음은 query와 HTML accept에도 404이고 출처 고지는 번들된다 +[22/30] [mobile] › tests/browser/review-fixes.spec.ts:27:1 › 리뷰: 한국어 모드·결과 어절은 320px와 360px에서도 갈라지거나 넘치지 않는다 +[23/30] [mobile] › tests/browser/review-fixes.spec.ts:62:1 › 리뷰: 실제 진행 막대는 현재 문항의 1/3·2/3·3/3을 채운다 +[24/30] [mobile] › tests/browser/rounds.spec.ts:35:1 › 시작 단계·SNR·3문항 완료→다음 단계·재생 중 종료·응답 후 종료·홈 초기화 +[25/30] [mobile] › tests/browser/rounds.spec.ts:135:1 › 여덟 환경의 실제 WAV를 각각 디코드하고 루프 재생한 뒤 즉시 정지한다 +[26/30] [mobile] › tests/browser/rounds.spec.ts:178:1 › 환경음 404는 한국어 오류와 재시도 후 정상 답변으로 복구한다 +[27/30] [mobile] › tests/browser/ui.spec.ts:4:1 › 전체 음량은 설정 흐름 안에 들어가며 키보드로 조절된다 +[28/30] [mobile] › tests/browser/ui.spec.ts:52:1 › 난이도 설명은 모바일에서도 보인다 +[29/30] [mobile] › tests/browser/ui.spec.ts:68:1 › 한국어 제목은 단어 중간에서 줄바꿈하지 않는다 +[30/30] [mobile] › tests/browser/ui.spec.ts:121:1 › 시작 단계와 SNR 설정은 카드 안에 들어가고 터치 영역을 확보한다 + 30 passed (4.0m) + +EXIT_CODE=0 diff --git a/.agent/evidence-v0.2.3/review-fixes/13-diff-check.log b/.agent/evidence-v0.2.3/review-fixes/13-diff-check.log new file mode 100644 index 0000000..bf35732 --- /dev/null +++ b/.agent/evidence-v0.2.3/review-fixes/13-diff-check.log @@ -0,0 +1,3 @@ +$ git diff --check + +EXIT_CODE=0 diff --git a/.agent/evidence-v0.2.3/review-fixes/14-final-review.log b/.agent/evidence-v0.2.3/review-fixes/14-final-review.log new file mode 100644 index 0000000..8ad6fc6 --- /dev/null +++ b/.agent/evidence-v0.2.3/review-fixes/14-final-review.log @@ -0,0 +1,14 @@ +$ python3 .cache/review_final_check.py +baseline-sha256.json 377 files unchanged +verified-code-sha256.json 12 files unchanged +{ + "node": "v26.7.0", + "npm": "11.19.0", + "python": "Python 3.11.16", + "ffmpeg": "ffmpeg version 6.1.1-3ubuntu5 Copyright (c) 2000-2023 the FFmpeg developers", + "chrome": "Google Chrome 146.0.7680.80 ", + "head": "c92660b514f7af8eb556d3fa5c0fc80e4bdd4cf5" +} +RESULT local evidence links valid; git diff --check passed; all historical evidence and 109 WAVs preserved + +EXIT_CODE=0 diff --git a/.agent/evidence-v0.2.3/review-fixes/baseline-sha256.json b/.agent/evidence-v0.2.3/review-fixes/baseline-sha256.json new file mode 100644 index 0000000..d67dc4c --- /dev/null +++ b/.agent/evidence-v0.2.3/review-fixes/baseline-sha256.json @@ -0,0 +1,379 @@ +{ + ".agent/ACCEPTANCE-v0.1.1.md": "7e9d5aa5c608d3d86c0c30a51a8322713a2c5d072e57002ac5af9b63127c68a5", + ".agent/CONTEXT.md": "712bd056cfc8d0254d6c96e7a604d364779d3734d14899111792e7f343e6819b", + ".agent/TASK-v0.1.1.md": "4e4a81c02cf16ae8a2a6b53da8501de512b6a6387d7d4eaf932833c63ada4aa7", + ".agent/TASK-v0.2.3.md": "46ae8118506c756b97e29424e580843d0557c2f663f069e9ae71c04904fafb18", + ".agent/TASK.md": "7e52739d5de3161aa60004ca8e65b5a5041d62c1b6a0e50c6c72ad8f6b183d61", + ".agent/RESULT-v0.1.1.md": "d5d7077d4977d70a89086801dd8e7d5ae04e16a8e8009e41f3216008b743ac5b", + ".agent/RESULT.md": "eef6d73a67a8a7e90cd7b4747debc5976cc51571bc268328634413f698d0e311", + ".agent/ACCEPTANCE-v0.2.3.md": "4698a24cf492562c0f10b243c06a0ed2f930a9f0828f3ac08e0507d7a1cf7267", + ".agent/ACCEPTANCE.md": "57598e4c5c37a658ce5fe366826983987178ed9c565355413ab3669c839eec78", + ".agent/evidence-v0.2.3/secret-scan.json": "8928209f4e2bef083901f845ae3fd8e949c0a266cefa15ff4563eef337a008d2", + ".agent/evidence-v0.2.3/19-favicon-GREEN.log": "34fd3cd00d40ae5766b2364cef81fe90accc8f8ec03788959680d118ecbf9b13", + ".agent/evidence-v0.2.3/20-lint.log": "058127eb4022e13fe809a0c56c3d3a43177b6088f284811e926452185772de6b", + ".agent/evidence-v0.2.3/environment.json": "9e1c233d564982ef3b9712c2bcb5c85aef32d2276d0c3b6f5e02a009db76796e", + ".agent/evidence-v0.2.3/chrome-sandbox.json": "0e0d0d3a4618e4c607a6cccd1ff04d9fdc9dcc70ff76e909e614e90b6607cae8", + ".agent/evidence-v0.2.3/20-browser.log": "cfc61835f7061d6301b54ce07e8f1c1aaba5c3a29d7df85d767eb1cf898217a6", + ".agent/evidence-v0.2.3/04-recorded-mix-RED.log": "b74bfd906276af2211ccbc8a6da10ebf86146fda613622c20e4a939ae45dd55f", + ".agent/evidence-v0.2.3/12-build-initial.log": "508b0f60d2378679873fbd17784725323fe7ccc267fb3b8b180a7bd59b861176", + ".agent/evidence-v0.2.3/browser-favicon-RED.json": "036a734efcdff9481b3d10f1b07159ef6ca056d9245cffa469c5b1c8fe87f2bb", + ".agent/evidence-v0.2.3/08-heard-snr-GREEN.log": "347cdd6ceffa01e0227a17b5af604e96e8081aeaadfc95cf33155ab0af0f813b", + ".agent/evidence-v0.2.3/14-browser-initial.log": "d2178d18a7e1b2f84e4a430a884ca442070b1a455217f6f594ed4c5f160b426e", + ".agent/evidence-v0.2.3/22-browser.log": "b2e4e82e78376042ea1297c930403889b22e8a275e226736c232b8cbaa74fadd", + ".agent/evidence-v0.2.3/commons-license-audit.json": "2a36e3ac168d223849a2f171457ebd87b236301a65c8e13f5061f484c18e31d6", + ".agent/evidence-v0.2.3/22-full-test.log": "c3f38be3d6e00dc983e29a3cbfb632192a0fe64c151f06edcd8b35188edcde5c", + ".agent/evidence-v0.2.3/preservation.json": "a938ce612b594f99e4bbd2457f3a2c665af4aeb6a465ca4c459d74c5375eb4ff", + ".agent/evidence-v0.2.3/15-results-anchor-RED.log": "cb113c8ceeeb48d7573b1de0b9d8263e25e4f7a28dd811404a057d5d6c623157", + ".agent/evidence-v0.2.3/17-bonus-copy-GREEN.log": "f988cf9fda0bc4dd4b7818dde11094f6fb75b9540ccfcb9f964acec003ff3de7", + ".agent/evidence-v0.2.3/21-select-label-RED.log": "149ee8ca004c8f63765d642305cf9e6b0ad3de5986bf0dcefaf656844c22a73d", + ".agent/evidence-v0.2.3/source-integrity.json": "61c080d80081a3fdc9b2c78a4183805df6293184add2bca9534aee8d82bd5b96", + ".agent/evidence-v0.2.3/18-format.log": "d78946d25140238f764ccf3fca989a0aa42b25162cfba7d92dbb10256db45401", + ".agent/evidence-v0.2.3/05-playback-GREEN.log": "4d43b75d4671d9aaffaa5db4d32299260a440978a3699c92d384443ba4766bea", + ".agent/evidence-v0.2.3/15-results-anchor-GREEN.log": "48c5b15b6b2dc661a0410af2cfe501d9efafac55d085c29ab74f44ea76e7e8a3", + ".agent/evidence-v0.2.3/22-lint.log": "058127eb4022e13fe809a0c56c3d3a43177b6088f284811e926452185772de6b", + ".agent/evidence-v0.2.3/14-full-test-initial.log": "08a7d3bb30acbc04f9b63e49a0ba5a34628e00613a97660cfb6f467c74854aee", + ".agent/evidence-v0.2.3/07-converter-GREEN.log": "53a049e86064db709a80d1487a099fe154f99fb6a9821639a24390f88aacbf5a", + ".agent/evidence-v0.2.3/03-screen-RED.log": "98e50844d757b9dee2426f93ed89ab6d158b30116212908fd098eda68f4b848b", + ".agent/evidence-v0.2.3/rain-download.log": "701d47a1c31b5232d682641f05d71c01dc908b03b58ed1bc270a27ba9b32fea0", + ".agent/evidence-v0.2.3/source-downloads.log": "c49692acca2fddc1cdbea155ef0ae6191a9f7eeee3508d3bf608a71bec349e46", + ".agent/evidence-v0.2.3/20-full-test.log": "10c46b00ad407161154f57c060599dca379effef2c5c80e0d24edd366c08817a", + ".agent/evidence-v0.2.3/01-round-RED.log": "986a49e5522b1c7dbadf97e0c308af87de589d7a9524ec85c4ba891deb603d3f", + ".agent/evidence-v0.2.3/13-static-404-RED.log": "7b4822f9d121f963dbab27155aaf0627fbbfbadd855adf4da4224388e35b230c", + ".agent/evidence-v0.2.3/13-static-404-GREEN.log": "dee59b03d1eb3e0a59828d4f50ea372c78c231000cdd1c77965fcdf42864042b", + ".agent/evidence-v0.2.3/final-review.log": "1692e79cc7e03cd3a71e10f4497914df13931aa08e1c5a66a84545ce318b5ea4", + ".agent/evidence-v0.2.3/03-screen-duplicate-description-RED.log": "186940b7e422c6096fdc3c3cf4280661a75d4f02d3b97e3015a070f5d8ff0323", + ".agent/evidence-v0.2.3/03-screen-GREEN.log": "39564011526efb4ff5a277774394d26ae8e8d241e233d53a950cd258ed26c001", + ".agent/evidence-v0.2.3/18-python.log": "911637068f7c09de38cd38b9d13cdb23b365812521ed8b1f75328b1960b085bf", + ".agent/evidence-v0.2.3/11-bundle-notice-GREEN.log": "d6ba07866a02eab665c215f1ce6588e4f5a9157baf4be6e9befba0f945e379bd", + ".agent/evidence-v0.2.3/18-build.log": "3f0bd258866ed4f29f8a8ab5d88fc7db68f67abe9bc51fed22563d51200d9f72", + ".agent/evidence-v0.2.3/21-format.log": "48a148bd43ecea64bd7604be2431e2072fe390bbc578a71d65df4d1c0a369412", + ".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/browser-results.json": "060d18bd74f7179884205117c6c853dc783ec7a818bdfcc8a490ef1a679c77f6", + ".agent/evidence-v0.2.3/02-snr-exit-RED.log": "ac7bc8813ca67a1413678e97c36d05e03bd1f3d9c99656671e3a81bac38c89ac", + ".agent/evidence-v0.2.3/01-round-GREEN.log": "80beec689bea21086449b7edc9c61414af289722584478463fdd5deac9cba39d", + ".agent/evidence-v0.2.3/05-playback-fixture-regression.log": "925f6be228ab0eb568c27d79fb1b477a8737cfd94be34d0f7d79d1d7e4989bfa", + ".agent/evidence-v0.2.3/14-npm-audit.json": "ea7bab3cc606a95eecdf538b0d02d3cf928bf0f3a1cfb1d2c8ddbe02846d5658", + ".agent/evidence-v0.2.3/07-assets-GREEN.log": "f04418ee6b67f14c62e17c53027e7ea1bde58d38a7cdc54f0edee15e1643847e", + ".agent/evidence-v0.2.3/06-node-import-RED.log": "9b7ed2c611e2e36041f8a34e3295ad2ff506f0feb427e4a51978ce9efc252cf1", + ".agent/evidence-v0.2.3/11-bundle-notice-RED.log": "82d52d3905b35948abbaf7e912de5480a959780731fd04be4110674cf2d6ec63", + ".agent/evidence-v0.2.3/01-round-sampling-regression.log": "e71f6e853a00941decac3df722369f3bba38f177b8d4ceb7be326522326604f5", + ".agent/evidence-v0.2.3/04-recorded-mix-GREEN.log": "323468e46e58b9f51340f63ecc41fc0bfd9fcd4a9e91e409550d484c49ff6b6e", + ".agent/evidence-v0.2.3/17-bonus-copy-RED.log": "fd11d5b64c06cfa28c839cdddb7e2f2ac2406f8c1101f1fb9e262ae9cfaf6b85", + ".agent/evidence-v0.2.3/06-node-import-GREEN.log": "0bceb35eedea301af580ec093349973e9230d37921d5c4476587ee335e28554d", + ".agent/evidence-v0.2.3/12-lint-initial.log": "7a5fdab53449ff945e4f8694164cbb1792f01a19d3d97c151590df5bdfb1506e", + ".agent/evidence-v0.2.3/18-browser.log": "a92ba8db852111170403932bb8b4dbd49345936156fbbc3ef61f5c612609a55e", + ".agent/evidence-v0.2.3/19-favicon-RED.log": "49fc230ab2adeceb6613e6b9019f31f12b2dd3764096a85f391f91e83479e6cb", + ".agent/evidence-v0.2.3/02-snr-exit-GREEN.log": "6bbf48b3aef1b15de7576a8c4ee5608c382aa5cc92c95a844aca32d705208e23", + ".agent/evidence-v0.2.3/21-select-label-GREEN.log": "2ce474d915736281c05591c4753e23d555eda186b13c85a2ae96f8481cf35d86", + ".agent/evidence-v0.2.3/16-controls-build.log": "ae8849619608d58763d2ce301bcdba420054bd29174b1bc8dca86790b82fc5e7", + ".agent/evidence-v0.2.3/10-environment-rotation-GREEN.log": "5dc34db413e4ed7918dad60a49ae97532d701aa52d10b49459e77f75c925231d", + ".agent/evidence-v0.2.3/07-converter-RED.log": "53cefcd04c8ac4354b5e891a4e65810c21ece90503a3f2ed3392c046feaeb9c9", + ".agent/evidence-v0.2.3/09-version-docs-RED.log": "21733781658b1d6525746f6a3dd59337774990c53689f7883e7ff8ddc7c65398", + ".agent/evidence-v0.2.3/07-asset-conversion.log": "ce2e395db0bfce47953cd7c9ff3311a733376d8109941f7f04a919659f0d95f8", + ".agent/evidence-v0.2.3/18-full-test.log": "bf358255a30c2d18b82af8f8c5942d0b9ee7c100c40114fe8666e7f564829d79", + ".agent/evidence-v0.2.3/16-controls-layout-RED.log": "9060a0e1d36a15a35b3b189f5b210fdab9fe9579b06e6b19f645bfe8f2914603", + ".agent/evidence-v0.2.3/primary-page-verification.json": "2b4a6fcaf55b51a10d378a888a634e7aeac8591d3dd5fa537f4a70806c536fd0", + ".agent/evidence-v0.2.3/12-lint-followup.log": "058127eb4022e13fe809a0c56c3d3a43177b6088f284811e926452185772de6b", + ".agent/evidence-v0.2.3/20-build.log": "77a52828d2b1d1d46efa6a3f5b4ded7ca12da6db5896b1ee9a2fefebf50bcb85", + ".agent/evidence-v0.2.3/16-controls-layout-GREEN.log": "7be2b42602a98167b83c12bce3af7b0856ccd10be68d477e5dba39db99991c03", + ".agent/evidence-v0.2.3/18-lint.log": "058127eb4022e13fe809a0c56c3d3a43177b6088f284811e926452185772de6b", + ".agent/evidence-v0.2.3/10-environment-rotation-RED.log": "ae7914b7fca896a77478e36ea79bfc51d3a13f976e0f722c7c1615daf6e6837e", + ".agent/evidence-v0.2.3/07-assets-RED.log": "5c173b8b2c64b4c661cb58ab22788216b0d90799378a3fcf234087182f3b1d78", + ".agent/evidence-v0.2.3/22-build.log": "ed77e72c527fa7ab9d9c5c2447cd1bff34824ee6eac384bd18a50303607cbca9", + ".agent/evidence-v0.2.3/05-playback-RED.log": "02aa8f0a48af5b6f157451029963aa90664c5fedd89491e174e9b2d7bce1d159", + ".agent/evidence-v0.2.3/browser/desktop-runtime-audit.json": "afdf38d83cf77e91b478bc806f4da007860c5db6e6146995d5d405883de8bc13", + ".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/browser/mobile-game.png": "f4890f7d61b87c102c68f285108584ac58182186b685f73ea05f64bf51a64a0c", + ".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-start.png": "911b923e3a68e8deb0063efd88ed43eb1ed6c597c14bd5b9ee71f6b5161b6d7b", + ".agent/evidence-v0.2.3/browser/desktop-audio-integrity.json": "3d6defdb7ad3b8d4d7949ffe476f4ebf685e5dcc1ad0868b98bb4e639b6dcadb", + ".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/desktop-normal-results.png": "cf98d5168a96fac8a87718bd5a771d81e8e02dc4d46c93904556319033fe2bc0", + ".agent/evidence/release-final-browser.log": "2a9881cef8c379f41abf5d69dd5ad21881988f78c0579c95e463121dc37f6e09", + ".agent/evidence/14-snr-red.log": "b39bdbd8815d0d9cfcedc41c61124afece2011ea6c6c250b0ee0139eae7e9edd", + ".agent/evidence/02-game-red.log": "78468ee5c25c1685f3613926f636b6fb4569227533feda3547afc6b8123d6452", + ".agent/evidence/neo-mobile-heading.png": "ae07d0a1cb6f835525c7e0ef31655a543eaa9e10183596c2d409dead6faccf15", + ".agent/evidence/final-audit.log": "6d8c5c8f3d7684adb070417bd608d01ae90aa3dc26a65af03ffda4955f38d9a3", + ".agent/evidence/release-intermediate-lint.log": "ee597e984ebdf11ea247c8cb1551cda446580cbd7a3dc708f85fa78bb72700ad", + ".agent/evidence/release-mobile-game.png": "83a918e5ff2142e540cd12b85806b3e69a71bc66df5d241f4b2f5abdaf493f82", + ".agent/evidence/17-spacing-red.log": "12db8083cd8627a81a52cd32358780a3c2257cb3bd702350b190b39226f6550f", + ".agent/evidence/11-provenance-red.log": "e69fa7989223e659c16b8030f8668e562ad5b0daa060fbb1c9eff41a37fd56fd", + ".agent/evidence/12-ime-replay-green.log": "a93d9f16c7d81ed5e9a7c0b70ffee1e393d2943ddf3149a5bb115c5517327c44", + ".agent/evidence/changed-files.txt": "2b609231e5c7becd581f79413a4f7443312e71f0099ac6a51b2c5f0dfdee576f", + ".agent/evidence/desktop-home.png": "bf2f515fcd483cd5ca9a3b408f484d3556b75b1be0bb70360b7fd5f7c3404993", + ".agent/evidence/06-ui-05-assets-green.log": "ced2ad738cda673b24308dcb9d99d59e3ae918709eeb32de359d6ab1022133e2", + ".agent/evidence/13-heading-build-after.log": "19829ac264f97aa023baf7d5e1fd429343272f3bd952e8b6dfb9eec0f594b453", + ".agent/evidence/03-dsp-intermediate.log": "084a52294f718718256eb1516048a672d045a5f7dcb5d11c646092d29efbab58", + ".agent/evidence/neo-mobile-home.png": "9b3ba8b0a9f7b321882429e31ac4a0472fcc13a998dfadfc930c273bc37558d4", + ".agent/evidence/23-delivery-browser-red.log": "180a61bbacf85db9e52f721b50da683103b719bc350454cc99d4c8954b2ae86e", + ".agent/evidence/audio-reproduce.log": "5f5726f3ed6845882c7a6d6f9a8d898c2b73bf61fa6328e8bbafd25f61ed4268", + ".agent/evidence/release-desktop-heading.png": "de454d77e29737e23c573646404489d5682004521deabfa01b439d607faa32ca", + ".agent/evidence/browser-second.log": "2ff1d16f51b9384cf431d5923ad87d773510fe4b89bdf62f09cbda2efae20e3b", + ".agent/evidence/16-copy-green.log": "dacbdbab5d4af2b6e19eb4e0502a70720aac9fb6cf3b9d6dfdc73a5bf7edabfe", + ".agent/evidence/15-volume-red.log": "9beae6305080cd0d869bf3fd2093beb6e2e25e5424223aa7e4ad4db96954f37e", + ".agent/evidence/11-provenance-green.log": "54dcc417b97f82422c5c3e0ae11caa1f15a60412853ea1dc0152d15031bcd935", + ".agent/evidence/24-retry-final-build.log": "702c20554872e437137097ca59a80d911188477f018bc48c4b49a770b73d5a84", + ".agent/evidence/24-retry-targeted-green.log": "4e53f2de988040540f5075b2e4a483ca53b671486c35e864fbc3c2c9c5361c61", + ".agent/evidence/14-snr-build.log": "1e9ce36a48904a58195f9d1c2d9ca6cf2895fcb8bd0b5ab9b72f76e92c6b2585", + ".agent/evidence/20-mechanics-green.log": "9776c68143f668e35df8b2e19884b25d2369e4800b4c264e635d0c260818c5f1", + ".agent/evidence/release-docs-final.log": "3529acce5befee536ec7d8e9d22cbbf27182297bb07408ab6e31551aaee76ed3", + ".agent/evidence/mobile-game.png": "20a3f02f70a28b2faae1b33d0d4d6fea10b77caa426e4bf9faa5ef6d4474a846", + ".agent/evidence/15-volume-green.log": "0f9a90923f4fdc477c8f2436653eb2bf0e4b251bcb52e795701309ba14f23c7d", + ".agent/evidence/release-desktop-home.png": "f28f744e11b66373ee8db6eda2f7bdc384da4f7e763fbb467a4cda30090e869b", + ".agent/evidence/13-heading-build-before.log": "646d197d2ef93c19fec4719e20297de1b22eff54f3e6155ba2125fd3dd372c46", + ".agent/evidence/neo-desktop-home.png": "826c5da794c4ea3c15bd6c13e81d1c021fbeb8a902fc4908b78f9c457f091c0f", + ".agent/evidence/neo-desktop-results.png": "98a68ca050a4e66c17dcc3f1bd5f0e86bfc88c2ebe9a75284766d17e10426632", + ".agent/evidence/neo-before-spacing-browser.log": "e5c214f14bd93ef1bb731f87ecfd3a02d299c9f9e5a788233f6eda5eb8946b4f", + ".agent/evidence/16-copy-red.log": "ebe3d7c86938d33d7f1a4818b18c7e94ab8feb18bee099fcb535a93d8083861b", + ".agent/evidence/13-heading-green.log": "d59fa8546083e9d371c7a552287f27bf3acd572bd0cce3da8eba860da5c05880", + ".agent/evidence/neo-intermediate-build.log": "9d8a1f0586d58196e03e45330b6e8ff5522fdd3c27870aae2fb052199f8cf5cb", + ".agent/evidence/neo-final-browser.log": "582e7cbb643201e4b197b566b021322448abaae0b383967ad0e816d0c351e96b", + ".agent/evidence/release-mobile-heading.png": "d5c92a3b62f749d5f064af12efa5a1a2ad13b177270ec01dd10a549a8437899d", + ".agent/evidence/20-audio-green.log": "edb9b9f0aa1af11835960eee9bb6e8c013341aa528d2857bac0b89ac38457528", + ".agent/evidence/08-rule-green.log": "91b7ce3fda181fbe51cbe4e6debb61dd44dd55226dcfa81ed73559ba76811f3f", + ".agent/evidence/browser-first.log": "f3087028d76aae36d61d7a14da488bd809079a9e121a2d8fb01fa034f99d4f05", + ".agent/evidence/21-node-green.log": "3c36e9e45b6844ae2c184f943b61195482d9de53ceab06221093c8281d210d73", + ".agent/evidence/neo-desktop-heading.png": "db609f2f54af0e6b1bb96bce9bf839454403d6e2787e6520a2928fad31beb021", + ".agent/evidence/neo-desktop-game.png": "f5966688ba46f14fab5125452f935e55f6e6dc4355c876416729866129daea70", + ".agent/evidence/19-notices-green.log": "efc51aca0738f3cb5264ec3c3ad0d17bb150d685f5fdb5e200bc1eedc0e3c02b", + ".agent/evidence/final-lint.log": "d2354c241320f11f07890cbf32f99a5d88f1c7f4f236d860e2cd26db739badd8", + ".agent/evidence/07-build-red.log": "138802de7bc67c1535668efe7a915424a70d5d7994acb7f366a139e89c1da77f", + ".agent/evidence/release-final-lint.log": "d2354c241320f11f07890cbf32f99a5d88f1c7f4f236d860e2cd26db739badd8", + ".agent/evidence/release-final-audit.log": "6d8c5c8f3d7684adb070417bd608d01ae90aa3dc26a65af03ffda4955f38d9a3", + ".agent/evidence/release-mobile-results.png": "587956c9ad5eca054e4bb4b44748a2c637655e407427ba5b4c6ad7bf5a74539a", + ".agent/evidence/neo-final-build.log": "f30138e53b8c12e70e80e2cd5f4bdfcf8d1f6a095216a4f9ade6687bca1f0488", + ".agent/evidence/release-desktop-game.png": "7300a06a507f651a587ed3deb36cc5bb728f4a36c30b7b1cf409a3b209ba564c", + ".agent/evidence/desktop-game.png": "42702e89264357257db8bf54c2b3743e3212e62cfd3476a8c25bad83fb59ff81", + ".agent/evidence/08-rule-red.log": "2cc1854cf6a4b9e8d53a7a36b1dde1fb6c6970b89f841b9e8f404e6e42bb929e", + ".agent/evidence/neo-mobile-game.png": "1a6733a3293204e4841ec8722a1ffe37033943097c691bcfadbcd907fde024ef", + ".agent/evidence/final-test.log": "af03027cb22a090ecd107c10e3fc7e2f9ceb394122b0b73caa7d362310504170", + ".agent/evidence/desktop-results.png": "003df3aeb08ce66618775377d9b2003809d696629f61cf54b7b86e7a0ed63593", + ".agent/evidence/14-snr-green.log": "ae74e57cea20841299a8c1ee5eaf60efad34bda697339f45527cdec83578e6df", + ".agent/evidence/mobile-home.png": "7f84bd54183fcdd03fe136b41145146ddfb323041c96a8b9e6b670c9a923033a", + ".agent/evidence/07-build-green.log": "ec98087d20a68c5b81c6c23406316f1e5f19c6124498e1fc005d04bb78894a57", + ".agent/evidence/release-final-test.log": "46d5d0fc0180adc00a734b64db4acb4cbaa37d12567d0224836306312213870c", + ".agent/evidence/05-assets-red.log": "04388acb098f7dabe9a35783b496075ee7c39757d3fde5361c9ac080188ac371", + ".agent/evidence/browser-third.log": "1b6c264930da8934e7f1c8da6c998543f35e68b1c3159dad722cfe23a8e5244c", + ".agent/evidence/final-build.log": "565a95a51a10f78bc08f256755afce5ef183440dcdea5e75b3aefde8d7c5b837", + ".agent/evidence/browser-final.log": "9273c91613160e239027452894b3735f9657ccad97a52412eb889290aebd5adf", + ".agent/evidence/04-audio-red.log": "58bbf8eae572f83e408dd101eac738a5f6963550e21c8265f42a7eeba18be7a7", + ".agent/evidence/release-integrity.log": "cc77121b43a6b24a358999cf1a3bbf701d467fcee9730095f318303c2e80602b", + ".agent/evidence/14-snr-browser-red.log": "36298e5bb1f45a69b0ca75e5cbce85ee1455c4485759670268fbbcf55bacd4d4", + ".agent/evidence/03-dsp-red.log": "bacf42e5c808d32702b9bcd30523d1fcf17d5ff75b281233d9e84f33b6e42589", + ".agent/evidence/mobile-results.png": "ec2938c03ac03da8e33e25f043522b317b60c16be1c29f9dd325a81ae84513a8", + ".agent/evidence/neo-mobile-results.png": "d49fdf6ae9566d7a2003db3f252d84ed88ac4d73a0390ce404b47e7bab9c60df", + ".agent/evidence/01-content-green.log": "5585acd257b49225218835acd69a1d240c7737d12dba62949f31a5b7c1c9ed2a", + ".agent/evidence/13-heading-red.log": "33acc2838786a87b8ecc170a1ac0a9d7521daf8e5b9aed2195e76e45ea327f76", + ".agent/evidence/22-sandbox-red.log": "c8a97270f0f68367d6edb3e5ee10f34bbda1127f8dae2c5639afd482198e7bcd", + ".agent/evidence/14-snr-browser-green.log": "fcb82296e9af4b96112fae0bbb77c6ba41230c117021243e85916ae1130a462d", + ".agent/evidence/final-browser.log": "5855691def462b23667a9d658338a0458a53d984b5b5f7e11b45f9a63092abcd", + ".agent/evidence/02-game-green.log": "5ca5895f8a09f4e9de7a846bf9ab37fb3715623e8e7654dab095505c097fc0c7", + ".agent/evidence/neo-final-lint.log": "d2354c241320f11f07890cbf32f99a5d88f1c7f4f236d860e2cd26db739badd8", + ".agent/evidence/19-notices-red.log": "8f34c583cb8563803828d72fe56622d84bcf59a9541d983d6c0b705225955794", + ".agent/evidence/18-literal-red.log": "ad23ae7be3d9aab83907c12849012a01f9d1b12e5a174c3acede89817a74d2d2", + ".agent/evidence/20-audio-red.log": "c1cbd5b585e8a70e23b88bfcee0c6479f85fdec0d1e06d13c81c689a140c0ac0", + ".agent/evidence/12-ime-replay-red.log": "8cf5dab06d93cc544c21276ee633829f8b137b4b6d7c5fe47aadcad6fc2afb71", + ".agent/evidence/09-ime-red.log": "10e5f9f99609044c768cd338df0d574a06a7442e0debe0e61ca16a6b5873adf3", + ".agent/evidence/neo-intermediate-lint.log": "5e94ea847c3a092f4ff8e97ac5b61ebef805b3c859ad38461f4a437045d1b5b9", + ".agent/evidence/15-volume-browser-green.log": "aeccd5f13eb9db4062cbf2c70eee332d0c39540d580e113d0a79a899b2ef02de", + ".agent/evidence/01-content-red.log": "0f28fe2ae2c4669a52ba2fc15bfa6285e4922474dc2b2571098b522679948e12", + ".agent/evidence/06-ui-intermediate.log": "3295b3ae691dadb8feb7f0aaf604a1aa56cbfae27b5dbdd486cb5645f5edabe9", + ".agent/evidence/24-retry-final-browser.log": "68029aae89adf86fd60ee56a20a1e2f769cb4f894f27ae23963ca5b5b58c62c4", + ".agent/evidence/10-ime-reset-red.log": "f6cb7c1724b8f9c410385e9970051577c03527fb7e719f43a77c967ca08ef18f", + ".agent/evidence/24-retry-final-test.log": "b71bb1375a039bcc3d7b3c5070da85ece3551f32ae1b8bb3a2abc5ef1edd57b8", + ".agent/evidence/20-mechanics-red.log": "d25a1c844366e14fe1db9bb7c243fe0adb6857ee5b4548cf2865de96589af647", + ".agent/evidence/03-dsp-green.log": "d3d08683a1426b845a2e987572861b82b3ac978b8c352991950c0f32a473d3de", + ".agent/evidence/06-ui-red.log": "1f1ed6bd440af22f5abf59e4be194f969bee1d115d436a155d879d8cffddb747", + ".agent/evidence/release-desktop-results.png": "2ebb4056d0ecdadea8a3469500801065ae158c17cd2db27817e813e53adc71f3", + ".agent/evidence/18-literal-green.log": "878a8d788a8cedbf652fe0e819fe482099249a52ae7b5cc3d8826e64b32c6377", + ".agent/evidence/20-audio-generate.log": "f864fc266f7ca50c600457399f198a77949e9ee1601b0d2fc19b64942a2030cb", + ".agent/evidence/24-retry-final-lint.log": "8682ca1f55e3ec58f13321cc339c8647ef72c1934d74ea9b980aee717e528819", + ".agent/evidence/release-final-build.log": "3fba8356382341db9c562d985ca2229fd0b81969532746b0146bc489d54c321e", + ".agent/evidence/release-format.log": "57658c36cb3161b53cdf934017e4b7a733a273509ace184e0a2a6eaa046c742b", + ".agent/evidence/release-mobile-home.png": "c7fc37a247bbadba60de9dff3c8d87930a2e6ebb868f687a4135b3fd035ed1c3", + ".agent/evidence/10-ime-reset-green.log": "e12761b3a2814a79d1448e7452474a086bf371921287718eb72dd9b0f6b8fc82", + ".agent/evidence/22-sandbox-green.log": "e8a1a17e49c22dea81d7f85111c744473427466791ddeda75047cd0082e7faba", + ".agent/evidence/15-volume-build.log": "2767b794124804b3447f529eef025e2530975fcc506e1cbe8994acf8243e6ba8", + ".agent/evidence/24-retry-integrity.log": "a188fe54dce05f6caa868b3d9f2c22a852f6a8cdc462355673316578be623a08", + ".agent/evidence/17-spacing-green.log": "8ab85362ceadcdfecf4f7b1e95abfb4237e15018692e14f937be90265c351b11", + ".agent/evidence/15-volume-browser-red.log": "84954280c1729703f9e9c2680c8933c3b0752b19fb9c3562e7dbf2ea1b4a548c", + ".agent/evidence/04-audio-green.log": "d48c93fa7d32315ed4f719dee19222e7398bc4c4bceb8cf345e0e221a9ac89d8", + ".agent/evidence/neo-final-test.log": "f718e2acda255fcba67b272c7fa625af450714b384bb67a72f09328bf6964f0b", + ".agent/evidence/21-node-red.log": "ee25556037bdbd6b099dbb087a522284e8df00bd573dfcf0e42c734e31e09e84", + ".agent/evidence/final-security.log": "c585566624a4596e97327fb1864b1ac2a3189c0794b1e25a9d6ff1abb86046cb", + ".agent/evidence/24-retry-audio-budget.log": "b9241872b4ecd80265df4c6c2be90b31e9de4d0754772655e50b7fb4f05e2d3b", + ".agent/evidence/09-ime-green.log": "e5d5d1cfa2b6db724ded97d5f3309a517bcf637d9b2b417e9110dc9da0a48d72", + ".agent/evidence-v0.1.1/02-assets-red.log": "ccb8a354e2975c944fb2bde24492fe06a6c1b71add6ce65259d840c66836a1db", + ".agent/evidence-v0.1.1/changed-files.txt": "4877f3d1003372868b5a9f72326ccf0870b22daf35a71b60b67dc761342fa50f", + ".agent/evidence-v0.1.1/browser-audio-integrity.json": "2c0f59ed178285c0d338171328232351aab2b55e22371b3652453afa34849b65", + ".agent/evidence-v0.1.1/mobile-heading.png": "d61f2d1b01c654a5cfe841e49e244af4e232b5fc9c899e77523b336411e99316", + ".agent/evidence-v0.1.1/desktop-home.png": "9c6f92b67db249b2a1d3e752052678d7ae0af6be426d976d12237d84c105bf76", + ".agent/evidence-v0.1.1/audio-integrity.json": "d82b192602b1f054fce5f61479832666f237d7da2698afe84b09186dac90f321", + ".agent/evidence-v0.1.1/11-full-test.log": "65721fcf2b03f153274c9cc1da13c6a1f265ab6f084be8b5921a898fbfd6b40b", + ".agent/evidence-v0.1.1/baseline.json": "085be97acb81dcc83477ebc5f42dd2fd5729d9f5821cbc659df9c00b648ceb34", + ".agent/evidence-v0.1.1/09-lint.log": "43d5238bc8e59b93cf3a9bc0f444f0165697b5584078973bd92efce056136c1e", + ".agent/evidence-v0.1.1/verify_audio.py": "7751c03b83dbbd3b222f6d5a68eb1d78dac2bbf82c0fd79345ccca86a15fcb69", + ".agent/evidence-v0.1.1/16-final-lint.log": "43d5238bc8e59b93cf3a9bc0f444f0165697b5584078973bd92efce056136c1e", + ".agent/evidence-v0.1.1/10-audit.log": "6d8c5c8f3d7684adb070417bd608d01ae90aa3dc26a65af03ffda4955f38d9a3", + ".agent/evidence-v0.1.1/13-build.log": "42ac41188359699f5f24c7f86de9d7ca6503d714a7be9e277ac2fd01be21614c", + ".agent/evidence-v0.1.1/mobile-game.png": "bb0dec7ec2c99b55caafd729e2f9c9c01875e3b6dd577cc377a76bbfd5c95a7e", + ".agent/evidence-v0.1.1/05-generator-green.log": "414464526a325b424e5c5305e3066b79c55527fb67b11a3b9eb3bb33dcecea93", + ".agent/evidence-v0.1.1/01-version-docs-red.log": "edb26b949d0dc28340989601e781df3582cf784220235d19c16a46aeee97d302", + ".agent/evidence-v0.1.1/desktop-heading.png": "920d3d998d93f463be9ac6a682c1f7d5d9ac36944b52b715345c865ae46f566d", + ".agent/evidence-v0.1.1/desktop-game.png": "02c59fa37c4d4f19e5c74e56fc889105b4d280a0a4cf2c14c1838947859a3a8b", + ".agent/evidence-v0.1.1/17-security-history.json": "5ba66683c3ae29e01f25cfae2ed832e33b07f866bfccd0e1d331a8f102d3d3c7", + ".agent/evidence-v0.1.1/desktop-results.png": "3811eae6f5827760499c9c64053a2cb2ecbb1d87ed2ddf11b757eb44e56c64bd", + ".agent/evidence-v0.1.1/mobile-home.png": "7c4a4643a5222f45c6492ebf78780a317e26d423bf244fc16ea24a186a76f506", + ".agent/evidence-v0.1.1/00-npm-ci.log": "14a6e676c84fa9b2cc39a251aef0c593cda9903f9e5f2d9581bc4153c9f69e09", + ".agent/evidence-v0.1.1/07-format.log": "ce1a102d13a7dfd78130216cea192e3230efa3612e999cb8a6bfd55e8eb6d471", + ".agent/evidence-v0.1.1/06-audio-generate.log": "7b605184e89fd033378e6869236553a3d6e040087de23e8ae165f1e304f3b067", + ".agent/evidence-v0.1.1/00-audio-venv.log": "365f1b3cf48e7f6de9c24d28e4326a245d3a54eb329af4b41a9441ec546dabdc", + ".agent/evidence-v0.1.1/15-browser-audio.log": "cb16ec7009a88f911632d0bef64692066873d81372e65fea8dac800d59304214", + ".agent/evidence-v0.1.1/18-environment.log": "19a1da4298ba5a51f8dce5e6669205987bb48438e5c98f3ddcbc347ce0f91e46", + ".agent/evidence-v0.1.1/04-generator-additional-red.log": "9a519598915fbdd98108ee1b364f634905e29a5a01bfdd7ffec22a8b359e9217", + ".agent/evidence-v0.1.1/verify_browser.mjs": "53f0f6317274a91017a4f508ef9237e022f7d333ef4243f324720f8d7f85abeb", + ".agent/evidence-v0.1.1/mobile-results.png": "f2a095ab1d2a3a95a1a275b652fcd31275a5803a926e01b5fcd1e9a9e127cfb9", + ".agent/evidence-v0.1.1/14-browser.log": "657ddc9f60ffa35684110766b2e459842cd1ab10a90b0002256a945f227a16b7", + ".agent/evidence-v0.1.1/08-version-docs-green.log": "671c2889a69c83ad24293d8e92d0076255bd00c5100c2a9eb764a570e1344edd", + ".agent/evidence-v0.1.1/03-generator-red.log": "d78b7c9237c18ba8a87a77a116ea7561ae79af6e88718f9c087c1d8e2c70b1f1", + ".agent/evidence-v0.1.1/12-independent-audio.log": "5ffd6173941d75deb028741cdba549705b652218f418c6d40ceb7f4b216f2d9d", + ".agent/evidence-v0.1.1/19-final-integrity.json": "38f5af8927d95e9dae780decf146eb3d5feb610629202ef9ee67bf223647132f", + ".agent/evidence-v0.1.1/cache-regression/03-browser-red.log": "3af050a469281666912d91fc4c747b0135c636fbacc3094d8d823f96376509ed", + ".agent/evidence-v0.1.1/cache-regression/09-browser-green.log": "1f422035d506da11683299cd31a7cdf48284d285623e846f8f3785ab3412be9d", + ".agent/evidence-v0.1.1/cache-regression/00-baseline.json": "66afb3cfa4b4ba46b24d08d046066b27e7bf7d7af382f3776339b41d15b41f3c", + ".agent/evidence-v0.1.1/cache-regression/07-full-test.log": "c8524e4c5e47a35a99d9cd2b23cf093e91d9fe1d557a78bfc7e4797fea659ba9", + ".agent/evidence-v0.1.1/cache-regression/06-lint.log": "c85ee435a4f57d13173d4f4db27bdc9edbe6845a08d7d0b47de15c69ef715b71", + ".agent/evidence-v0.1.1/cache-regression/04-red-state.json": "fd6eaad1aa47e8463bb020eb0de894a98871c4772ded56f370426c1903c20d3b", + ".agent/evidence-v0.1.1/cache-regression/12-cache-regression-result.log": "65e37c6d39f77f2ffb3765a6508a8469a69d1443b304fe3082474d041105a840", + ".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/02-build-before-fix.log": "2c2775dafb756ff1389b1c979c051b880929bf63b6286109c6ddc66d4ed75c6c", + ".agent/evidence-v0.1.1/cache-regression/01-unit-red.log": "cfbe949c8b24cb2b1c699a2d456529ac017caa1df2307b0c8d05f1dc4e7d22cf", + ".agent/evidence-v0.1.1/cache-regression/13-final-integrity.json": "60c8aa79c7c4d4a6cc42e71c6fc2e7af8f07473c69517da60481aa14b8d7cd0b", + ".agent/evidence-v0.1.1/cache-regression/08-build.log": "e01eb47b14d5e14a49afe5cd750daa9cf86fd3ba389c6ece366e667efa1a282f", + ".agent/evidence-v0.1.1/cache-regression/05-unit-green.log": "0ecd4924f62abbb6a619faf3cabc6bfa02c020e83cb37af79449ffce88486428", + ".agent/evidence-v0.1.1/cache-regression/artifacts/mobile-heading.png": "4c8b1c4652dd3aff3703ee273695544d4948d39fa6b5c0b1df9313db47e1d537", + ".agent/evidence-v0.1.1/cache-regression/artifacts/desktop-home.png": "cec5a0a94df0c6896cfe7cc89e49bb6ac0eddadae598833b19ed158958e96beb", + ".agent/evidence-v0.1.1/cache-regression/artifacts/mobile-game.png": "c5d885f3cd8f51e3e0519459e3fd2bca801f2ac9703e15b11bb2d73628869e25", + ".agent/evidence-v0.1.1/cache-regression/artifacts/desktop-heading.png": "a21b7af15a73f66589df7dacff7ce7424177a735969a39afff92b90fd51278b5", + ".agent/evidence-v0.1.1/cache-regression/artifacts/desktop-game.png": "d3ccf902a6865a781edd88da2df3ea5ae2cc30f79b32a574194a5e65c1b4bc10", + ".agent/evidence-v0.1.1/cache-regression/artifacts/desktop-results.png": "fd3208180016a30b682d80cb73580aa3a9cf2d5a6f8f426958c409222adcf251", + ".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/cache-regression/artifacts/desktop-browser-audio-integrity.json": "3aa78dfd8a3acb45a445306dae6d7517b16f32744b6f468e7e2a32a91a4ac9e0", + ".agent/evidence-v0.1.1/cache-regression/artifacts/mobile-browser-audio-integrity.json": "3aa78dfd8a3acb45a445306dae6d7517b16f32744b6f468e7e2a32a91a4ac9e0", + "public/ambience/subway.wav": "9faf70b68617d267b367a0f3692ed90015458543ab4b0844f6c704e6a724728f", + "public/ambience/street.wav": "a8bffa201b174618955bc51b860167169125304811aabe2086b0bb35b06c3ae1", + "public/ambience/market.wav": "4287e971a12767f70da714e0c1aff30125268f9c3faf07ebfbcc0d2904f4a312", + "public/ambience/cafe.wav": "8db06f3f09bbd8409573ba4874c7ccdd1e7e825c8a61989a4efe66206a66c2d2", + "public/ambience/mall.wav": "6e9171f549cacadfaeedd57a41c8e2a76b0e789f5c9a97af029a8d3558c9f145", + "public/ambience/department.wav": "aa43f3d1d3e7c2b1f8ace24ecbda45d0ea3a031db941c39506dc6c1665b8efa7", + "public/ambience/theater.wav": "2d6a444fb7874cdf6b2d8a741a69175299b112eb66834912c025437d8277d635", + "public/ambience/rain.wav": "f4315084e820f742b0709de5bb0d1abd3d5af1730620e08c2948b70347356dd9", + "public/audio/message-sea.wav": "28a461fbe03bffe2560030dea8b60715f7c0fe262dcf85b5b7f7daf483836382", + "public/audio/remember-sea.wav": "5c91a36496e274d2be9c6fa8d9b506cd04f2a1b7ceb05ed1b7bb03fe7fca99d9", + "public/audio/repeat-oil.wav": "55b2c7d6aa8bbce04edf8661882c9781da81c57f56217f99b80457a3bb895da0", + "public/audio/message-sound.wav": "1e682147dae8026ba78dc8f256c7f24acb3a6743bfd88a0fcc86096930eef078", + "public/audio/luck-oil.wav": "3fa1e662a3af8f2726b17b2baa5bec2934406e6595ebc243c8380dd16e190977", + "public/audio/repeat-hat.wav": "6e089a42fd7e65e82eec7186d369c926fb7fdac794365b2bd7658822fd92437c", + "public/audio/repeat-market.wav": "68a5b899115a66ab225d610ec47b4de56cc8793657362bc38f533c06f741e4cc", + "public/audio/last-furniture.wav": "5ad4f776e35439d408abed0e66567d6b5cdc80fc54d579165472e474f1238776", + "public/audio/last-meat.wav": "10f8ad4259ed8945c9da831e80b3902303c09caef96d400298599168fb1efed4", + "public/audio/middle-sound.wav": "4d00aa6114327f450a00dacbc7e7b572ebf1de4ce9dc2fe4b5505766cca71ce9", + "public/audio/last-sound.wav": "ec9c49802aebeb6a8b898a1c0d8ad1daa127d2d64c905c197ed49a8e0c4eb64a", + "public/audio/last-apple.wav": "4cb2a8579fa3a7b91bb36363826ce8ca0d6d86e96e16a479e226a2802edd82f7", + "public/audio/repeat-meat.wav": "6599d2fac73ea616a793151b4ce6f51af673988d630bac6219a77e78ae6cb34e", + "public/audio/message-oil.wav": "a2a71a7e5e07c81871a25c6cb7540c39aa0b32fc44f78cda66b5f34ace98d805", + "public/audio/correction-meat.wav": "48e91b3932d3798e852041a854b3ee08c72127e092c62083a47af6b99adff241", + "public/audio/mission-meat.wav": "94f8a4f9e116a787e5ed052661d6de9ecf3ad8629db476661dd59ad03014b0c9", + "public/audio/message-meat.wav": "ce19735df079b54c171e775b6b365385a80160b9033442abab95b2b9c8505e1a", + "public/audio/password-furniture.wav": "fb2b631dd4e12120d08a84cce6450f9cd9cd68105d13d7001d808e7deaa1df4a", + "public/audio/correction-market.wav": "b8d25b867497adcd0fe7c8b6a8a8d2e7a52965956738a83e53f58735708773f9", + "public/audio/remember-tree.wav": "bc8e54f5407e8866bf1ca1ddfd4f6c63d85fee29bd9e430c7dd33e87974fc5b8", + "public/audio/correction-tree.wav": "b8e8bbe6b8b14727efd953fae9d4aed2caeb004055d52f611c6378322847edbe", + "public/audio/message-tree.wav": "5d684aa710a63d36ed8dcc2a8bfbdd5c71b0b1c63dad2a324adecb76591e85b8", + "public/audio/last-tree.wav": "589e56d940a3c9e80ec02ae0b2dd93463fdc85ef019a753fcd0fded0752055f9", + "public/audio/remember-hat.wav": "31a6a4270bf368cda419094d87a303ac3cd5c22539786cb165f8044b0b8e9d6e", + "public/audio/first-umbrella.wav": "878e0bd2e6e4105f175aef51a028f6b141f3a2072be20f783193f3ba897a3ee0", + "public/audio/luck-sea.wav": "47aa31d757c9fb49c9b53a1c052d90a5ced4be57549d649850d9b48f8864045b", + "public/audio/middle-furniture.wav": "b45b1afc8d9b534ff3e0a2a2ecb99efc1f4e40d41f89f55c4ed8ba94ad6d76d4", + "public/audio/repeat-sound.wav": "e9d636ff7f4777f38b1ff15bebdcec6fbde95b4b4b05625a7415b4cfa0025b59", + "public/audio/first-sound.wav": "46f6adeed928a16af0700f1e8626cf8049f124632a04a5d10604426fb06f9596", + "public/audio/mission-sound.wav": "659eb0e2b06e6b165b46744769743e032e2282519f8486c57bc45e0f7d07a069", + "public/audio/luck-umbrella.wav": "8d3e8e8bc97e5fe3f3362184c4abb12f01a882a1f1174d2644f0f70aac677c0a", + "public/audio/first-sea.wav": "0f0b39314c5f7d7168d4854003c0c284e7bc3438cdc4d1d1c5adab7cb5ed30e5", + "public/audio/correction-apple.wav": "ccd7327a3fb54d3320d049ffdced3bc17595861cee69429c0ee97182d454195b", + "public/audio/middle-market.wav": "c855b449e0d4ace74681bfe68e5e7f0b063568827ae872017234dbe8ae119e4c", + "public/audio/message-furniture.wav": "26c331b7e12311236f4bb48f88918dfbf53cccd2f50b55741ea6ff4473e71dd8", + "public/audio/repeat-sea.wav": "db2f235bee26ac804b5362e8e013b8f40c8da24fd3a34e0fb3b43c6d264feb36", + "public/audio/first-meat.wav": "f51a37c1722fef581f7d642a4dcae7fcb9953b3c318dce971bf616cd1a81fecc", + "public/audio/luck-meat.wav": "d36dfc395a5c53fbfa4abe9980db7bb59adfdac59e40318c4aca365365e3f2ab", + "public/audio/correction-hat.wav": "f9f98c91cfbcfcb106eef7d5d3795a9cf3c3aab7e19a60f13d7dffe284d19f86", + "public/audio/repeat-tree.wav": "8735c3d9672561ca237fa87317beec2878492eb9063d6048d5b214423561acc1", + "public/audio/password-tree.wav": "67da8147296e35134ec254bc82b58317630061b2c64d2d63c4be197ce8692d50", + "public/audio/mission-hat.wav": "308278ec2bd27d4224976a55632d1f7fa1edabb0792126d9d858a699c287aee4", + "public/audio/middle-apple.wav": "8832f1b793ab3eedbe663875ea8dbeabb122c329bd5879437c71230b0418c3c8", + "public/audio/first-market.wav": "1e00b8f70a796cdebb0feb00c605fece7488b06915e6e036f54206f05e201e0c", + "public/audio/repeat-apple.wav": "cb7da4e9a1288cac64d168b241f27d7d2bc2dfecace58744f9bbf2792dfad04e", + "public/audio/luck-tree.wav": "122f496834fb16d6da47f801e50e46e272e4e934af959467d1db4e490f79be7a", + "public/audio/middle-meat.wav": "d416107cc05e7c5b92ca27100a10a8a9689de913346179945d5542de4a6bac0c", + "public/audio/middle-umbrella.wav": "399ea2f681f755918f1117c8baba42739ceca64b307b999342f457a9235050b6", + "public/audio/message-market.wav": "9242d4cd6e0030e6b073e4d2360f84aa8a454d1749711cdb2d64c14f28a7ea20", + "public/audio/mission-market.wav": "cefa0e95649ea6bd1df4c8dfccd2b74b4f4c028714420ce1087b61db2f2a8d47", + "public/audio/first-hat.wav": "17c8cde90567e7574b0c0702663bd70713054089ee920241b5444d9b7869eef5", + "public/audio/first-tree.wav": "3178230fd5850b6277a2153b438ec5289720e3db7ac929914cc213964f004bd5", + "public/audio/repeat-umbrella.wav": "5e59ef39113c3d5e106862356d715f4cef2862ef8ee02654a97e532675c1ac6d", + "public/audio/password-apple.wav": "b6f5de3fe571fe3a7fdb722fe49250bcfeedef49475271e0ec76a7630907edd5", + "public/audio/last-sea.wav": "f755452e1da44674aa1df7d12edffa988091b89a394e7eb6d4a00eb721f07cbf", + "public/audio/correction-sea.wav": "9233431d78ab4b144e3c33ad0cf0d49fc0fb91b29514343230ba32987b794bb3", + "public/audio/correction-furniture.wav": "5c004a7b2f5a4a918c9f689f1a2dcb219a620ed14313f40a9655b36dbf64948d", + "public/audio/remember-sound.wav": "98387ccc7aab566f6487d4c250b2128082cc527e013a6f7b7bc4d0266ac295df", + "public/audio/password-umbrella.wav": "ab3ca6398c879971dc793eb25b472fcc0db72d76e386f11ef4d32c639f37c69d", + "public/audio/middle-tree.wav": "341888c75275c13eb31058f53a1d4276be0daa0a1b5a3a45522036928b83b0c1", + "public/audio/password-meat.wav": "b009caadd56350d6a641ff17f0973e2b2724c183e1f45ae0bf3c483e237fa99e", + "public/audio/mission-sea.wav": "8838d6a1ee8a790427dc5aa761e70b3d8872af62086efeed743297ff7f8b8a06", + "public/audio/luck-hat.wav": "4ff43dd042f4b5451e9fdeb3edd59f1e389a7d1dd488094587a3a9fc7dfffa44", + "public/audio/correction-sound.wav": "5a603bc69979603afddcaeb6edf500a7c540b72405daeb33f5335d746b327da1", + "public/audio/first-apple.wav": "7c1dbcb3082055df2b8f087f7e906ec867c92f679de0894c34740c05e61a4bc1", + "public/audio/first-furniture.wav": "29f007b385b7182db1d8aeccad4fc3c260df5e66e14e52a46b0ef0fcd0ff3a0a", + "public/audio/middle-hat.wav": "b01ef9762ac84e3eb757243bc9286c62f7d45444a821ae35ac36a8b095e1598a", + "public/audio/repeat-furniture.wav": "bf84dc6cff1f227924a3a62158d2fc18769fb0ca40b91418fa19e534dbf92f00", + "public/audio/password-market.wav": "02e325fb753ef7a3ee585a03d2ca2aa3f1fbc58523b062222ae1136eeed7a95c", + "public/audio/middle-oil.wav": "7a6b122b11c07da86c95fb78e2db2a70681b5219c63d6441fe56da1979ac1dc3", + "public/audio/remember-umbrella.wav": "c8988e604ba05d52597e561389541e8f9cda86e052279f1862bbf8399ead314e", + "public/audio/luck-market.wav": "356af25332bf2000ed349671f3ff39767929e1f4599af622c021f907d11fb7bf", + "public/audio/last-hat.wav": "bdaf8fbc54df8061e9e58aa8c14b3044a6e863dc54973ee3ee6ae2c5ae1a28f1", + "public/audio/luck-sound.wav": "34e4d9758d2ed448646fda364610e34779c84794403d9051ab3d8c1d33e2c80c", + "public/audio/mission-apple.wav": "3ef42e276ff3500c3e197d149f29f79d6a0c1d5516ed1d5a2c57210333fded9c", + "public/audio/last-market.wav": "7857e87e9dbfe8fe849cc0b18c1d45b60916cb337328099c7a87a42c82e2821e", + "public/audio/message-umbrella.wav": "41d5866dae66600df4694a8312b531571d44cece6dba0e423e7c43d09d184819", + "public/audio/message-apple.wav": "d85e6f47d871369f00de2274139e5ad6b4b5686b5e20e248df0ed6b9a320d942", + "public/audio/correction-oil.wav": "f6eff0cdddcad9790351491e60c53cb2a70d222033a583652f2de0b8cd6abcc7", + "public/audio/mission-tree.wav": "00d8e77ec0371971d632724d91f8cf8d947bfb83c582a513b6421be4c457a1da", + "public/audio/first-oil.wav": "f415195e0cfc7ee711d09de7519e88eab62cc8b58d70772c83c3f5c27c267819", + "public/audio/message-hat.wav": "5a713a8522b231bb8276805c014b385b9150b79f58ff2618446607e2b442495e", + "public/audio/remember-oil.wav": "3ca98682ff06d1d6b8af02c0fd5b2124f42266ac989884223eff4a9bbde1287a", + "public/audio/luck-furniture.wav": "52cb92cdb8ee92b6f581c9d68dbc346f180c470564809ba57185429c9eb84127", + "public/audio/intro.wav": "90d9f46e6e3f9c8a0c1a781096df54d7809ef4ad38b289508ef7b8c0411465ce", + "public/audio/mission-umbrella.wav": "4b4c858a25659540f9dbc524664496fc6de61ab8c1627f3cfee8c9c744e11d5b", + "public/audio/mission-furniture.wav": "af82e03b686635c3356e706fe5b05c1231aeaaeab33f275aa5b8714988c65d43", + "public/audio/middle-sea.wav": "b6dbe0af143ea775f05bd59a3d6af348bcc770ab378ac91ea75a56e06c326edf", + "public/audio/remember-apple.wav": "1bf2aef9a9f030af1a8fd7dee8f44aa420a397b3ba99b575feeb3dc7a63ec191", + "public/audio/last-oil.wav": "b5ce34950b8b31b1baf6ce55410797f0d8aa5478a670d6eace87cf76d134d6d3", + "public/audio/remember-meat.wav": "9183ef90b64f5ceaf3bb0178c689231ff3e9981d6ce889124a15f2a6e2b7a344", + "public/audio/luck-apple.wav": "7c8f413f4b7e164f090e508ba090448f1376c6012649bbb6a917d45851313883", + "public/audio/last-umbrella.wav": "c801293a34013a8d93d3289a2cc87cd3eed83f97ba4647f5060efa00b117a9ad", + "public/audio/password-hat.wav": "e91bfc97df90a1675b6cd856880ac15c54de32cfc3b23603bdd1c2c5ac3ce6b8", + "public/audio/correction-umbrella.wav": "92b54f04884ab915783945077efd8f3bd443849a1720f72168b6348cae1f8e85", + "public/audio/remember-furniture.wav": "442bdcb956f120c270e1f321feae0415c897de0183e468980fcc119b898b2a67", + "public/audio/password-sea.wav": "03f45b8cb5b3dc72faf5c6e3d0e2a10cea6b60301ea400d0a4453596d2f0b337", + "public/audio/remember-market.wav": "d89792da51c83ac49d27e55aa6d822a338899a5ee487b34b552748201e1522f6", + "public/audio/password-oil.wav": "b472957b27ff98ea7b8894fa1ff12653f7e9f66f77870faa9e52a1c1bf116c41", + "public/audio/mission-oil.wav": "5fb63e04520c312aa6b7b48b70c2f7c140b5ab480e5c6992edbc2ba85b9a06e7", + "public/audio/password-sound.wav": "044aafff08a19e39f21e58b963644715a987cd155896998769ef8e9ce6449628" +} diff --git a/.agent/evidence-v0.2.3/review-fixes/browser-final/.last-run.json b/.agent/evidence-v0.2.3/review-fixes/browser-final/.last-run.json new file mode 100644 index 0000000..cbcc1fb --- /dev/null +++ b/.agent/evidence-v0.2.3/review-fixes/browser-final/.last-run.json @@ -0,0 +1,4 @@ +{ + "status": "passed", + "failedTests": [] +} \ No newline at end of file diff --git a/.agent/evidence-v0.2.3/review-fixes/browser-final/audio-음성·현장음-109개-versioned-WAV를-실제-Chrome에서-해시·디코드-검증한다-desktop/attachments/109-versioned-WAV-integrity-7406877c173ee35afff758c9c5f1645f0dc02fa5.json b/.agent/evidence-v0.2.3/review-fixes/browser-final/audio-음성·현장음-109개-versioned-WAV를-실제-Chrome에서-해시·디코드-검증한다-desktop/attachments/109-versioned-WAV-integrity-7406877c173ee35afff758c9c5f1645f0dc02fa5.json new file mode 100644 index 0000000..2d4d5ea --- /dev/null +++ b/.agent/evidence-v0.2.3/review-fixes/browser-final/audio-음성·현장음-109개-versioned-WAV를-실제-Chrome에서-해시·디코드-검증한다-desktop/attachments/109-versioned-WAV-integrity-7406877c173ee35afff758c9c5f1645f0dc02fa5.json @@ -0,0 +1,1098 @@ +{ + "chrome": "146.0.7680.80", + "external": [], + "errors": [], + "failed": [], + "files": [ + { + "url": "http://127.0.0.1:4173/audio/intro.wav?v=0.2.3", + "sha256": "90d9f46e6e3f9c8a0c1a781096df54d7809ef4ad38b289508ef7b8c0411465ce", + "bytes": 338732, + "sampleRate": 24000, + "channels": 1, + "duration": 7.056, + "rms": 0.10000144992850359, + "peak": 0.4998626708984375 + }, + { + "url": "http://127.0.0.1:4173/ambience/street.wav?v=0.2.3", + "sha256": "a8bffa201b174618955bc51b860167169125304811aabe2086b0bb35b06c3ae1", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.07999880181401388, + "peak": 0.3967711329460144 + }, + { + "url": "http://127.0.0.1:4173/ambience/mall.wav?v=0.2.3", + "sha256": "6e9171f549cacadfaeedd57a41c8e2a76b0e789f5c9a97af029a8d3558c9f145", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.07999878530235176, + "peak": 0.5546875 + }, + { + "url": "http://127.0.0.1:4173/ambience/theater.wav?v=0.2.3", + "sha256": "2d6a444fb7874cdf6b2d8a741a69175299b112eb66834912c025437d8277d635", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.07999878601263052, + "peak": 0.495086669921875 + }, + { + "url": "http://127.0.0.1:4173/ambience/department.wav?v=0.2.3", + "sha256": "aa43f3d1d3e7c2b1f8ace24ecbda45d0ea3a031db941c39506dc6c1665b8efa7", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.07999879026023995, + "peak": 0.4749900698661804 + }, + { + "url": "http://127.0.0.1:4173/ambience/market.wav?v=0.2.3", + "sha256": "4287e971a12767f70da714e0c1aff30125268f9c3faf07ebfbcc0d2904f4a312", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.049222823565976834, + "peak": 0.8499755859375 + }, + { + "url": "http://127.0.0.1:4173/ambience/subway.wav?v=0.2.3", + "sha256": "9faf70b68617d267b367a0f3692ed90015458543ab4b0844f6c704e6a724728f", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.079998775670051, + "peak": 0.42530596256256104 + }, + { + "url": "http://127.0.0.1:4173/ambience/cafe.wav?v=0.2.3", + "sha256": "8db06f3f09bbd8409573ba4874c7ccdd1e7e825c8a61989a4efe66206a66c2d2", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.07999881107742599, + "peak": 0.3971068561077118 + }, + { + "url": "http://127.0.0.1:4173/ambience/rain.wav?v=0.2.3", + "sha256": "f4315084e820f742b0709de5bb0d1abd3d5af1730620e08c2948b70347356dd9", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.011384798571746246, + "peak": 0.1024169921875 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-apple.wav?v=0.2.3", + "sha256": "cb7da4e9a1288cac64d168b241f27d7d2bc2dfecace58744f9bbf2792dfad04e", + "bytes": 397484, + "sampleRate": 24000, + "channels": 1, + "duration": 8.28, + "rms": 0.10000142448574952, + "peak": 0.6414685249328613 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-market.wav?v=0.2.3", + "sha256": "b8d25b867497adcd0fe7c8b6a8a8d2e7a52965956738a83e53f58735708773f9", + "bytes": 405548, + "sampleRate": 24000, + "channels": 1, + "duration": 8.448, + "rms": 0.10000141405173993, + "peak": 0.491485595703125 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-sound.wav?v=0.2.3", + "sha256": "34e4d9758d2ed448646fda364610e34779c84794403d9051ab3d8c1d33e2c80c", + "bytes": 184364, + "sampleRate": 24000, + "channels": 1, + "duration": 3.84, + "rms": 0.10000138709171018, + "peak": 0.386322021484375 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-furniture.wav?v=0.2.3", + "sha256": "b45b1afc8d9b534ff3e0a2a2ecb99efc1f4e40d41f89f55c4ed8ba94ad6d76d4", + "bytes": 354860, + "sampleRate": 24000, + "channels": 1, + "duration": 7.392, + "rms": 0.1000015072973225, + "peak": 0.5576171875 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-market.wav?v=0.2.3", + "sha256": "cefa0e95649ea6bd1df4c8dfccd2b74b4f4c028714420ce1087b61db2f2a8d47", + "bytes": 248876, + "sampleRate": 24000, + "channels": 1, + "duration": 5.184, + "rms": 0.10000142548167161, + "peak": 0.4857020676136017 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-oil.wav?v=0.2.3", + "sha256": "f6eff0cdddcad9790351491e60c53cb2a70d222033a583652f2de0b8cd6abcc7", + "bytes": 406700, + "sampleRate": 24000, + "channels": 1, + "duration": 8.472, + "rms": 0.10000139122025363, + "peak": 0.470794677734375 + }, + { + "url": "http://127.0.0.1:4173/audio/first-hat.wav?v=0.2.3", + "sha256": "17c8cde90567e7574b0c0702663bd70713054089ee920241b5444d9b7869eef5", + "bytes": 357164, + "sampleRate": 24000, + "channels": 1, + "duration": 7.44, + "rms": 0.10000152904790521, + "peak": 0.5312662124633789 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-furniture.wav?v=0.2.3", + "sha256": "af82e03b686635c3356e706fe5b05c1231aeaaeab33f275aa5b8714988c65d43", + "bytes": 241964, + "sampleRate": 24000, + "channels": 1, + "duration": 5.04, + "rms": 0.10000137346142077, + "peak": 0.4852443039417267 + }, + { + "url": "http://127.0.0.1:4173/audio/password-sound.wav?v=0.2.3", + "sha256": "044aafff08a19e39f21e58b963644715a987cd155896998769ef8e9ce6449628", + "bytes": 236204, + "sampleRate": 24000, + "channels": 1, + "duration": 4.92, + "rms": 0.10000156641621728, + "peak": 0.4621112644672394 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-hat.wav?v=0.2.3", + "sha256": "f9f98c91cfbcfcb106eef7d5d3795a9cf3c3aab7e19a60f13d7dffe284d19f86", + "bytes": 398636, + "sampleRate": 24000, + "channels": 1, + "duration": 8.304, + "rms": 0.10000141071544869, + "peak": 0.470977783203125 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-apple.wav?v=0.2.3", + "sha256": "7c8f413f4b7e164f090e508ba090448f1376c6012649bbb6a917d45851313883", + "bytes": 188972, + "sampleRate": 24000, + "channels": 1, + "duration": 3.936, + "rms": 0.10000130469939268, + "peak": 0.401641845703125 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-sea.wav?v=0.2.3", + "sha256": "db2f235bee26ac804b5362e8e013b8f40c8da24fd3a34e0fb3b43c6d264feb36", + "bytes": 382508, + "sampleRate": 24000, + "channels": 1, + "duration": 7.968, + "rms": 0.10000145042993039, + "peak": 0.6843470335006714 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-furniture.wav?v=0.2.3", + "sha256": "442bdcb956f120c270e1f321feae0415c897de0183e468980fcc119b898b2a67", + "bytes": 403244, + "sampleRate": 24000, + "channels": 1, + "duration": 8.4, + "rms": 0.10000149119200713, + "peak": 0.5619068145751953 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-sea.wav?v=0.2.3", + "sha256": "b6dbe0af143ea775f05bd59a3d6af348bcc770ab378ac91ea75a56e06c326edf", + "bytes": 346796, + "sampleRate": 24000, + "channels": 1, + "duration": 7.224, + "rms": 0.10000144532868623, + "peak": 0.56494140625 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-sound.wav?v=0.2.3", + "sha256": "e9d636ff7f4777f38b1ff15bebdcec6fbde95b4b4b05625a7415b4cfa0025b59", + "bytes": 395180, + "sampleRate": 24000, + "channels": 1, + "duration": 8.232, + "rms": 0.10000164955559301, + "peak": 0.6114688515663147 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-apple.wav?v=0.2.3", + "sha256": "3ef42e276ff3500c3e197d149f29f79d6a0c1d5516ed1d5a2c57210333fded9c", + "bytes": 246572, + "sampleRate": 24000, + "channels": 1, + "duration": 5.136, + "rms": 0.10000144279302126, + "peak": 0.4701681435108185 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-market.wav?v=0.2.3", + "sha256": "356af25332bf2000ed349671f3ff39767929e1f4599af622c021f907d11fb7bf", + "bytes": 194732, + "sampleRate": 24000, + "channels": 1, + "duration": 4.056, + "rms": 0.10000132629820717, + "peak": 0.4022216796875 + }, + { + "url": "http://127.0.0.1:4173/audio/message-sea.wav?v=0.2.3", + "sha256": "28a461fbe03bffe2560030dea8b60715f7c0fe262dcf85b5b7f7daf483836382", + "bytes": 517292, + "sampleRate": 24000, + "channels": 1, + "duration": 10.776, + "rms": 0.10000130584401576, + "peak": 0.53521728515625 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-umbrella.wav?v=0.2.3", + "sha256": "c8988e604ba05d52597e561389541e8f9cda86e052279f1862bbf8399ead314e", + "bytes": 403244, + "sampleRate": 24000, + "channels": 1, + "duration": 8.4, + "rms": 0.10000148262660476, + "peak": 0.557830810546875 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-hat.wav?v=0.2.3", + "sha256": "308278ec2bd27d4224976a55632d1f7fa1edabb0792126d9d858a699c287aee4", + "bytes": 245420, + "sampleRate": 24000, + "channels": 1, + "duration": 5.112, + "rms": 0.10000140702099906, + "peak": 0.4498428404331207 + }, + { + "url": "http://127.0.0.1:4173/audio/password-furniture.wav?v=0.2.3", + "sha256": "fb2b631dd4e12120d08a84cce6450f9cd9cd68105d13d7001d808e7deaa1df4a", + "bytes": 233900, + "sampleRate": 24000, + "channels": 1, + "duration": 4.872, + "rms": 0.10000146718546903, + "peak": 0.4836573302745819 + }, + { + "url": "http://127.0.0.1:4173/audio/first-market.wav?v=0.2.3", + "sha256": "1e00b8f70a796cdebb0feb00c605fece7488b06915e6e036f54206f05e201e0c", + "bytes": 359468, + "sampleRate": 24000, + "channels": 1, + "duration": 7.488, + "rms": 0.10000152633991319, + "peak": 0.6390880942344666 + }, + { + "url": "http://127.0.0.1:4173/audio/first-meat.wav?v=0.2.3", + "sha256": "f51a37c1722fef581f7d642a4dcae7fcb9953b3c318dce971bf616cd1a81fecc", + "bytes": 345644, + "sampleRate": 24000, + "channels": 1, + "duration": 7.2, + "rms": 0.10000152244411063, + "peak": 0.5131382346153259 + }, + { + "url": "http://127.0.0.1:4173/audio/password-sea.wav?v=0.2.3", + "sha256": "03f45b8cb5b3dc72faf5c6e3d0e2a10cea6b60301ea400d0a4453596d2f0b337", + "bytes": 232748, + "sampleRate": 24000, + "channels": 1, + "duration": 4.848, + "rms": 0.10000144821976133, + "peak": 0.5339213013648987 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-sound.wav?v=0.2.3", + "sha256": "98387ccc7aab566f6487d4c250b2128082cc527e013a6f7b7bc4d0266ac295df", + "bytes": 394028, + "sampleRate": 24000, + "channels": 1, + "duration": 8.208, + "rms": 0.10000158053850364, + "peak": 0.5377971529960632 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-umbrella.wav?v=0.2.3", + "sha256": "5e59ef39113c3d5e106862356d715f4cef2862ef8ee02654a97e532675c1ac6d", + "bytes": 410156, + "sampleRate": 24000, + "channels": 1, + "duration": 8.544, + "rms": 0.10000147499132286, + "peak": 0.6748558282852173 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-hat.wav?v=0.2.3", + "sha256": "b01ef9762ac84e3eb757243bc9286c62f7d45444a821ae35ac36a8b095e1598a", + "bytes": 353708, + "sampleRate": 24000, + "channels": 1, + "duration": 7.368, + "rms": 0.10000153089787694, + "peak": 0.555206298828125 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-market.wav?v=0.2.3", + "sha256": "d89792da51c83ac49d27e55aa6d822a338899a5ee487b34b552748201e1522f6", + "bytes": 398636, + "sampleRate": 24000, + "channels": 1, + "duration": 8.304, + "rms": 0.10000149710778367, + "peak": 0.5728324055671692 + }, + { + "url": "http://127.0.0.1:4173/audio/password-umbrella.wav?v=0.2.3", + "sha256": "ab3ca6398c879971dc793eb25b472fcc0db72d76e386f11ef4d32c639f37c69d", + "bytes": 239660, + "sampleRate": 24000, + "channels": 1, + "duration": 4.992, + "rms": 0.100001426973271, + "peak": 0.4776757061481476 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-meat.wav?v=0.2.3", + "sha256": "48e91b3932d3798e852041a854b3ee08c72127e092c62083a47af6b99adff241", + "bytes": 403244, + "sampleRate": 24000, + "channels": 1, + "duration": 8.4, + "rms": 0.10000140336390047, + "peak": 0.481536865234375 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-hat.wav?v=0.2.3", + "sha256": "6e089a42fd7e65e82eec7186d369c926fb7fdac794365b2bd7658822fd92437c", + "bytes": 396332, + "sampleRate": 24000, + "channels": 1, + "duration": 8.256, + "rms": 0.1000015662548192, + "peak": 0.616748571395874 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-sound.wav?v=0.2.3", + "sha256": "4d00aa6114327f450a00dacbc7e7b572ebf1de4ce9dc2fe4b5505766cca71ce9", + "bytes": 353708, + "sampleRate": 24000, + "channels": 1, + "duration": 7.368, + "rms": 0.10000162019345048, + "peak": 0.5348368883132935 + }, + { + "url": "http://127.0.0.1:4173/audio/last-oil.wav?v=0.2.3", + "sha256": "b5ce34950b8b31b1baf6ce55410797f0d8aa5478a670d6eace87cf76d134d6d3", + "bytes": 337580, + "sampleRate": 24000, + "channels": 1, + "duration": 7.032, + "rms": 0.10000149980584365, + "peak": 0.55706787109375 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-sea.wav?v=0.2.3", + "sha256": "47aa31d757c9fb49c9b53a1c052d90a5ced4be57549d649850d9b48f8864045b", + "bytes": 191276, + "sampleRate": 24000, + "channels": 1, + "duration": 3.984, + "rms": 0.10000129182106483, + "peak": 0.388702392578125 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-sound.wav?v=0.2.3", + "sha256": "659eb0e2b06e6b165b46744769743e032e2282519f8486c57bc45e0f7d07a069", + "bytes": 240812, + "sampleRate": 24000, + "channels": 1, + "duration": 5.016, + "rms": 0.10000152909529536, + "peak": 0.45481735467910767 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-meat.wav?v=0.2.3", + "sha256": "6599d2fac73ea616a793151b4ce6f51af673988d630bac6219a77e78ae6cb34e", + "bytes": 380204, + "sampleRate": 24000, + "channels": 1, + "duration": 7.92, + "rms": 0.1000016061190976, + "peak": 0.5921201109886169 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-market.wav?v=0.2.3", + "sha256": "c855b449e0d4ace74681bfe68e5e7f0b063568827ae872017234dbe8ae119e4c", + "bytes": 356012, + "sampleRate": 24000, + "channels": 1, + "duration": 7.416, + "rms": 0.10000151456676445, + "peak": 0.5949888825416565 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-furniture.wav?v=0.2.3", + "sha256": "bf84dc6cff1f227924a3a62158d2fc18769fb0ca40b91418fa19e534dbf92f00", + "bytes": 397484, + "sampleRate": 24000, + "channels": 1, + "duration": 8.28, + "rms": 0.10000155255948041, + "peak": 0.6670430898666382 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-sound.wav?v=0.2.3", + "sha256": "5a603bc69979603afddcaeb6edf500a7c540b72405daeb33f5335d746b327da1", + "bytes": 397484, + "sampleRate": 24000, + "channels": 1, + "duration": 8.28, + "rms": 0.10000146491234768, + "peak": 0.469268798828125 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-meat.wav?v=0.2.3", + "sha256": "9183ef90b64f5ceaf3bb0178c689231ff3e9981d6ce889124a15f2a6e2b7a344", + "bytes": 395180, + "sampleRate": 24000, + "channels": 1, + "duration": 8.232, + "rms": 0.10000155087122137, + "peak": 0.5193029642105103 + }, + { + "url": "http://127.0.0.1:4173/audio/last-sound.wav?v=0.2.3", + "sha256": "ec9c49802aebeb6a8b898a1c0d8ad1daa127d2d64c905c197ed49a8e0c4eb64a", + "bytes": 354860, + "sampleRate": 24000, + "channels": 1, + "duration": 7.392, + "rms": 0.10000165748716579, + "peak": 0.5641041398048401 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-oil.wav?v=0.2.3", + "sha256": "5fb63e04520c312aa6b7b48b70c2f7c140b5ab480e5c6992edbc2ba85b9a06e7", + "bytes": 241964, + "sampleRate": 24000, + "channels": 1, + "duration": 5.04, + "rms": 0.10000143720418167, + "peak": 0.443586528301239 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-umbrella.wav?v=0.2.3", + "sha256": "92b54f04884ab915783945077efd8f3bd443849a1720f72168b6348cae1f8e85", + "bytes": 406700, + "sampleRate": 24000, + "channels": 1, + "duration": 8.472, + "rms": 0.10000140257790288, + "peak": 0.479034423828125 + }, + { + "url": "http://127.0.0.1:4173/audio/message-sound.wav?v=0.2.3", + "sha256": "1e682147dae8026ba78dc8f256c7f24acb3a6743bfd88a0fcc86096930eef078", + "bytes": 521900, + "sampleRate": 24000, + "channels": 1, + "duration": 10.872, + "rms": 0.10000138583471241, + "peak": 0.51953125 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-apple.wav?v=0.2.3", + "sha256": "ccd7327a3fb54d3320d049ffdced3bc17595861cee69429c0ee97182d454195b", + "bytes": 402092, + "sampleRate": 24000, + "channels": 1, + "duration": 8.376, + "rms": 0.10000140667715379, + "peak": 0.490325927734375 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-sea.wav?v=0.2.3", + "sha256": "5c91a36496e274d2be9c6fa8d9b506cd04f2a1b7ceb05ed1b7bb03fe7fca99d9", + "bytes": 399788, + "sampleRate": 24000, + "channels": 1, + "duration": 8.328, + "rms": 0.10000144241513113, + "peak": 0.5465559959411621 + }, + { + "url": "http://127.0.0.1:4173/audio/message-hat.wav?v=0.2.3", + "sha256": "5a713a8522b231bb8276805c014b385b9150b79f58ff2618446607e2b442495e", + "bytes": 518444, + "sampleRate": 24000, + "channels": 1, + "duration": 10.8, + "rms": 0.10000136927555209, + "peak": 0.587005615234375 + }, + { + "url": "http://127.0.0.1:4173/audio/password-meat.wav?v=0.2.3", + "sha256": "b009caadd56350d6a641ff17f0973e2b2724c183e1f45ae0bf3c483e237fa99e", + "bytes": 240812, + "sampleRate": 24000, + "channels": 1, + "duration": 5.016, + "rms": 0.10000148386024335, + "peak": 0.4978789687156677 + }, + { + "url": "http://127.0.0.1:4173/audio/message-market.wav?v=0.2.3", + "sha256": "9242d4cd6e0030e6b073e4d2360f84aa8a454d1749711cdb2d64c14f28a7ea20", + "bytes": 523052, + "sampleRate": 24000, + "channels": 1, + "duration": 10.896, + "rms": 0.10000133805787564, + "peak": 0.534820556640625 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-apple.wav?v=0.2.3", + "sha256": "8832f1b793ab3eedbe663875ea8dbeabb122c329bd5879437c71230b0418c3c8", + "bytes": 360620, + "sampleRate": 24000, + "channels": 1, + "duration": 7.512, + "rms": 0.10000145024648589, + "peak": 0.553558349609375 + }, + { + "url": "http://127.0.0.1:4173/audio/last-umbrella.wav?v=0.2.3", + "sha256": "c801293a34013a8d93d3289a2cc87cd3eed83f97ba4647f5060efa00b117a9ad", + "bytes": 370988, + "sampleRate": 24000, + "channels": 1, + "duration": 7.728, + "rms": 0.10000149360501835, + "peak": 0.59765625 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-sea.wav?v=0.2.3", + "sha256": "9233431d78ab4b144e3c33ad0cf0d49fc0fb91b29514343230ba32987b794bb3", + "bytes": 398636, + "sampleRate": 24000, + "channels": 1, + "duration": 8.304, + "rms": 0.10000134688905045, + "peak": 0.49616992473602295 + }, + { + "url": "http://127.0.0.1:4173/audio/password-apple.wav?v=0.2.3", + "sha256": "b6f5de3fe571fe3a7fdb722fe49250bcfeedef49475271e0ec76a7630907edd5", + "bytes": 235052, + "sampleRate": 24000, + "channels": 1, + "duration": 4.896, + "rms": 0.10000148212193387, + "peak": 0.4834437072277069 + }, + { + "url": "http://127.0.0.1:4173/audio/first-furniture.wav?v=0.2.3", + "sha256": "29f007b385b7182db1d8aeccad4fc3c260df5e66e14e52a46b0ef0fcd0ff3a0a", + "bytes": 364076, + "sampleRate": 24000, + "channels": 1, + "duration": 7.584, + "rms": 0.1000014551820741, + "peak": 0.5700552463531494 + }, + { + "url": "http://127.0.0.1:4173/audio/password-hat.wav?v=0.2.3", + "sha256": "e91bfc97df90a1675b6cd856880ac15c54de32cfc3b23603bdd1c2c5ac3ce6b8", + "bytes": 235052, + "sampleRate": 24000, + "channels": 1, + "duration": 4.896, + "rms": 0.10000146155157119, + "peak": 0.5059053301811218 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-oil.wav?v=0.2.3", + "sha256": "7a6b122b11c07da86c95fb78e2db2a70681b5219c63d6441fe56da1979ac1dc3", + "bytes": 334124, + "sampleRate": 24000, + "channels": 1, + "duration": 6.96, + "rms": 0.1000014880654183, + "peak": 0.539933443069458 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-meat.wav?v=0.2.3", + "sha256": "d416107cc05e7c5b92ca27100a10a8a9689de913346179945d5542de4a6bac0c", + "bytes": 342188, + "sampleRate": 24000, + "channels": 1, + "duration": 7.128, + "rms": 0.10000157422522808, + "peak": 0.510833740234375 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-apple.wav?v=0.2.3", + "sha256": "1bf2aef9a9f030af1a8fd7dee8f44aa420a397b3ba99b575feeb3dc7a63ec191", + "bytes": 395180, + "sampleRate": 24000, + "channels": 1, + "duration": 8.232, + "rms": 0.10000148399213096, + "peak": 0.563568115234375 + }, + { + "url": "http://127.0.0.1:4173/audio/first-oil.wav?v=0.2.3", + "sha256": "f415195e0cfc7ee711d09de7519e88eab62cc8b58d70772c83c3f5c27c267819", + "bytes": 335276, + "sampleRate": 24000, + "channels": 1, + "duration": 6.984, + "rms": 0.10000145886808136, + "peak": 0.5347453355789185 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-hat.wav?v=0.2.3", + "sha256": "31a6a4270bf368cda419094d87a303ac3cd5c22539786cb165f8044b0b8e9d6e", + "bytes": 402092, + "sampleRate": 24000, + "channels": 1, + "duration": 8.376, + "rms": 0.10000145804818952, + "peak": 0.541778564453125 + }, + { + "url": "http://127.0.0.1:4173/audio/message-furniture.wav?v=0.2.3", + "sha256": "26c331b7e12311236f4bb48f88918dfbf53cccd2f50b55741ea6ff4473e71dd8", + "bytes": 521900, + "sampleRate": 24000, + "channels": 1, + "duration": 10.872, + "rms": 0.10000134596838128, + "peak": 0.529327392578125 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-oil.wav?v=0.2.3", + "sha256": "3fa1e662a3af8f2726b17b2baa5bec2934406e6595ebc243c8380dd16e190977", + "bytes": 190124, + "sampleRate": 24000, + "channels": 1, + "duration": 3.96, + "rms": 0.10000134375667624, + "peak": 0.3817255198955536 + }, + { + "url": "http://127.0.0.1:4173/audio/last-sea.wav?v=0.2.3", + "sha256": "f755452e1da44674aa1df7d12edffa988091b89a394e7eb6d4a00eb721f07cbf", + "bytes": 345644, + "sampleRate": 24000, + "channels": 1, + "duration": 7.2, + "rms": 0.10000140162255576, + "peak": 0.591033935546875 + }, + { + "url": "http://127.0.0.1:4173/audio/password-oil.wav?v=0.2.3", + "sha256": "b472957b27ff98ea7b8894fa1ff12653f7e9f66f77870faa9e52a1c1bf116c41", + "bytes": 240812, + "sampleRate": 24000, + "channels": 1, + "duration": 5.016, + "rms": 0.10000146772662066, + "peak": 0.4945219159126282 + }, + { + "url": "http://127.0.0.1:4173/audio/first-umbrella.wav?v=0.2.3", + "sha256": "878e0bd2e6e4105f175aef51a028f6b141f3a2072be20f783193f3ba897a3ee0", + "bytes": 366380, + "sampleRate": 24000, + "channels": 1, + "duration": 7.632, + "rms": 0.10000147647908036, + "peak": 0.5700247287750244 + }, + { + "url": "http://127.0.0.1:4173/audio/last-apple.wav?v=0.2.3", + "sha256": "4cb2a8579fa3a7b91bb36363826ce8ca0d6d86e96e16a479e226a2802edd82f7", + "bytes": 356012, + "sampleRate": 24000, + "channels": 1, + "duration": 7.416, + "rms": 0.10000144523423521, + "peak": 0.622528076171875 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-market.wav?v=0.2.3", + "sha256": "68a5b899115a66ab225d610ec47b4de56cc8793657362bc38f533c06f741e4cc", + "bytes": 402092, + "sampleRate": 24000, + "channels": 1, + "duration": 8.376, + "rms": 0.10000160159844854, + "peak": 0.6822717785835266 + }, + { + "url": "http://127.0.0.1:4173/audio/message-oil.wav?v=0.2.3", + "sha256": "a2a71a7e5e07c81871a25c6cb7540c39aa0b32fc44f78cda66b5f34ace98d805", + "bytes": 509228, + "sampleRate": 24000, + "channels": 1, + "duration": 10.608, + "rms": 0.10000135184106136, + "peak": 0.51812744140625 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-meat.wav?v=0.2.3", + "sha256": "d36dfc395a5c53fbfa4abe9980db7bb59adfdac59e40318c4aca365365e3f2ab", + "bytes": 187820, + "sampleRate": 24000, + "channels": 1, + "duration": 3.912, + "rms": 0.1000013329979738, + "peak": 0.371124267578125 + }, + { + "url": "http://127.0.0.1:4173/audio/password-market.wav?v=0.2.3", + "sha256": "02e325fb753ef7a3ee585a03d2ca2aa3f1fbc58523b062222ae1136eeed7a95c", + "bytes": 230444, + "sampleRate": 24000, + "channels": 1, + "duration": 4.8, + "rms": 0.10000151520861549, + "peak": 0.48170414566993713 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-hat.wav?v=0.2.3", + "sha256": "4ff43dd042f4b5451e9fdeb3edd59f1e389a7d1dd488094587a3a9fc7dfffa44", + "bytes": 191276, + "sampleRate": 24000, + "channels": 1, + "duration": 3.984, + "rms": 0.10000132502946775, + "peak": 0.417083740234375 + }, + { + "url": "http://127.0.0.1:4173/audio/last-market.wav?v=0.2.3", + "sha256": "7857e87e9dbfe8fe849cc0b18c1d45b60916cb337328099c7a87a42c82e2821e", + "bytes": 359468, + "sampleRate": 24000, + "channels": 1, + "duration": 7.488, + "rms": 0.10000148064140717, + "peak": 0.600555419921875 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-meat.wav?v=0.2.3", + "sha256": "94f8a4f9e116a787e5ed052661d6de9ecf3ad8629db476661dd59ad03014b0c9", + "bytes": 244268, + "sampleRate": 24000, + "channels": 1, + "duration": 5.088, + "rms": 0.10000146176253134, + "peak": 0.44187748432159424 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-oil.wav?v=0.2.3", + "sha256": "55b2c7d6aa8bbce04edf8661882c9781da81c57f56217f99b80457a3bb895da0", + "bytes": 369836, + "sampleRate": 24000, + "channels": 1, + "duration": 7.704, + "rms": 0.10000146897241707, + "peak": 0.6239814162254333 + }, + { + "url": "http://127.0.0.1:4173/audio/first-sound.wav?v=0.2.3", + "sha256": "46f6adeed928a16af0700f1e8626cf8049f124632a04a5d10604426fb06f9596", + "bytes": 353708, + "sampleRate": 24000, + "channels": 1, + "duration": 7.368, + "rms": 0.10000157588418972, + "peak": 0.5189672708511353 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-umbrella.wav?v=0.2.3", + "sha256": "4b4c858a25659540f9dbc524664496fc6de61ab8c1627f3cfee8c9c744e11d5b", + "bytes": 247724, + "sampleRate": 24000, + "channels": 1, + "duration": 5.16, + "rms": 0.10000144286672341, + "peak": 0.46534621715545654 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-oil.wav?v=0.2.3", + "sha256": "3ca98682ff06d1d6b8af02c0fd5b2124f42266ac989884223eff4a9bbde1287a", + "bytes": 399788, + "sampleRate": 24000, + "channels": 1, + "duration": 8.328, + "rms": 0.10000149133669024, + "peak": 0.5243995189666748 + }, + { + "url": "http://127.0.0.1:4173/audio/first-sea.wav?v=0.2.3", + "sha256": "0f0b39314c5f7d7168d4854003c0c284e7bc3438cdc4d1d1c5adab7cb5ed30e5", + "bytes": 349100, + "sampleRate": 24000, + "channels": 1, + "duration": 7.272, + "rms": 0.10000142148394393, + "peak": 0.5717948079109192 + }, + { + "url": "http://127.0.0.1:4173/audio/last-meat.wav?v=0.2.3", + "sha256": "10f8ad4259ed8945c9da831e80b3902303c09caef96d400298599168fb1efed4", + "bytes": 346796, + "sampleRate": 24000, + "channels": 1, + "duration": 7.224, + "rms": 0.10000155834091913, + "peak": 0.537200927734375 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-umbrella.wav?v=0.2.3", + "sha256": "399ea2f681f755918f1117c8baba42739ceca64b307b999342f457a9235050b6", + "bytes": 368684, + "sampleRate": 24000, + "channels": 1, + "duration": 7.68, + "rms": 0.10000155028684544, + "peak": 0.569549560546875 + }, + { + "url": "http://127.0.0.1:4173/audio/message-meat.wav?v=0.2.3", + "sha256": "ce19735df079b54c171e775b6b365385a80160b9033442abab95b2b9c8505e1a", + "bytes": 512684, + "sampleRate": 24000, + "channels": 1, + "duration": 10.68, + "rms": 0.10000140834686953, + "peak": 0.5147705078125 + }, + { + "url": "http://127.0.0.1:4173/audio/message-umbrella.wav?v=0.2.3", + "sha256": "41d5866dae66600df4694a8312b531571d44cece6dba0e423e7c43d09d184819", + "bytes": 523052, + "sampleRate": 24000, + "channels": 1, + "duration": 10.896, + "rms": 0.10000120668553683, + "peak": 0.530364990234375 + }, + { + "url": "http://127.0.0.1:4173/audio/last-furniture.wav?v=0.2.3", + "sha256": "5ad4f776e35439d408abed0e66567d6b5cdc80fc54d579165472e474f1238776", + "bytes": 357164, + "sampleRate": 24000, + "channels": 1, + "duration": 7.44, + "rms": 0.10000152394963031, + "peak": 0.583587646484375 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-sea.wav?v=0.2.3", + "sha256": "8838d6a1ee8a790427dc5aa761e70b3d8872af62086efeed743297ff7f8b8a06", + "bytes": 243116, + "sampleRate": 24000, + "channels": 1, + "duration": 5.064, + "rms": 0.10000138788281714, + "peak": 0.45013427734375 + }, + { + "url": "http://127.0.0.1:4173/audio/message-apple.wav?v=0.2.3", + "sha256": "d85e6f47d871369f00de2274139e5ad6b4b5686b5e20e248df0ed6b9a320d942", + "bytes": 517292, + "sampleRate": 24000, + "channels": 1, + "duration": 10.776, + "rms": 0.10000133916854889, + "peak": 0.525360107421875 + }, + { + "url": "http://127.0.0.1:4173/audio/last-hat.wav?v=0.2.3", + "sha256": "bdaf8fbc54df8061e9e58aa8c14b3044a6e863dc54973ee3ee6ae2c5ae1a28f1", + "bytes": 354860, + "sampleRate": 24000, + "channels": 1, + "duration": 7.392, + "rms": 0.10000152378078818, + "peak": 0.550079345703125 + }, + { + "url": "http://127.0.0.1:4173/audio/first-apple.wav?v=0.2.3", + "sha256": "7c1dbcb3082055df2b8f087f7e906ec867c92f679de0894c34740c05e61a4bc1", + "bytes": 359468, + "sampleRate": 24000, + "channels": 1, + "duration": 7.488, + "rms": 0.10000143468253914, + "peak": 0.57977294921875 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-umbrella.wav?v=0.2.3", + "sha256": "8d3e8e8bc97e5fe3f3362184c4abb12f01a882a1f1174d2644f0f70aac677c0a", + "bytes": 192428, + "sampleRate": 24000, + "channels": 1, + "duration": 4.008, + "rms": 0.10000131475711933, + "peak": 0.385650634765625 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-furniture.wav?v=0.2.3", + "sha256": "5c004a7b2f5a4a918c9f689f1a2dcb219a620ed14313f40a9655b36dbf64948d", + "bytes": 398636, + "sampleRate": 24000, + "channels": 1, + "duration": 8.304, + "rms": 0.10000141690978645, + "peak": 0.487396240234375 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-tree.wav?v=0.2.3", + "sha256": "122f496834fb16d6da47f801e50e46e272e4e934af959467d1db4e490f79be7a", + "bytes": 183212, + "sampleRate": 24000, + "channels": 1, + "duration": 3.816, + "rms": 0.10000140751524371, + "peak": 0.36920166015625 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-tree.wav?v=0.2.3", + "sha256": "00d8e77ec0371971d632724d91f8cf8d947bfb83c582a513b6421be4c457a1da", + "bytes": 241964, + "sampleRate": 24000, + "channels": 1, + "duration": 5.04, + "rms": 0.10000146153372488, + "peak": 0.4585406184196472 + }, + { + "url": "http://127.0.0.1:4173/audio/message-tree.wav?v=0.2.3", + "sha256": "5d684aa710a63d36ed8dcc2a8bfbdd5c71b0b1c63dad2a324adecb76591e85b8", + "bytes": 540332, + "sampleRate": 24000, + "channels": 1, + "duration": 11.256, + "rms": 0.10000132424453942, + "peak": 0.5262451171875 + }, + { + "url": "http://127.0.0.1:4173/audio/last-tree.wav?v=0.2.3", + "sha256": "589e56d940a3c9e80ec02ae0b2dd93463fdc85ef019a753fcd0fded0752055f9", + "bytes": 382508, + "sampleRate": 24000, + "channels": 1, + "duration": 7.968, + "rms": 0.10000149781706567, + "peak": 0.5807672142982483 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-tree.wav?v=0.2.3", + "sha256": "341888c75275c13eb31058f53a1d4276be0daa0a1b5a3a45522036928b83b0c1", + "bytes": 382508, + "sampleRate": 24000, + "channels": 1, + "duration": 7.968, + "rms": 0.1000014873304774, + "peak": 0.600024402141571 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-tree.wav?v=0.2.3", + "sha256": "8735c3d9672561ca237fa87317beec2878492eb9063d6048d5b214423561acc1", + "bytes": 423980, + "sampleRate": 24000, + "channels": 1, + "duration": 8.832, + "rms": 0.10000150947389638, + "peak": 0.6187627911567688 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-furniture.wav?v=0.2.3", + "sha256": "52cb92cdb8ee92b6f581c9d68dbc346f180c470564809ba57185429c9eb84127", + "bytes": 186668, + "sampleRate": 24000, + "channels": 1, + "duration": 3.888, + "rms": 0.1000013480244084, + "peak": 0.387054443359375 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-tree.wav?v=0.2.3", + "sha256": "bc8e54f5407e8866bf1ca1ddfd4f6c63d85fee29bd9e430c7dd33e87974fc5b8", + "bytes": 409004, + "sampleRate": 24000, + "channels": 1, + "duration": 8.52, + "rms": 0.10000146559822108, + "peak": 0.5486617684364319 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-tree.wav?v=0.2.3", + "sha256": "b8e8bbe6b8b14727efd953fae9d4aed2caeb004055d52f611c6378322847edbe", + "bytes": 400940, + "sampleRate": 24000, + "channels": 1, + "duration": 8.352, + "rms": 0.10000144970799159, + "peak": 0.470611572265625 + }, + { + "url": "http://127.0.0.1:4173/audio/first-tree.wav?v=0.2.3", + "sha256": "3178230fd5850b6277a2153b438ec5289720e3db7ac929914cc213964f004bd5", + "bytes": 379052, + "sampleRate": 24000, + "channels": 1, + "duration": 7.896, + "rms": 0.10000144270360484, + "peak": 0.5833613276481628 + }, + { + "url": "http://127.0.0.1:4173/audio/password-tree.wav?v=0.2.3", + "sha256": "67da8147296e35134ec254bc82b58317630061b2c64d2d63c4be197ce8692d50", + "bytes": 233900, + "sampleRate": 24000, + "channels": 1, + "duration": 4.872, + "rms": 0.10000156310809623, + "peak": 0.4904019236564636 + } + ] +} diff --git a/.agent/evidence-v0.2.3/review-fixes/browser-final/audio-음성·현장음-109개-versioned-WAV를-실제-Chrome에서-해시·디코드-검증한다-desktop/browser-audio-integrity.json b/.agent/evidence-v0.2.3/review-fixes/browser-final/audio-음성·현장음-109개-versioned-WAV를-실제-Chrome에서-해시·디코드-검증한다-desktop/browser-audio-integrity.json new file mode 100644 index 0000000..2d4d5ea --- /dev/null +++ b/.agent/evidence-v0.2.3/review-fixes/browser-final/audio-음성·현장음-109개-versioned-WAV를-실제-Chrome에서-해시·디코드-검증한다-desktop/browser-audio-integrity.json @@ -0,0 +1,1098 @@ +{ + "chrome": "146.0.7680.80", + "external": [], + "errors": [], + "failed": [], + "files": [ + { + "url": "http://127.0.0.1:4173/audio/intro.wav?v=0.2.3", + "sha256": "90d9f46e6e3f9c8a0c1a781096df54d7809ef4ad38b289508ef7b8c0411465ce", + "bytes": 338732, + "sampleRate": 24000, + "channels": 1, + "duration": 7.056, + "rms": 0.10000144992850359, + "peak": 0.4998626708984375 + }, + { + "url": "http://127.0.0.1:4173/ambience/street.wav?v=0.2.3", + "sha256": "a8bffa201b174618955bc51b860167169125304811aabe2086b0bb35b06c3ae1", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.07999880181401388, + "peak": 0.3967711329460144 + }, + { + "url": "http://127.0.0.1:4173/ambience/mall.wav?v=0.2.3", + "sha256": "6e9171f549cacadfaeedd57a41c8e2a76b0e789f5c9a97af029a8d3558c9f145", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.07999878530235176, + "peak": 0.5546875 + }, + { + "url": "http://127.0.0.1:4173/ambience/theater.wav?v=0.2.3", + "sha256": "2d6a444fb7874cdf6b2d8a741a69175299b112eb66834912c025437d8277d635", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.07999878601263052, + "peak": 0.495086669921875 + }, + { + "url": "http://127.0.0.1:4173/ambience/department.wav?v=0.2.3", + "sha256": "aa43f3d1d3e7c2b1f8ace24ecbda45d0ea3a031db941c39506dc6c1665b8efa7", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.07999879026023995, + "peak": 0.4749900698661804 + }, + { + "url": "http://127.0.0.1:4173/ambience/market.wav?v=0.2.3", + "sha256": "4287e971a12767f70da714e0c1aff30125268f9c3faf07ebfbcc0d2904f4a312", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.049222823565976834, + "peak": 0.8499755859375 + }, + { + "url": "http://127.0.0.1:4173/ambience/subway.wav?v=0.2.3", + "sha256": "9faf70b68617d267b367a0f3692ed90015458543ab4b0844f6c704e6a724728f", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.079998775670051, + "peak": 0.42530596256256104 + }, + { + "url": "http://127.0.0.1:4173/ambience/cafe.wav?v=0.2.3", + "sha256": "8db06f3f09bbd8409573ba4874c7ccdd1e7e825c8a61989a4efe66206a66c2d2", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.07999881107742599, + "peak": 0.3971068561077118 + }, + { + "url": "http://127.0.0.1:4173/ambience/rain.wav?v=0.2.3", + "sha256": "f4315084e820f742b0709de5bb0d1abd3d5af1730620e08c2948b70347356dd9", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.011384798571746246, + "peak": 0.1024169921875 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-apple.wav?v=0.2.3", + "sha256": "cb7da4e9a1288cac64d168b241f27d7d2bc2dfecace58744f9bbf2792dfad04e", + "bytes": 397484, + "sampleRate": 24000, + "channels": 1, + "duration": 8.28, + "rms": 0.10000142448574952, + "peak": 0.6414685249328613 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-market.wav?v=0.2.3", + "sha256": "b8d25b867497adcd0fe7c8b6a8a8d2e7a52965956738a83e53f58735708773f9", + "bytes": 405548, + "sampleRate": 24000, + "channels": 1, + "duration": 8.448, + "rms": 0.10000141405173993, + "peak": 0.491485595703125 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-sound.wav?v=0.2.3", + "sha256": "34e4d9758d2ed448646fda364610e34779c84794403d9051ab3d8c1d33e2c80c", + "bytes": 184364, + "sampleRate": 24000, + "channels": 1, + "duration": 3.84, + "rms": 0.10000138709171018, + "peak": 0.386322021484375 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-furniture.wav?v=0.2.3", + "sha256": "b45b1afc8d9b534ff3e0a2a2ecb99efc1f4e40d41f89f55c4ed8ba94ad6d76d4", + "bytes": 354860, + "sampleRate": 24000, + "channels": 1, + "duration": 7.392, + "rms": 0.1000015072973225, + "peak": 0.5576171875 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-market.wav?v=0.2.3", + "sha256": "cefa0e95649ea6bd1df4c8dfccd2b74b4f4c028714420ce1087b61db2f2a8d47", + "bytes": 248876, + "sampleRate": 24000, + "channels": 1, + "duration": 5.184, + "rms": 0.10000142548167161, + "peak": 0.4857020676136017 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-oil.wav?v=0.2.3", + "sha256": "f6eff0cdddcad9790351491e60c53cb2a70d222033a583652f2de0b8cd6abcc7", + "bytes": 406700, + "sampleRate": 24000, + "channels": 1, + "duration": 8.472, + "rms": 0.10000139122025363, + "peak": 0.470794677734375 + }, + { + "url": "http://127.0.0.1:4173/audio/first-hat.wav?v=0.2.3", + "sha256": "17c8cde90567e7574b0c0702663bd70713054089ee920241b5444d9b7869eef5", + "bytes": 357164, + "sampleRate": 24000, + "channels": 1, + "duration": 7.44, + "rms": 0.10000152904790521, + "peak": 0.5312662124633789 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-furniture.wav?v=0.2.3", + "sha256": "af82e03b686635c3356e706fe5b05c1231aeaaeab33f275aa5b8714988c65d43", + "bytes": 241964, + "sampleRate": 24000, + "channels": 1, + "duration": 5.04, + "rms": 0.10000137346142077, + "peak": 0.4852443039417267 + }, + { + "url": "http://127.0.0.1:4173/audio/password-sound.wav?v=0.2.3", + "sha256": "044aafff08a19e39f21e58b963644715a987cd155896998769ef8e9ce6449628", + "bytes": 236204, + "sampleRate": 24000, + "channels": 1, + "duration": 4.92, + "rms": 0.10000156641621728, + "peak": 0.4621112644672394 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-hat.wav?v=0.2.3", + "sha256": "f9f98c91cfbcfcb106eef7d5d3795a9cf3c3aab7e19a60f13d7dffe284d19f86", + "bytes": 398636, + "sampleRate": 24000, + "channels": 1, + "duration": 8.304, + "rms": 0.10000141071544869, + "peak": 0.470977783203125 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-apple.wav?v=0.2.3", + "sha256": "7c8f413f4b7e164f090e508ba090448f1376c6012649bbb6a917d45851313883", + "bytes": 188972, + "sampleRate": 24000, + "channels": 1, + "duration": 3.936, + "rms": 0.10000130469939268, + "peak": 0.401641845703125 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-sea.wav?v=0.2.3", + "sha256": "db2f235bee26ac804b5362e8e013b8f40c8da24fd3a34e0fb3b43c6d264feb36", + "bytes": 382508, + "sampleRate": 24000, + "channels": 1, + "duration": 7.968, + "rms": 0.10000145042993039, + "peak": 0.6843470335006714 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-furniture.wav?v=0.2.3", + "sha256": "442bdcb956f120c270e1f321feae0415c897de0183e468980fcc119b898b2a67", + "bytes": 403244, + "sampleRate": 24000, + "channels": 1, + "duration": 8.4, + "rms": 0.10000149119200713, + "peak": 0.5619068145751953 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-sea.wav?v=0.2.3", + "sha256": "b6dbe0af143ea775f05bd59a3d6af348bcc770ab378ac91ea75a56e06c326edf", + "bytes": 346796, + "sampleRate": 24000, + "channels": 1, + "duration": 7.224, + "rms": 0.10000144532868623, + "peak": 0.56494140625 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-sound.wav?v=0.2.3", + "sha256": "e9d636ff7f4777f38b1ff15bebdcec6fbde95b4b4b05625a7415b4cfa0025b59", + "bytes": 395180, + "sampleRate": 24000, + "channels": 1, + "duration": 8.232, + "rms": 0.10000164955559301, + "peak": 0.6114688515663147 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-apple.wav?v=0.2.3", + "sha256": "3ef42e276ff3500c3e197d149f29f79d6a0c1d5516ed1d5a2c57210333fded9c", + "bytes": 246572, + "sampleRate": 24000, + "channels": 1, + "duration": 5.136, + "rms": 0.10000144279302126, + "peak": 0.4701681435108185 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-market.wav?v=0.2.3", + "sha256": "356af25332bf2000ed349671f3ff39767929e1f4599af622c021f907d11fb7bf", + "bytes": 194732, + "sampleRate": 24000, + "channels": 1, + "duration": 4.056, + "rms": 0.10000132629820717, + "peak": 0.4022216796875 + }, + { + "url": "http://127.0.0.1:4173/audio/message-sea.wav?v=0.2.3", + "sha256": "28a461fbe03bffe2560030dea8b60715f7c0fe262dcf85b5b7f7daf483836382", + "bytes": 517292, + "sampleRate": 24000, + "channels": 1, + "duration": 10.776, + "rms": 0.10000130584401576, + "peak": 0.53521728515625 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-umbrella.wav?v=0.2.3", + "sha256": "c8988e604ba05d52597e561389541e8f9cda86e052279f1862bbf8399ead314e", + "bytes": 403244, + "sampleRate": 24000, + "channels": 1, + "duration": 8.4, + "rms": 0.10000148262660476, + "peak": 0.557830810546875 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-hat.wav?v=0.2.3", + "sha256": "308278ec2bd27d4224976a55632d1f7fa1edabb0792126d9d858a699c287aee4", + "bytes": 245420, + "sampleRate": 24000, + "channels": 1, + "duration": 5.112, + "rms": 0.10000140702099906, + "peak": 0.4498428404331207 + }, + { + "url": "http://127.0.0.1:4173/audio/password-furniture.wav?v=0.2.3", + "sha256": "fb2b631dd4e12120d08a84cce6450f9cd9cd68105d13d7001d808e7deaa1df4a", + "bytes": 233900, + "sampleRate": 24000, + "channels": 1, + "duration": 4.872, + "rms": 0.10000146718546903, + "peak": 0.4836573302745819 + }, + { + "url": "http://127.0.0.1:4173/audio/first-market.wav?v=0.2.3", + "sha256": "1e00b8f70a796cdebb0feb00c605fece7488b06915e6e036f54206f05e201e0c", + "bytes": 359468, + "sampleRate": 24000, + "channels": 1, + "duration": 7.488, + "rms": 0.10000152633991319, + "peak": 0.6390880942344666 + }, + { + "url": "http://127.0.0.1:4173/audio/first-meat.wav?v=0.2.3", + "sha256": "f51a37c1722fef581f7d642a4dcae7fcb9953b3c318dce971bf616cd1a81fecc", + "bytes": 345644, + "sampleRate": 24000, + "channels": 1, + "duration": 7.2, + "rms": 0.10000152244411063, + "peak": 0.5131382346153259 + }, + { + "url": "http://127.0.0.1:4173/audio/password-sea.wav?v=0.2.3", + "sha256": "03f45b8cb5b3dc72faf5c6e3d0e2a10cea6b60301ea400d0a4453596d2f0b337", + "bytes": 232748, + "sampleRate": 24000, + "channels": 1, + "duration": 4.848, + "rms": 0.10000144821976133, + "peak": 0.5339213013648987 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-sound.wav?v=0.2.3", + "sha256": "98387ccc7aab566f6487d4c250b2128082cc527e013a6f7b7bc4d0266ac295df", + "bytes": 394028, + "sampleRate": 24000, + "channels": 1, + "duration": 8.208, + "rms": 0.10000158053850364, + "peak": 0.5377971529960632 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-umbrella.wav?v=0.2.3", + "sha256": "5e59ef39113c3d5e106862356d715f4cef2862ef8ee02654a97e532675c1ac6d", + "bytes": 410156, + "sampleRate": 24000, + "channels": 1, + "duration": 8.544, + "rms": 0.10000147499132286, + "peak": 0.6748558282852173 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-hat.wav?v=0.2.3", + "sha256": "b01ef9762ac84e3eb757243bc9286c62f7d45444a821ae35ac36a8b095e1598a", + "bytes": 353708, + "sampleRate": 24000, + "channels": 1, + "duration": 7.368, + "rms": 0.10000153089787694, + "peak": 0.555206298828125 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-market.wav?v=0.2.3", + "sha256": "d89792da51c83ac49d27e55aa6d822a338899a5ee487b34b552748201e1522f6", + "bytes": 398636, + "sampleRate": 24000, + "channels": 1, + "duration": 8.304, + "rms": 0.10000149710778367, + "peak": 0.5728324055671692 + }, + { + "url": "http://127.0.0.1:4173/audio/password-umbrella.wav?v=0.2.3", + "sha256": "ab3ca6398c879971dc793eb25b472fcc0db72d76e386f11ef4d32c639f37c69d", + "bytes": 239660, + "sampleRate": 24000, + "channels": 1, + "duration": 4.992, + "rms": 0.100001426973271, + "peak": 0.4776757061481476 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-meat.wav?v=0.2.3", + "sha256": "48e91b3932d3798e852041a854b3ee08c72127e092c62083a47af6b99adff241", + "bytes": 403244, + "sampleRate": 24000, + "channels": 1, + "duration": 8.4, + "rms": 0.10000140336390047, + "peak": 0.481536865234375 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-hat.wav?v=0.2.3", + "sha256": "6e089a42fd7e65e82eec7186d369c926fb7fdac794365b2bd7658822fd92437c", + "bytes": 396332, + "sampleRate": 24000, + "channels": 1, + "duration": 8.256, + "rms": 0.1000015662548192, + "peak": 0.616748571395874 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-sound.wav?v=0.2.3", + "sha256": "4d00aa6114327f450a00dacbc7e7b572ebf1de4ce9dc2fe4b5505766cca71ce9", + "bytes": 353708, + "sampleRate": 24000, + "channels": 1, + "duration": 7.368, + "rms": 0.10000162019345048, + "peak": 0.5348368883132935 + }, + { + "url": "http://127.0.0.1:4173/audio/last-oil.wav?v=0.2.3", + "sha256": "b5ce34950b8b31b1baf6ce55410797f0d8aa5478a670d6eace87cf76d134d6d3", + "bytes": 337580, + "sampleRate": 24000, + "channels": 1, + "duration": 7.032, + "rms": 0.10000149980584365, + "peak": 0.55706787109375 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-sea.wav?v=0.2.3", + "sha256": "47aa31d757c9fb49c9b53a1c052d90a5ced4be57549d649850d9b48f8864045b", + "bytes": 191276, + "sampleRate": 24000, + "channels": 1, + "duration": 3.984, + "rms": 0.10000129182106483, + "peak": 0.388702392578125 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-sound.wav?v=0.2.3", + "sha256": "659eb0e2b06e6b165b46744769743e032e2282519f8486c57bc45e0f7d07a069", + "bytes": 240812, + "sampleRate": 24000, + "channels": 1, + "duration": 5.016, + "rms": 0.10000152909529536, + "peak": 0.45481735467910767 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-meat.wav?v=0.2.3", + "sha256": "6599d2fac73ea616a793151b4ce6f51af673988d630bac6219a77e78ae6cb34e", + "bytes": 380204, + "sampleRate": 24000, + "channels": 1, + "duration": 7.92, + "rms": 0.1000016061190976, + "peak": 0.5921201109886169 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-market.wav?v=0.2.3", + "sha256": "c855b449e0d4ace74681bfe68e5e7f0b063568827ae872017234dbe8ae119e4c", + "bytes": 356012, + "sampleRate": 24000, + "channels": 1, + "duration": 7.416, + "rms": 0.10000151456676445, + "peak": 0.5949888825416565 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-furniture.wav?v=0.2.3", + "sha256": "bf84dc6cff1f227924a3a62158d2fc18769fb0ca40b91418fa19e534dbf92f00", + "bytes": 397484, + "sampleRate": 24000, + "channels": 1, + "duration": 8.28, + "rms": 0.10000155255948041, + "peak": 0.6670430898666382 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-sound.wav?v=0.2.3", + "sha256": "5a603bc69979603afddcaeb6edf500a7c540b72405daeb33f5335d746b327da1", + "bytes": 397484, + "sampleRate": 24000, + "channels": 1, + "duration": 8.28, + "rms": 0.10000146491234768, + "peak": 0.469268798828125 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-meat.wav?v=0.2.3", + "sha256": "9183ef90b64f5ceaf3bb0178c689231ff3e9981d6ce889124a15f2a6e2b7a344", + "bytes": 395180, + "sampleRate": 24000, + "channels": 1, + "duration": 8.232, + "rms": 0.10000155087122137, + "peak": 0.5193029642105103 + }, + { + "url": "http://127.0.0.1:4173/audio/last-sound.wav?v=0.2.3", + "sha256": "ec9c49802aebeb6a8b898a1c0d8ad1daa127d2d64c905c197ed49a8e0c4eb64a", + "bytes": 354860, + "sampleRate": 24000, + "channels": 1, + "duration": 7.392, + "rms": 0.10000165748716579, + "peak": 0.5641041398048401 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-oil.wav?v=0.2.3", + "sha256": "5fb63e04520c312aa6b7b48b70c2f7c140b5ab480e5c6992edbc2ba85b9a06e7", + "bytes": 241964, + "sampleRate": 24000, + "channels": 1, + "duration": 5.04, + "rms": 0.10000143720418167, + "peak": 0.443586528301239 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-umbrella.wav?v=0.2.3", + "sha256": "92b54f04884ab915783945077efd8f3bd443849a1720f72168b6348cae1f8e85", + "bytes": 406700, + "sampleRate": 24000, + "channels": 1, + "duration": 8.472, + "rms": 0.10000140257790288, + "peak": 0.479034423828125 + }, + { + "url": "http://127.0.0.1:4173/audio/message-sound.wav?v=0.2.3", + "sha256": "1e682147dae8026ba78dc8f256c7f24acb3a6743bfd88a0fcc86096930eef078", + "bytes": 521900, + "sampleRate": 24000, + "channels": 1, + "duration": 10.872, + "rms": 0.10000138583471241, + "peak": 0.51953125 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-apple.wav?v=0.2.3", + "sha256": "ccd7327a3fb54d3320d049ffdced3bc17595861cee69429c0ee97182d454195b", + "bytes": 402092, + "sampleRate": 24000, + "channels": 1, + "duration": 8.376, + "rms": 0.10000140667715379, + "peak": 0.490325927734375 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-sea.wav?v=0.2.3", + "sha256": "5c91a36496e274d2be9c6fa8d9b506cd04f2a1b7ceb05ed1b7bb03fe7fca99d9", + "bytes": 399788, + "sampleRate": 24000, + "channels": 1, + "duration": 8.328, + "rms": 0.10000144241513113, + "peak": 0.5465559959411621 + }, + { + "url": "http://127.0.0.1:4173/audio/message-hat.wav?v=0.2.3", + "sha256": "5a713a8522b231bb8276805c014b385b9150b79f58ff2618446607e2b442495e", + "bytes": 518444, + "sampleRate": 24000, + "channels": 1, + "duration": 10.8, + "rms": 0.10000136927555209, + "peak": 0.587005615234375 + }, + { + "url": "http://127.0.0.1:4173/audio/password-meat.wav?v=0.2.3", + "sha256": "b009caadd56350d6a641ff17f0973e2b2724c183e1f45ae0bf3c483e237fa99e", + "bytes": 240812, + "sampleRate": 24000, + "channels": 1, + "duration": 5.016, + "rms": 0.10000148386024335, + "peak": 0.4978789687156677 + }, + { + "url": "http://127.0.0.1:4173/audio/message-market.wav?v=0.2.3", + "sha256": "9242d4cd6e0030e6b073e4d2360f84aa8a454d1749711cdb2d64c14f28a7ea20", + "bytes": 523052, + "sampleRate": 24000, + "channels": 1, + "duration": 10.896, + "rms": 0.10000133805787564, + "peak": 0.534820556640625 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-apple.wav?v=0.2.3", + "sha256": "8832f1b793ab3eedbe663875ea8dbeabb122c329bd5879437c71230b0418c3c8", + "bytes": 360620, + "sampleRate": 24000, + "channels": 1, + "duration": 7.512, + "rms": 0.10000145024648589, + "peak": 0.553558349609375 + }, + { + "url": "http://127.0.0.1:4173/audio/last-umbrella.wav?v=0.2.3", + "sha256": "c801293a34013a8d93d3289a2cc87cd3eed83f97ba4647f5060efa00b117a9ad", + "bytes": 370988, + "sampleRate": 24000, + "channels": 1, + "duration": 7.728, + "rms": 0.10000149360501835, + "peak": 0.59765625 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-sea.wav?v=0.2.3", + "sha256": "9233431d78ab4b144e3c33ad0cf0d49fc0fb91b29514343230ba32987b794bb3", + "bytes": 398636, + "sampleRate": 24000, + "channels": 1, + "duration": 8.304, + "rms": 0.10000134688905045, + "peak": 0.49616992473602295 + }, + { + "url": "http://127.0.0.1:4173/audio/password-apple.wav?v=0.2.3", + "sha256": "b6f5de3fe571fe3a7fdb722fe49250bcfeedef49475271e0ec76a7630907edd5", + "bytes": 235052, + "sampleRate": 24000, + "channels": 1, + "duration": 4.896, + "rms": 0.10000148212193387, + "peak": 0.4834437072277069 + }, + { + "url": "http://127.0.0.1:4173/audio/first-furniture.wav?v=0.2.3", + "sha256": "29f007b385b7182db1d8aeccad4fc3c260df5e66e14e52a46b0ef0fcd0ff3a0a", + "bytes": 364076, + "sampleRate": 24000, + "channels": 1, + "duration": 7.584, + "rms": 0.1000014551820741, + "peak": 0.5700552463531494 + }, + { + "url": "http://127.0.0.1:4173/audio/password-hat.wav?v=0.2.3", + "sha256": "e91bfc97df90a1675b6cd856880ac15c54de32cfc3b23603bdd1c2c5ac3ce6b8", + "bytes": 235052, + "sampleRate": 24000, + "channels": 1, + "duration": 4.896, + "rms": 0.10000146155157119, + "peak": 0.5059053301811218 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-oil.wav?v=0.2.3", + "sha256": "7a6b122b11c07da86c95fb78e2db2a70681b5219c63d6441fe56da1979ac1dc3", + "bytes": 334124, + "sampleRate": 24000, + "channels": 1, + "duration": 6.96, + "rms": 0.1000014880654183, + "peak": 0.539933443069458 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-meat.wav?v=0.2.3", + "sha256": "d416107cc05e7c5b92ca27100a10a8a9689de913346179945d5542de4a6bac0c", + "bytes": 342188, + "sampleRate": 24000, + "channels": 1, + "duration": 7.128, + "rms": 0.10000157422522808, + "peak": 0.510833740234375 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-apple.wav?v=0.2.3", + "sha256": "1bf2aef9a9f030af1a8fd7dee8f44aa420a397b3ba99b575feeb3dc7a63ec191", + "bytes": 395180, + "sampleRate": 24000, + "channels": 1, + "duration": 8.232, + "rms": 0.10000148399213096, + "peak": 0.563568115234375 + }, + { + "url": "http://127.0.0.1:4173/audio/first-oil.wav?v=0.2.3", + "sha256": "f415195e0cfc7ee711d09de7519e88eab62cc8b58d70772c83c3f5c27c267819", + "bytes": 335276, + "sampleRate": 24000, + "channels": 1, + "duration": 6.984, + "rms": 0.10000145886808136, + "peak": 0.5347453355789185 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-hat.wav?v=0.2.3", + "sha256": "31a6a4270bf368cda419094d87a303ac3cd5c22539786cb165f8044b0b8e9d6e", + "bytes": 402092, + "sampleRate": 24000, + "channels": 1, + "duration": 8.376, + "rms": 0.10000145804818952, + "peak": 0.541778564453125 + }, + { + "url": "http://127.0.0.1:4173/audio/message-furniture.wav?v=0.2.3", + "sha256": "26c331b7e12311236f4bb48f88918dfbf53cccd2f50b55741ea6ff4473e71dd8", + "bytes": 521900, + "sampleRate": 24000, + "channels": 1, + "duration": 10.872, + "rms": 0.10000134596838128, + "peak": 0.529327392578125 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-oil.wav?v=0.2.3", + "sha256": "3fa1e662a3af8f2726b17b2baa5bec2934406e6595ebc243c8380dd16e190977", + "bytes": 190124, + "sampleRate": 24000, + "channels": 1, + "duration": 3.96, + "rms": 0.10000134375667624, + "peak": 0.3817255198955536 + }, + { + "url": "http://127.0.0.1:4173/audio/last-sea.wav?v=0.2.3", + "sha256": "f755452e1da44674aa1df7d12edffa988091b89a394e7eb6d4a00eb721f07cbf", + "bytes": 345644, + "sampleRate": 24000, + "channels": 1, + "duration": 7.2, + "rms": 0.10000140162255576, + "peak": 0.591033935546875 + }, + { + "url": "http://127.0.0.1:4173/audio/password-oil.wav?v=0.2.3", + "sha256": "b472957b27ff98ea7b8894fa1ff12653f7e9f66f77870faa9e52a1c1bf116c41", + "bytes": 240812, + "sampleRate": 24000, + "channels": 1, + "duration": 5.016, + "rms": 0.10000146772662066, + "peak": 0.4945219159126282 + }, + { + "url": "http://127.0.0.1:4173/audio/first-umbrella.wav?v=0.2.3", + "sha256": "878e0bd2e6e4105f175aef51a028f6b141f3a2072be20f783193f3ba897a3ee0", + "bytes": 366380, + "sampleRate": 24000, + "channels": 1, + "duration": 7.632, + "rms": 0.10000147647908036, + "peak": 0.5700247287750244 + }, + { + "url": "http://127.0.0.1:4173/audio/last-apple.wav?v=0.2.3", + "sha256": "4cb2a8579fa3a7b91bb36363826ce8ca0d6d86e96e16a479e226a2802edd82f7", + "bytes": 356012, + "sampleRate": 24000, + "channels": 1, + "duration": 7.416, + "rms": 0.10000144523423521, + "peak": 0.622528076171875 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-market.wav?v=0.2.3", + "sha256": "68a5b899115a66ab225d610ec47b4de56cc8793657362bc38f533c06f741e4cc", + "bytes": 402092, + "sampleRate": 24000, + "channels": 1, + "duration": 8.376, + "rms": 0.10000160159844854, + "peak": 0.6822717785835266 + }, + { + "url": "http://127.0.0.1:4173/audio/message-oil.wav?v=0.2.3", + "sha256": "a2a71a7e5e07c81871a25c6cb7540c39aa0b32fc44f78cda66b5f34ace98d805", + "bytes": 509228, + "sampleRate": 24000, + "channels": 1, + "duration": 10.608, + "rms": 0.10000135184106136, + "peak": 0.51812744140625 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-meat.wav?v=0.2.3", + "sha256": "d36dfc395a5c53fbfa4abe9980db7bb59adfdac59e40318c4aca365365e3f2ab", + "bytes": 187820, + "sampleRate": 24000, + "channels": 1, + "duration": 3.912, + "rms": 0.1000013329979738, + "peak": 0.371124267578125 + }, + { + "url": "http://127.0.0.1:4173/audio/password-market.wav?v=0.2.3", + "sha256": "02e325fb753ef7a3ee585a03d2ca2aa3f1fbc58523b062222ae1136eeed7a95c", + "bytes": 230444, + "sampleRate": 24000, + "channels": 1, + "duration": 4.8, + "rms": 0.10000151520861549, + "peak": 0.48170414566993713 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-hat.wav?v=0.2.3", + "sha256": "4ff43dd042f4b5451e9fdeb3edd59f1e389a7d1dd488094587a3a9fc7dfffa44", + "bytes": 191276, + "sampleRate": 24000, + "channels": 1, + "duration": 3.984, + "rms": 0.10000132502946775, + "peak": 0.417083740234375 + }, + { + "url": "http://127.0.0.1:4173/audio/last-market.wav?v=0.2.3", + "sha256": "7857e87e9dbfe8fe849cc0b18c1d45b60916cb337328099c7a87a42c82e2821e", + "bytes": 359468, + "sampleRate": 24000, + "channels": 1, + "duration": 7.488, + "rms": 0.10000148064140717, + "peak": 0.600555419921875 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-meat.wav?v=0.2.3", + "sha256": "94f8a4f9e116a787e5ed052661d6de9ecf3ad8629db476661dd59ad03014b0c9", + "bytes": 244268, + "sampleRate": 24000, + "channels": 1, + "duration": 5.088, + "rms": 0.10000146176253134, + "peak": 0.44187748432159424 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-oil.wav?v=0.2.3", + "sha256": "55b2c7d6aa8bbce04edf8661882c9781da81c57f56217f99b80457a3bb895da0", + "bytes": 369836, + "sampleRate": 24000, + "channels": 1, + "duration": 7.704, + "rms": 0.10000146897241707, + "peak": 0.6239814162254333 + }, + { + "url": "http://127.0.0.1:4173/audio/first-sound.wav?v=0.2.3", + "sha256": "46f6adeed928a16af0700f1e8626cf8049f124632a04a5d10604426fb06f9596", + "bytes": 353708, + "sampleRate": 24000, + "channels": 1, + "duration": 7.368, + "rms": 0.10000157588418972, + "peak": 0.5189672708511353 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-umbrella.wav?v=0.2.3", + "sha256": "4b4c858a25659540f9dbc524664496fc6de61ab8c1627f3cfee8c9c744e11d5b", + "bytes": 247724, + "sampleRate": 24000, + "channels": 1, + "duration": 5.16, + "rms": 0.10000144286672341, + "peak": 0.46534621715545654 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-oil.wav?v=0.2.3", + "sha256": "3ca98682ff06d1d6b8af02c0fd5b2124f42266ac989884223eff4a9bbde1287a", + "bytes": 399788, + "sampleRate": 24000, + "channels": 1, + "duration": 8.328, + "rms": 0.10000149133669024, + "peak": 0.5243995189666748 + }, + { + "url": "http://127.0.0.1:4173/audio/first-sea.wav?v=0.2.3", + "sha256": "0f0b39314c5f7d7168d4854003c0c284e7bc3438cdc4d1d1c5adab7cb5ed30e5", + "bytes": 349100, + "sampleRate": 24000, + "channels": 1, + "duration": 7.272, + "rms": 0.10000142148394393, + "peak": 0.5717948079109192 + }, + { + "url": "http://127.0.0.1:4173/audio/last-meat.wav?v=0.2.3", + "sha256": "10f8ad4259ed8945c9da831e80b3902303c09caef96d400298599168fb1efed4", + "bytes": 346796, + "sampleRate": 24000, + "channels": 1, + "duration": 7.224, + "rms": 0.10000155834091913, + "peak": 0.537200927734375 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-umbrella.wav?v=0.2.3", + "sha256": "399ea2f681f755918f1117c8baba42739ceca64b307b999342f457a9235050b6", + "bytes": 368684, + "sampleRate": 24000, + "channels": 1, + "duration": 7.68, + "rms": 0.10000155028684544, + "peak": 0.569549560546875 + }, + { + "url": "http://127.0.0.1:4173/audio/message-meat.wav?v=0.2.3", + "sha256": "ce19735df079b54c171e775b6b365385a80160b9033442abab95b2b9c8505e1a", + "bytes": 512684, + "sampleRate": 24000, + "channels": 1, + "duration": 10.68, + "rms": 0.10000140834686953, + "peak": 0.5147705078125 + }, + { + "url": "http://127.0.0.1:4173/audio/message-umbrella.wav?v=0.2.3", + "sha256": "41d5866dae66600df4694a8312b531571d44cece6dba0e423e7c43d09d184819", + "bytes": 523052, + "sampleRate": 24000, + "channels": 1, + "duration": 10.896, + "rms": 0.10000120668553683, + "peak": 0.530364990234375 + }, + { + "url": "http://127.0.0.1:4173/audio/last-furniture.wav?v=0.2.3", + "sha256": "5ad4f776e35439d408abed0e66567d6b5cdc80fc54d579165472e474f1238776", + "bytes": 357164, + "sampleRate": 24000, + "channels": 1, + "duration": 7.44, + "rms": 0.10000152394963031, + "peak": 0.583587646484375 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-sea.wav?v=0.2.3", + "sha256": "8838d6a1ee8a790427dc5aa761e70b3d8872af62086efeed743297ff7f8b8a06", + "bytes": 243116, + "sampleRate": 24000, + "channels": 1, + "duration": 5.064, + "rms": 0.10000138788281714, + "peak": 0.45013427734375 + }, + { + "url": "http://127.0.0.1:4173/audio/message-apple.wav?v=0.2.3", + "sha256": "d85e6f47d871369f00de2274139e5ad6b4b5686b5e20e248df0ed6b9a320d942", + "bytes": 517292, + "sampleRate": 24000, + "channels": 1, + "duration": 10.776, + "rms": 0.10000133916854889, + "peak": 0.525360107421875 + }, + { + "url": "http://127.0.0.1:4173/audio/last-hat.wav?v=0.2.3", + "sha256": "bdaf8fbc54df8061e9e58aa8c14b3044a6e863dc54973ee3ee6ae2c5ae1a28f1", + "bytes": 354860, + "sampleRate": 24000, + "channels": 1, + "duration": 7.392, + "rms": 0.10000152378078818, + "peak": 0.550079345703125 + }, + { + "url": "http://127.0.0.1:4173/audio/first-apple.wav?v=0.2.3", + "sha256": "7c1dbcb3082055df2b8f087f7e906ec867c92f679de0894c34740c05e61a4bc1", + "bytes": 359468, + "sampleRate": 24000, + "channels": 1, + "duration": 7.488, + "rms": 0.10000143468253914, + "peak": 0.57977294921875 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-umbrella.wav?v=0.2.3", + "sha256": "8d3e8e8bc97e5fe3f3362184c4abb12f01a882a1f1174d2644f0f70aac677c0a", + "bytes": 192428, + "sampleRate": 24000, + "channels": 1, + "duration": 4.008, + "rms": 0.10000131475711933, + "peak": 0.385650634765625 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-furniture.wav?v=0.2.3", + "sha256": "5c004a7b2f5a4a918c9f689f1a2dcb219a620ed14313f40a9655b36dbf64948d", + "bytes": 398636, + "sampleRate": 24000, + "channels": 1, + "duration": 8.304, + "rms": 0.10000141690978645, + "peak": 0.487396240234375 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-tree.wav?v=0.2.3", + "sha256": "122f496834fb16d6da47f801e50e46e272e4e934af959467d1db4e490f79be7a", + "bytes": 183212, + "sampleRate": 24000, + "channels": 1, + "duration": 3.816, + "rms": 0.10000140751524371, + "peak": 0.36920166015625 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-tree.wav?v=0.2.3", + "sha256": "00d8e77ec0371971d632724d91f8cf8d947bfb83c582a513b6421be4c457a1da", + "bytes": 241964, + "sampleRate": 24000, + "channels": 1, + "duration": 5.04, + "rms": 0.10000146153372488, + "peak": 0.4585406184196472 + }, + { + "url": "http://127.0.0.1:4173/audio/message-tree.wav?v=0.2.3", + "sha256": "5d684aa710a63d36ed8dcc2a8bfbdd5c71b0b1c63dad2a324adecb76591e85b8", + "bytes": 540332, + "sampleRate": 24000, + "channels": 1, + "duration": 11.256, + "rms": 0.10000132424453942, + "peak": 0.5262451171875 + }, + { + "url": "http://127.0.0.1:4173/audio/last-tree.wav?v=0.2.3", + "sha256": "589e56d940a3c9e80ec02ae0b2dd93463fdc85ef019a753fcd0fded0752055f9", + "bytes": 382508, + "sampleRate": 24000, + "channels": 1, + "duration": 7.968, + "rms": 0.10000149781706567, + "peak": 0.5807672142982483 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-tree.wav?v=0.2.3", + "sha256": "341888c75275c13eb31058f53a1d4276be0daa0a1b5a3a45522036928b83b0c1", + "bytes": 382508, + "sampleRate": 24000, + "channels": 1, + "duration": 7.968, + "rms": 0.1000014873304774, + "peak": 0.600024402141571 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-tree.wav?v=0.2.3", + "sha256": "8735c3d9672561ca237fa87317beec2878492eb9063d6048d5b214423561acc1", + "bytes": 423980, + "sampleRate": 24000, + "channels": 1, + "duration": 8.832, + "rms": 0.10000150947389638, + "peak": 0.6187627911567688 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-furniture.wav?v=0.2.3", + "sha256": "52cb92cdb8ee92b6f581c9d68dbc346f180c470564809ba57185429c9eb84127", + "bytes": 186668, + "sampleRate": 24000, + "channels": 1, + "duration": 3.888, + "rms": 0.1000013480244084, + "peak": 0.387054443359375 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-tree.wav?v=0.2.3", + "sha256": "bc8e54f5407e8866bf1ca1ddfd4f6c63d85fee29bd9e430c7dd33e87974fc5b8", + "bytes": 409004, + "sampleRate": 24000, + "channels": 1, + "duration": 8.52, + "rms": 0.10000146559822108, + "peak": 0.5486617684364319 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-tree.wav?v=0.2.3", + "sha256": "b8e8bbe6b8b14727efd953fae9d4aed2caeb004055d52f611c6378322847edbe", + "bytes": 400940, + "sampleRate": 24000, + "channels": 1, + "duration": 8.352, + "rms": 0.10000144970799159, + "peak": 0.470611572265625 + }, + { + "url": "http://127.0.0.1:4173/audio/first-tree.wav?v=0.2.3", + "sha256": "3178230fd5850b6277a2153b438ec5289720e3db7ac929914cc213964f004bd5", + "bytes": 379052, + "sampleRate": 24000, + "channels": 1, + "duration": 7.896, + "rms": 0.10000144270360484, + "peak": 0.5833613276481628 + }, + { + "url": "http://127.0.0.1:4173/audio/password-tree.wav?v=0.2.3", + "sha256": "67da8147296e35134ec254bc82b58317630061b2c64d2d63c4be197ce8692d50", + "bytes": 233900, + "sampleRate": 24000, + "channels": 1, + "duration": 4.872, + "rms": 0.10000156310809623, + "peak": 0.4904019236564636 + } + ] +} diff --git a/.agent/evidence-v0.2.3/review-fixes/browser-final/audio-음성·현장음-109개-versioned-WAV를-실제-Chrome에서-해시·디코드-검증한다-mobile/attachments/109-versioned-WAV-integrity-9b9f8223b6524087ac395eb7a96ac0d386fbcb95.json b/.agent/evidence-v0.2.3/review-fixes/browser-final/audio-음성·현장음-109개-versioned-WAV를-실제-Chrome에서-해시·디코드-검증한다-mobile/attachments/109-versioned-WAV-integrity-9b9f8223b6524087ac395eb7a96ac0d386fbcb95.json new file mode 100644 index 0000000..2d4d5ea --- /dev/null +++ b/.agent/evidence-v0.2.3/review-fixes/browser-final/audio-음성·현장음-109개-versioned-WAV를-실제-Chrome에서-해시·디코드-검증한다-mobile/attachments/109-versioned-WAV-integrity-9b9f8223b6524087ac395eb7a96ac0d386fbcb95.json @@ -0,0 +1,1098 @@ +{ + "chrome": "146.0.7680.80", + "external": [], + "errors": [], + "failed": [], + "files": [ + { + "url": "http://127.0.0.1:4173/audio/intro.wav?v=0.2.3", + "sha256": "90d9f46e6e3f9c8a0c1a781096df54d7809ef4ad38b289508ef7b8c0411465ce", + "bytes": 338732, + "sampleRate": 24000, + "channels": 1, + "duration": 7.056, + "rms": 0.10000144992850359, + "peak": 0.4998626708984375 + }, + { + "url": "http://127.0.0.1:4173/ambience/street.wav?v=0.2.3", + "sha256": "a8bffa201b174618955bc51b860167169125304811aabe2086b0bb35b06c3ae1", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.07999880181401388, + "peak": 0.3967711329460144 + }, + { + "url": "http://127.0.0.1:4173/ambience/mall.wav?v=0.2.3", + "sha256": "6e9171f549cacadfaeedd57a41c8e2a76b0e789f5c9a97af029a8d3558c9f145", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.07999878530235176, + "peak": 0.5546875 + }, + { + "url": "http://127.0.0.1:4173/ambience/theater.wav?v=0.2.3", + "sha256": "2d6a444fb7874cdf6b2d8a741a69175299b112eb66834912c025437d8277d635", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.07999878601263052, + "peak": 0.495086669921875 + }, + { + "url": "http://127.0.0.1:4173/ambience/department.wav?v=0.2.3", + "sha256": "aa43f3d1d3e7c2b1f8ace24ecbda45d0ea3a031db941c39506dc6c1665b8efa7", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.07999879026023995, + "peak": 0.4749900698661804 + }, + { + "url": "http://127.0.0.1:4173/ambience/market.wav?v=0.2.3", + "sha256": "4287e971a12767f70da714e0c1aff30125268f9c3faf07ebfbcc0d2904f4a312", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.049222823565976834, + "peak": 0.8499755859375 + }, + { + "url": "http://127.0.0.1:4173/ambience/subway.wav?v=0.2.3", + "sha256": "9faf70b68617d267b367a0f3692ed90015458543ab4b0844f6c704e6a724728f", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.079998775670051, + "peak": 0.42530596256256104 + }, + { + "url": "http://127.0.0.1:4173/ambience/cafe.wav?v=0.2.3", + "sha256": "8db06f3f09bbd8409573ba4874c7ccdd1e7e825c8a61989a4efe66206a66c2d2", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.07999881107742599, + "peak": 0.3971068561077118 + }, + { + "url": "http://127.0.0.1:4173/ambience/rain.wav?v=0.2.3", + "sha256": "f4315084e820f742b0709de5bb0d1abd3d5af1730620e08c2948b70347356dd9", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.011384798571746246, + "peak": 0.1024169921875 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-apple.wav?v=0.2.3", + "sha256": "cb7da4e9a1288cac64d168b241f27d7d2bc2dfecace58744f9bbf2792dfad04e", + "bytes": 397484, + "sampleRate": 24000, + "channels": 1, + "duration": 8.28, + "rms": 0.10000142448574952, + "peak": 0.6414685249328613 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-market.wav?v=0.2.3", + "sha256": "b8d25b867497adcd0fe7c8b6a8a8d2e7a52965956738a83e53f58735708773f9", + "bytes": 405548, + "sampleRate": 24000, + "channels": 1, + "duration": 8.448, + "rms": 0.10000141405173993, + "peak": 0.491485595703125 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-sound.wav?v=0.2.3", + "sha256": "34e4d9758d2ed448646fda364610e34779c84794403d9051ab3d8c1d33e2c80c", + "bytes": 184364, + "sampleRate": 24000, + "channels": 1, + "duration": 3.84, + "rms": 0.10000138709171018, + "peak": 0.386322021484375 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-furniture.wav?v=0.2.3", + "sha256": "b45b1afc8d9b534ff3e0a2a2ecb99efc1f4e40d41f89f55c4ed8ba94ad6d76d4", + "bytes": 354860, + "sampleRate": 24000, + "channels": 1, + "duration": 7.392, + "rms": 0.1000015072973225, + "peak": 0.5576171875 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-market.wav?v=0.2.3", + "sha256": "cefa0e95649ea6bd1df4c8dfccd2b74b4f4c028714420ce1087b61db2f2a8d47", + "bytes": 248876, + "sampleRate": 24000, + "channels": 1, + "duration": 5.184, + "rms": 0.10000142548167161, + "peak": 0.4857020676136017 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-oil.wav?v=0.2.3", + "sha256": "f6eff0cdddcad9790351491e60c53cb2a70d222033a583652f2de0b8cd6abcc7", + "bytes": 406700, + "sampleRate": 24000, + "channels": 1, + "duration": 8.472, + "rms": 0.10000139122025363, + "peak": 0.470794677734375 + }, + { + "url": "http://127.0.0.1:4173/audio/first-hat.wav?v=0.2.3", + "sha256": "17c8cde90567e7574b0c0702663bd70713054089ee920241b5444d9b7869eef5", + "bytes": 357164, + "sampleRate": 24000, + "channels": 1, + "duration": 7.44, + "rms": 0.10000152904790521, + "peak": 0.5312662124633789 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-furniture.wav?v=0.2.3", + "sha256": "af82e03b686635c3356e706fe5b05c1231aeaaeab33f275aa5b8714988c65d43", + "bytes": 241964, + "sampleRate": 24000, + "channels": 1, + "duration": 5.04, + "rms": 0.10000137346142077, + "peak": 0.4852443039417267 + }, + { + "url": "http://127.0.0.1:4173/audio/password-sound.wav?v=0.2.3", + "sha256": "044aafff08a19e39f21e58b963644715a987cd155896998769ef8e9ce6449628", + "bytes": 236204, + "sampleRate": 24000, + "channels": 1, + "duration": 4.92, + "rms": 0.10000156641621728, + "peak": 0.4621112644672394 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-hat.wav?v=0.2.3", + "sha256": "f9f98c91cfbcfcb106eef7d5d3795a9cf3c3aab7e19a60f13d7dffe284d19f86", + "bytes": 398636, + "sampleRate": 24000, + "channels": 1, + "duration": 8.304, + "rms": 0.10000141071544869, + "peak": 0.470977783203125 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-apple.wav?v=0.2.3", + "sha256": "7c8f413f4b7e164f090e508ba090448f1376c6012649bbb6a917d45851313883", + "bytes": 188972, + "sampleRate": 24000, + "channels": 1, + "duration": 3.936, + "rms": 0.10000130469939268, + "peak": 0.401641845703125 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-sea.wav?v=0.2.3", + "sha256": "db2f235bee26ac804b5362e8e013b8f40c8da24fd3a34e0fb3b43c6d264feb36", + "bytes": 382508, + "sampleRate": 24000, + "channels": 1, + "duration": 7.968, + "rms": 0.10000145042993039, + "peak": 0.6843470335006714 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-furniture.wav?v=0.2.3", + "sha256": "442bdcb956f120c270e1f321feae0415c897de0183e468980fcc119b898b2a67", + "bytes": 403244, + "sampleRate": 24000, + "channels": 1, + "duration": 8.4, + "rms": 0.10000149119200713, + "peak": 0.5619068145751953 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-sea.wav?v=0.2.3", + "sha256": "b6dbe0af143ea775f05bd59a3d6af348bcc770ab378ac91ea75a56e06c326edf", + "bytes": 346796, + "sampleRate": 24000, + "channels": 1, + "duration": 7.224, + "rms": 0.10000144532868623, + "peak": 0.56494140625 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-sound.wav?v=0.2.3", + "sha256": "e9d636ff7f4777f38b1ff15bebdcec6fbde95b4b4b05625a7415b4cfa0025b59", + "bytes": 395180, + "sampleRate": 24000, + "channels": 1, + "duration": 8.232, + "rms": 0.10000164955559301, + "peak": 0.6114688515663147 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-apple.wav?v=0.2.3", + "sha256": "3ef42e276ff3500c3e197d149f29f79d6a0c1d5516ed1d5a2c57210333fded9c", + "bytes": 246572, + "sampleRate": 24000, + "channels": 1, + "duration": 5.136, + "rms": 0.10000144279302126, + "peak": 0.4701681435108185 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-market.wav?v=0.2.3", + "sha256": "356af25332bf2000ed349671f3ff39767929e1f4599af622c021f907d11fb7bf", + "bytes": 194732, + "sampleRate": 24000, + "channels": 1, + "duration": 4.056, + "rms": 0.10000132629820717, + "peak": 0.4022216796875 + }, + { + "url": "http://127.0.0.1:4173/audio/message-sea.wav?v=0.2.3", + "sha256": "28a461fbe03bffe2560030dea8b60715f7c0fe262dcf85b5b7f7daf483836382", + "bytes": 517292, + "sampleRate": 24000, + "channels": 1, + "duration": 10.776, + "rms": 0.10000130584401576, + "peak": 0.53521728515625 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-umbrella.wav?v=0.2.3", + "sha256": "c8988e604ba05d52597e561389541e8f9cda86e052279f1862bbf8399ead314e", + "bytes": 403244, + "sampleRate": 24000, + "channels": 1, + "duration": 8.4, + "rms": 0.10000148262660476, + "peak": 0.557830810546875 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-hat.wav?v=0.2.3", + "sha256": "308278ec2bd27d4224976a55632d1f7fa1edabb0792126d9d858a699c287aee4", + "bytes": 245420, + "sampleRate": 24000, + "channels": 1, + "duration": 5.112, + "rms": 0.10000140702099906, + "peak": 0.4498428404331207 + }, + { + "url": "http://127.0.0.1:4173/audio/password-furniture.wav?v=0.2.3", + "sha256": "fb2b631dd4e12120d08a84cce6450f9cd9cd68105d13d7001d808e7deaa1df4a", + "bytes": 233900, + "sampleRate": 24000, + "channels": 1, + "duration": 4.872, + "rms": 0.10000146718546903, + "peak": 0.4836573302745819 + }, + { + "url": "http://127.0.0.1:4173/audio/first-market.wav?v=0.2.3", + "sha256": "1e00b8f70a796cdebb0feb00c605fece7488b06915e6e036f54206f05e201e0c", + "bytes": 359468, + "sampleRate": 24000, + "channels": 1, + "duration": 7.488, + "rms": 0.10000152633991319, + "peak": 0.6390880942344666 + }, + { + "url": "http://127.0.0.1:4173/audio/first-meat.wav?v=0.2.3", + "sha256": "f51a37c1722fef581f7d642a4dcae7fcb9953b3c318dce971bf616cd1a81fecc", + "bytes": 345644, + "sampleRate": 24000, + "channels": 1, + "duration": 7.2, + "rms": 0.10000152244411063, + "peak": 0.5131382346153259 + }, + { + "url": "http://127.0.0.1:4173/audio/password-sea.wav?v=0.2.3", + "sha256": "03f45b8cb5b3dc72faf5c6e3d0e2a10cea6b60301ea400d0a4453596d2f0b337", + "bytes": 232748, + "sampleRate": 24000, + "channels": 1, + "duration": 4.848, + "rms": 0.10000144821976133, + "peak": 0.5339213013648987 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-sound.wav?v=0.2.3", + "sha256": "98387ccc7aab566f6487d4c250b2128082cc527e013a6f7b7bc4d0266ac295df", + "bytes": 394028, + "sampleRate": 24000, + "channels": 1, + "duration": 8.208, + "rms": 0.10000158053850364, + "peak": 0.5377971529960632 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-umbrella.wav?v=0.2.3", + "sha256": "5e59ef39113c3d5e106862356d715f4cef2862ef8ee02654a97e532675c1ac6d", + "bytes": 410156, + "sampleRate": 24000, + "channels": 1, + "duration": 8.544, + "rms": 0.10000147499132286, + "peak": 0.6748558282852173 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-hat.wav?v=0.2.3", + "sha256": "b01ef9762ac84e3eb757243bc9286c62f7d45444a821ae35ac36a8b095e1598a", + "bytes": 353708, + "sampleRate": 24000, + "channels": 1, + "duration": 7.368, + "rms": 0.10000153089787694, + "peak": 0.555206298828125 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-market.wav?v=0.2.3", + "sha256": "d89792da51c83ac49d27e55aa6d822a338899a5ee487b34b552748201e1522f6", + "bytes": 398636, + "sampleRate": 24000, + "channels": 1, + "duration": 8.304, + "rms": 0.10000149710778367, + "peak": 0.5728324055671692 + }, + { + "url": "http://127.0.0.1:4173/audio/password-umbrella.wav?v=0.2.3", + "sha256": "ab3ca6398c879971dc793eb25b472fcc0db72d76e386f11ef4d32c639f37c69d", + "bytes": 239660, + "sampleRate": 24000, + "channels": 1, + "duration": 4.992, + "rms": 0.100001426973271, + "peak": 0.4776757061481476 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-meat.wav?v=0.2.3", + "sha256": "48e91b3932d3798e852041a854b3ee08c72127e092c62083a47af6b99adff241", + "bytes": 403244, + "sampleRate": 24000, + "channels": 1, + "duration": 8.4, + "rms": 0.10000140336390047, + "peak": 0.481536865234375 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-hat.wav?v=0.2.3", + "sha256": "6e089a42fd7e65e82eec7186d369c926fb7fdac794365b2bd7658822fd92437c", + "bytes": 396332, + "sampleRate": 24000, + "channels": 1, + "duration": 8.256, + "rms": 0.1000015662548192, + "peak": 0.616748571395874 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-sound.wav?v=0.2.3", + "sha256": "4d00aa6114327f450a00dacbc7e7b572ebf1de4ce9dc2fe4b5505766cca71ce9", + "bytes": 353708, + "sampleRate": 24000, + "channels": 1, + "duration": 7.368, + "rms": 0.10000162019345048, + "peak": 0.5348368883132935 + }, + { + "url": "http://127.0.0.1:4173/audio/last-oil.wav?v=0.2.3", + "sha256": "b5ce34950b8b31b1baf6ce55410797f0d8aa5478a670d6eace87cf76d134d6d3", + "bytes": 337580, + "sampleRate": 24000, + "channels": 1, + "duration": 7.032, + "rms": 0.10000149980584365, + "peak": 0.55706787109375 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-sea.wav?v=0.2.3", + "sha256": "47aa31d757c9fb49c9b53a1c052d90a5ced4be57549d649850d9b48f8864045b", + "bytes": 191276, + "sampleRate": 24000, + "channels": 1, + "duration": 3.984, + "rms": 0.10000129182106483, + "peak": 0.388702392578125 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-sound.wav?v=0.2.3", + "sha256": "659eb0e2b06e6b165b46744769743e032e2282519f8486c57bc45e0f7d07a069", + "bytes": 240812, + "sampleRate": 24000, + "channels": 1, + "duration": 5.016, + "rms": 0.10000152909529536, + "peak": 0.45481735467910767 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-meat.wav?v=0.2.3", + "sha256": "6599d2fac73ea616a793151b4ce6f51af673988d630bac6219a77e78ae6cb34e", + "bytes": 380204, + "sampleRate": 24000, + "channels": 1, + "duration": 7.92, + "rms": 0.1000016061190976, + "peak": 0.5921201109886169 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-market.wav?v=0.2.3", + "sha256": "c855b449e0d4ace74681bfe68e5e7f0b063568827ae872017234dbe8ae119e4c", + "bytes": 356012, + "sampleRate": 24000, + "channels": 1, + "duration": 7.416, + "rms": 0.10000151456676445, + "peak": 0.5949888825416565 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-furniture.wav?v=0.2.3", + "sha256": "bf84dc6cff1f227924a3a62158d2fc18769fb0ca40b91418fa19e534dbf92f00", + "bytes": 397484, + "sampleRate": 24000, + "channels": 1, + "duration": 8.28, + "rms": 0.10000155255948041, + "peak": 0.6670430898666382 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-sound.wav?v=0.2.3", + "sha256": "5a603bc69979603afddcaeb6edf500a7c540b72405daeb33f5335d746b327da1", + "bytes": 397484, + "sampleRate": 24000, + "channels": 1, + "duration": 8.28, + "rms": 0.10000146491234768, + "peak": 0.469268798828125 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-meat.wav?v=0.2.3", + "sha256": "9183ef90b64f5ceaf3bb0178c689231ff3e9981d6ce889124a15f2a6e2b7a344", + "bytes": 395180, + "sampleRate": 24000, + "channels": 1, + "duration": 8.232, + "rms": 0.10000155087122137, + "peak": 0.5193029642105103 + }, + { + "url": "http://127.0.0.1:4173/audio/last-sound.wav?v=0.2.3", + "sha256": "ec9c49802aebeb6a8b898a1c0d8ad1daa127d2d64c905c197ed49a8e0c4eb64a", + "bytes": 354860, + "sampleRate": 24000, + "channels": 1, + "duration": 7.392, + "rms": 0.10000165748716579, + "peak": 0.5641041398048401 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-oil.wav?v=0.2.3", + "sha256": "5fb63e04520c312aa6b7b48b70c2f7c140b5ab480e5c6992edbc2ba85b9a06e7", + "bytes": 241964, + "sampleRate": 24000, + "channels": 1, + "duration": 5.04, + "rms": 0.10000143720418167, + "peak": 0.443586528301239 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-umbrella.wav?v=0.2.3", + "sha256": "92b54f04884ab915783945077efd8f3bd443849a1720f72168b6348cae1f8e85", + "bytes": 406700, + "sampleRate": 24000, + "channels": 1, + "duration": 8.472, + "rms": 0.10000140257790288, + "peak": 0.479034423828125 + }, + { + "url": "http://127.0.0.1:4173/audio/message-sound.wav?v=0.2.3", + "sha256": "1e682147dae8026ba78dc8f256c7f24acb3a6743bfd88a0fcc86096930eef078", + "bytes": 521900, + "sampleRate": 24000, + "channels": 1, + "duration": 10.872, + "rms": 0.10000138583471241, + "peak": 0.51953125 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-apple.wav?v=0.2.3", + "sha256": "ccd7327a3fb54d3320d049ffdced3bc17595861cee69429c0ee97182d454195b", + "bytes": 402092, + "sampleRate": 24000, + "channels": 1, + "duration": 8.376, + "rms": 0.10000140667715379, + "peak": 0.490325927734375 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-sea.wav?v=0.2.3", + "sha256": "5c91a36496e274d2be9c6fa8d9b506cd04f2a1b7ceb05ed1b7bb03fe7fca99d9", + "bytes": 399788, + "sampleRate": 24000, + "channels": 1, + "duration": 8.328, + "rms": 0.10000144241513113, + "peak": 0.5465559959411621 + }, + { + "url": "http://127.0.0.1:4173/audio/message-hat.wav?v=0.2.3", + "sha256": "5a713a8522b231bb8276805c014b385b9150b79f58ff2618446607e2b442495e", + "bytes": 518444, + "sampleRate": 24000, + "channels": 1, + "duration": 10.8, + "rms": 0.10000136927555209, + "peak": 0.587005615234375 + }, + { + "url": "http://127.0.0.1:4173/audio/password-meat.wav?v=0.2.3", + "sha256": "b009caadd56350d6a641ff17f0973e2b2724c183e1f45ae0bf3c483e237fa99e", + "bytes": 240812, + "sampleRate": 24000, + "channels": 1, + "duration": 5.016, + "rms": 0.10000148386024335, + "peak": 0.4978789687156677 + }, + { + "url": "http://127.0.0.1:4173/audio/message-market.wav?v=0.2.3", + "sha256": "9242d4cd6e0030e6b073e4d2360f84aa8a454d1749711cdb2d64c14f28a7ea20", + "bytes": 523052, + "sampleRate": 24000, + "channels": 1, + "duration": 10.896, + "rms": 0.10000133805787564, + "peak": 0.534820556640625 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-apple.wav?v=0.2.3", + "sha256": "8832f1b793ab3eedbe663875ea8dbeabb122c329bd5879437c71230b0418c3c8", + "bytes": 360620, + "sampleRate": 24000, + "channels": 1, + "duration": 7.512, + "rms": 0.10000145024648589, + "peak": 0.553558349609375 + }, + { + "url": "http://127.0.0.1:4173/audio/last-umbrella.wav?v=0.2.3", + "sha256": "c801293a34013a8d93d3289a2cc87cd3eed83f97ba4647f5060efa00b117a9ad", + "bytes": 370988, + "sampleRate": 24000, + "channels": 1, + "duration": 7.728, + "rms": 0.10000149360501835, + "peak": 0.59765625 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-sea.wav?v=0.2.3", + "sha256": "9233431d78ab4b144e3c33ad0cf0d49fc0fb91b29514343230ba32987b794bb3", + "bytes": 398636, + "sampleRate": 24000, + "channels": 1, + "duration": 8.304, + "rms": 0.10000134688905045, + "peak": 0.49616992473602295 + }, + { + "url": "http://127.0.0.1:4173/audio/password-apple.wav?v=0.2.3", + "sha256": "b6f5de3fe571fe3a7fdb722fe49250bcfeedef49475271e0ec76a7630907edd5", + "bytes": 235052, + "sampleRate": 24000, + "channels": 1, + "duration": 4.896, + "rms": 0.10000148212193387, + "peak": 0.4834437072277069 + }, + { + "url": "http://127.0.0.1:4173/audio/first-furniture.wav?v=0.2.3", + "sha256": "29f007b385b7182db1d8aeccad4fc3c260df5e66e14e52a46b0ef0fcd0ff3a0a", + "bytes": 364076, + "sampleRate": 24000, + "channels": 1, + "duration": 7.584, + "rms": 0.1000014551820741, + "peak": 0.5700552463531494 + }, + { + "url": "http://127.0.0.1:4173/audio/password-hat.wav?v=0.2.3", + "sha256": "e91bfc97df90a1675b6cd856880ac15c54de32cfc3b23603bdd1c2c5ac3ce6b8", + "bytes": 235052, + "sampleRate": 24000, + "channels": 1, + "duration": 4.896, + "rms": 0.10000146155157119, + "peak": 0.5059053301811218 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-oil.wav?v=0.2.3", + "sha256": "7a6b122b11c07da86c95fb78e2db2a70681b5219c63d6441fe56da1979ac1dc3", + "bytes": 334124, + "sampleRate": 24000, + "channels": 1, + "duration": 6.96, + "rms": 0.1000014880654183, + "peak": 0.539933443069458 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-meat.wav?v=0.2.3", + "sha256": "d416107cc05e7c5b92ca27100a10a8a9689de913346179945d5542de4a6bac0c", + "bytes": 342188, + "sampleRate": 24000, + "channels": 1, + "duration": 7.128, + "rms": 0.10000157422522808, + "peak": 0.510833740234375 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-apple.wav?v=0.2.3", + "sha256": "1bf2aef9a9f030af1a8fd7dee8f44aa420a397b3ba99b575feeb3dc7a63ec191", + "bytes": 395180, + "sampleRate": 24000, + "channels": 1, + "duration": 8.232, + "rms": 0.10000148399213096, + "peak": 0.563568115234375 + }, + { + "url": "http://127.0.0.1:4173/audio/first-oil.wav?v=0.2.3", + "sha256": "f415195e0cfc7ee711d09de7519e88eab62cc8b58d70772c83c3f5c27c267819", + "bytes": 335276, + "sampleRate": 24000, + "channels": 1, + "duration": 6.984, + "rms": 0.10000145886808136, + "peak": 0.5347453355789185 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-hat.wav?v=0.2.3", + "sha256": "31a6a4270bf368cda419094d87a303ac3cd5c22539786cb165f8044b0b8e9d6e", + "bytes": 402092, + "sampleRate": 24000, + "channels": 1, + "duration": 8.376, + "rms": 0.10000145804818952, + "peak": 0.541778564453125 + }, + { + "url": "http://127.0.0.1:4173/audio/message-furniture.wav?v=0.2.3", + "sha256": "26c331b7e12311236f4bb48f88918dfbf53cccd2f50b55741ea6ff4473e71dd8", + "bytes": 521900, + "sampleRate": 24000, + "channels": 1, + "duration": 10.872, + "rms": 0.10000134596838128, + "peak": 0.529327392578125 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-oil.wav?v=0.2.3", + "sha256": "3fa1e662a3af8f2726b17b2baa5bec2934406e6595ebc243c8380dd16e190977", + "bytes": 190124, + "sampleRate": 24000, + "channels": 1, + "duration": 3.96, + "rms": 0.10000134375667624, + "peak": 0.3817255198955536 + }, + { + "url": "http://127.0.0.1:4173/audio/last-sea.wav?v=0.2.3", + "sha256": "f755452e1da44674aa1df7d12edffa988091b89a394e7eb6d4a00eb721f07cbf", + "bytes": 345644, + "sampleRate": 24000, + "channels": 1, + "duration": 7.2, + "rms": 0.10000140162255576, + "peak": 0.591033935546875 + }, + { + "url": "http://127.0.0.1:4173/audio/password-oil.wav?v=0.2.3", + "sha256": "b472957b27ff98ea7b8894fa1ff12653f7e9f66f77870faa9e52a1c1bf116c41", + "bytes": 240812, + "sampleRate": 24000, + "channels": 1, + "duration": 5.016, + "rms": 0.10000146772662066, + "peak": 0.4945219159126282 + }, + { + "url": "http://127.0.0.1:4173/audio/first-umbrella.wav?v=0.2.3", + "sha256": "878e0bd2e6e4105f175aef51a028f6b141f3a2072be20f783193f3ba897a3ee0", + "bytes": 366380, + "sampleRate": 24000, + "channels": 1, + "duration": 7.632, + "rms": 0.10000147647908036, + "peak": 0.5700247287750244 + }, + { + "url": "http://127.0.0.1:4173/audio/last-apple.wav?v=0.2.3", + "sha256": "4cb2a8579fa3a7b91bb36363826ce8ca0d6d86e96e16a479e226a2802edd82f7", + "bytes": 356012, + "sampleRate": 24000, + "channels": 1, + "duration": 7.416, + "rms": 0.10000144523423521, + "peak": 0.622528076171875 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-market.wav?v=0.2.3", + "sha256": "68a5b899115a66ab225d610ec47b4de56cc8793657362bc38f533c06f741e4cc", + "bytes": 402092, + "sampleRate": 24000, + "channels": 1, + "duration": 8.376, + "rms": 0.10000160159844854, + "peak": 0.6822717785835266 + }, + { + "url": "http://127.0.0.1:4173/audio/message-oil.wav?v=0.2.3", + "sha256": "a2a71a7e5e07c81871a25c6cb7540c39aa0b32fc44f78cda66b5f34ace98d805", + "bytes": 509228, + "sampleRate": 24000, + "channels": 1, + "duration": 10.608, + "rms": 0.10000135184106136, + "peak": 0.51812744140625 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-meat.wav?v=0.2.3", + "sha256": "d36dfc395a5c53fbfa4abe9980db7bb59adfdac59e40318c4aca365365e3f2ab", + "bytes": 187820, + "sampleRate": 24000, + "channels": 1, + "duration": 3.912, + "rms": 0.1000013329979738, + "peak": 0.371124267578125 + }, + { + "url": "http://127.0.0.1:4173/audio/password-market.wav?v=0.2.3", + "sha256": "02e325fb753ef7a3ee585a03d2ca2aa3f1fbc58523b062222ae1136eeed7a95c", + "bytes": 230444, + "sampleRate": 24000, + "channels": 1, + "duration": 4.8, + "rms": 0.10000151520861549, + "peak": 0.48170414566993713 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-hat.wav?v=0.2.3", + "sha256": "4ff43dd042f4b5451e9fdeb3edd59f1e389a7d1dd488094587a3a9fc7dfffa44", + "bytes": 191276, + "sampleRate": 24000, + "channels": 1, + "duration": 3.984, + "rms": 0.10000132502946775, + "peak": 0.417083740234375 + }, + { + "url": "http://127.0.0.1:4173/audio/last-market.wav?v=0.2.3", + "sha256": "7857e87e9dbfe8fe849cc0b18c1d45b60916cb337328099c7a87a42c82e2821e", + "bytes": 359468, + "sampleRate": 24000, + "channels": 1, + "duration": 7.488, + "rms": 0.10000148064140717, + "peak": 0.600555419921875 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-meat.wav?v=0.2.3", + "sha256": "94f8a4f9e116a787e5ed052661d6de9ecf3ad8629db476661dd59ad03014b0c9", + "bytes": 244268, + "sampleRate": 24000, + "channels": 1, + "duration": 5.088, + "rms": 0.10000146176253134, + "peak": 0.44187748432159424 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-oil.wav?v=0.2.3", + "sha256": "55b2c7d6aa8bbce04edf8661882c9781da81c57f56217f99b80457a3bb895da0", + "bytes": 369836, + "sampleRate": 24000, + "channels": 1, + "duration": 7.704, + "rms": 0.10000146897241707, + "peak": 0.6239814162254333 + }, + { + "url": "http://127.0.0.1:4173/audio/first-sound.wav?v=0.2.3", + "sha256": "46f6adeed928a16af0700f1e8626cf8049f124632a04a5d10604426fb06f9596", + "bytes": 353708, + "sampleRate": 24000, + "channels": 1, + "duration": 7.368, + "rms": 0.10000157588418972, + "peak": 0.5189672708511353 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-umbrella.wav?v=0.2.3", + "sha256": "4b4c858a25659540f9dbc524664496fc6de61ab8c1627f3cfee8c9c744e11d5b", + "bytes": 247724, + "sampleRate": 24000, + "channels": 1, + "duration": 5.16, + "rms": 0.10000144286672341, + "peak": 0.46534621715545654 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-oil.wav?v=0.2.3", + "sha256": "3ca98682ff06d1d6b8af02c0fd5b2124f42266ac989884223eff4a9bbde1287a", + "bytes": 399788, + "sampleRate": 24000, + "channels": 1, + "duration": 8.328, + "rms": 0.10000149133669024, + "peak": 0.5243995189666748 + }, + { + "url": "http://127.0.0.1:4173/audio/first-sea.wav?v=0.2.3", + "sha256": "0f0b39314c5f7d7168d4854003c0c284e7bc3438cdc4d1d1c5adab7cb5ed30e5", + "bytes": 349100, + "sampleRate": 24000, + "channels": 1, + "duration": 7.272, + "rms": 0.10000142148394393, + "peak": 0.5717948079109192 + }, + { + "url": "http://127.0.0.1:4173/audio/last-meat.wav?v=0.2.3", + "sha256": "10f8ad4259ed8945c9da831e80b3902303c09caef96d400298599168fb1efed4", + "bytes": 346796, + "sampleRate": 24000, + "channels": 1, + "duration": 7.224, + "rms": 0.10000155834091913, + "peak": 0.537200927734375 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-umbrella.wav?v=0.2.3", + "sha256": "399ea2f681f755918f1117c8baba42739ceca64b307b999342f457a9235050b6", + "bytes": 368684, + "sampleRate": 24000, + "channels": 1, + "duration": 7.68, + "rms": 0.10000155028684544, + "peak": 0.569549560546875 + }, + { + "url": "http://127.0.0.1:4173/audio/message-meat.wav?v=0.2.3", + "sha256": "ce19735df079b54c171e775b6b365385a80160b9033442abab95b2b9c8505e1a", + "bytes": 512684, + "sampleRate": 24000, + "channels": 1, + "duration": 10.68, + "rms": 0.10000140834686953, + "peak": 0.5147705078125 + }, + { + "url": "http://127.0.0.1:4173/audio/message-umbrella.wav?v=0.2.3", + "sha256": "41d5866dae66600df4694a8312b531571d44cece6dba0e423e7c43d09d184819", + "bytes": 523052, + "sampleRate": 24000, + "channels": 1, + "duration": 10.896, + "rms": 0.10000120668553683, + "peak": 0.530364990234375 + }, + { + "url": "http://127.0.0.1:4173/audio/last-furniture.wav?v=0.2.3", + "sha256": "5ad4f776e35439d408abed0e66567d6b5cdc80fc54d579165472e474f1238776", + "bytes": 357164, + "sampleRate": 24000, + "channels": 1, + "duration": 7.44, + "rms": 0.10000152394963031, + "peak": 0.583587646484375 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-sea.wav?v=0.2.3", + "sha256": "8838d6a1ee8a790427dc5aa761e70b3d8872af62086efeed743297ff7f8b8a06", + "bytes": 243116, + "sampleRate": 24000, + "channels": 1, + "duration": 5.064, + "rms": 0.10000138788281714, + "peak": 0.45013427734375 + }, + { + "url": "http://127.0.0.1:4173/audio/message-apple.wav?v=0.2.3", + "sha256": "d85e6f47d871369f00de2274139e5ad6b4b5686b5e20e248df0ed6b9a320d942", + "bytes": 517292, + "sampleRate": 24000, + "channels": 1, + "duration": 10.776, + "rms": 0.10000133916854889, + "peak": 0.525360107421875 + }, + { + "url": "http://127.0.0.1:4173/audio/last-hat.wav?v=0.2.3", + "sha256": "bdaf8fbc54df8061e9e58aa8c14b3044a6e863dc54973ee3ee6ae2c5ae1a28f1", + "bytes": 354860, + "sampleRate": 24000, + "channels": 1, + "duration": 7.392, + "rms": 0.10000152378078818, + "peak": 0.550079345703125 + }, + { + "url": "http://127.0.0.1:4173/audio/first-apple.wav?v=0.2.3", + "sha256": "7c1dbcb3082055df2b8f087f7e906ec867c92f679de0894c34740c05e61a4bc1", + "bytes": 359468, + "sampleRate": 24000, + "channels": 1, + "duration": 7.488, + "rms": 0.10000143468253914, + "peak": 0.57977294921875 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-umbrella.wav?v=0.2.3", + "sha256": "8d3e8e8bc97e5fe3f3362184c4abb12f01a882a1f1174d2644f0f70aac677c0a", + "bytes": 192428, + "sampleRate": 24000, + "channels": 1, + "duration": 4.008, + "rms": 0.10000131475711933, + "peak": 0.385650634765625 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-furniture.wav?v=0.2.3", + "sha256": "5c004a7b2f5a4a918c9f689f1a2dcb219a620ed14313f40a9655b36dbf64948d", + "bytes": 398636, + "sampleRate": 24000, + "channels": 1, + "duration": 8.304, + "rms": 0.10000141690978645, + "peak": 0.487396240234375 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-tree.wav?v=0.2.3", + "sha256": "122f496834fb16d6da47f801e50e46e272e4e934af959467d1db4e490f79be7a", + "bytes": 183212, + "sampleRate": 24000, + "channels": 1, + "duration": 3.816, + "rms": 0.10000140751524371, + "peak": 0.36920166015625 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-tree.wav?v=0.2.3", + "sha256": "00d8e77ec0371971d632724d91f8cf8d947bfb83c582a513b6421be4c457a1da", + "bytes": 241964, + "sampleRate": 24000, + "channels": 1, + "duration": 5.04, + "rms": 0.10000146153372488, + "peak": 0.4585406184196472 + }, + { + "url": "http://127.0.0.1:4173/audio/message-tree.wav?v=0.2.3", + "sha256": "5d684aa710a63d36ed8dcc2a8bfbdd5c71b0b1c63dad2a324adecb76591e85b8", + "bytes": 540332, + "sampleRate": 24000, + "channels": 1, + "duration": 11.256, + "rms": 0.10000132424453942, + "peak": 0.5262451171875 + }, + { + "url": "http://127.0.0.1:4173/audio/last-tree.wav?v=0.2.3", + "sha256": "589e56d940a3c9e80ec02ae0b2dd93463fdc85ef019a753fcd0fded0752055f9", + "bytes": 382508, + "sampleRate": 24000, + "channels": 1, + "duration": 7.968, + "rms": 0.10000149781706567, + "peak": 0.5807672142982483 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-tree.wav?v=0.2.3", + "sha256": "341888c75275c13eb31058f53a1d4276be0daa0a1b5a3a45522036928b83b0c1", + "bytes": 382508, + "sampleRate": 24000, + "channels": 1, + "duration": 7.968, + "rms": 0.1000014873304774, + "peak": 0.600024402141571 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-tree.wav?v=0.2.3", + "sha256": "8735c3d9672561ca237fa87317beec2878492eb9063d6048d5b214423561acc1", + "bytes": 423980, + "sampleRate": 24000, + "channels": 1, + "duration": 8.832, + "rms": 0.10000150947389638, + "peak": 0.6187627911567688 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-furniture.wav?v=0.2.3", + "sha256": "52cb92cdb8ee92b6f581c9d68dbc346f180c470564809ba57185429c9eb84127", + "bytes": 186668, + "sampleRate": 24000, + "channels": 1, + "duration": 3.888, + "rms": 0.1000013480244084, + "peak": 0.387054443359375 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-tree.wav?v=0.2.3", + "sha256": "bc8e54f5407e8866bf1ca1ddfd4f6c63d85fee29bd9e430c7dd33e87974fc5b8", + "bytes": 409004, + "sampleRate": 24000, + "channels": 1, + "duration": 8.52, + "rms": 0.10000146559822108, + "peak": 0.5486617684364319 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-tree.wav?v=0.2.3", + "sha256": "b8e8bbe6b8b14727efd953fae9d4aed2caeb004055d52f611c6378322847edbe", + "bytes": 400940, + "sampleRate": 24000, + "channels": 1, + "duration": 8.352, + "rms": 0.10000144970799159, + "peak": 0.470611572265625 + }, + { + "url": "http://127.0.0.1:4173/audio/first-tree.wav?v=0.2.3", + "sha256": "3178230fd5850b6277a2153b438ec5289720e3db7ac929914cc213964f004bd5", + "bytes": 379052, + "sampleRate": 24000, + "channels": 1, + "duration": 7.896, + "rms": 0.10000144270360484, + "peak": 0.5833613276481628 + }, + { + "url": "http://127.0.0.1:4173/audio/password-tree.wav?v=0.2.3", + "sha256": "67da8147296e35134ec254bc82b58317630061b2c64d2d63c4be197ce8692d50", + "bytes": 233900, + "sampleRate": 24000, + "channels": 1, + "duration": 4.872, + "rms": 0.10000156310809623, + "peak": 0.4904019236564636 + } + ] +} diff --git a/.agent/evidence-v0.2.3/review-fixes/browser-final/audio-음성·현장음-109개-versioned-WAV를-실제-Chrome에서-해시·디코드-검증한다-mobile/browser-audio-integrity.json b/.agent/evidence-v0.2.3/review-fixes/browser-final/audio-음성·현장음-109개-versioned-WAV를-실제-Chrome에서-해시·디코드-검증한다-mobile/browser-audio-integrity.json new file mode 100644 index 0000000..2d4d5ea --- /dev/null +++ b/.agent/evidence-v0.2.3/review-fixes/browser-final/audio-음성·현장음-109개-versioned-WAV를-실제-Chrome에서-해시·디코드-검증한다-mobile/browser-audio-integrity.json @@ -0,0 +1,1098 @@ +{ + "chrome": "146.0.7680.80", + "external": [], + "errors": [], + "failed": [], + "files": [ + { + "url": "http://127.0.0.1:4173/audio/intro.wav?v=0.2.3", + "sha256": "90d9f46e6e3f9c8a0c1a781096df54d7809ef4ad38b289508ef7b8c0411465ce", + "bytes": 338732, + "sampleRate": 24000, + "channels": 1, + "duration": 7.056, + "rms": 0.10000144992850359, + "peak": 0.4998626708984375 + }, + { + "url": "http://127.0.0.1:4173/ambience/street.wav?v=0.2.3", + "sha256": "a8bffa201b174618955bc51b860167169125304811aabe2086b0bb35b06c3ae1", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.07999880181401388, + "peak": 0.3967711329460144 + }, + { + "url": "http://127.0.0.1:4173/ambience/mall.wav?v=0.2.3", + "sha256": "6e9171f549cacadfaeedd57a41c8e2a76b0e789f5c9a97af029a8d3558c9f145", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.07999878530235176, + "peak": 0.5546875 + }, + { + "url": "http://127.0.0.1:4173/ambience/theater.wav?v=0.2.3", + "sha256": "2d6a444fb7874cdf6b2d8a741a69175299b112eb66834912c025437d8277d635", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.07999878601263052, + "peak": 0.495086669921875 + }, + { + "url": "http://127.0.0.1:4173/ambience/department.wav?v=0.2.3", + "sha256": "aa43f3d1d3e7c2b1f8ace24ecbda45d0ea3a031db941c39506dc6c1665b8efa7", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.07999879026023995, + "peak": 0.4749900698661804 + }, + { + "url": "http://127.0.0.1:4173/ambience/market.wav?v=0.2.3", + "sha256": "4287e971a12767f70da714e0c1aff30125268f9c3faf07ebfbcc0d2904f4a312", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.049222823565976834, + "peak": 0.8499755859375 + }, + { + "url": "http://127.0.0.1:4173/ambience/subway.wav?v=0.2.3", + "sha256": "9faf70b68617d267b367a0f3692ed90015458543ab4b0844f6c704e6a724728f", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.079998775670051, + "peak": 0.42530596256256104 + }, + { + "url": "http://127.0.0.1:4173/ambience/cafe.wav?v=0.2.3", + "sha256": "8db06f3f09bbd8409573ba4874c7ccdd1e7e825c8a61989a4efe66206a66c2d2", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.07999881107742599, + "peak": 0.3971068561077118 + }, + { + "url": "http://127.0.0.1:4173/ambience/rain.wav?v=0.2.3", + "sha256": "f4315084e820f742b0709de5bb0d1abd3d5af1730620e08c2948b70347356dd9", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.011384798571746246, + "peak": 0.1024169921875 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-apple.wav?v=0.2.3", + "sha256": "cb7da4e9a1288cac64d168b241f27d7d2bc2dfecace58744f9bbf2792dfad04e", + "bytes": 397484, + "sampleRate": 24000, + "channels": 1, + "duration": 8.28, + "rms": 0.10000142448574952, + "peak": 0.6414685249328613 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-market.wav?v=0.2.3", + "sha256": "b8d25b867497adcd0fe7c8b6a8a8d2e7a52965956738a83e53f58735708773f9", + "bytes": 405548, + "sampleRate": 24000, + "channels": 1, + "duration": 8.448, + "rms": 0.10000141405173993, + "peak": 0.491485595703125 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-sound.wav?v=0.2.3", + "sha256": "34e4d9758d2ed448646fda364610e34779c84794403d9051ab3d8c1d33e2c80c", + "bytes": 184364, + "sampleRate": 24000, + "channels": 1, + "duration": 3.84, + "rms": 0.10000138709171018, + "peak": 0.386322021484375 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-furniture.wav?v=0.2.3", + "sha256": "b45b1afc8d9b534ff3e0a2a2ecb99efc1f4e40d41f89f55c4ed8ba94ad6d76d4", + "bytes": 354860, + "sampleRate": 24000, + "channels": 1, + "duration": 7.392, + "rms": 0.1000015072973225, + "peak": 0.5576171875 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-market.wav?v=0.2.3", + "sha256": "cefa0e95649ea6bd1df4c8dfccd2b74b4f4c028714420ce1087b61db2f2a8d47", + "bytes": 248876, + "sampleRate": 24000, + "channels": 1, + "duration": 5.184, + "rms": 0.10000142548167161, + "peak": 0.4857020676136017 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-oil.wav?v=0.2.3", + "sha256": "f6eff0cdddcad9790351491e60c53cb2a70d222033a583652f2de0b8cd6abcc7", + "bytes": 406700, + "sampleRate": 24000, + "channels": 1, + "duration": 8.472, + "rms": 0.10000139122025363, + "peak": 0.470794677734375 + }, + { + "url": "http://127.0.0.1:4173/audio/first-hat.wav?v=0.2.3", + "sha256": "17c8cde90567e7574b0c0702663bd70713054089ee920241b5444d9b7869eef5", + "bytes": 357164, + "sampleRate": 24000, + "channels": 1, + "duration": 7.44, + "rms": 0.10000152904790521, + "peak": 0.5312662124633789 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-furniture.wav?v=0.2.3", + "sha256": "af82e03b686635c3356e706fe5b05c1231aeaaeab33f275aa5b8714988c65d43", + "bytes": 241964, + "sampleRate": 24000, + "channels": 1, + "duration": 5.04, + "rms": 0.10000137346142077, + "peak": 0.4852443039417267 + }, + { + "url": "http://127.0.0.1:4173/audio/password-sound.wav?v=0.2.3", + "sha256": "044aafff08a19e39f21e58b963644715a987cd155896998769ef8e9ce6449628", + "bytes": 236204, + "sampleRate": 24000, + "channels": 1, + "duration": 4.92, + "rms": 0.10000156641621728, + "peak": 0.4621112644672394 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-hat.wav?v=0.2.3", + "sha256": "f9f98c91cfbcfcb106eef7d5d3795a9cf3c3aab7e19a60f13d7dffe284d19f86", + "bytes": 398636, + "sampleRate": 24000, + "channels": 1, + "duration": 8.304, + "rms": 0.10000141071544869, + "peak": 0.470977783203125 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-apple.wav?v=0.2.3", + "sha256": "7c8f413f4b7e164f090e508ba090448f1376c6012649bbb6a917d45851313883", + "bytes": 188972, + "sampleRate": 24000, + "channels": 1, + "duration": 3.936, + "rms": 0.10000130469939268, + "peak": 0.401641845703125 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-sea.wav?v=0.2.3", + "sha256": "db2f235bee26ac804b5362e8e013b8f40c8da24fd3a34e0fb3b43c6d264feb36", + "bytes": 382508, + "sampleRate": 24000, + "channels": 1, + "duration": 7.968, + "rms": 0.10000145042993039, + "peak": 0.6843470335006714 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-furniture.wav?v=0.2.3", + "sha256": "442bdcb956f120c270e1f321feae0415c897de0183e468980fcc119b898b2a67", + "bytes": 403244, + "sampleRate": 24000, + "channels": 1, + "duration": 8.4, + "rms": 0.10000149119200713, + "peak": 0.5619068145751953 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-sea.wav?v=0.2.3", + "sha256": "b6dbe0af143ea775f05bd59a3d6af348bcc770ab378ac91ea75a56e06c326edf", + "bytes": 346796, + "sampleRate": 24000, + "channels": 1, + "duration": 7.224, + "rms": 0.10000144532868623, + "peak": 0.56494140625 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-sound.wav?v=0.2.3", + "sha256": "e9d636ff7f4777f38b1ff15bebdcec6fbde95b4b4b05625a7415b4cfa0025b59", + "bytes": 395180, + "sampleRate": 24000, + "channels": 1, + "duration": 8.232, + "rms": 0.10000164955559301, + "peak": 0.6114688515663147 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-apple.wav?v=0.2.3", + "sha256": "3ef42e276ff3500c3e197d149f29f79d6a0c1d5516ed1d5a2c57210333fded9c", + "bytes": 246572, + "sampleRate": 24000, + "channels": 1, + "duration": 5.136, + "rms": 0.10000144279302126, + "peak": 0.4701681435108185 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-market.wav?v=0.2.3", + "sha256": "356af25332bf2000ed349671f3ff39767929e1f4599af622c021f907d11fb7bf", + "bytes": 194732, + "sampleRate": 24000, + "channels": 1, + "duration": 4.056, + "rms": 0.10000132629820717, + "peak": 0.4022216796875 + }, + { + "url": "http://127.0.0.1:4173/audio/message-sea.wav?v=0.2.3", + "sha256": "28a461fbe03bffe2560030dea8b60715f7c0fe262dcf85b5b7f7daf483836382", + "bytes": 517292, + "sampleRate": 24000, + "channels": 1, + "duration": 10.776, + "rms": 0.10000130584401576, + "peak": 0.53521728515625 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-umbrella.wav?v=0.2.3", + "sha256": "c8988e604ba05d52597e561389541e8f9cda86e052279f1862bbf8399ead314e", + "bytes": 403244, + "sampleRate": 24000, + "channels": 1, + "duration": 8.4, + "rms": 0.10000148262660476, + "peak": 0.557830810546875 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-hat.wav?v=0.2.3", + "sha256": "308278ec2bd27d4224976a55632d1f7fa1edabb0792126d9d858a699c287aee4", + "bytes": 245420, + "sampleRate": 24000, + "channels": 1, + "duration": 5.112, + "rms": 0.10000140702099906, + "peak": 0.4498428404331207 + }, + { + "url": "http://127.0.0.1:4173/audio/password-furniture.wav?v=0.2.3", + "sha256": "fb2b631dd4e12120d08a84cce6450f9cd9cd68105d13d7001d808e7deaa1df4a", + "bytes": 233900, + "sampleRate": 24000, + "channels": 1, + "duration": 4.872, + "rms": 0.10000146718546903, + "peak": 0.4836573302745819 + }, + { + "url": "http://127.0.0.1:4173/audio/first-market.wav?v=0.2.3", + "sha256": "1e00b8f70a796cdebb0feb00c605fece7488b06915e6e036f54206f05e201e0c", + "bytes": 359468, + "sampleRate": 24000, + "channels": 1, + "duration": 7.488, + "rms": 0.10000152633991319, + "peak": 0.6390880942344666 + }, + { + "url": "http://127.0.0.1:4173/audio/first-meat.wav?v=0.2.3", + "sha256": "f51a37c1722fef581f7d642a4dcae7fcb9953b3c318dce971bf616cd1a81fecc", + "bytes": 345644, + "sampleRate": 24000, + "channels": 1, + "duration": 7.2, + "rms": 0.10000152244411063, + "peak": 0.5131382346153259 + }, + { + "url": "http://127.0.0.1:4173/audio/password-sea.wav?v=0.2.3", + "sha256": "03f45b8cb5b3dc72faf5c6e3d0e2a10cea6b60301ea400d0a4453596d2f0b337", + "bytes": 232748, + "sampleRate": 24000, + "channels": 1, + "duration": 4.848, + "rms": 0.10000144821976133, + "peak": 0.5339213013648987 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-sound.wav?v=0.2.3", + "sha256": "98387ccc7aab566f6487d4c250b2128082cc527e013a6f7b7bc4d0266ac295df", + "bytes": 394028, + "sampleRate": 24000, + "channels": 1, + "duration": 8.208, + "rms": 0.10000158053850364, + "peak": 0.5377971529960632 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-umbrella.wav?v=0.2.3", + "sha256": "5e59ef39113c3d5e106862356d715f4cef2862ef8ee02654a97e532675c1ac6d", + "bytes": 410156, + "sampleRate": 24000, + "channels": 1, + "duration": 8.544, + "rms": 0.10000147499132286, + "peak": 0.6748558282852173 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-hat.wav?v=0.2.3", + "sha256": "b01ef9762ac84e3eb757243bc9286c62f7d45444a821ae35ac36a8b095e1598a", + "bytes": 353708, + "sampleRate": 24000, + "channels": 1, + "duration": 7.368, + "rms": 0.10000153089787694, + "peak": 0.555206298828125 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-market.wav?v=0.2.3", + "sha256": "d89792da51c83ac49d27e55aa6d822a338899a5ee487b34b552748201e1522f6", + "bytes": 398636, + "sampleRate": 24000, + "channels": 1, + "duration": 8.304, + "rms": 0.10000149710778367, + "peak": 0.5728324055671692 + }, + { + "url": "http://127.0.0.1:4173/audio/password-umbrella.wav?v=0.2.3", + "sha256": "ab3ca6398c879971dc793eb25b472fcc0db72d76e386f11ef4d32c639f37c69d", + "bytes": 239660, + "sampleRate": 24000, + "channels": 1, + "duration": 4.992, + "rms": 0.100001426973271, + "peak": 0.4776757061481476 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-meat.wav?v=0.2.3", + "sha256": "48e91b3932d3798e852041a854b3ee08c72127e092c62083a47af6b99adff241", + "bytes": 403244, + "sampleRate": 24000, + "channels": 1, + "duration": 8.4, + "rms": 0.10000140336390047, + "peak": 0.481536865234375 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-hat.wav?v=0.2.3", + "sha256": "6e089a42fd7e65e82eec7186d369c926fb7fdac794365b2bd7658822fd92437c", + "bytes": 396332, + "sampleRate": 24000, + "channels": 1, + "duration": 8.256, + "rms": 0.1000015662548192, + "peak": 0.616748571395874 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-sound.wav?v=0.2.3", + "sha256": "4d00aa6114327f450a00dacbc7e7b572ebf1de4ce9dc2fe4b5505766cca71ce9", + "bytes": 353708, + "sampleRate": 24000, + "channels": 1, + "duration": 7.368, + "rms": 0.10000162019345048, + "peak": 0.5348368883132935 + }, + { + "url": "http://127.0.0.1:4173/audio/last-oil.wav?v=0.2.3", + "sha256": "b5ce34950b8b31b1baf6ce55410797f0d8aa5478a670d6eace87cf76d134d6d3", + "bytes": 337580, + "sampleRate": 24000, + "channels": 1, + "duration": 7.032, + "rms": 0.10000149980584365, + "peak": 0.55706787109375 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-sea.wav?v=0.2.3", + "sha256": "47aa31d757c9fb49c9b53a1c052d90a5ced4be57549d649850d9b48f8864045b", + "bytes": 191276, + "sampleRate": 24000, + "channels": 1, + "duration": 3.984, + "rms": 0.10000129182106483, + "peak": 0.388702392578125 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-sound.wav?v=0.2.3", + "sha256": "659eb0e2b06e6b165b46744769743e032e2282519f8486c57bc45e0f7d07a069", + "bytes": 240812, + "sampleRate": 24000, + "channels": 1, + "duration": 5.016, + "rms": 0.10000152909529536, + "peak": 0.45481735467910767 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-meat.wav?v=0.2.3", + "sha256": "6599d2fac73ea616a793151b4ce6f51af673988d630bac6219a77e78ae6cb34e", + "bytes": 380204, + "sampleRate": 24000, + "channels": 1, + "duration": 7.92, + "rms": 0.1000016061190976, + "peak": 0.5921201109886169 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-market.wav?v=0.2.3", + "sha256": "c855b449e0d4ace74681bfe68e5e7f0b063568827ae872017234dbe8ae119e4c", + "bytes": 356012, + "sampleRate": 24000, + "channels": 1, + "duration": 7.416, + "rms": 0.10000151456676445, + "peak": 0.5949888825416565 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-furniture.wav?v=0.2.3", + "sha256": "bf84dc6cff1f227924a3a62158d2fc18769fb0ca40b91418fa19e534dbf92f00", + "bytes": 397484, + "sampleRate": 24000, + "channels": 1, + "duration": 8.28, + "rms": 0.10000155255948041, + "peak": 0.6670430898666382 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-sound.wav?v=0.2.3", + "sha256": "5a603bc69979603afddcaeb6edf500a7c540b72405daeb33f5335d746b327da1", + "bytes": 397484, + "sampleRate": 24000, + "channels": 1, + "duration": 8.28, + "rms": 0.10000146491234768, + "peak": 0.469268798828125 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-meat.wav?v=0.2.3", + "sha256": "9183ef90b64f5ceaf3bb0178c689231ff3e9981d6ce889124a15f2a6e2b7a344", + "bytes": 395180, + "sampleRate": 24000, + "channels": 1, + "duration": 8.232, + "rms": 0.10000155087122137, + "peak": 0.5193029642105103 + }, + { + "url": "http://127.0.0.1:4173/audio/last-sound.wav?v=0.2.3", + "sha256": "ec9c49802aebeb6a8b898a1c0d8ad1daa127d2d64c905c197ed49a8e0c4eb64a", + "bytes": 354860, + "sampleRate": 24000, + "channels": 1, + "duration": 7.392, + "rms": 0.10000165748716579, + "peak": 0.5641041398048401 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-oil.wav?v=0.2.3", + "sha256": "5fb63e04520c312aa6b7b48b70c2f7c140b5ab480e5c6992edbc2ba85b9a06e7", + "bytes": 241964, + "sampleRate": 24000, + "channels": 1, + "duration": 5.04, + "rms": 0.10000143720418167, + "peak": 0.443586528301239 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-umbrella.wav?v=0.2.3", + "sha256": "92b54f04884ab915783945077efd8f3bd443849a1720f72168b6348cae1f8e85", + "bytes": 406700, + "sampleRate": 24000, + "channels": 1, + "duration": 8.472, + "rms": 0.10000140257790288, + "peak": 0.479034423828125 + }, + { + "url": "http://127.0.0.1:4173/audio/message-sound.wav?v=0.2.3", + "sha256": "1e682147dae8026ba78dc8f256c7f24acb3a6743bfd88a0fcc86096930eef078", + "bytes": 521900, + "sampleRate": 24000, + "channels": 1, + "duration": 10.872, + "rms": 0.10000138583471241, + "peak": 0.51953125 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-apple.wav?v=0.2.3", + "sha256": "ccd7327a3fb54d3320d049ffdced3bc17595861cee69429c0ee97182d454195b", + "bytes": 402092, + "sampleRate": 24000, + "channels": 1, + "duration": 8.376, + "rms": 0.10000140667715379, + "peak": 0.490325927734375 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-sea.wav?v=0.2.3", + "sha256": "5c91a36496e274d2be9c6fa8d9b506cd04f2a1b7ceb05ed1b7bb03fe7fca99d9", + "bytes": 399788, + "sampleRate": 24000, + "channels": 1, + "duration": 8.328, + "rms": 0.10000144241513113, + "peak": 0.5465559959411621 + }, + { + "url": "http://127.0.0.1:4173/audio/message-hat.wav?v=0.2.3", + "sha256": "5a713a8522b231bb8276805c014b385b9150b79f58ff2618446607e2b442495e", + "bytes": 518444, + "sampleRate": 24000, + "channels": 1, + "duration": 10.8, + "rms": 0.10000136927555209, + "peak": 0.587005615234375 + }, + { + "url": "http://127.0.0.1:4173/audio/password-meat.wav?v=0.2.3", + "sha256": "b009caadd56350d6a641ff17f0973e2b2724c183e1f45ae0bf3c483e237fa99e", + "bytes": 240812, + "sampleRate": 24000, + "channels": 1, + "duration": 5.016, + "rms": 0.10000148386024335, + "peak": 0.4978789687156677 + }, + { + "url": "http://127.0.0.1:4173/audio/message-market.wav?v=0.2.3", + "sha256": "9242d4cd6e0030e6b073e4d2360f84aa8a454d1749711cdb2d64c14f28a7ea20", + "bytes": 523052, + "sampleRate": 24000, + "channels": 1, + "duration": 10.896, + "rms": 0.10000133805787564, + "peak": 0.534820556640625 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-apple.wav?v=0.2.3", + "sha256": "8832f1b793ab3eedbe663875ea8dbeabb122c329bd5879437c71230b0418c3c8", + "bytes": 360620, + "sampleRate": 24000, + "channels": 1, + "duration": 7.512, + "rms": 0.10000145024648589, + "peak": 0.553558349609375 + }, + { + "url": "http://127.0.0.1:4173/audio/last-umbrella.wav?v=0.2.3", + "sha256": "c801293a34013a8d93d3289a2cc87cd3eed83f97ba4647f5060efa00b117a9ad", + "bytes": 370988, + "sampleRate": 24000, + "channels": 1, + "duration": 7.728, + "rms": 0.10000149360501835, + "peak": 0.59765625 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-sea.wav?v=0.2.3", + "sha256": "9233431d78ab4b144e3c33ad0cf0d49fc0fb91b29514343230ba32987b794bb3", + "bytes": 398636, + "sampleRate": 24000, + "channels": 1, + "duration": 8.304, + "rms": 0.10000134688905045, + "peak": 0.49616992473602295 + }, + { + "url": "http://127.0.0.1:4173/audio/password-apple.wav?v=0.2.3", + "sha256": "b6f5de3fe571fe3a7fdb722fe49250bcfeedef49475271e0ec76a7630907edd5", + "bytes": 235052, + "sampleRate": 24000, + "channels": 1, + "duration": 4.896, + "rms": 0.10000148212193387, + "peak": 0.4834437072277069 + }, + { + "url": "http://127.0.0.1:4173/audio/first-furniture.wav?v=0.2.3", + "sha256": "29f007b385b7182db1d8aeccad4fc3c260df5e66e14e52a46b0ef0fcd0ff3a0a", + "bytes": 364076, + "sampleRate": 24000, + "channels": 1, + "duration": 7.584, + "rms": 0.1000014551820741, + "peak": 0.5700552463531494 + }, + { + "url": "http://127.0.0.1:4173/audio/password-hat.wav?v=0.2.3", + "sha256": "e91bfc97df90a1675b6cd856880ac15c54de32cfc3b23603bdd1c2c5ac3ce6b8", + "bytes": 235052, + "sampleRate": 24000, + "channels": 1, + "duration": 4.896, + "rms": 0.10000146155157119, + "peak": 0.5059053301811218 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-oil.wav?v=0.2.3", + "sha256": "7a6b122b11c07da86c95fb78e2db2a70681b5219c63d6441fe56da1979ac1dc3", + "bytes": 334124, + "sampleRate": 24000, + "channels": 1, + "duration": 6.96, + "rms": 0.1000014880654183, + "peak": 0.539933443069458 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-meat.wav?v=0.2.3", + "sha256": "d416107cc05e7c5b92ca27100a10a8a9689de913346179945d5542de4a6bac0c", + "bytes": 342188, + "sampleRate": 24000, + "channels": 1, + "duration": 7.128, + "rms": 0.10000157422522808, + "peak": 0.510833740234375 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-apple.wav?v=0.2.3", + "sha256": "1bf2aef9a9f030af1a8fd7dee8f44aa420a397b3ba99b575feeb3dc7a63ec191", + "bytes": 395180, + "sampleRate": 24000, + "channels": 1, + "duration": 8.232, + "rms": 0.10000148399213096, + "peak": 0.563568115234375 + }, + { + "url": "http://127.0.0.1:4173/audio/first-oil.wav?v=0.2.3", + "sha256": "f415195e0cfc7ee711d09de7519e88eab62cc8b58d70772c83c3f5c27c267819", + "bytes": 335276, + "sampleRate": 24000, + "channels": 1, + "duration": 6.984, + "rms": 0.10000145886808136, + "peak": 0.5347453355789185 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-hat.wav?v=0.2.3", + "sha256": "31a6a4270bf368cda419094d87a303ac3cd5c22539786cb165f8044b0b8e9d6e", + "bytes": 402092, + "sampleRate": 24000, + "channels": 1, + "duration": 8.376, + "rms": 0.10000145804818952, + "peak": 0.541778564453125 + }, + { + "url": "http://127.0.0.1:4173/audio/message-furniture.wav?v=0.2.3", + "sha256": "26c331b7e12311236f4bb48f88918dfbf53cccd2f50b55741ea6ff4473e71dd8", + "bytes": 521900, + "sampleRate": 24000, + "channels": 1, + "duration": 10.872, + "rms": 0.10000134596838128, + "peak": 0.529327392578125 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-oil.wav?v=0.2.3", + "sha256": "3fa1e662a3af8f2726b17b2baa5bec2934406e6595ebc243c8380dd16e190977", + "bytes": 190124, + "sampleRate": 24000, + "channels": 1, + "duration": 3.96, + "rms": 0.10000134375667624, + "peak": 0.3817255198955536 + }, + { + "url": "http://127.0.0.1:4173/audio/last-sea.wav?v=0.2.3", + "sha256": "f755452e1da44674aa1df7d12edffa988091b89a394e7eb6d4a00eb721f07cbf", + "bytes": 345644, + "sampleRate": 24000, + "channels": 1, + "duration": 7.2, + "rms": 0.10000140162255576, + "peak": 0.591033935546875 + }, + { + "url": "http://127.0.0.1:4173/audio/password-oil.wav?v=0.2.3", + "sha256": "b472957b27ff98ea7b8894fa1ff12653f7e9f66f77870faa9e52a1c1bf116c41", + "bytes": 240812, + "sampleRate": 24000, + "channels": 1, + "duration": 5.016, + "rms": 0.10000146772662066, + "peak": 0.4945219159126282 + }, + { + "url": "http://127.0.0.1:4173/audio/first-umbrella.wav?v=0.2.3", + "sha256": "878e0bd2e6e4105f175aef51a028f6b141f3a2072be20f783193f3ba897a3ee0", + "bytes": 366380, + "sampleRate": 24000, + "channels": 1, + "duration": 7.632, + "rms": 0.10000147647908036, + "peak": 0.5700247287750244 + }, + { + "url": "http://127.0.0.1:4173/audio/last-apple.wav?v=0.2.3", + "sha256": "4cb2a8579fa3a7b91bb36363826ce8ca0d6d86e96e16a479e226a2802edd82f7", + "bytes": 356012, + "sampleRate": 24000, + "channels": 1, + "duration": 7.416, + "rms": 0.10000144523423521, + "peak": 0.622528076171875 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-market.wav?v=0.2.3", + "sha256": "68a5b899115a66ab225d610ec47b4de56cc8793657362bc38f533c06f741e4cc", + "bytes": 402092, + "sampleRate": 24000, + "channels": 1, + "duration": 8.376, + "rms": 0.10000160159844854, + "peak": 0.6822717785835266 + }, + { + "url": "http://127.0.0.1:4173/audio/message-oil.wav?v=0.2.3", + "sha256": "a2a71a7e5e07c81871a25c6cb7540c39aa0b32fc44f78cda66b5f34ace98d805", + "bytes": 509228, + "sampleRate": 24000, + "channels": 1, + "duration": 10.608, + "rms": 0.10000135184106136, + "peak": 0.51812744140625 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-meat.wav?v=0.2.3", + "sha256": "d36dfc395a5c53fbfa4abe9980db7bb59adfdac59e40318c4aca365365e3f2ab", + "bytes": 187820, + "sampleRate": 24000, + "channels": 1, + "duration": 3.912, + "rms": 0.1000013329979738, + "peak": 0.371124267578125 + }, + { + "url": "http://127.0.0.1:4173/audio/password-market.wav?v=0.2.3", + "sha256": "02e325fb753ef7a3ee585a03d2ca2aa3f1fbc58523b062222ae1136eeed7a95c", + "bytes": 230444, + "sampleRate": 24000, + "channels": 1, + "duration": 4.8, + "rms": 0.10000151520861549, + "peak": 0.48170414566993713 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-hat.wav?v=0.2.3", + "sha256": "4ff43dd042f4b5451e9fdeb3edd59f1e389a7d1dd488094587a3a9fc7dfffa44", + "bytes": 191276, + "sampleRate": 24000, + "channels": 1, + "duration": 3.984, + "rms": 0.10000132502946775, + "peak": 0.417083740234375 + }, + { + "url": "http://127.0.0.1:4173/audio/last-market.wav?v=0.2.3", + "sha256": "7857e87e9dbfe8fe849cc0b18c1d45b60916cb337328099c7a87a42c82e2821e", + "bytes": 359468, + "sampleRate": 24000, + "channels": 1, + "duration": 7.488, + "rms": 0.10000148064140717, + "peak": 0.600555419921875 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-meat.wav?v=0.2.3", + "sha256": "94f8a4f9e116a787e5ed052661d6de9ecf3ad8629db476661dd59ad03014b0c9", + "bytes": 244268, + "sampleRate": 24000, + "channels": 1, + "duration": 5.088, + "rms": 0.10000146176253134, + "peak": 0.44187748432159424 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-oil.wav?v=0.2.3", + "sha256": "55b2c7d6aa8bbce04edf8661882c9781da81c57f56217f99b80457a3bb895da0", + "bytes": 369836, + "sampleRate": 24000, + "channels": 1, + "duration": 7.704, + "rms": 0.10000146897241707, + "peak": 0.6239814162254333 + }, + { + "url": "http://127.0.0.1:4173/audio/first-sound.wav?v=0.2.3", + "sha256": "46f6adeed928a16af0700f1e8626cf8049f124632a04a5d10604426fb06f9596", + "bytes": 353708, + "sampleRate": 24000, + "channels": 1, + "duration": 7.368, + "rms": 0.10000157588418972, + "peak": 0.5189672708511353 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-umbrella.wav?v=0.2.3", + "sha256": "4b4c858a25659540f9dbc524664496fc6de61ab8c1627f3cfee8c9c744e11d5b", + "bytes": 247724, + "sampleRate": 24000, + "channels": 1, + "duration": 5.16, + "rms": 0.10000144286672341, + "peak": 0.46534621715545654 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-oil.wav?v=0.2.3", + "sha256": "3ca98682ff06d1d6b8af02c0fd5b2124f42266ac989884223eff4a9bbde1287a", + "bytes": 399788, + "sampleRate": 24000, + "channels": 1, + "duration": 8.328, + "rms": 0.10000149133669024, + "peak": 0.5243995189666748 + }, + { + "url": "http://127.0.0.1:4173/audio/first-sea.wav?v=0.2.3", + "sha256": "0f0b39314c5f7d7168d4854003c0c284e7bc3438cdc4d1d1c5adab7cb5ed30e5", + "bytes": 349100, + "sampleRate": 24000, + "channels": 1, + "duration": 7.272, + "rms": 0.10000142148394393, + "peak": 0.5717948079109192 + }, + { + "url": "http://127.0.0.1:4173/audio/last-meat.wav?v=0.2.3", + "sha256": "10f8ad4259ed8945c9da831e80b3902303c09caef96d400298599168fb1efed4", + "bytes": 346796, + "sampleRate": 24000, + "channels": 1, + "duration": 7.224, + "rms": 0.10000155834091913, + "peak": 0.537200927734375 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-umbrella.wav?v=0.2.3", + "sha256": "399ea2f681f755918f1117c8baba42739ceca64b307b999342f457a9235050b6", + "bytes": 368684, + "sampleRate": 24000, + "channels": 1, + "duration": 7.68, + "rms": 0.10000155028684544, + "peak": 0.569549560546875 + }, + { + "url": "http://127.0.0.1:4173/audio/message-meat.wav?v=0.2.3", + "sha256": "ce19735df079b54c171e775b6b365385a80160b9033442abab95b2b9c8505e1a", + "bytes": 512684, + "sampleRate": 24000, + "channels": 1, + "duration": 10.68, + "rms": 0.10000140834686953, + "peak": 0.5147705078125 + }, + { + "url": "http://127.0.0.1:4173/audio/message-umbrella.wav?v=0.2.3", + "sha256": "41d5866dae66600df4694a8312b531571d44cece6dba0e423e7c43d09d184819", + "bytes": 523052, + "sampleRate": 24000, + "channels": 1, + "duration": 10.896, + "rms": 0.10000120668553683, + "peak": 0.530364990234375 + }, + { + "url": "http://127.0.0.1:4173/audio/last-furniture.wav?v=0.2.3", + "sha256": "5ad4f776e35439d408abed0e66567d6b5cdc80fc54d579165472e474f1238776", + "bytes": 357164, + "sampleRate": 24000, + "channels": 1, + "duration": 7.44, + "rms": 0.10000152394963031, + "peak": 0.583587646484375 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-sea.wav?v=0.2.3", + "sha256": "8838d6a1ee8a790427dc5aa761e70b3d8872af62086efeed743297ff7f8b8a06", + "bytes": 243116, + "sampleRate": 24000, + "channels": 1, + "duration": 5.064, + "rms": 0.10000138788281714, + "peak": 0.45013427734375 + }, + { + "url": "http://127.0.0.1:4173/audio/message-apple.wav?v=0.2.3", + "sha256": "d85e6f47d871369f00de2274139e5ad6b4b5686b5e20e248df0ed6b9a320d942", + "bytes": 517292, + "sampleRate": 24000, + "channels": 1, + "duration": 10.776, + "rms": 0.10000133916854889, + "peak": 0.525360107421875 + }, + { + "url": "http://127.0.0.1:4173/audio/last-hat.wav?v=0.2.3", + "sha256": "bdaf8fbc54df8061e9e58aa8c14b3044a6e863dc54973ee3ee6ae2c5ae1a28f1", + "bytes": 354860, + "sampleRate": 24000, + "channels": 1, + "duration": 7.392, + "rms": 0.10000152378078818, + "peak": 0.550079345703125 + }, + { + "url": "http://127.0.0.1:4173/audio/first-apple.wav?v=0.2.3", + "sha256": "7c1dbcb3082055df2b8f087f7e906ec867c92f679de0894c34740c05e61a4bc1", + "bytes": 359468, + "sampleRate": 24000, + "channels": 1, + "duration": 7.488, + "rms": 0.10000143468253914, + "peak": 0.57977294921875 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-umbrella.wav?v=0.2.3", + "sha256": "8d3e8e8bc97e5fe3f3362184c4abb12f01a882a1f1174d2644f0f70aac677c0a", + "bytes": 192428, + "sampleRate": 24000, + "channels": 1, + "duration": 4.008, + "rms": 0.10000131475711933, + "peak": 0.385650634765625 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-furniture.wav?v=0.2.3", + "sha256": "5c004a7b2f5a4a918c9f689f1a2dcb219a620ed14313f40a9655b36dbf64948d", + "bytes": 398636, + "sampleRate": 24000, + "channels": 1, + "duration": 8.304, + "rms": 0.10000141690978645, + "peak": 0.487396240234375 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-tree.wav?v=0.2.3", + "sha256": "122f496834fb16d6da47f801e50e46e272e4e934af959467d1db4e490f79be7a", + "bytes": 183212, + "sampleRate": 24000, + "channels": 1, + "duration": 3.816, + "rms": 0.10000140751524371, + "peak": 0.36920166015625 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-tree.wav?v=0.2.3", + "sha256": "00d8e77ec0371971d632724d91f8cf8d947bfb83c582a513b6421be4c457a1da", + "bytes": 241964, + "sampleRate": 24000, + "channels": 1, + "duration": 5.04, + "rms": 0.10000146153372488, + "peak": 0.4585406184196472 + }, + { + "url": "http://127.0.0.1:4173/audio/message-tree.wav?v=0.2.3", + "sha256": "5d684aa710a63d36ed8dcc2a8bfbdd5c71b0b1c63dad2a324adecb76591e85b8", + "bytes": 540332, + "sampleRate": 24000, + "channels": 1, + "duration": 11.256, + "rms": 0.10000132424453942, + "peak": 0.5262451171875 + }, + { + "url": "http://127.0.0.1:4173/audio/last-tree.wav?v=0.2.3", + "sha256": "589e56d940a3c9e80ec02ae0b2dd93463fdc85ef019a753fcd0fded0752055f9", + "bytes": 382508, + "sampleRate": 24000, + "channels": 1, + "duration": 7.968, + "rms": 0.10000149781706567, + "peak": 0.5807672142982483 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-tree.wav?v=0.2.3", + "sha256": "341888c75275c13eb31058f53a1d4276be0daa0a1b5a3a45522036928b83b0c1", + "bytes": 382508, + "sampleRate": 24000, + "channels": 1, + "duration": 7.968, + "rms": 0.1000014873304774, + "peak": 0.600024402141571 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-tree.wav?v=0.2.3", + "sha256": "8735c3d9672561ca237fa87317beec2878492eb9063d6048d5b214423561acc1", + "bytes": 423980, + "sampleRate": 24000, + "channels": 1, + "duration": 8.832, + "rms": 0.10000150947389638, + "peak": 0.6187627911567688 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-furniture.wav?v=0.2.3", + "sha256": "52cb92cdb8ee92b6f581c9d68dbc346f180c470564809ba57185429c9eb84127", + "bytes": 186668, + "sampleRate": 24000, + "channels": 1, + "duration": 3.888, + "rms": 0.1000013480244084, + "peak": 0.387054443359375 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-tree.wav?v=0.2.3", + "sha256": "bc8e54f5407e8866bf1ca1ddfd4f6c63d85fee29bd9e430c7dd33e87974fc5b8", + "bytes": 409004, + "sampleRate": 24000, + "channels": 1, + "duration": 8.52, + "rms": 0.10000146559822108, + "peak": 0.5486617684364319 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-tree.wav?v=0.2.3", + "sha256": "b8e8bbe6b8b14727efd953fae9d4aed2caeb004055d52f611c6378322847edbe", + "bytes": 400940, + "sampleRate": 24000, + "channels": 1, + "duration": 8.352, + "rms": 0.10000144970799159, + "peak": 0.470611572265625 + }, + { + "url": "http://127.0.0.1:4173/audio/first-tree.wav?v=0.2.3", + "sha256": "3178230fd5850b6277a2153b438ec5289720e3db7ac929914cc213964f004bd5", + "bytes": 379052, + "sampleRate": 24000, + "channels": 1, + "duration": 7.896, + "rms": 0.10000144270360484, + "peak": 0.5833613276481628 + }, + { + "url": "http://127.0.0.1:4173/audio/password-tree.wav?v=0.2.3", + "sha256": "67da8147296e35134ec254bc82b58317630061b2c64d2d63c4be197ce8692d50", + "bytes": 233900, + "sampleRate": 24000, + "channels": 1, + "duration": 4.872, + "rms": 0.10000156310809623, + "peak": 0.4904019236564636 + } + ] +} diff --git a/.agent/evidence-v0.2.3/review-fixes/browser-final/game-실제-오디오로-혼합-모드-완주·레이아웃·접근성·외부-요청-없음-desktop/game.png b/.agent/evidence-v0.2.3/review-fixes/browser-final/game-실제-오디오로-혼합-모드-완주·레이아웃·접근성·외부-요청-없음-desktop/game.png new file mode 100644 index 0000000..7c19e22 Binary files /dev/null and b/.agent/evidence-v0.2.3/review-fixes/browser-final/game-실제-오디오로-혼합-모드-완주·레이아웃·접근성·외부-요청-없음-desktop/game.png differ diff --git a/.agent/evidence-v0.2.3/review-fixes/browser-final/game-실제-오디오로-혼합-모드-완주·레이아웃·접근성·외부-요청-없음-desktop/home.png b/.agent/evidence-v0.2.3/review-fixes/browser-final/game-실제-오디오로-혼합-모드-완주·레이아웃·접근성·외부-요청-없음-desktop/home.png new file mode 100644 index 0000000..3e1863d Binary files /dev/null and b/.agent/evidence-v0.2.3/review-fixes/browser-final/game-실제-오디오로-혼합-모드-완주·레이아웃·접근성·외부-요청-없음-desktop/home.png differ diff --git a/.agent/evidence-v0.2.3/review-fixes/browser-final/game-실제-오디오로-혼합-모드-완주·레이아웃·접근성·외부-요청-없음-desktop/results.png b/.agent/evidence-v0.2.3/review-fixes/browser-final/game-실제-오디오로-혼합-모드-완주·레이아웃·접근성·외부-요청-없음-desktop/results.png new file mode 100644 index 0000000..60986f0 Binary files /dev/null and b/.agent/evidence-v0.2.3/review-fixes/browser-final/game-실제-오디오로-혼합-모드-완주·레이아웃·접근성·외부-요청-없음-desktop/results.png differ diff --git a/.agent/evidence-v0.2.3/review-fixes/browser-final/game-실제-오디오로-혼합-모드-완주·레이아웃·접근성·외부-요청-없음-mobile/game.png b/.agent/evidence-v0.2.3/review-fixes/browser-final/game-실제-오디오로-혼합-모드-완주·레이아웃·접근성·외부-요청-없음-mobile/game.png new file mode 100644 index 0000000..6e743eb Binary files /dev/null and b/.agent/evidence-v0.2.3/review-fixes/browser-final/game-실제-오디오로-혼합-모드-완주·레이아웃·접근성·외부-요청-없음-mobile/game.png differ diff --git a/.agent/evidence-v0.2.3/review-fixes/browser-final/game-실제-오디오로-혼합-모드-완주·레이아웃·접근성·외부-요청-없음-mobile/home.png b/.agent/evidence-v0.2.3/review-fixes/browser-final/game-실제-오디오로-혼합-모드-완주·레이아웃·접근성·외부-요청-없음-mobile/home.png new file mode 100644 index 0000000..93c1298 Binary files /dev/null and b/.agent/evidence-v0.2.3/review-fixes/browser-final/game-실제-오디오로-혼합-모드-완주·레이아웃·접근성·외부-요청-없음-mobile/home.png differ diff --git a/.agent/evidence-v0.2.3/review-fixes/browser-final/game-실제-오디오로-혼합-모드-완주·레이아웃·접근성·외부-요청-없음-mobile/results.png b/.agent/evidence-v0.2.3/review-fixes/browser-final/game-실제-오디오로-혼합-모드-완주·레이아웃·접근성·외부-요청-없음-mobile/results.png new file mode 100644 index 0000000..46bdd67 Binary files /dev/null and b/.agent/evidence-v0.2.3/review-fixes/browser-final/game-실제-오디오로-혼합-모드-완주·레이아웃·접근성·외부-요청-없음-mobile/results.png differ diff --git a/.agent/evidence-v0.2.3/review-fixes/browser-final/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-desktop/normal-results.png b/.agent/evidence-v0.2.3/review-fixes/browser-final/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-desktop/normal-results.png new file mode 100644 index 0000000..fa53c92 Binary files /dev/null and b/.agent/evidence-v0.2.3/review-fixes/browser-final/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-desktop/normal-results.png differ diff --git a/.agent/evidence-v0.2.3/review-fixes/browser-final/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-desktop/progress-1.png b/.agent/evidence-v0.2.3/review-fixes/browser-final/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-desktop/progress-1.png new file mode 100644 index 0000000..ef8031b Binary files /dev/null and b/.agent/evidence-v0.2.3/review-fixes/browser-final/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-desktop/progress-1.png differ diff --git a/.agent/evidence-v0.2.3/review-fixes/browser-final/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-desktop/progress-2.png b/.agent/evidence-v0.2.3/review-fixes/browser-final/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-desktop/progress-2.png new file mode 100644 index 0000000..e2b4352 Binary files /dev/null and b/.agent/evidence-v0.2.3/review-fixes/browser-final/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-desktop/progress-2.png differ diff --git a/.agent/evidence-v0.2.3/review-fixes/browser-final/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-desktop/progress-3.png b/.agent/evidence-v0.2.3/review-fixes/browser-final/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-desktop/progress-3.png new file mode 100644 index 0000000..f0651da Binary files /dev/null and b/.agent/evidence-v0.2.3/review-fixes/browser-final/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-desktop/progress-3.png differ diff --git a/.agent/evidence-v0.2.3/review-fixes/browser-final/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-mobile/normal-results.png b/.agent/evidence-v0.2.3/review-fixes/browser-final/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-mobile/normal-results.png new file mode 100644 index 0000000..46bdd67 Binary files /dev/null and b/.agent/evidence-v0.2.3/review-fixes/browser-final/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-mobile/normal-results.png differ diff --git a/.agent/evidence-v0.2.3/review-fixes/browser-final/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-mobile/progress-1.png b/.agent/evidence-v0.2.3/review-fixes/browser-final/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-mobile/progress-1.png new file mode 100644 index 0000000..c6c3af6 Binary files /dev/null and b/.agent/evidence-v0.2.3/review-fixes/browser-final/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-mobile/progress-1.png differ diff --git a/.agent/evidence-v0.2.3/review-fixes/browser-final/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-mobile/progress-2.png b/.agent/evidence-v0.2.3/review-fixes/browser-final/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-mobile/progress-2.png new file mode 100644 index 0000000..19e468c Binary files /dev/null and b/.agent/evidence-v0.2.3/review-fixes/browser-final/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-mobile/progress-2.png differ diff --git a/.agent/evidence-v0.2.3/review-fixes/browser-final/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-mobile/progress-3.png b/.agent/evidence-v0.2.3/review-fixes/browser-final/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-mobile/progress-3.png new file mode 100644 index 0000000..1801343 Binary files /dev/null and b/.agent/evidence-v0.2.3/review-fixes/browser-final/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-mobile/progress-3.png differ diff --git a/.agent/evidence-v0.2.3/review-fixes/browser-final/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-desktop/copy-320-home.png b/.agent/evidence-v0.2.3/review-fixes/browser-final/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-desktop/copy-320-home.png new file mode 100644 index 0000000..9bb9d97 Binary files /dev/null and b/.agent/evidence-v0.2.3/review-fixes/browser-final/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-desktop/copy-320-home.png differ diff --git a/.agent/evidence-v0.2.3/review-fixes/browser-final/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-desktop/copy-320-results.png b/.agent/evidence-v0.2.3/review-fixes/browser-final/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-desktop/copy-320-results.png new file mode 100644 index 0000000..969eef1 Binary files /dev/null and b/.agent/evidence-v0.2.3/review-fixes/browser-final/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-desktop/copy-320-results.png differ diff --git a/.agent/evidence-v0.2.3/review-fixes/browser-final/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-desktop/copy-360-home.png b/.agent/evidence-v0.2.3/review-fixes/browser-final/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-desktop/copy-360-home.png new file mode 100644 index 0000000..93c1298 Binary files /dev/null and b/.agent/evidence-v0.2.3/review-fixes/browser-final/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-desktop/copy-360-home.png differ diff --git a/.agent/evidence-v0.2.3/review-fixes/browser-final/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-desktop/copy-360-results.png b/.agent/evidence-v0.2.3/review-fixes/browser-final/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-desktop/copy-360-results.png new file mode 100644 index 0000000..122ee5d Binary files /dev/null and b/.agent/evidence-v0.2.3/review-fixes/browser-final/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-desktop/copy-360-results.png differ diff --git a/.agent/evidence-v0.2.3/review-fixes/browser-final/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-mobile/copy-320-home.png b/.agent/evidence-v0.2.3/review-fixes/browser-final/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-mobile/copy-320-home.png new file mode 100644 index 0000000..9bb9d97 Binary files /dev/null and b/.agent/evidence-v0.2.3/review-fixes/browser-final/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-mobile/copy-320-home.png differ diff --git a/.agent/evidence-v0.2.3/review-fixes/browser-final/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-mobile/copy-320-results.png b/.agent/evidence-v0.2.3/review-fixes/browser-final/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-mobile/copy-320-results.png new file mode 100644 index 0000000..969eef1 Binary files /dev/null and b/.agent/evidence-v0.2.3/review-fixes/browser-final/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-mobile/copy-320-results.png differ diff --git a/.agent/evidence-v0.2.3/review-fixes/browser-final/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-mobile/copy-360-home.png b/.agent/evidence-v0.2.3/review-fixes/browser-final/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-mobile/copy-360-home.png new file mode 100644 index 0000000..93c1298 Binary files /dev/null and b/.agent/evidence-v0.2.3/review-fixes/browser-final/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-mobile/copy-360-home.png differ diff --git a/.agent/evidence-v0.2.3/review-fixes/browser-final/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-mobile/copy-360-results.png b/.agent/evidence-v0.2.3/review-fixes/browser-final/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-mobile/copy-360-results.png new file mode 100644 index 0000000..122ee5d Binary files /dev/null and b/.agent/evidence-v0.2.3/review-fixes/browser-final/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-mobile/copy-360-results.png differ diff --git a/.agent/evidence-v0.2.3/review-fixes/browser-final/rounds-시작-단계·SNR·3문항-완료→다음-단계·재생-중-종료·응답-후-종료·홈-초기화-desktop/early-exit.png b/.agent/evidence-v0.2.3/review-fixes/browser-final/rounds-시작-단계·SNR·3문항-완료→다음-단계·재생-중-종료·응답-후-종료·홈-초기화-desktop/early-exit.png new file mode 100644 index 0000000..811489d Binary files /dev/null and b/.agent/evidence-v0.2.3/review-fixes/browser-final/rounds-시작-단계·SNR·3문항-완료→다음-단계·재생-중-종료·응답-후-종료·홈-초기화-desktop/early-exit.png differ diff --git a/.agent/evidence-v0.2.3/review-fixes/browser-final/rounds-시작-단계·SNR·3문항-완료→다음-단계·재생-중-종료·응답-후-종료·홈-초기화-mobile/early-exit.png b/.agent/evidence-v0.2.3/review-fixes/browser-final/rounds-시작-단계·SNR·3문항-완료→다음-단계·재생-중-종료·응답-후-종료·홈-초기화-mobile/early-exit.png new file mode 100644 index 0000000..122ee5d Binary files /dev/null and b/.agent/evidence-v0.2.3/review-fixes/browser-final/rounds-시작-단계·SNR·3문항-완료→다음-단계·재생-중-종료·응답-후-종료·홈-초기화-mobile/early-exit.png differ diff --git a/.agent/evidence-v0.2.3/review-fixes/browser-final/ui-한국어-제목은-단어-중간에서-줄바꿈하지-않는다-desktop/heading.png b/.agent/evidence-v0.2.3/review-fixes/browser-final/ui-한국어-제목은-단어-중간에서-줄바꿈하지-않는다-desktop/heading.png new file mode 100644 index 0000000..e3e5e42 Binary files /dev/null and b/.agent/evidence-v0.2.3/review-fixes/browser-final/ui-한국어-제목은-단어-중간에서-줄바꿈하지-않는다-desktop/heading.png differ diff --git a/.agent/evidence-v0.2.3/review-fixes/browser-final/ui-한국어-제목은-단어-중간에서-줄바꿈하지-않는다-mobile/heading.png b/.agent/evidence-v0.2.3/review-fixes/browser-final/ui-한국어-제목은-단어-중간에서-줄바꿈하지-않는다-mobile/heading.png new file mode 100644 index 0000000..9b38a30 Binary files /dev/null and b/.agent/evidence-v0.2.3/review-fixes/browser-final/ui-한국어-제목은-단어-중간에서-줄바꿈하지-않는다-mobile/heading.png differ diff --git a/.agent/evidence-v0.2.3/review-fixes/browser-green/.last-run.json b/.agent/evidence-v0.2.3/review-fixes/browser-green/.last-run.json new file mode 100644 index 0000000..cbcc1fb --- /dev/null +++ b/.agent/evidence-v0.2.3/review-fixes/browser-green/.last-run.json @@ -0,0 +1,4 @@ +{ + "status": "passed", + "failedTests": [] +} \ No newline at end of file diff --git a/.agent/evidence-v0.2.3/review-fixes/browser-green/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-desktop/normal-results.png b/.agent/evidence-v0.2.3/review-fixes/browser-green/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-desktop/normal-results.png new file mode 100644 index 0000000..fa53c92 Binary files /dev/null and b/.agent/evidence-v0.2.3/review-fixes/browser-green/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-desktop/normal-results.png differ diff --git a/.agent/evidence-v0.2.3/review-fixes/browser-green/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-desktop/progress-1.png b/.agent/evidence-v0.2.3/review-fixes/browser-green/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-desktop/progress-1.png new file mode 100644 index 0000000..ef8031b Binary files /dev/null and b/.agent/evidence-v0.2.3/review-fixes/browser-green/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-desktop/progress-1.png differ diff --git a/.agent/evidence-v0.2.3/review-fixes/browser-green/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-desktop/progress-2.png b/.agent/evidence-v0.2.3/review-fixes/browser-green/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-desktop/progress-2.png new file mode 100644 index 0000000..e2b4352 Binary files /dev/null and b/.agent/evidence-v0.2.3/review-fixes/browser-green/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-desktop/progress-2.png differ diff --git a/.agent/evidence-v0.2.3/review-fixes/browser-green/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-desktop/progress-3.png b/.agent/evidence-v0.2.3/review-fixes/browser-green/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-desktop/progress-3.png new file mode 100644 index 0000000..f0651da Binary files /dev/null and b/.agent/evidence-v0.2.3/review-fixes/browser-green/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-desktop/progress-3.png differ diff --git a/.agent/evidence-v0.2.3/review-fixes/browser-green/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-mobile/normal-results.png b/.agent/evidence-v0.2.3/review-fixes/browser-green/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-mobile/normal-results.png new file mode 100644 index 0000000..46bdd67 Binary files /dev/null and b/.agent/evidence-v0.2.3/review-fixes/browser-green/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-mobile/normal-results.png differ diff --git a/.agent/evidence-v0.2.3/review-fixes/browser-green/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-mobile/progress-1.png b/.agent/evidence-v0.2.3/review-fixes/browser-green/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-mobile/progress-1.png new file mode 100644 index 0000000..c6c3af6 Binary files /dev/null and b/.agent/evidence-v0.2.3/review-fixes/browser-green/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-mobile/progress-1.png differ diff --git a/.agent/evidence-v0.2.3/review-fixes/browser-green/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-mobile/progress-2.png b/.agent/evidence-v0.2.3/review-fixes/browser-green/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-mobile/progress-2.png new file mode 100644 index 0000000..19e468c Binary files /dev/null and b/.agent/evidence-v0.2.3/review-fixes/browser-green/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-mobile/progress-2.png differ diff --git a/.agent/evidence-v0.2.3/review-fixes/browser-green/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-mobile/progress-3.png b/.agent/evidence-v0.2.3/review-fixes/browser-green/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-mobile/progress-3.png new file mode 100644 index 0000000..1801343 Binary files /dev/null and b/.agent/evidence-v0.2.3/review-fixes/browser-green/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-mobile/progress-3.png differ diff --git a/.agent/evidence-v0.2.3/review-fixes/browser-green/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-desktop/copy-320-home.png b/.agent/evidence-v0.2.3/review-fixes/browser-green/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-desktop/copy-320-home.png new file mode 100644 index 0000000..9bb9d97 Binary files /dev/null and b/.agent/evidence-v0.2.3/review-fixes/browser-green/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-desktop/copy-320-home.png differ diff --git a/.agent/evidence-v0.2.3/review-fixes/browser-green/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-desktop/copy-320-results.png b/.agent/evidence-v0.2.3/review-fixes/browser-green/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-desktop/copy-320-results.png new file mode 100644 index 0000000..969eef1 Binary files /dev/null and b/.agent/evidence-v0.2.3/review-fixes/browser-green/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-desktop/copy-320-results.png differ diff --git a/.agent/evidence-v0.2.3/review-fixes/browser-green/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-desktop/copy-360-home.png b/.agent/evidence-v0.2.3/review-fixes/browser-green/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-desktop/copy-360-home.png new file mode 100644 index 0000000..93c1298 Binary files /dev/null and b/.agent/evidence-v0.2.3/review-fixes/browser-green/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-desktop/copy-360-home.png differ diff --git a/.agent/evidence-v0.2.3/review-fixes/browser-green/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-desktop/copy-360-results.png b/.agent/evidence-v0.2.3/review-fixes/browser-green/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-desktop/copy-360-results.png new file mode 100644 index 0000000..122ee5d Binary files /dev/null and b/.agent/evidence-v0.2.3/review-fixes/browser-green/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-desktop/copy-360-results.png differ diff --git a/.agent/evidence-v0.2.3/review-fixes/browser-green/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-mobile/copy-320-home.png b/.agent/evidence-v0.2.3/review-fixes/browser-green/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-mobile/copy-320-home.png new file mode 100644 index 0000000..9bb9d97 Binary files /dev/null and b/.agent/evidence-v0.2.3/review-fixes/browser-green/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-mobile/copy-320-home.png differ diff --git a/.agent/evidence-v0.2.3/review-fixes/browser-green/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-mobile/copy-320-results.png b/.agent/evidence-v0.2.3/review-fixes/browser-green/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-mobile/copy-320-results.png new file mode 100644 index 0000000..969eef1 Binary files /dev/null and b/.agent/evidence-v0.2.3/review-fixes/browser-green/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-mobile/copy-320-results.png differ diff --git a/.agent/evidence-v0.2.3/review-fixes/browser-green/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-mobile/copy-360-home.png b/.agent/evidence-v0.2.3/review-fixes/browser-green/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-mobile/copy-360-home.png new file mode 100644 index 0000000..93c1298 Binary files /dev/null and b/.agent/evidence-v0.2.3/review-fixes/browser-green/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-mobile/copy-360-home.png differ diff --git a/.agent/evidence-v0.2.3/review-fixes/browser-green/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-mobile/copy-360-results.png b/.agent/evidence-v0.2.3/review-fixes/browser-green/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-mobile/copy-360-results.png new file mode 100644 index 0000000..122ee5d Binary files /dev/null and b/.agent/evidence-v0.2.3/review-fixes/browser-green/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-mobile/copy-360-results.png differ diff --git a/.agent/evidence-v0.2.3/review-fixes/browser-red/.last-run.json b/.agent/evidence-v0.2.3/review-fixes/browser-red/.last-run.json new file mode 100644 index 0000000..8476558 --- /dev/null +++ b/.agent/evidence-v0.2.3/review-fixes/browser-red/.last-run.json @@ -0,0 +1,9 @@ +{ + "status": "failed", + "failedTests": [ + "abdd2e2cf517d3c959fd-e748bd769b024912a05a", + "abdd2e2cf517d3c959fd-f7936886d307bf504a2e", + "abdd2e2cf517d3c959fd-297a2a889ff2a2c13233", + "abdd2e2cf517d3c959fd-99533baf08fa35da0cd2" + ] +} \ No newline at end of file diff --git a/.agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-desktop/error-context.md b/.agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-desktop/error-context.md new file mode 100644 index 0000000..e096c2e --- /dev/null +++ b/.agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-desktop/error-context.md @@ -0,0 +1,172 @@ +# 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: review-fixes.spec.ts >> 리뷰: 실제 진행 막대는 현재 문항의 1/3·2/3·3/3을 채운다 +- Location: tests/browser/review-fixes.spec.ts:38:1 + +# Error details + +``` +Error: expect(received).toBeCloseTo(expected) + +Expected: 0.3333333333333333 +Received: 0 + +Expected precision: 2 +Expected difference: < 0.005 +Received difference: 0.3333333333333333 +``` + +``` +Error: expect(locator).toHaveAccessibleName(expected) failed + +Locator: getByRole('progressbar') +Expected: "현재 문항 진행률" +Received: "전체 진행률" +Timeout: 1000ms + +Call log: + - Expect "soft toHaveAccessibleName" getByRole('progressbar') with timeout 1000ms + - waiting for getByRole('progressbar') + 11 × locator resolved to + - unexpected value "전체 진행률" + +``` + +```yaml +- progressbar "전체 진행률" +``` + +``` +Error: expect(received).toBeCloseTo(expected) + +Expected: 0.6666666666666666 +Received: 0.3333333333333333 + +Expected precision: 2 +Expected difference: < 0.005 +Received difference: 0.3333333333333333 +``` + +``` +Error: expect(locator).toHaveAccessibleName(expected) failed + +Locator: getByRole('progressbar') +Expected: "현재 문항 진행률" +Received: "전체 진행률" +Timeout: 1000ms + +Call log: + - Expect "soft toHaveAccessibleName" getByRole('progressbar') with timeout 1000ms + - waiting for getByRole('progressbar') + 11 × locator resolved to + - unexpected value "전체 진행률" + +``` + +```yaml +- progressbar "전체 진행률" +``` + +``` +Error: expect(received).toBeCloseTo(expected) + +Expected: 1 +Received: 0.6666666666666666 + +Expected precision: 2 +Expected difference: < 0.005 +Received difference: 0.33333333333333337 +``` + +``` +Error: expect(locator).toHaveAccessibleName(expected) failed + +Locator: getByRole('progressbar') +Expected: "현재 문항 진행률" +Received: "전체 진행률" +Timeout: 1000ms + +Call log: + - Expect "soft toHaveAccessibleName" getByRole('progressbar') with timeout 1000ms + - waiting for getByRole('progressbar') + 11 × locator resolved to + - unexpected value "전체 진행률" + +``` + +```yaml +- progressbar "전체 진행률" +``` + +# Test source + +```ts + 1 | import { expect, test, type Page } from "@playwright/test"; + 2 | import { WORDS } from "../../src/content"; + 3 | + 4 | // 글자별 스타일 추측 대신 실제 Range 줄 상자를 비교해 어절 내부 분리를 검출한다. + 5 | async function copyLayout(page: Page, selector: string) { + 6 | return page.locator(selector).evaluateAll((elements) => elements.flatMap((element) => { + 7 | const problems: string[] = []; + 8 | const walker = document.createTreeWalker(element, NodeFilter.SHOW_TEXT); + 9 | while (walker.nextNode()) { + 10 | const node = walker.currentNode; + 11 | for (const match of (node.textContent ?? "").matchAll(/[가-힣]+/g)) { + 12 | const range = document.createRange(); + 13 | range.setStart(node, match.index!); + 14 | range.setEnd(node, match.index! + match[0].length); + 15 | if (new Set(Array.from(range.getClientRects(), (r) => r.y)).size > 1) + 16 | problems.push(`split: ${match[0]}`); + 17 | } + 18 | } + 19 | if (element.scrollWidth > element.clientWidth) problems.push(`overflow: ${element.textContent}`); + 20 | return problems; + 21 | })); + 22 | } + 23 | + 24 | test("리뷰: 한국어 모드·결과 어절은 320px와 360px에서도 갈라지거나 넘치지 않는다", async ({ page }, info) => { + 25 | for (const width of [320, 360]) { + 26 | await page.setViewportSize({ width, height: 800 }); + 27 | await page.goto("/"); + 28 | expect.soft(await copyLayout(page, ".mode-option small")).toEqual([]); + 29 | await page.screenshot({ path: info.outputPath(`copy-${width}-home.png`), fullPage: true }); + 30 | await page.getByRole("button", { name: "게임 시작 · 소리 듣기" }).click(); + 31 | await page.getByRole("button", { name: "문제 풀이 종료" }).click(); + 32 | expect.soft(await copyLayout(page, ".results-panel h2, .results-panel p, .stats span, .results-panel th, .results-panel td")).toEqual([]); + 33 | expect.soft(await page.evaluate(() => document.documentElement.scrollWidth <= innerWidth)).toBe(true); + 34 | await page.screenshot({ path: info.outputPath(`copy-${width}-results.png`), fullPage: true }); + 35 | } + 36 | }); + 37 | + 38 | test("리뷰: 실제 진행 막대는 현재 문항의 1/3·2/3·3/3을 채운다", async ({ page }, info) => { + 39 | let target = ""; + 40 | page.on("request", (r) => { + 41 | const path = new URL(r.url()).pathname; + 42 | if (path.startsWith("/audio/") && path !== "/audio/intro.wav") target = path; + 43 | }); + 44 | await page.goto("/"); + 45 | await page.getByRole("radio", { name: "보기에서 선택" }).check(); + 46 | await page.getByRole("button", { name: "게임 시작 · 소리 듣기" }).click(); + 47 | for (let index = 0; index < 3; index++) { + 48 | const bar = page.getByRole("progressbar"); + 49 | expect.soft(await bar.evaluate((el) => (el as HTMLProgressElement).position)).toBeCloseTo((index + 1) / 3); +> 50 | await expect.soft(bar).toHaveAccessibleName("현재 문항 진행률", { timeout: 1000 }); + | ^ Error: expect(locator).toHaveAccessibleName(expected) failed + 51 | await bar.screenshot({ path: info.outputPath(`progress-${index + 1}.png`) }); + 52 | if (index) await page.getByRole("button", { name: /문장 듣기/ }).click(); + 53 | await expect(page.getByRole("group", { name: "답 선택" })).toBeVisible({ timeout: 30000 }); + 54 | const answer = WORDS.find((w) => target.endsWith(`-${w.id}.wav`))!.answer; + 55 | await page.getByRole("button", { name: new RegExp(answer) }).click(); + 56 | await page.getByRole("button", { name: index === 2 ? /결과 보기/ : /다음 문제/ }).click(); + 57 | } + 58 | await page.screenshot({ path: info.outputPath("normal-results.png"), fullPage: true }); + 59 | expect(await copyLayout(page, ".results-panel h2, .results-panel p, .stats span")).toEqual([]); + 60 | }); + 61 | +``` \ No newline at end of file diff --git a/.agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-desktop/normal-results.png b/.agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-desktop/normal-results.png new file mode 100644 index 0000000..ecd69e9 Binary files /dev/null and b/.agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-desktop/normal-results.png differ diff --git a/.agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-desktop/progress-1.png b/.agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-desktop/progress-1.png new file mode 100644 index 0000000..75d03be Binary files /dev/null and b/.agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-desktop/progress-1.png differ diff --git a/.agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-desktop/progress-2.png b/.agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-desktop/progress-2.png new file mode 100644 index 0000000..ef8031b Binary files /dev/null and b/.agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-desktop/progress-2.png differ diff --git a/.agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-desktop/progress-3.png b/.agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-desktop/progress-3.png new file mode 100644 index 0000000..e2b4352 Binary files /dev/null and b/.agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-desktop/progress-3.png differ diff --git a/.agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-desktop/trace.zip b/.agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-desktop/trace.zip new file mode 100644 index 0000000..3aac701 Binary files /dev/null and b/.agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-desktop/trace.zip differ diff --git a/.agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-mobile/error-context.md b/.agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-mobile/error-context.md new file mode 100644 index 0000000..bfe7573 --- /dev/null +++ b/.agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-mobile/error-context.md @@ -0,0 +1,185 @@ +# 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: review-fixes.spec.ts >> 리뷰: 실제 진행 막대는 현재 문항의 1/3·2/3·3/3을 채운다 +- Location: tests/browser/review-fixes.spec.ts:38:1 + +# Error details + +``` +Error: expect(received).toBeCloseTo(expected) + +Expected: 0.3333333333333333 +Received: 0 + +Expected precision: 2 +Expected difference: < 0.005 +Received difference: 0.3333333333333333 +``` + +``` +Error: expect(locator).toHaveAccessibleName(expected) failed + +Locator: getByRole('progressbar') +Expected: "현재 문항 진행률" +Received: "전체 진행률" +Timeout: 1000ms + +Call log: + - Expect "soft toHaveAccessibleName" getByRole('progressbar') with timeout 1000ms + - waiting for getByRole('progressbar') + 11 × locator resolved to + - unexpected value "전체 진행률" + +``` + +```yaml +- progressbar "전체 진행률" +``` + +``` +Error: expect(received).toBeCloseTo(expected) + +Expected: 0.6666666666666666 +Received: 0.3333333333333333 + +Expected precision: 2 +Expected difference: < 0.005 +Received difference: 0.3333333333333333 +``` + +``` +Error: expect(locator).toHaveAccessibleName(expected) failed + +Locator: getByRole('progressbar') +Expected: "현재 문항 진행률" +Received: "전체 진행률" +Timeout: 1000ms + +Call log: + - Expect "soft toHaveAccessibleName" getByRole('progressbar') with timeout 1000ms + - waiting for getByRole('progressbar') + 11 × locator resolved to + - unexpected value "전체 진행률" + +``` + +```yaml +- progressbar "전체 진행률" +``` + +``` +Error: expect(received).toBeCloseTo(expected) + +Expected: 1 +Received: 0.6666666666666666 + +Expected precision: 2 +Expected difference: < 0.005 +Received difference: 0.33333333333333337 +``` + +``` +Error: expect(locator).toHaveAccessibleName(expected) failed + +Locator: getByRole('progressbar') +Expected: "현재 문항 진행률" +Received: "전체 진행률" +Timeout: 1000ms + +Call log: + - Expect "soft toHaveAccessibleName" getByRole('progressbar') with timeout 1000ms + - waiting for getByRole('progressbar') + 11 × locator resolved to + - unexpected value "전체 진행률" + +``` + +```yaml +- progressbar "전체 진행률" +``` + +``` +Error: expect(received).toEqual(expected) // deep equality + +- Expected - 1 ++ Received + 4 + +- Array [] ++ Array [ ++ "split: 만나요", ++ "split: 최대", ++ ] +``` + +# Test source + +```ts + 1 | import { expect, test, type Page } from "@playwright/test"; + 2 | import { WORDS } from "../../src/content"; + 3 | + 4 | // 글자별 스타일 추측 대신 실제 Range 줄 상자를 비교해 어절 내부 분리를 검출한다. + 5 | async function copyLayout(page: Page, selector: string) { + 6 | return page.locator(selector).evaluateAll((elements) => elements.flatMap((element) => { + 7 | const problems: string[] = []; + 8 | const walker = document.createTreeWalker(element, NodeFilter.SHOW_TEXT); + 9 | while (walker.nextNode()) { + 10 | const node = walker.currentNode; + 11 | for (const match of (node.textContent ?? "").matchAll(/[가-힣]+/g)) { + 12 | const range = document.createRange(); + 13 | range.setStart(node, match.index!); + 14 | range.setEnd(node, match.index! + match[0].length); + 15 | if (new Set(Array.from(range.getClientRects(), (r) => r.y)).size > 1) + 16 | problems.push(`split: ${match[0]}`); + 17 | } + 18 | } + 19 | if (element.scrollWidth > element.clientWidth) problems.push(`overflow: ${element.textContent}`); + 20 | return problems; + 21 | })); + 22 | } + 23 | + 24 | test("리뷰: 한국어 모드·결과 어절은 320px와 360px에서도 갈라지거나 넘치지 않는다", async ({ page }, info) => { + 25 | for (const width of [320, 360]) { + 26 | await page.setViewportSize({ width, height: 800 }); + 27 | await page.goto("/"); + 28 | expect.soft(await copyLayout(page, ".mode-option small")).toEqual([]); + 29 | await page.screenshot({ path: info.outputPath(`copy-${width}-home.png`), fullPage: true }); + 30 | await page.getByRole("button", { name: "게임 시작 · 소리 듣기" }).click(); + 31 | await page.getByRole("button", { name: "문제 풀이 종료" }).click(); + 32 | expect.soft(await copyLayout(page, ".results-panel h2, .results-panel p, .stats span, .results-panel th, .results-panel td")).toEqual([]); + 33 | expect.soft(await page.evaluate(() => document.documentElement.scrollWidth <= innerWidth)).toBe(true); + 34 | await page.screenshot({ path: info.outputPath(`copy-${width}-results.png`), fullPage: true }); + 35 | } + 36 | }); + 37 | + 38 | test("리뷰: 실제 진행 막대는 현재 문항의 1/3·2/3·3/3을 채운다", async ({ page }, info) => { + 39 | let target = ""; + 40 | page.on("request", (r) => { + 41 | const path = new URL(r.url()).pathname; + 42 | if (path.startsWith("/audio/") && path !== "/audio/intro.wav") target = path; + 43 | }); + 44 | await page.goto("/"); + 45 | await page.getByRole("radio", { name: "보기에서 선택" }).check(); + 46 | await page.getByRole("button", { name: "게임 시작 · 소리 듣기" }).click(); + 47 | for (let index = 0; index < 3; index++) { + 48 | const bar = page.getByRole("progressbar"); + 49 | expect.soft(await bar.evaluate((el) => (el as HTMLProgressElement).position)).toBeCloseTo((index + 1) / 3); + 50 | await expect.soft(bar).toHaveAccessibleName("현재 문항 진행률", { timeout: 1000 }); + 51 | await bar.screenshot({ path: info.outputPath(`progress-${index + 1}.png`) }); + 52 | if (index) await page.getByRole("button", { name: /문장 듣기/ }).click(); + 53 | await expect(page.getByRole("group", { name: "답 선택" })).toBeVisible({ timeout: 30000 }); + 54 | const answer = WORDS.find((w) => target.endsWith(`-${w.id}.wav`))!.answer; + 55 | await page.getByRole("button", { name: new RegExp(answer) }).click(); + 56 | await page.getByRole("button", { name: index === 2 ? /결과 보기/ : /다음 문제/ }).click(); + 57 | } + 58 | await page.screenshot({ path: info.outputPath("normal-results.png"), fullPage: true }); +> 59 | expect(await copyLayout(page, ".results-panel h2, .results-panel p, .stats span")).toEqual([]); + | ^ Error: expect(received).toEqual(expected) // deep equality + 60 | }); + 61 | +``` \ No newline at end of file diff --git a/.agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-mobile/normal-results.png b/.agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-mobile/normal-results.png new file mode 100644 index 0000000..dbbfb3f Binary files /dev/null and b/.agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-mobile/normal-results.png differ diff --git a/.agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-mobile/progress-1.png b/.agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-mobile/progress-1.png new file mode 100644 index 0000000..d7e07dd Binary files /dev/null and b/.agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-mobile/progress-1.png differ diff --git a/.agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-mobile/progress-2.png b/.agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-mobile/progress-2.png new file mode 100644 index 0000000..c6c3af6 Binary files /dev/null and b/.agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-mobile/progress-2.png differ diff --git a/.agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-mobile/progress-3.png b/.agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-mobile/progress-3.png new file mode 100644 index 0000000..19e468c Binary files /dev/null and b/.agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-mobile/progress-3.png differ diff --git a/.agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-mobile/trace.zip b/.agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-mobile/trace.zip new file mode 100644 index 0000000..df2c2cb Binary files /dev/null and b/.agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-리뷰-실제-진행-막대는-현재-문항의-1-3·2-3·3-3을-채운다-mobile/trace.zip differ diff --git a/.agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-desktop/copy-320-home.png b/.agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-desktop/copy-320-home.png new file mode 100644 index 0000000..9bb9d97 Binary files /dev/null and b/.agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-desktop/copy-320-home.png differ diff --git a/.agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-desktop/copy-320-results.png b/.agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-desktop/copy-320-results.png new file mode 100644 index 0000000..a1f6468 Binary files /dev/null and b/.agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-desktop/copy-320-results.png differ diff --git a/.agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-desktop/copy-360-home.png b/.agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-desktop/copy-360-home.png new file mode 100644 index 0000000..5310018 Binary files /dev/null and b/.agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-desktop/copy-360-home.png differ diff --git a/.agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-desktop/copy-360-results.png b/.agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-desktop/copy-360-results.png new file mode 100644 index 0000000..386ad4b Binary files /dev/null and b/.agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-desktop/copy-360-results.png differ diff --git a/.agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-desktop/error-context.md b/.agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-desktop/error-context.md new file mode 100644 index 0000000..cf80224 --- /dev/null +++ b/.agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-desktop/error-context.md @@ -0,0 +1,186 @@ +# 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: review-fixes.spec.ts >> 리뷰: 한국어 모드·결과 어절은 320px와 360px에서도 갈라지거나 넘치지 않는다 +- Location: tests/browser/review-fixes.spec.ts:24:1 + +# Error details + +``` +Error: expect(received).toEqual(expected) // deep equality + +- Expected - 1 ++ Received + 4 + +- Array [] ++ Array [ ++ "split: 탐험에서도", ++ "split: 라운드", ++ ] +``` + +``` +Error: expect(received).toEqual(expected) // deep equality + +- Expected - 1 ++ Received + 3 + +- Array [] ++ Array [ ++ "split: 입력", ++ ] +``` + +``` +Error: expect(received).toEqual(expected) // deep equality + +- Expected - 1 ++ Received + 4 + +- Array [] ++ Array [ ++ "split: 만나요", ++ "split: 최대", ++ ] +``` + +# Page snapshot + +```yaml +- generic [ref=f1e2]: + - link "본문으로 건너뛰기" [ref=f1e3] [cursor=pointer]: + - /url: "#main" + - banner [ref=f1e4]: + - generic [ref=f1e5]: + - heading "단어를 맞춰라" [level=1] [ref=f1e11] + - generic [ref=f1e12]: v0.2.3 + - generic: 소리에 집중하는 시간 + - main [ref=f1e13]: + - generic [ref=f1e14]: + - text: 지금까지의 소리 탐험 + - generic [ref=f1e15]: S + - heading "문제 풀이를 종료했어요." [active] [level=2] [ref=f1e23] + - paragraph [ref=f1e24]: 작은 소리에 집중한 당신, 다음 탐험에서도 만나요. + - paragraph [ref=f1e25]: 응답 0문항 · 정답 0문항 + - generic [ref=f1e26]: + - generic [ref=f1e27]: + - strong [ref=f1e28]: "0" + - text: 총 점수 + - generic [ref=f1e29]: + - strong [ref=f1e30]: 0% + - generic [ref=f1e31]: 정답률 · 0/0 + - generic [ref=f1e32]: + - strong [ref=f1e33]: 0회 + - text: 최고 연속 정답 + - table "난이도별 결과" [ref=f1e34]: + - rowgroup [ref=f1e35]: + - row [ref=f1e36]: + - columnheader "난이도" [ref=f1e37] + - columnheader "SNR" [ref=f1e38] + - columnheader "맞힌 문제" [ref=f1e39] + - rowgroup [ref=f1e40]: + - row [ref=f1e41]: + - rowheader "1단계" [ref=f1e42] + - cell "SNR +6 dB" [ref=f1e43] + - cell "0 / 0" [ref=f1e44] + - row [ref=f1e45]: + - rowheader "2단계" [ref=f1e46] + - cell "SNR +3 dB" [ref=f1e47] + - cell "0 / 0" [ref=f1e48] + - row [ref=f1e49]: + - rowheader "3단계" [ref=f1e50] + - cell "SNR 0 dB" [ref=f1e51] + - cell "0 / 0" [ref=f1e52] + - row [ref=f1e53]: + - rowheader "4단계" [ref=f1e54] + - cell "SNR -3 dB" [ref=f1e55] + - cell "0 / 0" [ref=f1e56] + - row [ref=f1e57]: + - rowheader "5단계" [ref=f1e58] + - cell "SNR -6 dB" [ref=f1e59] + - cell "0 / 0" [ref=f1e60] + - paragraph [ref=f1e61]: 단계 × 100점 + 연속 정답 보너스 (라운드 내 최대 20점) + - button "처음 화면으로" [ref=f1e62] [cursor=pointer] + - generic [ref=f1e63]: + - generic [ref=f1e64]: ◖)) 전체 음량 + - slider "전체 음량" [ref=f1e65] [cursor=pointer]: "35" + - status [ref=f1e66]: 35% + - contentinfo [ref=f1e67]: + - paragraph [ref=f1e68]: Designed by OZ at Heat-T Medical Inc. + - paragraph [ref=f1e69]: 청각적 주의·식별 게임 · 의료적 진단이나 치료를 제공하지 않습니다. + - generic [ref=f1e70]: 개인정보 수집 없이, 오직 플레이만. + - link "환경음 출처·라이선스" [ref=f1e71] [cursor=pointer]: + - /url: /AMBIENCE_NOTICES.md +``` + +# Test source + +```ts + 1 | import { expect, test, type Page } from "@playwright/test"; + 2 | import { WORDS } from "../../src/content"; + 3 | + 4 | // 글자별 스타일 추측 대신 실제 Range 줄 상자를 비교해 어절 내부 분리를 검출한다. + 5 | async function copyLayout(page: Page, selector: string) { + 6 | return page.locator(selector).evaluateAll((elements) => elements.flatMap((element) => { + 7 | const problems: string[] = []; + 8 | const walker = document.createTreeWalker(element, NodeFilter.SHOW_TEXT); + 9 | while (walker.nextNode()) { + 10 | const node = walker.currentNode; + 11 | for (const match of (node.textContent ?? "").matchAll(/[가-힣]+/g)) { + 12 | const range = document.createRange(); + 13 | range.setStart(node, match.index!); + 14 | range.setEnd(node, match.index! + match[0].length); + 15 | if (new Set(Array.from(range.getClientRects(), (r) => r.y)).size > 1) + 16 | problems.push(`split: ${match[0]}`); + 17 | } + 18 | } + 19 | if (element.scrollWidth > element.clientWidth) problems.push(`overflow: ${element.textContent}`); + 20 | return problems; + 21 | })); + 22 | } + 23 | + 24 | test("리뷰: 한국어 모드·결과 어절은 320px와 360px에서도 갈라지거나 넘치지 않는다", async ({ page }, info) => { + 25 | for (const width of [320, 360]) { + 26 | await page.setViewportSize({ width, height: 800 }); + 27 | await page.goto("/"); + 28 | expect.soft(await copyLayout(page, ".mode-option small")).toEqual([]); + 29 | await page.screenshot({ path: info.outputPath(`copy-${width}-home.png`), fullPage: true }); + 30 | await page.getByRole("button", { name: "게임 시작 · 소리 듣기" }).click(); + 31 | await page.getByRole("button", { name: "문제 풀이 종료" }).click(); +> 32 | expect.soft(await copyLayout(page, ".results-panel h2, .results-panel p, .stats span, .results-panel th, .results-panel td")).toEqual([]); + | ^ Error: expect(received).toEqual(expected) // deep equality + 33 | expect.soft(await page.evaluate(() => document.documentElement.scrollWidth <= innerWidth)).toBe(true); + 34 | await page.screenshot({ path: info.outputPath(`copy-${width}-results.png`), fullPage: true }); + 35 | } + 36 | }); + 37 | + 38 | test("리뷰: 실제 진행 막대는 현재 문항의 1/3·2/3·3/3을 채운다", async ({ page }, info) => { + 39 | let target = ""; + 40 | page.on("request", (r) => { + 41 | const path = new URL(r.url()).pathname; + 42 | if (path.startsWith("/audio/") && path !== "/audio/intro.wav") target = path; + 43 | }); + 44 | await page.goto("/"); + 45 | await page.getByRole("radio", { name: "보기에서 선택" }).check(); + 46 | await page.getByRole("button", { name: "게임 시작 · 소리 듣기" }).click(); + 47 | for (let index = 0; index < 3; index++) { + 48 | const bar = page.getByRole("progressbar"); + 49 | expect.soft(await bar.evaluate((el) => (el as HTMLProgressElement).position)).toBeCloseTo((index + 1) / 3); + 50 | await expect.soft(bar).toHaveAccessibleName("현재 문항 진행률", { timeout: 1000 }); + 51 | await bar.screenshot({ path: info.outputPath(`progress-${index + 1}.png`) }); + 52 | if (index) await page.getByRole("button", { name: /문장 듣기/ }).click(); + 53 | await expect(page.getByRole("group", { name: "답 선택" })).toBeVisible({ timeout: 30000 }); + 54 | const answer = WORDS.find((w) => target.endsWith(`-${w.id}.wav`))!.answer; + 55 | await page.getByRole("button", { name: new RegExp(answer) }).click(); + 56 | await page.getByRole("button", { name: index === 2 ? /결과 보기/ : /다음 문제/ }).click(); + 57 | } + 58 | await page.screenshot({ path: info.outputPath("normal-results.png"), fullPage: true }); + 59 | expect(await copyLayout(page, ".results-panel h2, .results-panel p, .stats span")).toEqual([]); + 60 | }); + 61 | +``` \ No newline at end of file diff --git a/.agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-desktop/trace.zip b/.agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-desktop/trace.zip new file mode 100644 index 0000000..c806369 Binary files /dev/null and b/.agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-desktop/trace.zip differ diff --git a/.agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-mobile/copy-320-home.png b/.agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-mobile/copy-320-home.png new file mode 100644 index 0000000..9bb9d97 Binary files /dev/null and b/.agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-mobile/copy-320-home.png differ diff --git a/.agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-mobile/copy-320-results.png b/.agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-mobile/copy-320-results.png new file mode 100644 index 0000000..a1f6468 Binary files /dev/null and b/.agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-mobile/copy-320-results.png differ diff --git a/.agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-mobile/copy-360-home.png b/.agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-mobile/copy-360-home.png new file mode 100644 index 0000000..5310018 Binary files /dev/null and b/.agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-mobile/copy-360-home.png differ diff --git a/.agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-mobile/copy-360-results.png b/.agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-mobile/copy-360-results.png new file mode 100644 index 0000000..386ad4b Binary files /dev/null and b/.agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-mobile/copy-360-results.png differ diff --git a/.agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-mobile/error-context.md b/.agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-mobile/error-context.md new file mode 100644 index 0000000..cf80224 --- /dev/null +++ b/.agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-mobile/error-context.md @@ -0,0 +1,186 @@ +# 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: review-fixes.spec.ts >> 리뷰: 한국어 모드·결과 어절은 320px와 360px에서도 갈라지거나 넘치지 않는다 +- Location: tests/browser/review-fixes.spec.ts:24:1 + +# Error details + +``` +Error: expect(received).toEqual(expected) // deep equality + +- Expected - 1 ++ Received + 4 + +- Array [] ++ Array [ ++ "split: 탐험에서도", ++ "split: 라운드", ++ ] +``` + +``` +Error: expect(received).toEqual(expected) // deep equality + +- Expected - 1 ++ Received + 3 + +- Array [] ++ Array [ ++ "split: 입력", ++ ] +``` + +``` +Error: expect(received).toEqual(expected) // deep equality + +- Expected - 1 ++ Received + 4 + +- Array [] ++ Array [ ++ "split: 만나요", ++ "split: 최대", ++ ] +``` + +# Page snapshot + +```yaml +- generic [ref=f1e2]: + - link "본문으로 건너뛰기" [ref=f1e3] [cursor=pointer]: + - /url: "#main" + - banner [ref=f1e4]: + - generic [ref=f1e5]: + - heading "단어를 맞춰라" [level=1] [ref=f1e11] + - generic [ref=f1e12]: v0.2.3 + - generic: 소리에 집중하는 시간 + - main [ref=f1e13]: + - generic [ref=f1e14]: + - text: 지금까지의 소리 탐험 + - generic [ref=f1e15]: S + - heading "문제 풀이를 종료했어요." [active] [level=2] [ref=f1e23] + - paragraph [ref=f1e24]: 작은 소리에 집중한 당신, 다음 탐험에서도 만나요. + - paragraph [ref=f1e25]: 응답 0문항 · 정답 0문항 + - generic [ref=f1e26]: + - generic [ref=f1e27]: + - strong [ref=f1e28]: "0" + - text: 총 점수 + - generic [ref=f1e29]: + - strong [ref=f1e30]: 0% + - generic [ref=f1e31]: 정답률 · 0/0 + - generic [ref=f1e32]: + - strong [ref=f1e33]: 0회 + - text: 최고 연속 정답 + - table "난이도별 결과" [ref=f1e34]: + - rowgroup [ref=f1e35]: + - row [ref=f1e36]: + - columnheader "난이도" [ref=f1e37] + - columnheader "SNR" [ref=f1e38] + - columnheader "맞힌 문제" [ref=f1e39] + - rowgroup [ref=f1e40]: + - row [ref=f1e41]: + - rowheader "1단계" [ref=f1e42] + - cell "SNR +6 dB" [ref=f1e43] + - cell "0 / 0" [ref=f1e44] + - row [ref=f1e45]: + - rowheader "2단계" [ref=f1e46] + - cell "SNR +3 dB" [ref=f1e47] + - cell "0 / 0" [ref=f1e48] + - row [ref=f1e49]: + - rowheader "3단계" [ref=f1e50] + - cell "SNR 0 dB" [ref=f1e51] + - cell "0 / 0" [ref=f1e52] + - row [ref=f1e53]: + - rowheader "4단계" [ref=f1e54] + - cell "SNR -3 dB" [ref=f1e55] + - cell "0 / 0" [ref=f1e56] + - row [ref=f1e57]: + - rowheader "5단계" [ref=f1e58] + - cell "SNR -6 dB" [ref=f1e59] + - cell "0 / 0" [ref=f1e60] + - paragraph [ref=f1e61]: 단계 × 100점 + 연속 정답 보너스 (라운드 내 최대 20점) + - button "처음 화면으로" [ref=f1e62] [cursor=pointer] + - generic [ref=f1e63]: + - generic [ref=f1e64]: ◖)) 전체 음량 + - slider "전체 음량" [ref=f1e65] [cursor=pointer]: "35" + - status [ref=f1e66]: 35% + - contentinfo [ref=f1e67]: + - paragraph [ref=f1e68]: Designed by OZ at Heat-T Medical Inc. + - paragraph [ref=f1e69]: 청각적 주의·식별 게임 · 의료적 진단이나 치료를 제공하지 않습니다. + - generic [ref=f1e70]: 개인정보 수집 없이, 오직 플레이만. + - link "환경음 출처·라이선스" [ref=f1e71] [cursor=pointer]: + - /url: /AMBIENCE_NOTICES.md +``` + +# Test source + +```ts + 1 | import { expect, test, type Page } from "@playwright/test"; + 2 | import { WORDS } from "../../src/content"; + 3 | + 4 | // 글자별 스타일 추측 대신 실제 Range 줄 상자를 비교해 어절 내부 분리를 검출한다. + 5 | async function copyLayout(page: Page, selector: string) { + 6 | return page.locator(selector).evaluateAll((elements) => elements.flatMap((element) => { + 7 | const problems: string[] = []; + 8 | const walker = document.createTreeWalker(element, NodeFilter.SHOW_TEXT); + 9 | while (walker.nextNode()) { + 10 | const node = walker.currentNode; + 11 | for (const match of (node.textContent ?? "").matchAll(/[가-힣]+/g)) { + 12 | const range = document.createRange(); + 13 | range.setStart(node, match.index!); + 14 | range.setEnd(node, match.index! + match[0].length); + 15 | if (new Set(Array.from(range.getClientRects(), (r) => r.y)).size > 1) + 16 | problems.push(`split: ${match[0]}`); + 17 | } + 18 | } + 19 | if (element.scrollWidth > element.clientWidth) problems.push(`overflow: ${element.textContent}`); + 20 | return problems; + 21 | })); + 22 | } + 23 | + 24 | test("리뷰: 한국어 모드·결과 어절은 320px와 360px에서도 갈라지거나 넘치지 않는다", async ({ page }, info) => { + 25 | for (const width of [320, 360]) { + 26 | await page.setViewportSize({ width, height: 800 }); + 27 | await page.goto("/"); + 28 | expect.soft(await copyLayout(page, ".mode-option small")).toEqual([]); + 29 | await page.screenshot({ path: info.outputPath(`copy-${width}-home.png`), fullPage: true }); + 30 | await page.getByRole("button", { name: "게임 시작 · 소리 듣기" }).click(); + 31 | await page.getByRole("button", { name: "문제 풀이 종료" }).click(); +> 32 | expect.soft(await copyLayout(page, ".results-panel h2, .results-panel p, .stats span, .results-panel th, .results-panel td")).toEqual([]); + | ^ Error: expect(received).toEqual(expected) // deep equality + 33 | expect.soft(await page.evaluate(() => document.documentElement.scrollWidth <= innerWidth)).toBe(true); + 34 | await page.screenshot({ path: info.outputPath(`copy-${width}-results.png`), fullPage: true }); + 35 | } + 36 | }); + 37 | + 38 | test("리뷰: 실제 진행 막대는 현재 문항의 1/3·2/3·3/3을 채운다", async ({ page }, info) => { + 39 | let target = ""; + 40 | page.on("request", (r) => { + 41 | const path = new URL(r.url()).pathname; + 42 | if (path.startsWith("/audio/") && path !== "/audio/intro.wav") target = path; + 43 | }); + 44 | await page.goto("/"); + 45 | await page.getByRole("radio", { name: "보기에서 선택" }).check(); + 46 | await page.getByRole("button", { name: "게임 시작 · 소리 듣기" }).click(); + 47 | for (let index = 0; index < 3; index++) { + 48 | const bar = page.getByRole("progressbar"); + 49 | expect.soft(await bar.evaluate((el) => (el as HTMLProgressElement).position)).toBeCloseTo((index + 1) / 3); + 50 | await expect.soft(bar).toHaveAccessibleName("현재 문항 진행률", { timeout: 1000 }); + 51 | await bar.screenshot({ path: info.outputPath(`progress-${index + 1}.png`) }); + 52 | if (index) await page.getByRole("button", { name: /문장 듣기/ }).click(); + 53 | await expect(page.getByRole("group", { name: "답 선택" })).toBeVisible({ timeout: 30000 }); + 54 | const answer = WORDS.find((w) => target.endsWith(`-${w.id}.wav`))!.answer; + 55 | await page.getByRole("button", { name: new RegExp(answer) }).click(); + 56 | await page.getByRole("button", { name: index === 2 ? /결과 보기/ : /다음 문제/ }).click(); + 57 | } + 58 | await page.screenshot({ path: info.outputPath("normal-results.png"), fullPage: true }); + 59 | expect(await copyLayout(page, ".results-panel h2, .results-panel p, .stats span")).toEqual([]); + 60 | }); + 61 | +``` \ No newline at end of file diff --git a/.agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-mobile/trace.zip b/.agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-mobile/trace.zip new file mode 100644 index 0000000..f3949b5 Binary files /dev/null and b/.agent/evidence-v0.2.3/review-fixes/browser-red/review-fixes-리뷰-한국어-모드·결과-어절은-320px와-360px에서도-갈라지거나-넘치지-않는다-mobile/trace.zip differ diff --git a/.agent/evidence-v0.2.3/review-fixes/browser-results.json b/.agent/evidence-v0.2.3/review-fixes/browser-results.json new file mode 100644 index 0000000..4d85b7c --- /dev/null +++ b/.agent/evidence-v0.2.3/review-fixes/browser-results.json @@ -0,0 +1,1253 @@ +{ + "config": { + "argv": [ + "/home/hermes/.hermes/node/bin/node", + "/home/hermes/worktrees/find-word-v0.2.3/node_modules/.bin/playwright", + "test", + "--reporter=line,json", + "--output=.agent/evidence-v0.2.3/review-fixes/browser-final" + ], + "configFile": "/home/hermes/worktrees/find-word-v0.2.3/playwright.config.ts", + "rootDir": "/home/hermes/worktrees/find-word-v0.2.3/tests/browser", + "failOnFlakyTests": false, + "forbidOnly": false, + "fullyParallel": true, + "globalSetup": null, + "globalTeardown": null, + "globalTimeout": 0, + "grep": {}, + "grepInvert": null, + "maxFailures": 0, + "metadata": { + "actualWorkers": 2 + }, + "preserveOutput": "always", + "projects": [ + { + "outputDir": "/home/hermes/worktrees/find-word-v0.2.3/.agent/evidence-v0.2.3/review-fixes/browser-final", + "repeatEach": 1, + "retries": 0, + "metadata": { + "actualWorkers": 2 + }, + "id": "desktop", + "name": "desktop", + "testDir": "/home/hermes/worktrees/find-word-v0.2.3/tests/browser", + "testIgnore": [], + "testMatch": [ + "**/*.@(spec|test).?(c|m)[jt]s?(x)" + ], + "timeout": 120000 + }, + { + "outputDir": "/home/hermes/worktrees/find-word-v0.2.3/.agent/evidence-v0.2.3/review-fixes/browser-final", + "repeatEach": 1, + "retries": 0, + "metadata": { + "actualWorkers": 2 + }, + "id": "mobile", + "name": "mobile", + "testDir": "/home/hermes/worktrees/find-word-v0.2.3/tests/browser", + "testIgnore": [], + "testMatch": [ + "**/*.@(spec|test).?(c|m)[jt]s?(x)" + ], + "timeout": 120000 + } + ], + "filteredProjects": [ + { + "grep": {}, + "grepInvert": null, + "outputDir": "/home/hermes/worktrees/find-word-v0.2.3/.agent/evidence-v0.2.3/review-fixes/browser-final", + "repeatEach": 1, + "retries": 0, + "metadata": { + "actualWorkers": 2 + }, + "name": "desktop", + "testDir": "/home/hermes/worktrees/find-word-v0.2.3/tests/browser", + "snapshotDir": "/home/hermes/worktrees/find-word-v0.2.3/tests/browser", + "testIgnore": [], + "testMatch": "**/*.@(spec|test).?(c|m)[jt]s?(x)", + "timeout": 120000, + "use": { + "baseURL": "http://127.0.0.1:4173", + "launchOptions": { + "executablePath": "/usr/bin/google-chrome", + "chromiumSandbox": true + }, + "trace": "retain-on-failure", + "viewport": { + "width": 1280, + "height": 1000 + } + }, + "dependencies": [], + "ignoreSnapshots": false, + "__projectId": "desktop" + }, + { + "grep": {}, + "grepInvert": null, + "outputDir": "/home/hermes/worktrees/find-word-v0.2.3/.agent/evidence-v0.2.3/review-fixes/browser-final", + "repeatEach": 1, + "retries": 0, + "metadata": { + "actualWorkers": 2 + }, + "name": "mobile", + "testDir": "/home/hermes/worktrees/find-word-v0.2.3/tests/browser", + "snapshotDir": "/home/hermes/worktrees/find-word-v0.2.3/tests/browser", + "testIgnore": [], + "testMatch": "**/*.@(spec|test).?(c|m)[jt]s?(x)", + "timeout": 120000, + "use": { + "baseURL": "http://127.0.0.1:4173", + "launchOptions": { + "executablePath": "/usr/bin/google-chrome", + "chromiumSandbox": true + }, + "trace": "retain-on-failure", + "viewport": { + "width": 360, + "height": 800 + }, + "isMobile": true, + "hasTouch": true + }, + "dependencies": [], + "ignoreSnapshots": false, + "__projectId": "mobile" + } + ], + "quiet": false, + "reporter": [ + [ + "line" + ], + [ + "json" + ] + ], + "reportSlowTests": { + "max": 5, + "threshold": 300000 + }, + "shard": null, + "tags": [], + "updateSnapshots": "default", + "updateSourceMethod": "patch", + "version": "1.64.0", + "workers": 2, + "webServer": { + "command": "npm run preview -- --port 4173 --strictPort", + "url": "http://127.0.0.1:4173", + "reuseExistingServer": false + } + }, + "suites": [ + { + "title": "audio.spec.ts", + "file": "audio.spec.ts", + "column": 0, + "line": 0, + "specs": [ + { + "title": "음성·현장음 109개 versioned WAV를 실제 Chrome에서 해시·디코드 검증한다", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "desktop", + "projectName": "desktop", + "results": [ + { + "workerIndex": 0, + "parallelIndex": 0, + "status": "passed", + "duration": 21473, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T08:57:45.740Z", + "annotations": [], + "attachments": [ + { + "name": "109 versioned WAV integrity", + "contentType": "application/json", + "path": "/home/hermes/worktrees/find-word-v0.2.3/.agent/evidence-v0.2.3/review-fixes/browser-final/audio-음성·현장음-109개-versioned-WAV를-실제-Chrome에서-해시·디코드-검증한다-desktop/attachments/109-versioned-WAV-integrity-7406877c173ee35afff758c9c5f1645f0dc02fa5.json" + } + ] + } + ], + "status": "expected" + } + ], + "id": "87be2dcdb54c25970a35-d93130048b0c80dc4106", + "file": "audio.spec.ts", + "line": 7, + "column": 1 + }, + { + "title": "음성·현장음 109개 versioned WAV를 실제 Chrome에서 해시·디코드 검증한다", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "mobile", + "projectName": "mobile", + "results": [ + { + "workerIndex": 2, + "parallelIndex": 1, + "status": "passed", + "duration": 15052, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T08:59:42.049Z", + "annotations": [], + "attachments": [ + { + "name": "109 versioned WAV integrity", + "contentType": "application/json", + "path": "/home/hermes/worktrees/find-word-v0.2.3/.agent/evidence-v0.2.3/review-fixes/browser-final/audio-음성·현장음-109개-versioned-WAV를-실제-Chrome에서-해시·디코드-검증한다-mobile/attachments/109-versioned-WAV-integrity-9b9f8223b6524087ac395eb7a96ac0d386fbcb95.json" + } + ] + } + ], + "status": "expected" + } + ], + "id": "87be2dcdb54c25970a35-9f9914a49e88a65e211e", + "file": "audio.spec.ts", + "line": 7, + "column": 1 + } + ] + }, + { + "title": "game.spec.ts", + "file": "game.spec.ts", + "column": 0, + "line": 0, + "specs": [ + { + "title": "실제 오디오로 혼합 모드 완주·레이아웃·접근성·외부 요청 없음", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "desktop", + "projectName": "desktop", + "results": [ + { + "workerIndex": 1, + "parallelIndex": 1, + "status": "passed", + "duration": 47715, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T08:57:45.833Z", + "annotations": [], + "attachments": [] + } + ], + "status": "expected" + } + ], + "id": "8b1bb1493a64c9fc3ab6-d223e249bc9a81f166b0", + "file": "game.spec.ts", + "line": 8, + "column": 1 + }, + { + "title": "intro WAV query URL의 404를 표시하고 같은 URL로 재시도·정답 mapping한다", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "desktop", + "projectName": "desktop", + "results": [ + { + "workerIndex": 0, + "parallelIndex": 0, + "status": "passed", + "duration": 17218, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T08:58:07.604Z", + "annotations": [], + "attachments": [] + } + ], + "status": "expected" + } + ], + "id": "8b1bb1493a64c9fc3ab6-ab45385409470bdf7ef2", + "file": "game.spec.ts", + "line": 130, + "column": 3 + }, + { + "title": "target WAV query URL의 404를 표시하고 같은 URL로 재시도·정답 mapping한다", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "desktop", + "projectName": "desktop", + "results": [ + { + "workerIndex": 0, + "parallelIndex": 0, + "status": "passed", + "duration": 16296, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T08:58:24.843Z", + "annotations": [], + "attachments": [] + } + ], + "status": "expected" + } + ], + "id": "8b1bb1493a64c9fc3ab6-52922f8228abc9f39bfe", + "file": "game.spec.ts", + "line": 130, + "column": 3 + }, + { + "title": "실제 오디오로 혼합 모드 완주·레이아웃·접근성·외부 요청 없음", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "mobile", + "projectName": "mobile", + "results": [ + { + "workerIndex": 3, + "parallelIndex": 0, + "status": "passed", + "duration": 43296, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T08:59:56.396Z", + "annotations": [], + "attachments": [] + } + ], + "status": "expected" + } + ], + "id": "8b1bb1493a64c9fc3ab6-e4766fea5c25788202a8", + "file": "game.spec.ts", + "line": 8, + "column": 1 + }, + { + "title": "intro WAV query URL의 404를 표시하고 같은 URL로 재시도·정답 mapping한다", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "mobile", + "projectName": "mobile", + "results": [ + { + "workerIndex": 2, + "parallelIndex": 1, + "status": "passed", + "duration": 13917, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T08:59:57.425Z", + "annotations": [], + "attachments": [] + } + ], + "status": "expected" + } + ], + "id": "8b1bb1493a64c9fc3ab6-84b7835dc149f0ebaeb2", + "file": "game.spec.ts", + "line": 130, + "column": 3 + }, + { + "title": "target WAV query URL의 404를 표시하고 같은 URL로 재시도·정답 mapping한다", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "mobile", + "projectName": "mobile", + "results": [ + { + "workerIndex": 2, + "parallelIndex": 1, + "status": "passed", + "duration": 13641, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T09:00:11.364Z", + "annotations": [], + "attachments": [] + } + ], + "status": "expected" + } + ], + "id": "8b1bb1493a64c9fc3ab6-05de2d3047fb33c59bd2", + "file": "game.spec.ts", + "line": 130, + "column": 3 + } + ] + }, + { + "title": "release.spec.ts", + "file": "release.spec.ts", + "column": 0, + "line": 0, + "specs": [ + { + "title": "릴리스는 사용자 크레딧과 런타임 MIT notice 전문을 제공한다", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "desktop", + "projectName": "desktop", + "results": [ + { + "workerIndex": 1, + "parallelIndex": 1, + "status": "passed", + "duration": 489, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T08:58:33.953Z", + "annotations": [], + "attachments": [] + } + ], + "status": "expected" + } + ], + "id": "7324964a6aa193ebd049-64d3eb3e631d5e3a7482", + "file": "release.spec.ts", + "line": 6, + "column": 1 + }, + { + "title": "누락 음성·환경음은 query와 HTML accept에도 404이고 출처 고지는 번들된다", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "desktop", + "projectName": "desktop", + "results": [ + { + "workerIndex": 1, + "parallelIndex": 1, + "status": "passed", + "duration": 37, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T08:58:34.463Z", + "annotations": [], + "attachments": [] + } + ], + "status": "expected" + } + ], + "id": "7324964a6aa193ebd049-a9a4a24641e1381cb656", + "file": "release.spec.ts", + "line": 24, + "column": 1 + }, + { + "title": "릴리스는 사용자 크레딧과 런타임 MIT notice 전문을 제공한다", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "mobile", + "projectName": "mobile", + "results": [ + { + "workerIndex": 2, + "parallelIndex": 1, + "status": "passed", + "duration": 310, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T09:00:25.028Z", + "annotations": [], + "attachments": [] + } + ], + "status": "expected" + } + ], + "id": "7324964a6aa193ebd049-b2bb581aa05f7bfc0a11", + "file": "release.spec.ts", + "line": 6, + "column": 1 + }, + { + "title": "누락 음성·환경음은 query와 HTML accept에도 404이고 출처 고지는 번들된다", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "mobile", + "projectName": "mobile", + "results": [ + { + "workerIndex": 2, + "parallelIndex": 1, + "status": "passed", + "duration": 37, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T09:00:25.353Z", + "annotations": [], + "attachments": [] + } + ], + "status": "expected" + } + ], + "id": "7324964a6aa193ebd049-87e393dee6d378b60b88", + "file": "release.spec.ts", + "line": 24, + "column": 1 + } + ] + }, + { + "title": "review-fixes.spec.ts", + "file": "review-fixes.spec.ts", + "column": 0, + "line": 0, + "specs": [ + { + "title": "리뷰: 한국어 모드·결과 어절은 320px와 360px에서도 갈라지거나 넘치지 않는다", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "desktop", + "projectName": "desktop", + "results": [ + { + "workerIndex": 1, + "parallelIndex": 1, + "status": "passed", + "duration": 2045, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T08:58:34.525Z", + "annotations": [], + "attachments": [] + } + ], + "status": "expected" + } + ], + "id": "abdd2e2cf517d3c959fd-e748bd769b024912a05a", + "file": "review-fixes.spec.ts", + "line": 27, + "column": 1 + }, + { + "title": "리뷰: 실제 진행 막대는 현재 문항의 1/3·2/3·3/3을 채운다", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "desktop", + "projectName": "desktop", + "results": [ + { + "workerIndex": 1, + "parallelIndex": 1, + "status": "passed", + "duration": 38922, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T08:58:36.608Z", + "annotations": [], + "attachments": [] + } + ], + "status": "expected" + } + ], + "id": "abdd2e2cf517d3c959fd-f7936886d307bf504a2e", + "file": "review-fixes.spec.ts", + "line": 62, + "column": 1 + }, + { + "title": "리뷰: 한국어 모드·결과 어절은 320px와 360px에서도 갈라지거나 넘치지 않는다", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "mobile", + "projectName": "mobile", + "results": [ + { + "workerIndex": 2, + "parallelIndex": 1, + "status": "passed", + "duration": 1572, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T09:00:25.419Z", + "annotations": [], + "attachments": [] + } + ], + "status": "expected" + } + ], + "id": "abdd2e2cf517d3c959fd-297a2a889ff2a2c13233", + "file": "review-fixes.spec.ts", + "line": 27, + "column": 1 + }, + { + "title": "리뷰: 실제 진행 막대는 현재 문항의 1/3·2/3·3/3을 채운다", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "mobile", + "projectName": "mobile", + "results": [ + { + "workerIndex": 2, + "parallelIndex": 1, + "status": "passed", + "duration": 30144, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T09:00:27.011Z", + "annotations": [], + "attachments": [] + } + ], + "status": "expected" + } + ], + "id": "abdd2e2cf517d3c959fd-99533baf08fa35da0cd2", + "file": "review-fixes.spec.ts", + "line": 62, + "column": 1 + } + ] + }, + { + "title": "rounds.spec.ts", + "file": "rounds.spec.ts", + "column": 0, + "line": 0, + "specs": [ + { + "title": "시작 단계·SNR·3문항 완료→다음 단계·재생 중 종료·응답 후 종료·홈 초기화", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "desktop", + "projectName": "desktop", + "results": [ + { + "workerIndex": 0, + "parallelIndex": 0, + "status": "passed", + "duration": 54028, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T08:58:41.180Z", + "annotations": [], + "attachments": [ + { + "name": "runtime-audit", + "contentType": "application/json", + "body": "ewogICJlcnJvcnMiOiBbXSwKICAiZmFpbGVkIjogW10sCiAgImV4dGVybmFsIjogW10sCiAgImF1ZGlvIjogewogICAgInN0YXJ0cyI6IFsKICAgICAgewogICAgICAgICJsb29wIjogdHJ1ZSwKICAgICAgICAiZHVyYXRpb24iOiAxMgogICAgICB9LAogICAgICB7CiAgICAgICAgImxvb3AiOiBmYWxzZSwKICAgICAgICAiZHVyYXRpb24iOiA3LjA1NTk4NjM5NDU1NzgyMwogICAgICB9LAogICAgICB7CiAgICAgICAgImxvb3AiOiBmYWxzZSwKICAgICAgICAiZHVyYXRpb24iOiA3LjIKICAgICAgfSwKICAgICAgewogICAgICAgICJsb29wIjogdHJ1ZSwKICAgICAgICAiZHVyYXRpb24iOiAxMgogICAgICB9LAogICAgICB7CiAgICAgICAgImxvb3AiOiBmYWxzZSwKICAgICAgICAiZHVyYXRpb24iOiA3LjQxNTk4NjM5NDU1NzgyMwogICAgICB9LAogICAgICB7CiAgICAgICAgImxvb3AiOiB0cnVlLAogICAgICAgICJkdXJhdGlvbiI6IDEyCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAibG9vcCI6IGZhbHNlLAogICAgICAgICJkdXJhdGlvbiI6IDcuMgogICAgICB9LAogICAgICB7CiAgICAgICAgImxvb3AiOiB0cnVlLAogICAgICAgICJkdXJhdGlvbiI6IDEyCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAibG9vcCI6IGZhbHNlLAogICAgICAgICJkdXJhdGlvbiI6IDcuMDU1OTg2Mzk0NTU3ODIzCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAibG9vcCI6IGZhbHNlLAogICAgICAgICJkdXJhdGlvbiI6IDQuMDA3OTgxODU5NDEwNDMxCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAibG9vcCI6IHRydWUsCiAgICAgICAgImR1cmF0aW9uIjogMTIKICAgICAgfSwKICAgICAgewogICAgICAgICJsb29wIjogZmFsc2UsCiAgICAgICAgImR1cmF0aW9uIjogNy4wNTU5ODYzOTQ1NTc4MjMKICAgICAgfSwKICAgICAgewogICAgICAgICJsb29wIjogZmFsc2UsCiAgICAgICAgImR1cmF0aW9uIjogNS4wMzk5NzczMjQyNjMwMzgKICAgICAgfSwKICAgICAgewogICAgICAgICJsb29wIjogdHJ1ZSwKICAgICAgICAiZHVyYXRpb24iOiAxMgogICAgICB9LAogICAgICB7CiAgICAgICAgImxvb3AiOiBmYWxzZSwKICAgICAgICAiZHVyYXRpb24iOiA1LjAzOTk3NzMyNDI2MzAzOAogICAgICB9CiAgICBdLAogICAgInN0b3BzIjogMTUKICB9Cn0=" + } + ] + } + ], + "status": "expected" + } + ], + "id": "5d80d20ef944a60dee29-84fa7dcc311fcc9f3abb", + "file": "rounds.spec.ts", + "line": 35, + "column": 1 + }, + { + "title": "여덟 환경의 실제 WAV를 각각 디코드하고 루프 재생한 뒤 즉시 정지한다", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "desktop", + "projectName": "desktop", + "results": [ + { + "workerIndex": 1, + "parallelIndex": 1, + "status": "passed", + "duration": 8094, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T08:59:15.579Z", + "annotations": [], + "attachments": [] + } + ], + "status": "expected" + } + ], + "id": "5d80d20ef944a60dee29-67ee259e43d6a5758a4c", + "file": "rounds.spec.ts", + "line": 135, + "column": 1 + }, + { + "title": "환경음 404는 한국어 오류와 재시도 후 정상 답변으로 복구한다", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "desktop", + "projectName": "desktop", + "results": [ + { + "workerIndex": 1, + "parallelIndex": 1, + "status": "passed", + "duration": 16905, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T08:59:23.728Z", + "annotations": [], + "attachments": [] + } + ], + "status": "expected" + } + ], + "id": "5d80d20ef944a60dee29-b3270c20fde2468292dc", + "file": "rounds.spec.ts", + "line": 178, + "column": 1 + }, + { + "title": "시작 단계·SNR·3문항 완료→다음 단계·재생 중 종료·응답 후 종료·홈 초기화", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "mobile", + "projectName": "mobile", + "results": [ + { + "workerIndex": 3, + "parallelIndex": 0, + "status": "passed", + "duration": 63023, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T09:00:39.963Z", + "annotations": [], + "attachments": [ + { + "name": "runtime-audit", + "contentType": "application/json", + "body": "ewogICJlcnJvcnMiOiBbXSwKICAiZmFpbGVkIjogW10sCiAgImV4dGVybmFsIjogW10sCiAgImF1ZGlvIjogewogICAgInN0YXJ0cyI6IFsKICAgICAgewogICAgICAgICJsb29wIjogdHJ1ZSwKICAgICAgICAiZHVyYXRpb24iOiAxMgogICAgICB9LAogICAgICB7CiAgICAgICAgImxvb3AiOiBmYWxzZSwKICAgICAgICAiZHVyYXRpb24iOiA3LjA1NTk4NjM5NDU1NzgyMwogICAgICB9LAogICAgICB7CiAgICAgICAgImxvb3AiOiBmYWxzZSwKICAgICAgICAiZHVyYXRpb24iOiA3LjQzOTk3NzMyNDI2MzAzODUKICAgICAgfSwKICAgICAgewogICAgICAgICJsb29wIjogdHJ1ZSwKICAgICAgICAiZHVyYXRpb24iOiAxMgogICAgICB9LAogICAgICB7CiAgICAgICAgImxvb3AiOiBmYWxzZSwKICAgICAgICAiZHVyYXRpb24iOiA4LjIwNzk4MTg1OTQxMDQzMQogICAgICB9LAogICAgICB7CiAgICAgICAgImxvb3AiOiB0cnVlLAogICAgICAgICJkdXJhdGlvbiI6IDEyCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAibG9vcCI6IGZhbHNlLAogICAgICAgICJkdXJhdGlvbiI6IDUuMDE1OTg2Mzk0NTU3ODIzCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAibG9vcCI6IHRydWUsCiAgICAgICAgImR1cmF0aW9uIjogMTIKICAgICAgfSwKICAgICAgewogICAgICAgICJsb29wIjogZmFsc2UsCiAgICAgICAgImR1cmF0aW9uIjogNy4wNTU5ODYzOTQ1NTc4MjMKICAgICAgfSwKICAgICAgewogICAgICAgICJsb29wIjogZmFsc2UsCiAgICAgICAgImR1cmF0aW9uIjogNy45Njc5ODE4NTk0MTA0MzEKICAgICAgfSwKICAgICAgewogICAgICAgICJsb29wIjogdHJ1ZSwKICAgICAgICAiZHVyYXRpb24iOiAxMgogICAgICB9LAogICAgICB7CiAgICAgICAgImxvb3AiOiBmYWxzZSwKICAgICAgICAiZHVyYXRpb24iOiA3LjA1NTk4NjM5NDU1NzgyMwogICAgICB9LAogICAgICB7CiAgICAgICAgImxvb3AiOiBmYWxzZSwKICAgICAgICAiZHVyYXRpb24iOiAxMC44OTU5ODYzOTQ1NTc4MjMKICAgICAgfSwKICAgICAgewogICAgICAgICJsb29wIjogdHJ1ZSwKICAgICAgICAiZHVyYXRpb24iOiAxMgogICAgICB9LAogICAgICB7CiAgICAgICAgImxvb3AiOiBmYWxzZSwKICAgICAgICAiZHVyYXRpb24iOiAxMC44OTU5ODYzOTQ1NTc4MjMKICAgICAgfQogICAgXSwKICAgICJzdG9wcyI6IDE1CiAgfQp9" + } + ] + } + ], + "status": "expected" + } + ], + "id": "5d80d20ef944a60dee29-13a6d49b3ccf87a3e87d", + "file": "rounds.spec.ts", + "line": 35, + "column": 1 + }, + { + "title": "여덟 환경의 실제 WAV를 각각 디코드하고 루프 재생한 뒤 즉시 정지한다", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "mobile", + "projectName": "mobile", + "results": [ + { + "workerIndex": 2, + "parallelIndex": 1, + "status": "passed", + "duration": 6321, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T09:00:57.186Z", + "annotations": [], + "attachments": [] + } + ], + "status": "expected" + } + ], + "id": "5d80d20ef944a60dee29-986d947b51ae90d63e40", + "file": "rounds.spec.ts", + "line": 135, + "column": 1 + }, + { + "title": "환경음 404는 한국어 오류와 재시도 후 정상 답변으로 복구한다", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "mobile", + "projectName": "mobile", + "results": [ + { + "workerIndex": 2, + "parallelIndex": 1, + "status": "passed", + "duration": 15948, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T09:01:03.525Z", + "annotations": [], + "attachments": [] + } + ], + "status": "expected" + } + ], + "id": "5d80d20ef944a60dee29-cf677d38ab55c08f0ba0", + "file": "rounds.spec.ts", + "line": 178, + "column": 1 + } + ] + }, + { + "title": "ui.spec.ts", + "file": "ui.spec.ts", + "column": 0, + "line": 0, + "specs": [ + { + "title": "전체 음량은 설정 흐름 안에 들어가며 키보드로 조절된다", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "desktop", + "projectName": "desktop", + "results": [ + { + "workerIndex": 0, + "parallelIndex": 0, + "status": "passed", + "duration": 1420, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T08:59:35.246Z", + "annotations": [], + "attachments": [] + } + ], + "status": "expected" + } + ], + "id": "d425444c687fa36b5882-2f651fec20696a7afab2", + "file": "ui.spec.ts", + "line": 4, + "column": 1 + }, + { + "title": "난이도 설명은 모바일에서도 보인다", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "desktop", + "projectName": "desktop", + "results": [ + { + "workerIndex": 0, + "parallelIndex": 0, + "status": "passed", + "duration": 1061, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T08:59:36.688Z", + "annotations": [], + "attachments": [] + } + ], + "status": "expected" + } + ], + "id": "d425444c687fa36b5882-7db7ff839d8655c45b58", + "file": "ui.spec.ts", + "line": 52, + "column": 1 + }, + { + "title": "한국어 제목은 단어 중간에서 줄바꿈하지 않는다", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "desktop", + "projectName": "desktop", + "results": [ + { + "workerIndex": 0, + "parallelIndex": 0, + "status": "passed", + "duration": 17664, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T08:59:37.778Z", + "annotations": [], + "attachments": [] + } + ], + "status": "expected" + } + ], + "id": "d425444c687fa36b5882-7518419f9a74847f1877", + "file": "ui.spec.ts", + "line": 68, + "column": 1 + }, + { + "title": "시작 단계와 SNR 설정은 카드 안에 들어가고 터치 영역을 확보한다", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "desktop", + "projectName": "desktop", + "results": [ + { + "workerIndex": 1, + "parallelIndex": 1, + "status": "passed", + "duration": 501, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T08:59:40.681Z", + "annotations": [], + "attachments": [] + } + ], + "status": "expected" + } + ], + "id": "d425444c687fa36b5882-8c65d4cc796bafc3d050", + "file": "ui.spec.ts", + "line": 121, + "column": 1 + }, + { + "title": "전체 음량은 설정 흐름 안에 들어가며 키보드로 조절된다", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "mobile", + "projectName": "mobile", + "results": [ + { + "workerIndex": 2, + "parallelIndex": 1, + "status": "passed", + "duration": 935, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T09:01:19.521Z", + "annotations": [], + "attachments": [] + } + ], + "status": "expected" + } + ], + "id": "d425444c687fa36b5882-42b32cae06f88c5571de", + "file": "ui.spec.ts", + "line": 4, + "column": 1 + }, + { + "title": "난이도 설명은 모바일에서도 보인다", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "mobile", + "projectName": "mobile", + "results": [ + { + "workerIndex": 2, + "parallelIndex": 1, + "status": "passed", + "duration": 620, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T09:01:20.469Z", + "annotations": [], + "attachments": [] + } + ], + "status": "expected" + } + ], + "id": "d425444c687fa36b5882-9bad02fda46134f05a95", + "file": "ui.spec.ts", + "line": 52, + "column": 1 + }, + { + "title": "한국어 제목은 단어 중간에서 줄바꿈하지 않는다", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "mobile", + "projectName": "mobile", + "results": [ + { + "workerIndex": 2, + "parallelIndex": 1, + "status": "passed", + "duration": 16568, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T09:01:21.104Z", + "annotations": [], + "attachments": [] + } + ], + "status": "expected" + } + ], + "id": "d425444c687fa36b5882-6ac401056de90e7e3757", + "file": "ui.spec.ts", + "line": 68, + "column": 1 + }, + { + "title": "시작 단계와 SNR 설정은 카드 안에 들어가고 터치 영역을 확보한다", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 120000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "mobile", + "projectName": "mobile", + "results": [ + { + "workerIndex": 2, + "parallelIndex": 1, + "status": "passed", + "duration": 327, + "errors": [], + "stdout": [], + "stderr": [], + "retry": 0, + "startTime": "2026-10-14T09:01:37.685Z", + "annotations": [], + "attachments": [] + } + ], + "status": "expected" + } + ], + "id": "d425444c687fa36b5882-c761fe2d98a1c83f2536", + "file": "ui.spec.ts", + "line": 121, + "column": 1 + } + ] + } + ], + "errors": [], + "stats": { + "startTime": "2026-10-14T08:57:44.359Z", + "duration": 238749.10799999998, + "expected": 30, + "skipped": 0, + "unexpected": 0, + "flaky": 0 + } +} \ No newline at end of file diff --git a/.agent/evidence-v0.2.3/review-fixes/chrome-sandbox.json b/.agent/evidence-v0.2.3/review-fixes/chrome-sandbox.json new file mode 100644 index 0000000..72bce48 --- /dev/null +++ b/.agent/evidence-v0.2.3/review-fixes/chrome-sandbox.json @@ -0,0 +1,582 @@ +{ + "chromeVersion": "Google Chrome 146.0.7680.80", + "scope": "system Chrome with Playwright temporary profiles only; unrelated browsers excluded", + "processCount": 20, + "noSandboxFlags": 0, + "processes": [ + { + "pid": 1040984, + "args": [ + "/opt/google/chrome/chrome", + "--disable-field-trial-config", + "--disable-background-networking", + "--disable-background-timer-throttling", + "--disable-backgrounding-occluded-windows", + "--disable-back-forward-cache", + "--disable-breakpad", + "--disable-client-side-phishing-detection", + "--disable-component-extensions-with-background-pages", + "--disable-component-update", + "--no-default-browser-check", + "--disable-default-apps", + "--disable-dev-shm-usage", + "--disable-edgeupdater", + "--disable-extensions", + "--disable-features=AvoidUnnecessaryBeforeUnloadCheckSync,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,PaintHolding,ThirdPartyStoragePartitioning,BlockOriginHeaderModificationOnRedirect,Translate,AutoDeElevate,OptimizationHints,NetworkTimeServiceQuerying,AimEnabled,msForceBrowserSignIn,msEdgeUpdateLaunchServicesPreferredVersion", + "--enable-features=CDPScreenshotNewSurface", + "--allow-pre-commit-input", + "--disable-hang-monitor", + "--disable-ipc-flooding-protection", + "--disable-popup-blocking", + "--disable-prompt-on-repost", + "--disable-renderer-backgrounding", + "--disable-updater-scheduler", + "--force-color-profile=srgb", + "--metrics-recording-only", + "--no-first-run", + "--password-store=basic", + "--use-mock-keychain", + "--no-service-autorun", + "--export-tagged-pdf", + "--disable-search-engine-choice-screen", + "--unsafely-disable-devtools-self-xss-warnings", + "--edge-skip-compat-layer-relaunch", + "--disable-infobars", + "--disable-search-engine-choice-screen", + "--disable-sync", + "--enable-unsafe-swiftshader", + "--headless", + "--hide-scrollbars", + "--mute-audio", + "--blink-settings=primaryHoverType=2,availableHoverTypes=2,primaryPointerType=4,availablePointerTypes=4", + "--user-data-dir=/tmp/playwright_chromiumdev_profile-fiqV52", + "--remote-debugging-pipe", + "--no-startup-window", + "--noerrdialogs", + "--ozone-platform=headless", + "--ozone-override-screen-size=800,600", + "--use-angle=swiftshader-webgl" + ], + "noSandbox": false + }, + { + "pid": 1041016, + "args": [ + "/opt/google/chrome/chrome", + "--type=zygote", + "--no-zygote-sandbox", + "--headless", + "--crashpad-handler-pid=1041005", + "--enable-crash-reporter=,", + "--noerrdialogs", + "--user-data-dir=/tmp/playwright_chromiumdev_profile-fiqV52", + "--change-stack-guard-on-fork=enable", + "--no-first-run", + "--ozone-platform=headless", + "--ozone-override-screen-size=800,600", + "--use-angle=swiftshader-webgl" + ], + "noSandbox": false + }, + { + "pid": 1041023, + "args": [ + "/opt/google/chrome/chrome", + "--type=zygote", + "--headless", + "--crashpad-handler-pid=1041005", + "--enable-crash-reporter=,", + "--noerrdialogs", + "--user-data-dir=/tmp/playwright_chromiumdev_profile-fiqV52", + "--change-stack-guard-on-fork=enable", + "--no-first-run", + "--ozone-platform=headless", + "--ozone-override-screen-size=800,600", + "--use-angle=swiftshader-webgl" + ], + "noSandbox": false + }, + { + "pid": 1041036, + "args": [ + "/opt/google/chrome/chrome", + "--type=zygote", + "--headless", + "--crashpad-handler-pid=1041005", + "--enable-crash-reporter=,", + "--noerrdialogs", + "--user-data-dir=/tmp/playwright_chromiumdev_profile-fiqV52", + "--change-stack-guard-on-fork=enable", + "--no-first-run", + "--ozone-platform=headless", + "--ozone-override-screen-size=800,600", + "--use-angle=swiftshader-webgl" + ], + "noSandbox": false + }, + { + "pid": 1041054, + "args": [ + "/opt/google/chrome/chrome", + "--type=gpu-process", + "--disable-dev-shm-usage", + "--disable-breakpad", + "--headless", + "--ozone-platform=headless", + "--use-angle=swiftshader-webgl", + "--enable-unsafe-swiftshader", + "--crashpad-handler-pid=1041005", + "--enable-crash-reporter=,", + "--noerrdialogs", + "--user-data-dir=/tmp/playwright_chromiumdev_profile-fiqV52", + "--change-stack-guard-on-fork=enable", + "--gpu-preferences=UAAAAAAAAAAgAAAEAAAAAAAAAAAAAGAAAQAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAYAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAgAAAAAAAAA", + "--shared-files", + "--field-trial-handle=3,i,4339457633542496141,5623256565939968786,262144", + "--enable-features=CDPScreenshotNewSurface", + "--disable-features=AimEnabled,AutoDeElevate,AvoidUnnecessaryBeforeUnloadCheckSync,BlockOriginHeaderModificationOnRedirect,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,NetworkTimeServiceQuerying,OptimizationHints,PaintHolding,ThirdPartyStoragePartitioning,Translate,msEdgeUpdateLaunchServicesPreferredVersion,msForceBrowserSignIn", + "--variations-seed-version", + "--pseudonymization-salt-handle=7,i,12072056145509087256,2602371660356270925,4", + "--trace-process-track-uuid=3190708988185955192" + ], + "noSandbox": false + }, + { + "pid": 1041059, + "args": [ + "/opt/google/chrome/chrome", + "--disable-field-trial-config", + "--disable-background-networking", + "--disable-background-timer-throttling", + "--disable-backgrounding-occluded-windows", + "--disable-back-forward-cache", + "--disable-breakpad", + "--disable-client-side-phishing-detection", + "--disable-component-extensions-with-background-pages", + "--disable-component-update", + "--no-default-browser-check", + "--disable-default-apps", + "--disable-dev-shm-usage", + "--disable-edgeupdater", + "--disable-extensions", + "--disable-features=AvoidUnnecessaryBeforeUnloadCheckSync,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,PaintHolding,ThirdPartyStoragePartitioning,BlockOriginHeaderModificationOnRedirect,Translate,AutoDeElevate,OptimizationHints,NetworkTimeServiceQuerying,AimEnabled,msForceBrowserSignIn,msEdgeUpdateLaunchServicesPreferredVersion", + "--enable-features=CDPScreenshotNewSurface", + "--allow-pre-commit-input", + "--disable-hang-monitor", + "--disable-ipc-flooding-protection", + "--disable-popup-blocking", + "--disable-prompt-on-repost", + "--disable-renderer-backgrounding", + "--disable-updater-scheduler", + "--force-color-profile=srgb", + "--metrics-recording-only", + "--no-first-run", + "--password-store=basic", + "--use-mock-keychain", + "--no-service-autorun", + "--export-tagged-pdf", + "--disable-search-engine-choice-screen", + "--unsafely-disable-devtools-self-xss-warnings", + "--edge-skip-compat-layer-relaunch", + "--disable-infobars", + "--disable-search-engine-choice-screen", + "--disable-sync", + "--enable-unsafe-swiftshader", + "--headless", + "--hide-scrollbars", + "--mute-audio", + "--blink-settings=primaryHoverType=2,availableHoverTypes=2,primaryPointerType=4,availablePointerTypes=4", + "--user-data-dir=/tmp/playwright_chromiumdev_profile-9jtvfW", + "--remote-debugging-pipe", + "--no-startup-window", + "--noerrdialogs", + "--ozone-platform=headless", + "--ozone-override-screen-size=800,600", + "--use-angle=swiftshader-webgl" + ], + "noSandbox": false + }, + { + "pid": 1041060, + "args": [ + "/opt/google/chrome/chrome", + "--type=utility", + "--utility-sub-type=network.mojom.NetworkService", + "--lang=en-US", + "--service-sandbox-type=none", + "--disable-dev-shm-usage", + "--use-angle=swiftshader-webgl", + "--mute-audio", + "--crashpad-handler-pid=1041005", + "--enable-crash-reporter=,", + "--noerrdialogs", + "--user-data-dir=/tmp/playwright_chromiumdev_profile-fiqV52", + "--change-stack-guard-on-fork=enable", + "--shared-files=v8_context_snapshot_data:100", + "--field-trial-handle=3,i,4339457633542496141,5623256565939968786,262144", + "--enable-features=CDPScreenshotNewSurface", + "--disable-features=AimEnabled,AutoDeElevate,AvoidUnnecessaryBeforeUnloadCheckSync,BlockOriginHeaderModificationOnRedirect,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,NetworkTimeServiceQuerying,OptimizationHints,PaintHolding,ThirdPartyStoragePartitioning,Translate,msEdgeUpdateLaunchServicesPreferredVersion,msForceBrowserSignIn", + "--variations-seed-version", + "--pseudonymization-salt-handle=7,i,12072056145509087256,2602371660356270925,4", + "--trace-process-track-uuid=3190708989122997041" + ], + "noSandbox": false + }, + { + "pid": 1041066, + "args": [ + "/opt/google/chrome/chrome", + "--type=utility", + "--utility-sub-type=storage.mojom.StorageService", + "--lang=en-US", + "--service-sandbox-type=utility", + "--disable-dev-shm-usage", + "--use-angle=swiftshader-webgl", + "--mute-audio", + "--crashpad-handler-pid=1041005", + "--enable-crash-reporter=,", + "--noerrdialogs", + "--user-data-dir=/tmp/playwright_chromiumdev_profile-fiqV52", + "--change-stack-guard-on-fork=enable", + "--shared-files=v8_context_snapshot_data:100", + "--field-trial-handle=3,i,4339457633542496141,5623256565939968786,262144", + "--enable-features=CDPScreenshotNewSurface", + "--disable-features=AimEnabled,AutoDeElevate,AvoidUnnecessaryBeforeUnloadCheckSync,BlockOriginHeaderModificationOnRedirect,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,NetworkTimeServiceQuerying,OptimizationHints,PaintHolding,ThirdPartyStoragePartitioning,Translate,msEdgeUpdateLaunchServicesPreferredVersion,msForceBrowserSignIn", + "--variations-seed-version", + "--pseudonymization-salt-handle=7,i,12072056145509087256,2602371660356270925,4", + "--trace-process-track-uuid=3190708990060038890" + ], + "noSandbox": false + }, + { + "pid": 1041102, + "args": [ + "/opt/google/chrome/chrome", + "--type=zygote", + "--no-zygote-sandbox", + "--headless", + "--crashpad-handler-pid=1041094", + "--enable-crash-reporter=,", + "--noerrdialogs", + "--user-data-dir=/tmp/playwright_chromiumdev_profile-9jtvfW", + "--change-stack-guard-on-fork=enable", + "--no-first-run", + "--ozone-platform=headless", + "--ozone-override-screen-size=800,600", + "--use-angle=swiftshader-webgl" + ], + "noSandbox": false + }, + { + "pid": 1041103, + "args": [ + "/opt/google/chrome/chrome", + "--type=zygote", + "--headless", + "--crashpad-handler-pid=1041094", + "--enable-crash-reporter=,", + "--noerrdialogs", + "--user-data-dir=/tmp/playwright_chromiumdev_profile-9jtvfW", + "--change-stack-guard-on-fork=enable", + "--no-first-run", + "--ozone-platform=headless", + "--ozone-override-screen-size=800,600", + "--use-angle=swiftshader-webgl" + ], + "noSandbox": false + }, + { + "pid": 1041117, + "args": [ + "/opt/google/chrome/chrome", + "--type=zygote", + "--headless", + "--crashpad-handler-pid=1041094", + "--enable-crash-reporter=,", + "--noerrdialogs", + "--user-data-dir=/tmp/playwright_chromiumdev_profile-9jtvfW", + "--change-stack-guard-on-fork=enable", + "--no-first-run", + "--ozone-platform=headless", + "--ozone-override-screen-size=800,600", + "--use-angle=swiftshader-webgl" + ], + "noSandbox": false + }, + { + "pid": 1041138, + "args": [ + "/opt/google/chrome/chrome", + "--type=gpu-process", + "--disable-dev-shm-usage", + "--disable-breakpad", + "--headless", + "--ozone-platform=headless", + "--use-angle=swiftshader-webgl", + "--enable-unsafe-swiftshader", + "--crashpad-handler-pid=1041094", + "--enable-crash-reporter=,", + "--noerrdialogs", + "--user-data-dir=/tmp/playwright_chromiumdev_profile-9jtvfW", + "--change-stack-guard-on-fork=enable", + "--gpu-preferences=UAAAAAAAAAAgAAAEAAAAAAAAAAAAAGAAAQAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAYAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAgAAAAAAAAA", + "--shared-files", + "--field-trial-handle=3,i,9069934476812365821,17267811571625664240,262144", + "--enable-features=CDPScreenshotNewSurface", + "--disable-features=AimEnabled,AutoDeElevate,AvoidUnnecessaryBeforeUnloadCheckSync,BlockOriginHeaderModificationOnRedirect,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,NetworkTimeServiceQuerying,OptimizationHints,PaintHolding,ThirdPartyStoragePartitioning,Translate,msEdgeUpdateLaunchServicesPreferredVersion,msForceBrowserSignIn", + "--variations-seed-version", + "--pseudonymization-salt-handle=7,i,15780862397068644237,4224716786987583007,4", + "--trace-process-track-uuid=3190708988185955192" + ], + "noSandbox": false + }, + { + "pid": 1041140, + "args": [ + "/opt/google/chrome/chrome", + "--type=utility", + "--utility-sub-type=network.mojom.NetworkService", + "--lang=en-US", + "--service-sandbox-type=none", + "--disable-dev-shm-usage", + "--use-angle=swiftshader-webgl", + "--mute-audio", + "--crashpad-handler-pid=1041094", + "--enable-crash-reporter=,", + "--noerrdialogs", + "--user-data-dir=/tmp/playwright_chromiumdev_profile-9jtvfW", + "--change-stack-guard-on-fork=enable", + "--shared-files=v8_context_snapshot_data:100", + "--field-trial-handle=3,i,9069934476812365821,17267811571625664240,262144", + "--enable-features=CDPScreenshotNewSurface", + "--disable-features=AimEnabled,AutoDeElevate,AvoidUnnecessaryBeforeUnloadCheckSync,BlockOriginHeaderModificationOnRedirect,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,NetworkTimeServiceQuerying,OptimizationHints,PaintHolding,ThirdPartyStoragePartitioning,Translate,msEdgeUpdateLaunchServicesPreferredVersion,msForceBrowserSignIn", + "--variations-seed-version", + "--pseudonymization-salt-handle=7,i,15780862397068644237,4224716786987583007,4", + "--trace-process-track-uuid=3190708989122997041" + ], + "noSandbox": false + }, + { + "pid": 1041141, + "args": [ + "/opt/google/chrome/chrome", + "--type=utility", + "--utility-sub-type=storage.mojom.StorageService", + "--lang=en-US", + "--service-sandbox-type=utility", + "--disable-dev-shm-usage", + "--use-angle=swiftshader-webgl", + "--mute-audio", + "--crashpad-handler-pid=1041094", + "--enable-crash-reporter=,", + "--noerrdialogs", + "--user-data-dir=/tmp/playwright_chromiumdev_profile-9jtvfW", + "--change-stack-guard-on-fork=enable", + "--shared-files=v8_context_snapshot_data:100", + "--field-trial-handle=3,i,9069934476812365821,17267811571625664240,262144", + "--enable-features=CDPScreenshotNewSurface", + "--disable-features=AimEnabled,AutoDeElevate,AvoidUnnecessaryBeforeUnloadCheckSync,BlockOriginHeaderModificationOnRedirect,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,NetworkTimeServiceQuerying,OptimizationHints,PaintHolding,ThirdPartyStoragePartitioning,Translate,msEdgeUpdateLaunchServicesPreferredVersion,msForceBrowserSignIn", + "--variations-seed-version", + "--pseudonymization-salt-handle=7,i,15780862397068644237,4224716786987583007,4", + "--trace-process-track-uuid=3190708990060038890" + ], + "noSandbox": false + }, + { + "pid": 1041221, + "args": [ + "/opt/google/chrome/chrome", + "--type=utility", + "--utility-sub-type=audio.mojom.AudioService", + "--lang=en-US", + "--service-sandbox-type=none", + "--disable-dev-shm-usage", + "--use-angle=swiftshader-webgl", + "--mute-audio", + "--crashpad-handler-pid=1041005", + "--enable-crash-reporter=,", + "--noerrdialogs", + "--user-data-dir=/tmp/playwright_chromiumdev_profile-fiqV52", + "--change-stack-guard-on-fork=enable", + "--shared-files=v8_context_snapshot_data:100", + "--field-trial-handle=3,i,4339457633542496141,5623256565939968786,262144", + "--enable-features=CDPScreenshotNewSurface", + "--disable-features=AimEnabled,AutoDeElevate,AvoidUnnecessaryBeforeUnloadCheckSync,BlockOriginHeaderModificationOnRedirect,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,NetworkTimeServiceQuerying,OptimizationHints,PaintHolding,ThirdPartyStoragePartitioning,Translate,msEdgeUpdateLaunchServicesPreferredVersion,msForceBrowserSignIn", + "--variations-seed-version", + "--pseudonymization-salt-handle=7,i,12072056145509087256,2602371660356270925,4", + "--trace-process-track-uuid=3190708992871164437" + ], + "noSandbox": false + }, + { + "pid": 1041252, + "args": [ + "/opt/google/chrome/chrome", + "--type=utility", + "--utility-sub-type=audio.mojom.AudioService", + "--lang=en-US", + "--service-sandbox-type=none", + "--disable-dev-shm-usage", + "--use-angle=swiftshader-webgl", + "--mute-audio", + "--crashpad-handler-pid=1041094", + "--enable-crash-reporter=,", + "--noerrdialogs", + "--user-data-dir=/tmp/playwright_chromiumdev_profile-9jtvfW", + "--change-stack-guard-on-fork=enable", + "--shared-files=v8_context_snapshot_data:100", + "--field-trial-handle=3,i,9069934476812365821,17267811571625664240,262144", + "--enable-features=CDPScreenshotNewSurface", + "--disable-features=AimEnabled,AutoDeElevate,AvoidUnnecessaryBeforeUnloadCheckSync,BlockOriginHeaderModificationOnRedirect,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,NetworkTimeServiceQuerying,OptimizationHints,PaintHolding,ThirdPartyStoragePartitioning,Translate,msEdgeUpdateLaunchServicesPreferredVersion,msForceBrowserSignIn", + "--variations-seed-version", + "--pseudonymization-salt-handle=7,i,15780862397068644237,4224716786987583007,4", + "--trace-process-track-uuid=3190708993808206286" + ], + "noSandbox": false + }, + { + "pid": 1041451, + "args": [ + "/opt/google/chrome/chrome", + "--type=renderer", + "--crashpad-handler-pid=1041094", + "--enable-crash-reporter=,", + "--noerrdialogs", + "--user-data-dir=/tmp/playwright_chromiumdev_profile-9jtvfW", + "--change-stack-guard-on-fork=enable", + "--disable-dev-shm-usage", + "--disable-back-forward-cache", + "--disable-background-timer-throttling", + "--disable-breakpad", + "--force-color-profile=srgb", + "--remote-debugging-pipe", + "--allow-pre-commit-input", + "--blink-settings=primaryHoverType=2,availableHoverTypes=2,primaryPointerType=4,availablePointerTypes=4", + "--ozone-platform=headless", + "--disable-gpu-compositing", + "--lang=en-US", + "--num-raster-threads=2", + "--enable-main-frame-before-activation", + "--renderer-client-id=16", + "--time-ticks-at-unix-epoch=-1790509733151410", + "--launch-time-ticks=1458583523176", + "--shared-files=v8_context_snapshot_data:100", + "--field-trial-handle=3,i,9069934476812365821,17267811571625664240,262144", + "--enable-features=CDPScreenshotNewSurface", + "--disable-features=AimEnabled,AutoDeElevate,AvoidUnnecessaryBeforeUnloadCheckSync,BlockOriginHeaderModificationOnRedirect,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,NetworkTimeServiceQuerying,OptimizationHints,PaintHolding,ThirdPartyStoragePartitioning,Translate,msEdgeUpdateLaunchServicesPreferredVersion,msForceBrowserSignIn", + "--variations-seed-version", + "--pseudonymization-salt-handle=7,i,15780862397068644237,4224716786987583007,4", + "--trace-process-track-uuid=3190709001304541078" + ], + "noSandbox": false + }, + { + "pid": 1041452, + "args": [ + "/opt/google/chrome/chrome", + "--type=renderer", + "--crashpad-handler-pid=1041094", + "--enable-crash-reporter=,", + "--noerrdialogs", + "--user-data-dir=/tmp/playwright_chromiumdev_profile-9jtvfW", + "--change-stack-guard-on-fork=enable", + "--disable-dev-shm-usage", + "--disable-back-forward-cache", + "--disable-background-timer-throttling", + "--disable-breakpad", + "--force-color-profile=srgb", + "--remote-debugging-pipe", + "--allow-pre-commit-input", + "--blink-settings=primaryHoverType=2,availableHoverTypes=2,primaryPointerType=4,availablePointerTypes=4", + "--ozone-platform=headless", + "--disable-gpu-compositing", + "--lang=en-US", + "--num-raster-threads=2", + "--enable-main-frame-before-activation", + "--renderer-client-id=15", + "--time-ticks-at-unix-epoch=-1790509733151410", + "--launch-time-ticks=1458583525272", + "--shared-files=v8_context_snapshot_data:100", + "--field-trial-handle=3,i,9069934476812365821,17267811571625664240,262144", + "--enable-features=CDPScreenshotNewSurface", + "--disable-features=AimEnabled,AutoDeElevate,AvoidUnnecessaryBeforeUnloadCheckSync,BlockOriginHeaderModificationOnRedirect,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,NetworkTimeServiceQuerying,OptimizationHints,PaintHolding,ThirdPartyStoragePartitioning,Translate,msEdgeUpdateLaunchServicesPreferredVersion,msForceBrowserSignIn", + "--variations-seed-version", + "--pseudonymization-salt-handle=7,i,15780862397068644237,4224716786987583007,4", + "--trace-process-track-uuid=3190709000367499229" + ], + "noSandbox": false + }, + { + "pid": 1041472, + "args": [ + "/opt/google/chrome/chrome", + "--type=renderer", + "--crashpad-handler-pid=1041005", + "--enable-crash-reporter=,", + "--noerrdialogs", + "--user-data-dir=/tmp/playwright_chromiumdev_profile-fiqV52", + "--change-stack-guard-on-fork=enable", + "--disable-dev-shm-usage", + "--disable-back-forward-cache", + "--disable-background-timer-throttling", + "--disable-breakpad", + "--force-color-profile=srgb", + "--remote-debugging-pipe", + "--allow-pre-commit-input", + "--blink-settings=primaryHoverType=2,availableHoverTypes=2,primaryPointerType=4,availablePointerTypes=4", + "--ozone-platform=headless", + "--disable-gpu-compositing", + "--lang=en-US", + "--num-raster-threads=2", + "--enable-main-frame-before-activation", + "--renderer-client-id=13", + "--time-ticks-at-unix-epoch=-1790509733151410", + "--launch-time-ticks=1458588082465", + "--shared-files=v8_context_snapshot_data:100", + "--field-trial-handle=3,i,4339457633542496141,5623256565939968786,262144", + "--enable-features=CDPScreenshotNewSurface", + "--disable-features=AimEnabled,AutoDeElevate,AvoidUnnecessaryBeforeUnloadCheckSync,BlockOriginHeaderModificationOnRedirect,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,NetworkTimeServiceQuerying,OptimizationHints,PaintHolding,ThirdPartyStoragePartitioning,Translate,msEdgeUpdateLaunchServicesPreferredVersion,msForceBrowserSignIn", + "--variations-seed-version", + "--pseudonymization-salt-handle=7,i,12072056145509087256,2602371660356270925,4", + "--trace-process-track-uuid=3190708998493415531" + ], + "noSandbox": false + }, + { + "pid": 1041473, + "args": [ + "/opt/google/chrome/chrome", + "--type=renderer", + "--crashpad-handler-pid=1041005", + "--enable-crash-reporter=,", + "--noerrdialogs", + "--user-data-dir=/tmp/playwright_chromiumdev_profile-fiqV52", + "--change-stack-guard-on-fork=enable", + "--disable-dev-shm-usage", + "--disable-back-forward-cache", + "--disable-background-timer-throttling", + "--disable-breakpad", + "--force-color-profile=srgb", + "--remote-debugging-pipe", + "--allow-pre-commit-input", + "--blink-settings=primaryHoverType=2,availableHoverTypes=2,primaryPointerType=4,availablePointerTypes=4", + "--ozone-platform=headless", + "--disable-gpu-compositing", + "--lang=en-US", + "--num-raster-threads=2", + "--enable-main-frame-before-activation", + "--renderer-client-id=12", + "--time-ticks-at-unix-epoch=-1790509733151410", + "--launch-time-ticks=1458588084480", + "--shared-files=v8_context_snapshot_data:100", + "--field-trial-handle=3,i,4339457633542496141,5623256565939968786,262144", + "--enable-features=CDPScreenshotNewSurface", + "--disable-features=AimEnabled,AutoDeElevate,AvoidUnnecessaryBeforeUnloadCheckSync,BlockOriginHeaderModificationOnRedirect,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,NetworkTimeServiceQuerying,OptimizationHints,PaintHolding,ThirdPartyStoragePartitioning,Translate,msEdgeUpdateLaunchServicesPreferredVersion,msForceBrowserSignIn", + "--variations-seed-version", + "--pseudonymization-salt-handle=7,i,12072056145509087256,2602371660356270925,4", + "--trace-process-track-uuid=3190708997556373682" + ], + "noSandbox": false + } + ] +} diff --git a/.agent/evidence-v0.2.3/review-fixes/desktop-audio-integrity.json b/.agent/evidence-v0.2.3/review-fixes/desktop-audio-integrity.json new file mode 100644 index 0000000..2d4d5ea --- /dev/null +++ b/.agent/evidence-v0.2.3/review-fixes/desktop-audio-integrity.json @@ -0,0 +1,1098 @@ +{ + "chrome": "146.0.7680.80", + "external": [], + "errors": [], + "failed": [], + "files": [ + { + "url": "http://127.0.0.1:4173/audio/intro.wav?v=0.2.3", + "sha256": "90d9f46e6e3f9c8a0c1a781096df54d7809ef4ad38b289508ef7b8c0411465ce", + "bytes": 338732, + "sampleRate": 24000, + "channels": 1, + "duration": 7.056, + "rms": 0.10000144992850359, + "peak": 0.4998626708984375 + }, + { + "url": "http://127.0.0.1:4173/ambience/street.wav?v=0.2.3", + "sha256": "a8bffa201b174618955bc51b860167169125304811aabe2086b0bb35b06c3ae1", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.07999880181401388, + "peak": 0.3967711329460144 + }, + { + "url": "http://127.0.0.1:4173/ambience/mall.wav?v=0.2.3", + "sha256": "6e9171f549cacadfaeedd57a41c8e2a76b0e789f5c9a97af029a8d3558c9f145", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.07999878530235176, + "peak": 0.5546875 + }, + { + "url": "http://127.0.0.1:4173/ambience/theater.wav?v=0.2.3", + "sha256": "2d6a444fb7874cdf6b2d8a741a69175299b112eb66834912c025437d8277d635", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.07999878601263052, + "peak": 0.495086669921875 + }, + { + "url": "http://127.0.0.1:4173/ambience/department.wav?v=0.2.3", + "sha256": "aa43f3d1d3e7c2b1f8ace24ecbda45d0ea3a031db941c39506dc6c1665b8efa7", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.07999879026023995, + "peak": 0.4749900698661804 + }, + { + "url": "http://127.0.0.1:4173/ambience/market.wav?v=0.2.3", + "sha256": "4287e971a12767f70da714e0c1aff30125268f9c3faf07ebfbcc0d2904f4a312", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.049222823565976834, + "peak": 0.8499755859375 + }, + { + "url": "http://127.0.0.1:4173/ambience/subway.wav?v=0.2.3", + "sha256": "9faf70b68617d267b367a0f3692ed90015458543ab4b0844f6c704e6a724728f", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.079998775670051, + "peak": 0.42530596256256104 + }, + { + "url": "http://127.0.0.1:4173/ambience/cafe.wav?v=0.2.3", + "sha256": "8db06f3f09bbd8409573ba4874c7ccdd1e7e825c8a61989a4efe66206a66c2d2", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.07999881107742599, + "peak": 0.3971068561077118 + }, + { + "url": "http://127.0.0.1:4173/ambience/rain.wav?v=0.2.3", + "sha256": "f4315084e820f742b0709de5bb0d1abd3d5af1730620e08c2948b70347356dd9", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.011384798571746246, + "peak": 0.1024169921875 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-apple.wav?v=0.2.3", + "sha256": "cb7da4e9a1288cac64d168b241f27d7d2bc2dfecace58744f9bbf2792dfad04e", + "bytes": 397484, + "sampleRate": 24000, + "channels": 1, + "duration": 8.28, + "rms": 0.10000142448574952, + "peak": 0.6414685249328613 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-market.wav?v=0.2.3", + "sha256": "b8d25b867497adcd0fe7c8b6a8a8d2e7a52965956738a83e53f58735708773f9", + "bytes": 405548, + "sampleRate": 24000, + "channels": 1, + "duration": 8.448, + "rms": 0.10000141405173993, + "peak": 0.491485595703125 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-sound.wav?v=0.2.3", + "sha256": "34e4d9758d2ed448646fda364610e34779c84794403d9051ab3d8c1d33e2c80c", + "bytes": 184364, + "sampleRate": 24000, + "channels": 1, + "duration": 3.84, + "rms": 0.10000138709171018, + "peak": 0.386322021484375 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-furniture.wav?v=0.2.3", + "sha256": "b45b1afc8d9b534ff3e0a2a2ecb99efc1f4e40d41f89f55c4ed8ba94ad6d76d4", + "bytes": 354860, + "sampleRate": 24000, + "channels": 1, + "duration": 7.392, + "rms": 0.1000015072973225, + "peak": 0.5576171875 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-market.wav?v=0.2.3", + "sha256": "cefa0e95649ea6bd1df4c8dfccd2b74b4f4c028714420ce1087b61db2f2a8d47", + "bytes": 248876, + "sampleRate": 24000, + "channels": 1, + "duration": 5.184, + "rms": 0.10000142548167161, + "peak": 0.4857020676136017 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-oil.wav?v=0.2.3", + "sha256": "f6eff0cdddcad9790351491e60c53cb2a70d222033a583652f2de0b8cd6abcc7", + "bytes": 406700, + "sampleRate": 24000, + "channels": 1, + "duration": 8.472, + "rms": 0.10000139122025363, + "peak": 0.470794677734375 + }, + { + "url": "http://127.0.0.1:4173/audio/first-hat.wav?v=0.2.3", + "sha256": "17c8cde90567e7574b0c0702663bd70713054089ee920241b5444d9b7869eef5", + "bytes": 357164, + "sampleRate": 24000, + "channels": 1, + "duration": 7.44, + "rms": 0.10000152904790521, + "peak": 0.5312662124633789 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-furniture.wav?v=0.2.3", + "sha256": "af82e03b686635c3356e706fe5b05c1231aeaaeab33f275aa5b8714988c65d43", + "bytes": 241964, + "sampleRate": 24000, + "channels": 1, + "duration": 5.04, + "rms": 0.10000137346142077, + "peak": 0.4852443039417267 + }, + { + "url": "http://127.0.0.1:4173/audio/password-sound.wav?v=0.2.3", + "sha256": "044aafff08a19e39f21e58b963644715a987cd155896998769ef8e9ce6449628", + "bytes": 236204, + "sampleRate": 24000, + "channels": 1, + "duration": 4.92, + "rms": 0.10000156641621728, + "peak": 0.4621112644672394 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-hat.wav?v=0.2.3", + "sha256": "f9f98c91cfbcfcb106eef7d5d3795a9cf3c3aab7e19a60f13d7dffe284d19f86", + "bytes": 398636, + "sampleRate": 24000, + "channels": 1, + "duration": 8.304, + "rms": 0.10000141071544869, + "peak": 0.470977783203125 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-apple.wav?v=0.2.3", + "sha256": "7c8f413f4b7e164f090e508ba090448f1376c6012649bbb6a917d45851313883", + "bytes": 188972, + "sampleRate": 24000, + "channels": 1, + "duration": 3.936, + "rms": 0.10000130469939268, + "peak": 0.401641845703125 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-sea.wav?v=0.2.3", + "sha256": "db2f235bee26ac804b5362e8e013b8f40c8da24fd3a34e0fb3b43c6d264feb36", + "bytes": 382508, + "sampleRate": 24000, + "channels": 1, + "duration": 7.968, + "rms": 0.10000145042993039, + "peak": 0.6843470335006714 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-furniture.wav?v=0.2.3", + "sha256": "442bdcb956f120c270e1f321feae0415c897de0183e468980fcc119b898b2a67", + "bytes": 403244, + "sampleRate": 24000, + "channels": 1, + "duration": 8.4, + "rms": 0.10000149119200713, + "peak": 0.5619068145751953 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-sea.wav?v=0.2.3", + "sha256": "b6dbe0af143ea775f05bd59a3d6af348bcc770ab378ac91ea75a56e06c326edf", + "bytes": 346796, + "sampleRate": 24000, + "channels": 1, + "duration": 7.224, + "rms": 0.10000144532868623, + "peak": 0.56494140625 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-sound.wav?v=0.2.3", + "sha256": "e9d636ff7f4777f38b1ff15bebdcec6fbde95b4b4b05625a7415b4cfa0025b59", + "bytes": 395180, + "sampleRate": 24000, + "channels": 1, + "duration": 8.232, + "rms": 0.10000164955559301, + "peak": 0.6114688515663147 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-apple.wav?v=0.2.3", + "sha256": "3ef42e276ff3500c3e197d149f29f79d6a0c1d5516ed1d5a2c57210333fded9c", + "bytes": 246572, + "sampleRate": 24000, + "channels": 1, + "duration": 5.136, + "rms": 0.10000144279302126, + "peak": 0.4701681435108185 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-market.wav?v=0.2.3", + "sha256": "356af25332bf2000ed349671f3ff39767929e1f4599af622c021f907d11fb7bf", + "bytes": 194732, + "sampleRate": 24000, + "channels": 1, + "duration": 4.056, + "rms": 0.10000132629820717, + "peak": 0.4022216796875 + }, + { + "url": "http://127.0.0.1:4173/audio/message-sea.wav?v=0.2.3", + "sha256": "28a461fbe03bffe2560030dea8b60715f7c0fe262dcf85b5b7f7daf483836382", + "bytes": 517292, + "sampleRate": 24000, + "channels": 1, + "duration": 10.776, + "rms": 0.10000130584401576, + "peak": 0.53521728515625 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-umbrella.wav?v=0.2.3", + "sha256": "c8988e604ba05d52597e561389541e8f9cda86e052279f1862bbf8399ead314e", + "bytes": 403244, + "sampleRate": 24000, + "channels": 1, + "duration": 8.4, + "rms": 0.10000148262660476, + "peak": 0.557830810546875 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-hat.wav?v=0.2.3", + "sha256": "308278ec2bd27d4224976a55632d1f7fa1edabb0792126d9d858a699c287aee4", + "bytes": 245420, + "sampleRate": 24000, + "channels": 1, + "duration": 5.112, + "rms": 0.10000140702099906, + "peak": 0.4498428404331207 + }, + { + "url": "http://127.0.0.1:4173/audio/password-furniture.wav?v=0.2.3", + "sha256": "fb2b631dd4e12120d08a84cce6450f9cd9cd68105d13d7001d808e7deaa1df4a", + "bytes": 233900, + "sampleRate": 24000, + "channels": 1, + "duration": 4.872, + "rms": 0.10000146718546903, + "peak": 0.4836573302745819 + }, + { + "url": "http://127.0.0.1:4173/audio/first-market.wav?v=0.2.3", + "sha256": "1e00b8f70a796cdebb0feb00c605fece7488b06915e6e036f54206f05e201e0c", + "bytes": 359468, + "sampleRate": 24000, + "channels": 1, + "duration": 7.488, + "rms": 0.10000152633991319, + "peak": 0.6390880942344666 + }, + { + "url": "http://127.0.0.1:4173/audio/first-meat.wav?v=0.2.3", + "sha256": "f51a37c1722fef581f7d642a4dcae7fcb9953b3c318dce971bf616cd1a81fecc", + "bytes": 345644, + "sampleRate": 24000, + "channels": 1, + "duration": 7.2, + "rms": 0.10000152244411063, + "peak": 0.5131382346153259 + }, + { + "url": "http://127.0.0.1:4173/audio/password-sea.wav?v=0.2.3", + "sha256": "03f45b8cb5b3dc72faf5c6e3d0e2a10cea6b60301ea400d0a4453596d2f0b337", + "bytes": 232748, + "sampleRate": 24000, + "channels": 1, + "duration": 4.848, + "rms": 0.10000144821976133, + "peak": 0.5339213013648987 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-sound.wav?v=0.2.3", + "sha256": "98387ccc7aab566f6487d4c250b2128082cc527e013a6f7b7bc4d0266ac295df", + "bytes": 394028, + "sampleRate": 24000, + "channels": 1, + "duration": 8.208, + "rms": 0.10000158053850364, + "peak": 0.5377971529960632 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-umbrella.wav?v=0.2.3", + "sha256": "5e59ef39113c3d5e106862356d715f4cef2862ef8ee02654a97e532675c1ac6d", + "bytes": 410156, + "sampleRate": 24000, + "channels": 1, + "duration": 8.544, + "rms": 0.10000147499132286, + "peak": 0.6748558282852173 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-hat.wav?v=0.2.3", + "sha256": "b01ef9762ac84e3eb757243bc9286c62f7d45444a821ae35ac36a8b095e1598a", + "bytes": 353708, + "sampleRate": 24000, + "channels": 1, + "duration": 7.368, + "rms": 0.10000153089787694, + "peak": 0.555206298828125 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-market.wav?v=0.2.3", + "sha256": "d89792da51c83ac49d27e55aa6d822a338899a5ee487b34b552748201e1522f6", + "bytes": 398636, + "sampleRate": 24000, + "channels": 1, + "duration": 8.304, + "rms": 0.10000149710778367, + "peak": 0.5728324055671692 + }, + { + "url": "http://127.0.0.1:4173/audio/password-umbrella.wav?v=0.2.3", + "sha256": "ab3ca6398c879971dc793eb25b472fcc0db72d76e386f11ef4d32c639f37c69d", + "bytes": 239660, + "sampleRate": 24000, + "channels": 1, + "duration": 4.992, + "rms": 0.100001426973271, + "peak": 0.4776757061481476 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-meat.wav?v=0.2.3", + "sha256": "48e91b3932d3798e852041a854b3ee08c72127e092c62083a47af6b99adff241", + "bytes": 403244, + "sampleRate": 24000, + "channels": 1, + "duration": 8.4, + "rms": 0.10000140336390047, + "peak": 0.481536865234375 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-hat.wav?v=0.2.3", + "sha256": "6e089a42fd7e65e82eec7186d369c926fb7fdac794365b2bd7658822fd92437c", + "bytes": 396332, + "sampleRate": 24000, + "channels": 1, + "duration": 8.256, + "rms": 0.1000015662548192, + "peak": 0.616748571395874 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-sound.wav?v=0.2.3", + "sha256": "4d00aa6114327f450a00dacbc7e7b572ebf1de4ce9dc2fe4b5505766cca71ce9", + "bytes": 353708, + "sampleRate": 24000, + "channels": 1, + "duration": 7.368, + "rms": 0.10000162019345048, + "peak": 0.5348368883132935 + }, + { + "url": "http://127.0.0.1:4173/audio/last-oil.wav?v=0.2.3", + "sha256": "b5ce34950b8b31b1baf6ce55410797f0d8aa5478a670d6eace87cf76d134d6d3", + "bytes": 337580, + "sampleRate": 24000, + "channels": 1, + "duration": 7.032, + "rms": 0.10000149980584365, + "peak": 0.55706787109375 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-sea.wav?v=0.2.3", + "sha256": "47aa31d757c9fb49c9b53a1c052d90a5ced4be57549d649850d9b48f8864045b", + "bytes": 191276, + "sampleRate": 24000, + "channels": 1, + "duration": 3.984, + "rms": 0.10000129182106483, + "peak": 0.388702392578125 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-sound.wav?v=0.2.3", + "sha256": "659eb0e2b06e6b165b46744769743e032e2282519f8486c57bc45e0f7d07a069", + "bytes": 240812, + "sampleRate": 24000, + "channels": 1, + "duration": 5.016, + "rms": 0.10000152909529536, + "peak": 0.45481735467910767 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-meat.wav?v=0.2.3", + "sha256": "6599d2fac73ea616a793151b4ce6f51af673988d630bac6219a77e78ae6cb34e", + "bytes": 380204, + "sampleRate": 24000, + "channels": 1, + "duration": 7.92, + "rms": 0.1000016061190976, + "peak": 0.5921201109886169 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-market.wav?v=0.2.3", + "sha256": "c855b449e0d4ace74681bfe68e5e7f0b063568827ae872017234dbe8ae119e4c", + "bytes": 356012, + "sampleRate": 24000, + "channels": 1, + "duration": 7.416, + "rms": 0.10000151456676445, + "peak": 0.5949888825416565 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-furniture.wav?v=0.2.3", + "sha256": "bf84dc6cff1f227924a3a62158d2fc18769fb0ca40b91418fa19e534dbf92f00", + "bytes": 397484, + "sampleRate": 24000, + "channels": 1, + "duration": 8.28, + "rms": 0.10000155255948041, + "peak": 0.6670430898666382 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-sound.wav?v=0.2.3", + "sha256": "5a603bc69979603afddcaeb6edf500a7c540b72405daeb33f5335d746b327da1", + "bytes": 397484, + "sampleRate": 24000, + "channels": 1, + "duration": 8.28, + "rms": 0.10000146491234768, + "peak": 0.469268798828125 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-meat.wav?v=0.2.3", + "sha256": "9183ef90b64f5ceaf3bb0178c689231ff3e9981d6ce889124a15f2a6e2b7a344", + "bytes": 395180, + "sampleRate": 24000, + "channels": 1, + "duration": 8.232, + "rms": 0.10000155087122137, + "peak": 0.5193029642105103 + }, + { + "url": "http://127.0.0.1:4173/audio/last-sound.wav?v=0.2.3", + "sha256": "ec9c49802aebeb6a8b898a1c0d8ad1daa127d2d64c905c197ed49a8e0c4eb64a", + "bytes": 354860, + "sampleRate": 24000, + "channels": 1, + "duration": 7.392, + "rms": 0.10000165748716579, + "peak": 0.5641041398048401 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-oil.wav?v=0.2.3", + "sha256": "5fb63e04520c312aa6b7b48b70c2f7c140b5ab480e5c6992edbc2ba85b9a06e7", + "bytes": 241964, + "sampleRate": 24000, + "channels": 1, + "duration": 5.04, + "rms": 0.10000143720418167, + "peak": 0.443586528301239 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-umbrella.wav?v=0.2.3", + "sha256": "92b54f04884ab915783945077efd8f3bd443849a1720f72168b6348cae1f8e85", + "bytes": 406700, + "sampleRate": 24000, + "channels": 1, + "duration": 8.472, + "rms": 0.10000140257790288, + "peak": 0.479034423828125 + }, + { + "url": "http://127.0.0.1:4173/audio/message-sound.wav?v=0.2.3", + "sha256": "1e682147dae8026ba78dc8f256c7f24acb3a6743bfd88a0fcc86096930eef078", + "bytes": 521900, + "sampleRate": 24000, + "channels": 1, + "duration": 10.872, + "rms": 0.10000138583471241, + "peak": 0.51953125 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-apple.wav?v=0.2.3", + "sha256": "ccd7327a3fb54d3320d049ffdced3bc17595861cee69429c0ee97182d454195b", + "bytes": 402092, + "sampleRate": 24000, + "channels": 1, + "duration": 8.376, + "rms": 0.10000140667715379, + "peak": 0.490325927734375 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-sea.wav?v=0.2.3", + "sha256": "5c91a36496e274d2be9c6fa8d9b506cd04f2a1b7ceb05ed1b7bb03fe7fca99d9", + "bytes": 399788, + "sampleRate": 24000, + "channels": 1, + "duration": 8.328, + "rms": 0.10000144241513113, + "peak": 0.5465559959411621 + }, + { + "url": "http://127.0.0.1:4173/audio/message-hat.wav?v=0.2.3", + "sha256": "5a713a8522b231bb8276805c014b385b9150b79f58ff2618446607e2b442495e", + "bytes": 518444, + "sampleRate": 24000, + "channels": 1, + "duration": 10.8, + "rms": 0.10000136927555209, + "peak": 0.587005615234375 + }, + { + "url": "http://127.0.0.1:4173/audio/password-meat.wav?v=0.2.3", + "sha256": "b009caadd56350d6a641ff17f0973e2b2724c183e1f45ae0bf3c483e237fa99e", + "bytes": 240812, + "sampleRate": 24000, + "channels": 1, + "duration": 5.016, + "rms": 0.10000148386024335, + "peak": 0.4978789687156677 + }, + { + "url": "http://127.0.0.1:4173/audio/message-market.wav?v=0.2.3", + "sha256": "9242d4cd6e0030e6b073e4d2360f84aa8a454d1749711cdb2d64c14f28a7ea20", + "bytes": 523052, + "sampleRate": 24000, + "channels": 1, + "duration": 10.896, + "rms": 0.10000133805787564, + "peak": 0.534820556640625 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-apple.wav?v=0.2.3", + "sha256": "8832f1b793ab3eedbe663875ea8dbeabb122c329bd5879437c71230b0418c3c8", + "bytes": 360620, + "sampleRate": 24000, + "channels": 1, + "duration": 7.512, + "rms": 0.10000145024648589, + "peak": 0.553558349609375 + }, + { + "url": "http://127.0.0.1:4173/audio/last-umbrella.wav?v=0.2.3", + "sha256": "c801293a34013a8d93d3289a2cc87cd3eed83f97ba4647f5060efa00b117a9ad", + "bytes": 370988, + "sampleRate": 24000, + "channels": 1, + "duration": 7.728, + "rms": 0.10000149360501835, + "peak": 0.59765625 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-sea.wav?v=0.2.3", + "sha256": "9233431d78ab4b144e3c33ad0cf0d49fc0fb91b29514343230ba32987b794bb3", + "bytes": 398636, + "sampleRate": 24000, + "channels": 1, + "duration": 8.304, + "rms": 0.10000134688905045, + "peak": 0.49616992473602295 + }, + { + "url": "http://127.0.0.1:4173/audio/password-apple.wav?v=0.2.3", + "sha256": "b6f5de3fe571fe3a7fdb722fe49250bcfeedef49475271e0ec76a7630907edd5", + "bytes": 235052, + "sampleRate": 24000, + "channels": 1, + "duration": 4.896, + "rms": 0.10000148212193387, + "peak": 0.4834437072277069 + }, + { + "url": "http://127.0.0.1:4173/audio/first-furniture.wav?v=0.2.3", + "sha256": "29f007b385b7182db1d8aeccad4fc3c260df5e66e14e52a46b0ef0fcd0ff3a0a", + "bytes": 364076, + "sampleRate": 24000, + "channels": 1, + "duration": 7.584, + "rms": 0.1000014551820741, + "peak": 0.5700552463531494 + }, + { + "url": "http://127.0.0.1:4173/audio/password-hat.wav?v=0.2.3", + "sha256": "e91bfc97df90a1675b6cd856880ac15c54de32cfc3b23603bdd1c2c5ac3ce6b8", + "bytes": 235052, + "sampleRate": 24000, + "channels": 1, + "duration": 4.896, + "rms": 0.10000146155157119, + "peak": 0.5059053301811218 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-oil.wav?v=0.2.3", + "sha256": "7a6b122b11c07da86c95fb78e2db2a70681b5219c63d6441fe56da1979ac1dc3", + "bytes": 334124, + "sampleRate": 24000, + "channels": 1, + "duration": 6.96, + "rms": 0.1000014880654183, + "peak": 0.539933443069458 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-meat.wav?v=0.2.3", + "sha256": "d416107cc05e7c5b92ca27100a10a8a9689de913346179945d5542de4a6bac0c", + "bytes": 342188, + "sampleRate": 24000, + "channels": 1, + "duration": 7.128, + "rms": 0.10000157422522808, + "peak": 0.510833740234375 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-apple.wav?v=0.2.3", + "sha256": "1bf2aef9a9f030af1a8fd7dee8f44aa420a397b3ba99b575feeb3dc7a63ec191", + "bytes": 395180, + "sampleRate": 24000, + "channels": 1, + "duration": 8.232, + "rms": 0.10000148399213096, + "peak": 0.563568115234375 + }, + { + "url": "http://127.0.0.1:4173/audio/first-oil.wav?v=0.2.3", + "sha256": "f415195e0cfc7ee711d09de7519e88eab62cc8b58d70772c83c3f5c27c267819", + "bytes": 335276, + "sampleRate": 24000, + "channels": 1, + "duration": 6.984, + "rms": 0.10000145886808136, + "peak": 0.5347453355789185 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-hat.wav?v=0.2.3", + "sha256": "31a6a4270bf368cda419094d87a303ac3cd5c22539786cb165f8044b0b8e9d6e", + "bytes": 402092, + "sampleRate": 24000, + "channels": 1, + "duration": 8.376, + "rms": 0.10000145804818952, + "peak": 0.541778564453125 + }, + { + "url": "http://127.0.0.1:4173/audio/message-furniture.wav?v=0.2.3", + "sha256": "26c331b7e12311236f4bb48f88918dfbf53cccd2f50b55741ea6ff4473e71dd8", + "bytes": 521900, + "sampleRate": 24000, + "channels": 1, + "duration": 10.872, + "rms": 0.10000134596838128, + "peak": 0.529327392578125 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-oil.wav?v=0.2.3", + "sha256": "3fa1e662a3af8f2726b17b2baa5bec2934406e6595ebc243c8380dd16e190977", + "bytes": 190124, + "sampleRate": 24000, + "channels": 1, + "duration": 3.96, + "rms": 0.10000134375667624, + "peak": 0.3817255198955536 + }, + { + "url": "http://127.0.0.1:4173/audio/last-sea.wav?v=0.2.3", + "sha256": "f755452e1da44674aa1df7d12edffa988091b89a394e7eb6d4a00eb721f07cbf", + "bytes": 345644, + "sampleRate": 24000, + "channels": 1, + "duration": 7.2, + "rms": 0.10000140162255576, + "peak": 0.591033935546875 + }, + { + "url": "http://127.0.0.1:4173/audio/password-oil.wav?v=0.2.3", + "sha256": "b472957b27ff98ea7b8894fa1ff12653f7e9f66f77870faa9e52a1c1bf116c41", + "bytes": 240812, + "sampleRate": 24000, + "channels": 1, + "duration": 5.016, + "rms": 0.10000146772662066, + "peak": 0.4945219159126282 + }, + { + "url": "http://127.0.0.1:4173/audio/first-umbrella.wav?v=0.2.3", + "sha256": "878e0bd2e6e4105f175aef51a028f6b141f3a2072be20f783193f3ba897a3ee0", + "bytes": 366380, + "sampleRate": 24000, + "channels": 1, + "duration": 7.632, + "rms": 0.10000147647908036, + "peak": 0.5700247287750244 + }, + { + "url": "http://127.0.0.1:4173/audio/last-apple.wav?v=0.2.3", + "sha256": "4cb2a8579fa3a7b91bb36363826ce8ca0d6d86e96e16a479e226a2802edd82f7", + "bytes": 356012, + "sampleRate": 24000, + "channels": 1, + "duration": 7.416, + "rms": 0.10000144523423521, + "peak": 0.622528076171875 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-market.wav?v=0.2.3", + "sha256": "68a5b899115a66ab225d610ec47b4de56cc8793657362bc38f533c06f741e4cc", + "bytes": 402092, + "sampleRate": 24000, + "channels": 1, + "duration": 8.376, + "rms": 0.10000160159844854, + "peak": 0.6822717785835266 + }, + { + "url": "http://127.0.0.1:4173/audio/message-oil.wav?v=0.2.3", + "sha256": "a2a71a7e5e07c81871a25c6cb7540c39aa0b32fc44f78cda66b5f34ace98d805", + "bytes": 509228, + "sampleRate": 24000, + "channels": 1, + "duration": 10.608, + "rms": 0.10000135184106136, + "peak": 0.51812744140625 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-meat.wav?v=0.2.3", + "sha256": "d36dfc395a5c53fbfa4abe9980db7bb59adfdac59e40318c4aca365365e3f2ab", + "bytes": 187820, + "sampleRate": 24000, + "channels": 1, + "duration": 3.912, + "rms": 0.1000013329979738, + "peak": 0.371124267578125 + }, + { + "url": "http://127.0.0.1:4173/audio/password-market.wav?v=0.2.3", + "sha256": "02e325fb753ef7a3ee585a03d2ca2aa3f1fbc58523b062222ae1136eeed7a95c", + "bytes": 230444, + "sampleRate": 24000, + "channels": 1, + "duration": 4.8, + "rms": 0.10000151520861549, + "peak": 0.48170414566993713 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-hat.wav?v=0.2.3", + "sha256": "4ff43dd042f4b5451e9fdeb3edd59f1e389a7d1dd488094587a3a9fc7dfffa44", + "bytes": 191276, + "sampleRate": 24000, + "channels": 1, + "duration": 3.984, + "rms": 0.10000132502946775, + "peak": 0.417083740234375 + }, + { + "url": "http://127.0.0.1:4173/audio/last-market.wav?v=0.2.3", + "sha256": "7857e87e9dbfe8fe849cc0b18c1d45b60916cb337328099c7a87a42c82e2821e", + "bytes": 359468, + "sampleRate": 24000, + "channels": 1, + "duration": 7.488, + "rms": 0.10000148064140717, + "peak": 0.600555419921875 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-meat.wav?v=0.2.3", + "sha256": "94f8a4f9e116a787e5ed052661d6de9ecf3ad8629db476661dd59ad03014b0c9", + "bytes": 244268, + "sampleRate": 24000, + "channels": 1, + "duration": 5.088, + "rms": 0.10000146176253134, + "peak": 0.44187748432159424 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-oil.wav?v=0.2.3", + "sha256": "55b2c7d6aa8bbce04edf8661882c9781da81c57f56217f99b80457a3bb895da0", + "bytes": 369836, + "sampleRate": 24000, + "channels": 1, + "duration": 7.704, + "rms": 0.10000146897241707, + "peak": 0.6239814162254333 + }, + { + "url": "http://127.0.0.1:4173/audio/first-sound.wav?v=0.2.3", + "sha256": "46f6adeed928a16af0700f1e8626cf8049f124632a04a5d10604426fb06f9596", + "bytes": 353708, + "sampleRate": 24000, + "channels": 1, + "duration": 7.368, + "rms": 0.10000157588418972, + "peak": 0.5189672708511353 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-umbrella.wav?v=0.2.3", + "sha256": "4b4c858a25659540f9dbc524664496fc6de61ab8c1627f3cfee8c9c744e11d5b", + "bytes": 247724, + "sampleRate": 24000, + "channels": 1, + "duration": 5.16, + "rms": 0.10000144286672341, + "peak": 0.46534621715545654 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-oil.wav?v=0.2.3", + "sha256": "3ca98682ff06d1d6b8af02c0fd5b2124f42266ac989884223eff4a9bbde1287a", + "bytes": 399788, + "sampleRate": 24000, + "channels": 1, + "duration": 8.328, + "rms": 0.10000149133669024, + "peak": 0.5243995189666748 + }, + { + "url": "http://127.0.0.1:4173/audio/first-sea.wav?v=0.2.3", + "sha256": "0f0b39314c5f7d7168d4854003c0c284e7bc3438cdc4d1d1c5adab7cb5ed30e5", + "bytes": 349100, + "sampleRate": 24000, + "channels": 1, + "duration": 7.272, + "rms": 0.10000142148394393, + "peak": 0.5717948079109192 + }, + { + "url": "http://127.0.0.1:4173/audio/last-meat.wav?v=0.2.3", + "sha256": "10f8ad4259ed8945c9da831e80b3902303c09caef96d400298599168fb1efed4", + "bytes": 346796, + "sampleRate": 24000, + "channels": 1, + "duration": 7.224, + "rms": 0.10000155834091913, + "peak": 0.537200927734375 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-umbrella.wav?v=0.2.3", + "sha256": "399ea2f681f755918f1117c8baba42739ceca64b307b999342f457a9235050b6", + "bytes": 368684, + "sampleRate": 24000, + "channels": 1, + "duration": 7.68, + "rms": 0.10000155028684544, + "peak": 0.569549560546875 + }, + { + "url": "http://127.0.0.1:4173/audio/message-meat.wav?v=0.2.3", + "sha256": "ce19735df079b54c171e775b6b365385a80160b9033442abab95b2b9c8505e1a", + "bytes": 512684, + "sampleRate": 24000, + "channels": 1, + "duration": 10.68, + "rms": 0.10000140834686953, + "peak": 0.5147705078125 + }, + { + "url": "http://127.0.0.1:4173/audio/message-umbrella.wav?v=0.2.3", + "sha256": "41d5866dae66600df4694a8312b531571d44cece6dba0e423e7c43d09d184819", + "bytes": 523052, + "sampleRate": 24000, + "channels": 1, + "duration": 10.896, + "rms": 0.10000120668553683, + "peak": 0.530364990234375 + }, + { + "url": "http://127.0.0.1:4173/audio/last-furniture.wav?v=0.2.3", + "sha256": "5ad4f776e35439d408abed0e66567d6b5cdc80fc54d579165472e474f1238776", + "bytes": 357164, + "sampleRate": 24000, + "channels": 1, + "duration": 7.44, + "rms": 0.10000152394963031, + "peak": 0.583587646484375 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-sea.wav?v=0.2.3", + "sha256": "8838d6a1ee8a790427dc5aa761e70b3d8872af62086efeed743297ff7f8b8a06", + "bytes": 243116, + "sampleRate": 24000, + "channels": 1, + "duration": 5.064, + "rms": 0.10000138788281714, + "peak": 0.45013427734375 + }, + { + "url": "http://127.0.0.1:4173/audio/message-apple.wav?v=0.2.3", + "sha256": "d85e6f47d871369f00de2274139e5ad6b4b5686b5e20e248df0ed6b9a320d942", + "bytes": 517292, + "sampleRate": 24000, + "channels": 1, + "duration": 10.776, + "rms": 0.10000133916854889, + "peak": 0.525360107421875 + }, + { + "url": "http://127.0.0.1:4173/audio/last-hat.wav?v=0.2.3", + "sha256": "bdaf8fbc54df8061e9e58aa8c14b3044a6e863dc54973ee3ee6ae2c5ae1a28f1", + "bytes": 354860, + "sampleRate": 24000, + "channels": 1, + "duration": 7.392, + "rms": 0.10000152378078818, + "peak": 0.550079345703125 + }, + { + "url": "http://127.0.0.1:4173/audio/first-apple.wav?v=0.2.3", + "sha256": "7c1dbcb3082055df2b8f087f7e906ec867c92f679de0894c34740c05e61a4bc1", + "bytes": 359468, + "sampleRate": 24000, + "channels": 1, + "duration": 7.488, + "rms": 0.10000143468253914, + "peak": 0.57977294921875 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-umbrella.wav?v=0.2.3", + "sha256": "8d3e8e8bc97e5fe3f3362184c4abb12f01a882a1f1174d2644f0f70aac677c0a", + "bytes": 192428, + "sampleRate": 24000, + "channels": 1, + "duration": 4.008, + "rms": 0.10000131475711933, + "peak": 0.385650634765625 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-furniture.wav?v=0.2.3", + "sha256": "5c004a7b2f5a4a918c9f689f1a2dcb219a620ed14313f40a9655b36dbf64948d", + "bytes": 398636, + "sampleRate": 24000, + "channels": 1, + "duration": 8.304, + "rms": 0.10000141690978645, + "peak": 0.487396240234375 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-tree.wav?v=0.2.3", + "sha256": "122f496834fb16d6da47f801e50e46e272e4e934af959467d1db4e490f79be7a", + "bytes": 183212, + "sampleRate": 24000, + "channels": 1, + "duration": 3.816, + "rms": 0.10000140751524371, + "peak": 0.36920166015625 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-tree.wav?v=0.2.3", + "sha256": "00d8e77ec0371971d632724d91f8cf8d947bfb83c582a513b6421be4c457a1da", + "bytes": 241964, + "sampleRate": 24000, + "channels": 1, + "duration": 5.04, + "rms": 0.10000146153372488, + "peak": 0.4585406184196472 + }, + { + "url": "http://127.0.0.1:4173/audio/message-tree.wav?v=0.2.3", + "sha256": "5d684aa710a63d36ed8dcc2a8bfbdd5c71b0b1c63dad2a324adecb76591e85b8", + "bytes": 540332, + "sampleRate": 24000, + "channels": 1, + "duration": 11.256, + "rms": 0.10000132424453942, + "peak": 0.5262451171875 + }, + { + "url": "http://127.0.0.1:4173/audio/last-tree.wav?v=0.2.3", + "sha256": "589e56d940a3c9e80ec02ae0b2dd93463fdc85ef019a753fcd0fded0752055f9", + "bytes": 382508, + "sampleRate": 24000, + "channels": 1, + "duration": 7.968, + "rms": 0.10000149781706567, + "peak": 0.5807672142982483 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-tree.wav?v=0.2.3", + "sha256": "341888c75275c13eb31058f53a1d4276be0daa0a1b5a3a45522036928b83b0c1", + "bytes": 382508, + "sampleRate": 24000, + "channels": 1, + "duration": 7.968, + "rms": 0.1000014873304774, + "peak": 0.600024402141571 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-tree.wav?v=0.2.3", + "sha256": "8735c3d9672561ca237fa87317beec2878492eb9063d6048d5b214423561acc1", + "bytes": 423980, + "sampleRate": 24000, + "channels": 1, + "duration": 8.832, + "rms": 0.10000150947389638, + "peak": 0.6187627911567688 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-furniture.wav?v=0.2.3", + "sha256": "52cb92cdb8ee92b6f581c9d68dbc346f180c470564809ba57185429c9eb84127", + "bytes": 186668, + "sampleRate": 24000, + "channels": 1, + "duration": 3.888, + "rms": 0.1000013480244084, + "peak": 0.387054443359375 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-tree.wav?v=0.2.3", + "sha256": "bc8e54f5407e8866bf1ca1ddfd4f6c63d85fee29bd9e430c7dd33e87974fc5b8", + "bytes": 409004, + "sampleRate": 24000, + "channels": 1, + "duration": 8.52, + "rms": 0.10000146559822108, + "peak": 0.5486617684364319 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-tree.wav?v=0.2.3", + "sha256": "b8e8bbe6b8b14727efd953fae9d4aed2caeb004055d52f611c6378322847edbe", + "bytes": 400940, + "sampleRate": 24000, + "channels": 1, + "duration": 8.352, + "rms": 0.10000144970799159, + "peak": 0.470611572265625 + }, + { + "url": "http://127.0.0.1:4173/audio/first-tree.wav?v=0.2.3", + "sha256": "3178230fd5850b6277a2153b438ec5289720e3db7ac929914cc213964f004bd5", + "bytes": 379052, + "sampleRate": 24000, + "channels": 1, + "duration": 7.896, + "rms": 0.10000144270360484, + "peak": 0.5833613276481628 + }, + { + "url": "http://127.0.0.1:4173/audio/password-tree.wav?v=0.2.3", + "sha256": "67da8147296e35134ec254bc82b58317630061b2c64d2d63c4be197ce8692d50", + "bytes": 233900, + "sampleRate": 24000, + "channels": 1, + "duration": 4.872, + "rms": 0.10000156310809623, + "peak": 0.4904019236564636 + } + ] +} diff --git a/.agent/evidence-v0.2.3/review-fixes/desktop-runtime-audit.json b/.agent/evidence-v0.2.3/review-fixes/desktop-runtime-audit.json new file mode 100644 index 0000000..6ac64f4 --- /dev/null +++ b/.agent/evidence-v0.2.3/review-fixes/desktop-runtime-audit.json @@ -0,0 +1,70 @@ +{ + "errors": [], + "failed": [], + "external": [], + "audio": { + "starts": [ + { + "loop": true, + "duration": 12 + }, + { + "loop": false, + "duration": 7.055986394557823 + }, + { + "loop": false, + "duration": 7.2 + }, + { + "loop": true, + "duration": 12 + }, + { + "loop": false, + "duration": 7.415986394557823 + }, + { + "loop": true, + "duration": 12 + }, + { + "loop": false, + "duration": 7.2 + }, + { + "loop": true, + "duration": 12 + }, + { + "loop": false, + "duration": 7.055986394557823 + }, + { + "loop": false, + "duration": 4.007981859410431 + }, + { + "loop": true, + "duration": 12 + }, + { + "loop": false, + "duration": 7.055986394557823 + }, + { + "loop": false, + "duration": 5.039977324263038 + }, + { + "loop": true, + "duration": 12 + }, + { + "loop": false, + "duration": 5.039977324263038 + } + ], + "stops": 15 + } +} \ No newline at end of file diff --git a/.agent/evidence-v0.2.3/review-fixes/environment.json b/.agent/evidence-v0.2.3/review-fixes/environment.json new file mode 100644 index 0000000..d716334 --- /dev/null +++ b/.agent/evidence-v0.2.3/review-fixes/environment.json @@ -0,0 +1,8 @@ +{ + "node": "v26.7.0", + "npm": "11.19.0", + "python": "Python 3.11.16", + "ffmpeg": "ffmpeg version 6.1.1-3ubuntu5 Copyright (c) 2000-2023 the FFmpeg developers", + "chrome": "Google Chrome 146.0.7680.80 ", + "head": "c92660b514f7af8eb556d3fa5c0fc80e4bdd4cf5" +} diff --git a/.agent/evidence-v0.2.3/review-fixes/mobile-audio-integrity.json b/.agent/evidence-v0.2.3/review-fixes/mobile-audio-integrity.json new file mode 100644 index 0000000..2d4d5ea --- /dev/null +++ b/.agent/evidence-v0.2.3/review-fixes/mobile-audio-integrity.json @@ -0,0 +1,1098 @@ +{ + "chrome": "146.0.7680.80", + "external": [], + "errors": [], + "failed": [], + "files": [ + { + "url": "http://127.0.0.1:4173/audio/intro.wav?v=0.2.3", + "sha256": "90d9f46e6e3f9c8a0c1a781096df54d7809ef4ad38b289508ef7b8c0411465ce", + "bytes": 338732, + "sampleRate": 24000, + "channels": 1, + "duration": 7.056, + "rms": 0.10000144992850359, + "peak": 0.4998626708984375 + }, + { + "url": "http://127.0.0.1:4173/ambience/street.wav?v=0.2.3", + "sha256": "a8bffa201b174618955bc51b860167169125304811aabe2086b0bb35b06c3ae1", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.07999880181401388, + "peak": 0.3967711329460144 + }, + { + "url": "http://127.0.0.1:4173/ambience/mall.wav?v=0.2.3", + "sha256": "6e9171f549cacadfaeedd57a41c8e2a76b0e789f5c9a97af029a8d3558c9f145", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.07999878530235176, + "peak": 0.5546875 + }, + { + "url": "http://127.0.0.1:4173/ambience/theater.wav?v=0.2.3", + "sha256": "2d6a444fb7874cdf6b2d8a741a69175299b112eb66834912c025437d8277d635", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.07999878601263052, + "peak": 0.495086669921875 + }, + { + "url": "http://127.0.0.1:4173/ambience/department.wav?v=0.2.3", + "sha256": "aa43f3d1d3e7c2b1f8ace24ecbda45d0ea3a031db941c39506dc6c1665b8efa7", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.07999879026023995, + "peak": 0.4749900698661804 + }, + { + "url": "http://127.0.0.1:4173/ambience/market.wav?v=0.2.3", + "sha256": "4287e971a12767f70da714e0c1aff30125268f9c3faf07ebfbcc0d2904f4a312", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.049222823565976834, + "peak": 0.8499755859375 + }, + { + "url": "http://127.0.0.1:4173/ambience/subway.wav?v=0.2.3", + "sha256": "9faf70b68617d267b367a0f3692ed90015458543ab4b0844f6c704e6a724728f", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.079998775670051, + "peak": 0.42530596256256104 + }, + { + "url": "http://127.0.0.1:4173/ambience/cafe.wav?v=0.2.3", + "sha256": "8db06f3f09bbd8409573ba4874c7ccdd1e7e825c8a61989a4efe66206a66c2d2", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.07999881107742599, + "peak": 0.3971068561077118 + }, + { + "url": "http://127.0.0.1:4173/ambience/rain.wav?v=0.2.3", + "sha256": "f4315084e820f742b0709de5bb0d1abd3d5af1730620e08c2948b70347356dd9", + "bytes": 576044, + "sampleRate": 24000, + "channels": 1, + "duration": 12, + "rms": 0.011384798571746246, + "peak": 0.1024169921875 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-apple.wav?v=0.2.3", + "sha256": "cb7da4e9a1288cac64d168b241f27d7d2bc2dfecace58744f9bbf2792dfad04e", + "bytes": 397484, + "sampleRate": 24000, + "channels": 1, + "duration": 8.28, + "rms": 0.10000142448574952, + "peak": 0.6414685249328613 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-market.wav?v=0.2.3", + "sha256": "b8d25b867497adcd0fe7c8b6a8a8d2e7a52965956738a83e53f58735708773f9", + "bytes": 405548, + "sampleRate": 24000, + "channels": 1, + "duration": 8.448, + "rms": 0.10000141405173993, + "peak": 0.491485595703125 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-sound.wav?v=0.2.3", + "sha256": "34e4d9758d2ed448646fda364610e34779c84794403d9051ab3d8c1d33e2c80c", + "bytes": 184364, + "sampleRate": 24000, + "channels": 1, + "duration": 3.84, + "rms": 0.10000138709171018, + "peak": 0.386322021484375 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-furniture.wav?v=0.2.3", + "sha256": "b45b1afc8d9b534ff3e0a2a2ecb99efc1f4e40d41f89f55c4ed8ba94ad6d76d4", + "bytes": 354860, + "sampleRate": 24000, + "channels": 1, + "duration": 7.392, + "rms": 0.1000015072973225, + "peak": 0.5576171875 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-market.wav?v=0.2.3", + "sha256": "cefa0e95649ea6bd1df4c8dfccd2b74b4f4c028714420ce1087b61db2f2a8d47", + "bytes": 248876, + "sampleRate": 24000, + "channels": 1, + "duration": 5.184, + "rms": 0.10000142548167161, + "peak": 0.4857020676136017 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-oil.wav?v=0.2.3", + "sha256": "f6eff0cdddcad9790351491e60c53cb2a70d222033a583652f2de0b8cd6abcc7", + "bytes": 406700, + "sampleRate": 24000, + "channels": 1, + "duration": 8.472, + "rms": 0.10000139122025363, + "peak": 0.470794677734375 + }, + { + "url": "http://127.0.0.1:4173/audio/first-hat.wav?v=0.2.3", + "sha256": "17c8cde90567e7574b0c0702663bd70713054089ee920241b5444d9b7869eef5", + "bytes": 357164, + "sampleRate": 24000, + "channels": 1, + "duration": 7.44, + "rms": 0.10000152904790521, + "peak": 0.5312662124633789 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-furniture.wav?v=0.2.3", + "sha256": "af82e03b686635c3356e706fe5b05c1231aeaaeab33f275aa5b8714988c65d43", + "bytes": 241964, + "sampleRate": 24000, + "channels": 1, + "duration": 5.04, + "rms": 0.10000137346142077, + "peak": 0.4852443039417267 + }, + { + "url": "http://127.0.0.1:4173/audio/password-sound.wav?v=0.2.3", + "sha256": "044aafff08a19e39f21e58b963644715a987cd155896998769ef8e9ce6449628", + "bytes": 236204, + "sampleRate": 24000, + "channels": 1, + "duration": 4.92, + "rms": 0.10000156641621728, + "peak": 0.4621112644672394 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-hat.wav?v=0.2.3", + "sha256": "f9f98c91cfbcfcb106eef7d5d3795a9cf3c3aab7e19a60f13d7dffe284d19f86", + "bytes": 398636, + "sampleRate": 24000, + "channels": 1, + "duration": 8.304, + "rms": 0.10000141071544869, + "peak": 0.470977783203125 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-apple.wav?v=0.2.3", + "sha256": "7c8f413f4b7e164f090e508ba090448f1376c6012649bbb6a917d45851313883", + "bytes": 188972, + "sampleRate": 24000, + "channels": 1, + "duration": 3.936, + "rms": 0.10000130469939268, + "peak": 0.401641845703125 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-sea.wav?v=0.2.3", + "sha256": "db2f235bee26ac804b5362e8e013b8f40c8da24fd3a34e0fb3b43c6d264feb36", + "bytes": 382508, + "sampleRate": 24000, + "channels": 1, + "duration": 7.968, + "rms": 0.10000145042993039, + "peak": 0.6843470335006714 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-furniture.wav?v=0.2.3", + "sha256": "442bdcb956f120c270e1f321feae0415c897de0183e468980fcc119b898b2a67", + "bytes": 403244, + "sampleRate": 24000, + "channels": 1, + "duration": 8.4, + "rms": 0.10000149119200713, + "peak": 0.5619068145751953 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-sea.wav?v=0.2.3", + "sha256": "b6dbe0af143ea775f05bd59a3d6af348bcc770ab378ac91ea75a56e06c326edf", + "bytes": 346796, + "sampleRate": 24000, + "channels": 1, + "duration": 7.224, + "rms": 0.10000144532868623, + "peak": 0.56494140625 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-sound.wav?v=0.2.3", + "sha256": "e9d636ff7f4777f38b1ff15bebdcec6fbde95b4b4b05625a7415b4cfa0025b59", + "bytes": 395180, + "sampleRate": 24000, + "channels": 1, + "duration": 8.232, + "rms": 0.10000164955559301, + "peak": 0.6114688515663147 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-apple.wav?v=0.2.3", + "sha256": "3ef42e276ff3500c3e197d149f29f79d6a0c1d5516ed1d5a2c57210333fded9c", + "bytes": 246572, + "sampleRate": 24000, + "channels": 1, + "duration": 5.136, + "rms": 0.10000144279302126, + "peak": 0.4701681435108185 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-market.wav?v=0.2.3", + "sha256": "356af25332bf2000ed349671f3ff39767929e1f4599af622c021f907d11fb7bf", + "bytes": 194732, + "sampleRate": 24000, + "channels": 1, + "duration": 4.056, + "rms": 0.10000132629820717, + "peak": 0.4022216796875 + }, + { + "url": "http://127.0.0.1:4173/audio/message-sea.wav?v=0.2.3", + "sha256": "28a461fbe03bffe2560030dea8b60715f7c0fe262dcf85b5b7f7daf483836382", + "bytes": 517292, + "sampleRate": 24000, + "channels": 1, + "duration": 10.776, + "rms": 0.10000130584401576, + "peak": 0.53521728515625 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-umbrella.wav?v=0.2.3", + "sha256": "c8988e604ba05d52597e561389541e8f9cda86e052279f1862bbf8399ead314e", + "bytes": 403244, + "sampleRate": 24000, + "channels": 1, + "duration": 8.4, + "rms": 0.10000148262660476, + "peak": 0.557830810546875 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-hat.wav?v=0.2.3", + "sha256": "308278ec2bd27d4224976a55632d1f7fa1edabb0792126d9d858a699c287aee4", + "bytes": 245420, + "sampleRate": 24000, + "channels": 1, + "duration": 5.112, + "rms": 0.10000140702099906, + "peak": 0.4498428404331207 + }, + { + "url": "http://127.0.0.1:4173/audio/password-furniture.wav?v=0.2.3", + "sha256": "fb2b631dd4e12120d08a84cce6450f9cd9cd68105d13d7001d808e7deaa1df4a", + "bytes": 233900, + "sampleRate": 24000, + "channels": 1, + "duration": 4.872, + "rms": 0.10000146718546903, + "peak": 0.4836573302745819 + }, + { + "url": "http://127.0.0.1:4173/audio/first-market.wav?v=0.2.3", + "sha256": "1e00b8f70a796cdebb0feb00c605fece7488b06915e6e036f54206f05e201e0c", + "bytes": 359468, + "sampleRate": 24000, + "channels": 1, + "duration": 7.488, + "rms": 0.10000152633991319, + "peak": 0.6390880942344666 + }, + { + "url": "http://127.0.0.1:4173/audio/first-meat.wav?v=0.2.3", + "sha256": "f51a37c1722fef581f7d642a4dcae7fcb9953b3c318dce971bf616cd1a81fecc", + "bytes": 345644, + "sampleRate": 24000, + "channels": 1, + "duration": 7.2, + "rms": 0.10000152244411063, + "peak": 0.5131382346153259 + }, + { + "url": "http://127.0.0.1:4173/audio/password-sea.wav?v=0.2.3", + "sha256": "03f45b8cb5b3dc72faf5c6e3d0e2a10cea6b60301ea400d0a4453596d2f0b337", + "bytes": 232748, + "sampleRate": 24000, + "channels": 1, + "duration": 4.848, + "rms": 0.10000144821976133, + "peak": 0.5339213013648987 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-sound.wav?v=0.2.3", + "sha256": "98387ccc7aab566f6487d4c250b2128082cc527e013a6f7b7bc4d0266ac295df", + "bytes": 394028, + "sampleRate": 24000, + "channels": 1, + "duration": 8.208, + "rms": 0.10000158053850364, + "peak": 0.5377971529960632 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-umbrella.wav?v=0.2.3", + "sha256": "5e59ef39113c3d5e106862356d715f4cef2862ef8ee02654a97e532675c1ac6d", + "bytes": 410156, + "sampleRate": 24000, + "channels": 1, + "duration": 8.544, + "rms": 0.10000147499132286, + "peak": 0.6748558282852173 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-hat.wav?v=0.2.3", + "sha256": "b01ef9762ac84e3eb757243bc9286c62f7d45444a821ae35ac36a8b095e1598a", + "bytes": 353708, + "sampleRate": 24000, + "channels": 1, + "duration": 7.368, + "rms": 0.10000153089787694, + "peak": 0.555206298828125 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-market.wav?v=0.2.3", + "sha256": "d89792da51c83ac49d27e55aa6d822a338899a5ee487b34b552748201e1522f6", + "bytes": 398636, + "sampleRate": 24000, + "channels": 1, + "duration": 8.304, + "rms": 0.10000149710778367, + "peak": 0.5728324055671692 + }, + { + "url": "http://127.0.0.1:4173/audio/password-umbrella.wav?v=0.2.3", + "sha256": "ab3ca6398c879971dc793eb25b472fcc0db72d76e386f11ef4d32c639f37c69d", + "bytes": 239660, + "sampleRate": 24000, + "channels": 1, + "duration": 4.992, + "rms": 0.100001426973271, + "peak": 0.4776757061481476 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-meat.wav?v=0.2.3", + "sha256": "48e91b3932d3798e852041a854b3ee08c72127e092c62083a47af6b99adff241", + "bytes": 403244, + "sampleRate": 24000, + "channels": 1, + "duration": 8.4, + "rms": 0.10000140336390047, + "peak": 0.481536865234375 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-hat.wav?v=0.2.3", + "sha256": "6e089a42fd7e65e82eec7186d369c926fb7fdac794365b2bd7658822fd92437c", + "bytes": 396332, + "sampleRate": 24000, + "channels": 1, + "duration": 8.256, + "rms": 0.1000015662548192, + "peak": 0.616748571395874 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-sound.wav?v=0.2.3", + "sha256": "4d00aa6114327f450a00dacbc7e7b572ebf1de4ce9dc2fe4b5505766cca71ce9", + "bytes": 353708, + "sampleRate": 24000, + "channels": 1, + "duration": 7.368, + "rms": 0.10000162019345048, + "peak": 0.5348368883132935 + }, + { + "url": "http://127.0.0.1:4173/audio/last-oil.wav?v=0.2.3", + "sha256": "b5ce34950b8b31b1baf6ce55410797f0d8aa5478a670d6eace87cf76d134d6d3", + "bytes": 337580, + "sampleRate": 24000, + "channels": 1, + "duration": 7.032, + "rms": 0.10000149980584365, + "peak": 0.55706787109375 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-sea.wav?v=0.2.3", + "sha256": "47aa31d757c9fb49c9b53a1c052d90a5ced4be57549d649850d9b48f8864045b", + "bytes": 191276, + "sampleRate": 24000, + "channels": 1, + "duration": 3.984, + "rms": 0.10000129182106483, + "peak": 0.388702392578125 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-sound.wav?v=0.2.3", + "sha256": "659eb0e2b06e6b165b46744769743e032e2282519f8486c57bc45e0f7d07a069", + "bytes": 240812, + "sampleRate": 24000, + "channels": 1, + "duration": 5.016, + "rms": 0.10000152909529536, + "peak": 0.45481735467910767 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-meat.wav?v=0.2.3", + "sha256": "6599d2fac73ea616a793151b4ce6f51af673988d630bac6219a77e78ae6cb34e", + "bytes": 380204, + "sampleRate": 24000, + "channels": 1, + "duration": 7.92, + "rms": 0.1000016061190976, + "peak": 0.5921201109886169 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-market.wav?v=0.2.3", + "sha256": "c855b449e0d4ace74681bfe68e5e7f0b063568827ae872017234dbe8ae119e4c", + "bytes": 356012, + "sampleRate": 24000, + "channels": 1, + "duration": 7.416, + "rms": 0.10000151456676445, + "peak": 0.5949888825416565 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-furniture.wav?v=0.2.3", + "sha256": "bf84dc6cff1f227924a3a62158d2fc18769fb0ca40b91418fa19e534dbf92f00", + "bytes": 397484, + "sampleRate": 24000, + "channels": 1, + "duration": 8.28, + "rms": 0.10000155255948041, + "peak": 0.6670430898666382 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-sound.wav?v=0.2.3", + "sha256": "5a603bc69979603afddcaeb6edf500a7c540b72405daeb33f5335d746b327da1", + "bytes": 397484, + "sampleRate": 24000, + "channels": 1, + "duration": 8.28, + "rms": 0.10000146491234768, + "peak": 0.469268798828125 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-meat.wav?v=0.2.3", + "sha256": "9183ef90b64f5ceaf3bb0178c689231ff3e9981d6ce889124a15f2a6e2b7a344", + "bytes": 395180, + "sampleRate": 24000, + "channels": 1, + "duration": 8.232, + "rms": 0.10000155087122137, + "peak": 0.5193029642105103 + }, + { + "url": "http://127.0.0.1:4173/audio/last-sound.wav?v=0.2.3", + "sha256": "ec9c49802aebeb6a8b898a1c0d8ad1daa127d2d64c905c197ed49a8e0c4eb64a", + "bytes": 354860, + "sampleRate": 24000, + "channels": 1, + "duration": 7.392, + "rms": 0.10000165748716579, + "peak": 0.5641041398048401 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-oil.wav?v=0.2.3", + "sha256": "5fb63e04520c312aa6b7b48b70c2f7c140b5ab480e5c6992edbc2ba85b9a06e7", + "bytes": 241964, + "sampleRate": 24000, + "channels": 1, + "duration": 5.04, + "rms": 0.10000143720418167, + "peak": 0.443586528301239 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-umbrella.wav?v=0.2.3", + "sha256": "92b54f04884ab915783945077efd8f3bd443849a1720f72168b6348cae1f8e85", + "bytes": 406700, + "sampleRate": 24000, + "channels": 1, + "duration": 8.472, + "rms": 0.10000140257790288, + "peak": 0.479034423828125 + }, + { + "url": "http://127.0.0.1:4173/audio/message-sound.wav?v=0.2.3", + "sha256": "1e682147dae8026ba78dc8f256c7f24acb3a6743bfd88a0fcc86096930eef078", + "bytes": 521900, + "sampleRate": 24000, + "channels": 1, + "duration": 10.872, + "rms": 0.10000138583471241, + "peak": 0.51953125 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-apple.wav?v=0.2.3", + "sha256": "ccd7327a3fb54d3320d049ffdced3bc17595861cee69429c0ee97182d454195b", + "bytes": 402092, + "sampleRate": 24000, + "channels": 1, + "duration": 8.376, + "rms": 0.10000140667715379, + "peak": 0.490325927734375 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-sea.wav?v=0.2.3", + "sha256": "5c91a36496e274d2be9c6fa8d9b506cd04f2a1b7ceb05ed1b7bb03fe7fca99d9", + "bytes": 399788, + "sampleRate": 24000, + "channels": 1, + "duration": 8.328, + "rms": 0.10000144241513113, + "peak": 0.5465559959411621 + }, + { + "url": "http://127.0.0.1:4173/audio/message-hat.wav?v=0.2.3", + "sha256": "5a713a8522b231bb8276805c014b385b9150b79f58ff2618446607e2b442495e", + "bytes": 518444, + "sampleRate": 24000, + "channels": 1, + "duration": 10.8, + "rms": 0.10000136927555209, + "peak": 0.587005615234375 + }, + { + "url": "http://127.0.0.1:4173/audio/password-meat.wav?v=0.2.3", + "sha256": "b009caadd56350d6a641ff17f0973e2b2724c183e1f45ae0bf3c483e237fa99e", + "bytes": 240812, + "sampleRate": 24000, + "channels": 1, + "duration": 5.016, + "rms": 0.10000148386024335, + "peak": 0.4978789687156677 + }, + { + "url": "http://127.0.0.1:4173/audio/message-market.wav?v=0.2.3", + "sha256": "9242d4cd6e0030e6b073e4d2360f84aa8a454d1749711cdb2d64c14f28a7ea20", + "bytes": 523052, + "sampleRate": 24000, + "channels": 1, + "duration": 10.896, + "rms": 0.10000133805787564, + "peak": 0.534820556640625 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-apple.wav?v=0.2.3", + "sha256": "8832f1b793ab3eedbe663875ea8dbeabb122c329bd5879437c71230b0418c3c8", + "bytes": 360620, + "sampleRate": 24000, + "channels": 1, + "duration": 7.512, + "rms": 0.10000145024648589, + "peak": 0.553558349609375 + }, + { + "url": "http://127.0.0.1:4173/audio/last-umbrella.wav?v=0.2.3", + "sha256": "c801293a34013a8d93d3289a2cc87cd3eed83f97ba4647f5060efa00b117a9ad", + "bytes": 370988, + "sampleRate": 24000, + "channels": 1, + "duration": 7.728, + "rms": 0.10000149360501835, + "peak": 0.59765625 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-sea.wav?v=0.2.3", + "sha256": "9233431d78ab4b144e3c33ad0cf0d49fc0fb91b29514343230ba32987b794bb3", + "bytes": 398636, + "sampleRate": 24000, + "channels": 1, + "duration": 8.304, + "rms": 0.10000134688905045, + "peak": 0.49616992473602295 + }, + { + "url": "http://127.0.0.1:4173/audio/password-apple.wav?v=0.2.3", + "sha256": "b6f5de3fe571fe3a7fdb722fe49250bcfeedef49475271e0ec76a7630907edd5", + "bytes": 235052, + "sampleRate": 24000, + "channels": 1, + "duration": 4.896, + "rms": 0.10000148212193387, + "peak": 0.4834437072277069 + }, + { + "url": "http://127.0.0.1:4173/audio/first-furniture.wav?v=0.2.3", + "sha256": "29f007b385b7182db1d8aeccad4fc3c260df5e66e14e52a46b0ef0fcd0ff3a0a", + "bytes": 364076, + "sampleRate": 24000, + "channels": 1, + "duration": 7.584, + "rms": 0.1000014551820741, + "peak": 0.5700552463531494 + }, + { + "url": "http://127.0.0.1:4173/audio/password-hat.wav?v=0.2.3", + "sha256": "e91bfc97df90a1675b6cd856880ac15c54de32cfc3b23603bdd1c2c5ac3ce6b8", + "bytes": 235052, + "sampleRate": 24000, + "channels": 1, + "duration": 4.896, + "rms": 0.10000146155157119, + "peak": 0.5059053301811218 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-oil.wav?v=0.2.3", + "sha256": "7a6b122b11c07da86c95fb78e2db2a70681b5219c63d6441fe56da1979ac1dc3", + "bytes": 334124, + "sampleRate": 24000, + "channels": 1, + "duration": 6.96, + "rms": 0.1000014880654183, + "peak": 0.539933443069458 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-meat.wav?v=0.2.3", + "sha256": "d416107cc05e7c5b92ca27100a10a8a9689de913346179945d5542de4a6bac0c", + "bytes": 342188, + "sampleRate": 24000, + "channels": 1, + "duration": 7.128, + "rms": 0.10000157422522808, + "peak": 0.510833740234375 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-apple.wav?v=0.2.3", + "sha256": "1bf2aef9a9f030af1a8fd7dee8f44aa420a397b3ba99b575feeb3dc7a63ec191", + "bytes": 395180, + "sampleRate": 24000, + "channels": 1, + "duration": 8.232, + "rms": 0.10000148399213096, + "peak": 0.563568115234375 + }, + { + "url": "http://127.0.0.1:4173/audio/first-oil.wav?v=0.2.3", + "sha256": "f415195e0cfc7ee711d09de7519e88eab62cc8b58d70772c83c3f5c27c267819", + "bytes": 335276, + "sampleRate": 24000, + "channels": 1, + "duration": 6.984, + "rms": 0.10000145886808136, + "peak": 0.5347453355789185 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-hat.wav?v=0.2.3", + "sha256": "31a6a4270bf368cda419094d87a303ac3cd5c22539786cb165f8044b0b8e9d6e", + "bytes": 402092, + "sampleRate": 24000, + "channels": 1, + "duration": 8.376, + "rms": 0.10000145804818952, + "peak": 0.541778564453125 + }, + { + "url": "http://127.0.0.1:4173/audio/message-furniture.wav?v=0.2.3", + "sha256": "26c331b7e12311236f4bb48f88918dfbf53cccd2f50b55741ea6ff4473e71dd8", + "bytes": 521900, + "sampleRate": 24000, + "channels": 1, + "duration": 10.872, + "rms": 0.10000134596838128, + "peak": 0.529327392578125 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-oil.wav?v=0.2.3", + "sha256": "3fa1e662a3af8f2726b17b2baa5bec2934406e6595ebc243c8380dd16e190977", + "bytes": 190124, + "sampleRate": 24000, + "channels": 1, + "duration": 3.96, + "rms": 0.10000134375667624, + "peak": 0.3817255198955536 + }, + { + "url": "http://127.0.0.1:4173/audio/last-sea.wav?v=0.2.3", + "sha256": "f755452e1da44674aa1df7d12edffa988091b89a394e7eb6d4a00eb721f07cbf", + "bytes": 345644, + "sampleRate": 24000, + "channels": 1, + "duration": 7.2, + "rms": 0.10000140162255576, + "peak": 0.591033935546875 + }, + { + "url": "http://127.0.0.1:4173/audio/password-oil.wav?v=0.2.3", + "sha256": "b472957b27ff98ea7b8894fa1ff12653f7e9f66f77870faa9e52a1c1bf116c41", + "bytes": 240812, + "sampleRate": 24000, + "channels": 1, + "duration": 5.016, + "rms": 0.10000146772662066, + "peak": 0.4945219159126282 + }, + { + "url": "http://127.0.0.1:4173/audio/first-umbrella.wav?v=0.2.3", + "sha256": "878e0bd2e6e4105f175aef51a028f6b141f3a2072be20f783193f3ba897a3ee0", + "bytes": 366380, + "sampleRate": 24000, + "channels": 1, + "duration": 7.632, + "rms": 0.10000147647908036, + "peak": 0.5700247287750244 + }, + { + "url": "http://127.0.0.1:4173/audio/last-apple.wav?v=0.2.3", + "sha256": "4cb2a8579fa3a7b91bb36363826ce8ca0d6d86e96e16a479e226a2802edd82f7", + "bytes": 356012, + "sampleRate": 24000, + "channels": 1, + "duration": 7.416, + "rms": 0.10000144523423521, + "peak": 0.622528076171875 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-market.wav?v=0.2.3", + "sha256": "68a5b899115a66ab225d610ec47b4de56cc8793657362bc38f533c06f741e4cc", + "bytes": 402092, + "sampleRate": 24000, + "channels": 1, + "duration": 8.376, + "rms": 0.10000160159844854, + "peak": 0.6822717785835266 + }, + { + "url": "http://127.0.0.1:4173/audio/message-oil.wav?v=0.2.3", + "sha256": "a2a71a7e5e07c81871a25c6cb7540c39aa0b32fc44f78cda66b5f34ace98d805", + "bytes": 509228, + "sampleRate": 24000, + "channels": 1, + "duration": 10.608, + "rms": 0.10000135184106136, + "peak": 0.51812744140625 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-meat.wav?v=0.2.3", + "sha256": "d36dfc395a5c53fbfa4abe9980db7bb59adfdac59e40318c4aca365365e3f2ab", + "bytes": 187820, + "sampleRate": 24000, + "channels": 1, + "duration": 3.912, + "rms": 0.1000013329979738, + "peak": 0.371124267578125 + }, + { + "url": "http://127.0.0.1:4173/audio/password-market.wav?v=0.2.3", + "sha256": "02e325fb753ef7a3ee585a03d2ca2aa3f1fbc58523b062222ae1136eeed7a95c", + "bytes": 230444, + "sampleRate": 24000, + "channels": 1, + "duration": 4.8, + "rms": 0.10000151520861549, + "peak": 0.48170414566993713 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-hat.wav?v=0.2.3", + "sha256": "4ff43dd042f4b5451e9fdeb3edd59f1e389a7d1dd488094587a3a9fc7dfffa44", + "bytes": 191276, + "sampleRate": 24000, + "channels": 1, + "duration": 3.984, + "rms": 0.10000132502946775, + "peak": 0.417083740234375 + }, + { + "url": "http://127.0.0.1:4173/audio/last-market.wav?v=0.2.3", + "sha256": "7857e87e9dbfe8fe849cc0b18c1d45b60916cb337328099c7a87a42c82e2821e", + "bytes": 359468, + "sampleRate": 24000, + "channels": 1, + "duration": 7.488, + "rms": 0.10000148064140717, + "peak": 0.600555419921875 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-meat.wav?v=0.2.3", + "sha256": "94f8a4f9e116a787e5ed052661d6de9ecf3ad8629db476661dd59ad03014b0c9", + "bytes": 244268, + "sampleRate": 24000, + "channels": 1, + "duration": 5.088, + "rms": 0.10000146176253134, + "peak": 0.44187748432159424 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-oil.wav?v=0.2.3", + "sha256": "55b2c7d6aa8bbce04edf8661882c9781da81c57f56217f99b80457a3bb895da0", + "bytes": 369836, + "sampleRate": 24000, + "channels": 1, + "duration": 7.704, + "rms": 0.10000146897241707, + "peak": 0.6239814162254333 + }, + { + "url": "http://127.0.0.1:4173/audio/first-sound.wav?v=0.2.3", + "sha256": "46f6adeed928a16af0700f1e8626cf8049f124632a04a5d10604426fb06f9596", + "bytes": 353708, + "sampleRate": 24000, + "channels": 1, + "duration": 7.368, + "rms": 0.10000157588418972, + "peak": 0.5189672708511353 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-umbrella.wav?v=0.2.3", + "sha256": "4b4c858a25659540f9dbc524664496fc6de61ab8c1627f3cfee8c9c744e11d5b", + "bytes": 247724, + "sampleRate": 24000, + "channels": 1, + "duration": 5.16, + "rms": 0.10000144286672341, + "peak": 0.46534621715545654 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-oil.wav?v=0.2.3", + "sha256": "3ca98682ff06d1d6b8af02c0fd5b2124f42266ac989884223eff4a9bbde1287a", + "bytes": 399788, + "sampleRate": 24000, + "channels": 1, + "duration": 8.328, + "rms": 0.10000149133669024, + "peak": 0.5243995189666748 + }, + { + "url": "http://127.0.0.1:4173/audio/first-sea.wav?v=0.2.3", + "sha256": "0f0b39314c5f7d7168d4854003c0c284e7bc3438cdc4d1d1c5adab7cb5ed30e5", + "bytes": 349100, + "sampleRate": 24000, + "channels": 1, + "duration": 7.272, + "rms": 0.10000142148394393, + "peak": 0.5717948079109192 + }, + { + "url": "http://127.0.0.1:4173/audio/last-meat.wav?v=0.2.3", + "sha256": "10f8ad4259ed8945c9da831e80b3902303c09caef96d400298599168fb1efed4", + "bytes": 346796, + "sampleRate": 24000, + "channels": 1, + "duration": 7.224, + "rms": 0.10000155834091913, + "peak": 0.537200927734375 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-umbrella.wav?v=0.2.3", + "sha256": "399ea2f681f755918f1117c8baba42739ceca64b307b999342f457a9235050b6", + "bytes": 368684, + "sampleRate": 24000, + "channels": 1, + "duration": 7.68, + "rms": 0.10000155028684544, + "peak": 0.569549560546875 + }, + { + "url": "http://127.0.0.1:4173/audio/message-meat.wav?v=0.2.3", + "sha256": "ce19735df079b54c171e775b6b365385a80160b9033442abab95b2b9c8505e1a", + "bytes": 512684, + "sampleRate": 24000, + "channels": 1, + "duration": 10.68, + "rms": 0.10000140834686953, + "peak": 0.5147705078125 + }, + { + "url": "http://127.0.0.1:4173/audio/message-umbrella.wav?v=0.2.3", + "sha256": "41d5866dae66600df4694a8312b531571d44cece6dba0e423e7c43d09d184819", + "bytes": 523052, + "sampleRate": 24000, + "channels": 1, + "duration": 10.896, + "rms": 0.10000120668553683, + "peak": 0.530364990234375 + }, + { + "url": "http://127.0.0.1:4173/audio/last-furniture.wav?v=0.2.3", + "sha256": "5ad4f776e35439d408abed0e66567d6b5cdc80fc54d579165472e474f1238776", + "bytes": 357164, + "sampleRate": 24000, + "channels": 1, + "duration": 7.44, + "rms": 0.10000152394963031, + "peak": 0.583587646484375 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-sea.wav?v=0.2.3", + "sha256": "8838d6a1ee8a790427dc5aa761e70b3d8872af62086efeed743297ff7f8b8a06", + "bytes": 243116, + "sampleRate": 24000, + "channels": 1, + "duration": 5.064, + "rms": 0.10000138788281714, + "peak": 0.45013427734375 + }, + { + "url": "http://127.0.0.1:4173/audio/message-apple.wav?v=0.2.3", + "sha256": "d85e6f47d871369f00de2274139e5ad6b4b5686b5e20e248df0ed6b9a320d942", + "bytes": 517292, + "sampleRate": 24000, + "channels": 1, + "duration": 10.776, + "rms": 0.10000133916854889, + "peak": 0.525360107421875 + }, + { + "url": "http://127.0.0.1:4173/audio/last-hat.wav?v=0.2.3", + "sha256": "bdaf8fbc54df8061e9e58aa8c14b3044a6e863dc54973ee3ee6ae2c5ae1a28f1", + "bytes": 354860, + "sampleRate": 24000, + "channels": 1, + "duration": 7.392, + "rms": 0.10000152378078818, + "peak": 0.550079345703125 + }, + { + "url": "http://127.0.0.1:4173/audio/first-apple.wav?v=0.2.3", + "sha256": "7c1dbcb3082055df2b8f087f7e906ec867c92f679de0894c34740c05e61a4bc1", + "bytes": 359468, + "sampleRate": 24000, + "channels": 1, + "duration": 7.488, + "rms": 0.10000143468253914, + "peak": 0.57977294921875 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-umbrella.wav?v=0.2.3", + "sha256": "8d3e8e8bc97e5fe3f3362184c4abb12f01a882a1f1174d2644f0f70aac677c0a", + "bytes": 192428, + "sampleRate": 24000, + "channels": 1, + "duration": 4.008, + "rms": 0.10000131475711933, + "peak": 0.385650634765625 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-furniture.wav?v=0.2.3", + "sha256": "5c004a7b2f5a4a918c9f689f1a2dcb219a620ed14313f40a9655b36dbf64948d", + "bytes": 398636, + "sampleRate": 24000, + "channels": 1, + "duration": 8.304, + "rms": 0.10000141690978645, + "peak": 0.487396240234375 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-tree.wav?v=0.2.3", + "sha256": "122f496834fb16d6da47f801e50e46e272e4e934af959467d1db4e490f79be7a", + "bytes": 183212, + "sampleRate": 24000, + "channels": 1, + "duration": 3.816, + "rms": 0.10000140751524371, + "peak": 0.36920166015625 + }, + { + "url": "http://127.0.0.1:4173/audio/mission-tree.wav?v=0.2.3", + "sha256": "00d8e77ec0371971d632724d91f8cf8d947bfb83c582a513b6421be4c457a1da", + "bytes": 241964, + "sampleRate": 24000, + "channels": 1, + "duration": 5.04, + "rms": 0.10000146153372488, + "peak": 0.4585406184196472 + }, + { + "url": "http://127.0.0.1:4173/audio/message-tree.wav?v=0.2.3", + "sha256": "5d684aa710a63d36ed8dcc2a8bfbdd5c71b0b1c63dad2a324adecb76591e85b8", + "bytes": 540332, + "sampleRate": 24000, + "channels": 1, + "duration": 11.256, + "rms": 0.10000132424453942, + "peak": 0.5262451171875 + }, + { + "url": "http://127.0.0.1:4173/audio/last-tree.wav?v=0.2.3", + "sha256": "589e56d940a3c9e80ec02ae0b2dd93463fdc85ef019a753fcd0fded0752055f9", + "bytes": 382508, + "sampleRate": 24000, + "channels": 1, + "duration": 7.968, + "rms": 0.10000149781706567, + "peak": 0.5807672142982483 + }, + { + "url": "http://127.0.0.1:4173/audio/middle-tree.wav?v=0.2.3", + "sha256": "341888c75275c13eb31058f53a1d4276be0daa0a1b5a3a45522036928b83b0c1", + "bytes": 382508, + "sampleRate": 24000, + "channels": 1, + "duration": 7.968, + "rms": 0.1000014873304774, + "peak": 0.600024402141571 + }, + { + "url": "http://127.0.0.1:4173/audio/repeat-tree.wav?v=0.2.3", + "sha256": "8735c3d9672561ca237fa87317beec2878492eb9063d6048d5b214423561acc1", + "bytes": 423980, + "sampleRate": 24000, + "channels": 1, + "duration": 8.832, + "rms": 0.10000150947389638, + "peak": 0.6187627911567688 + }, + { + "url": "http://127.0.0.1:4173/audio/luck-furniture.wav?v=0.2.3", + "sha256": "52cb92cdb8ee92b6f581c9d68dbc346f180c470564809ba57185429c9eb84127", + "bytes": 186668, + "sampleRate": 24000, + "channels": 1, + "duration": 3.888, + "rms": 0.1000013480244084, + "peak": 0.387054443359375 + }, + { + "url": "http://127.0.0.1:4173/audio/remember-tree.wav?v=0.2.3", + "sha256": "bc8e54f5407e8866bf1ca1ddfd4f6c63d85fee29bd9e430c7dd33e87974fc5b8", + "bytes": 409004, + "sampleRate": 24000, + "channels": 1, + "duration": 8.52, + "rms": 0.10000146559822108, + "peak": 0.5486617684364319 + }, + { + "url": "http://127.0.0.1:4173/audio/correction-tree.wav?v=0.2.3", + "sha256": "b8e8bbe6b8b14727efd953fae9d4aed2caeb004055d52f611c6378322847edbe", + "bytes": 400940, + "sampleRate": 24000, + "channels": 1, + "duration": 8.352, + "rms": 0.10000144970799159, + "peak": 0.470611572265625 + }, + { + "url": "http://127.0.0.1:4173/audio/first-tree.wav?v=0.2.3", + "sha256": "3178230fd5850b6277a2153b438ec5289720e3db7ac929914cc213964f004bd5", + "bytes": 379052, + "sampleRate": 24000, + "channels": 1, + "duration": 7.896, + "rms": 0.10000144270360484, + "peak": 0.5833613276481628 + }, + { + "url": "http://127.0.0.1:4173/audio/password-tree.wav?v=0.2.3", + "sha256": "67da8147296e35134ec254bc82b58317630061b2c64d2d63c4be197ce8692d50", + "bytes": 233900, + "sampleRate": 24000, + "channels": 1, + "duration": 4.872, + "rms": 0.10000156310809623, + "peak": 0.4904019236564636 + } + ] +} diff --git a/.agent/evidence-v0.2.3/review-fixes/mobile-runtime-audit.json b/.agent/evidence-v0.2.3/review-fixes/mobile-runtime-audit.json new file mode 100644 index 0000000..ebb7e1a --- /dev/null +++ b/.agent/evidence-v0.2.3/review-fixes/mobile-runtime-audit.json @@ -0,0 +1,70 @@ +{ + "errors": [], + "failed": [], + "external": [], + "audio": { + "starts": [ + { + "loop": true, + "duration": 12 + }, + { + "loop": false, + "duration": 7.055986394557823 + }, + { + "loop": false, + "duration": 7.4399773242630385 + }, + { + "loop": true, + "duration": 12 + }, + { + "loop": false, + "duration": 8.207981859410431 + }, + { + "loop": true, + "duration": 12 + }, + { + "loop": false, + "duration": 5.015986394557823 + }, + { + "loop": true, + "duration": 12 + }, + { + "loop": false, + "duration": 7.055986394557823 + }, + { + "loop": false, + "duration": 7.967981859410431 + }, + { + "loop": true, + "duration": 12 + }, + { + "loop": false, + "duration": 7.055986394557823 + }, + { + "loop": false, + "duration": 10.895986394557823 + }, + { + "loop": true, + "duration": 12 + }, + { + "loop": false, + "duration": 10.895986394557823 + } + ], + "stops": 15 + } +} \ No newline at end of file diff --git a/.agent/evidence-v0.2.3/review-fixes/npm-audit.json b/.agent/evidence-v0.2.3/review-fixes/npm-audit.json new file mode 100644 index 0000000..c046bc2 --- /dev/null +++ b/.agent/evidence-v0.2.3/review-fixes/npm-audit.json @@ -0,0 +1,22 @@ +{ + "auditReportVersion": 2, + "vulnerabilities": {}, + "metadata": { + "vulnerabilities": { + "info": 0, + "low": 0, + "moderate": 0, + "high": 0, + "critical": 0, + "total": 0 + }, + "dependencies": { + "prod": 4, + "dev": 260, + "optional": 27, + "peer": 8, + "peerOptional": 0, + "total": 263 + } + } +} diff --git a/.agent/evidence-v0.2.3/review-fixes/preservation.json b/.agent/evidence-v0.2.3/review-fixes/preservation.json new file mode 100644 index 0000000..0ec34a1 --- /dev/null +++ b/.agent/evidence-v0.2.3/review-fixes/preservation.json @@ -0,0 +1,8 @@ +{ + "baselineFiles": 377, + "wavFiles": 109, + "priorAgentFiles": 268, + "changedFromBaseline": [], + "historicalTrackedFiles": 180, + "historicalChangesFromHead": [] +} diff --git a/.agent/evidence-v0.2.3/review-fixes/screenshots/desktop-early-exit.png b/.agent/evidence-v0.2.3/review-fixes/screenshots/desktop-early-exit.png new file mode 100644 index 0000000..811489d Binary files /dev/null and b/.agent/evidence-v0.2.3/review-fixes/screenshots/desktop-early-exit.png differ diff --git a/.agent/evidence-v0.2.3/review-fixes/screenshots/desktop-game.png b/.agent/evidence-v0.2.3/review-fixes/screenshots/desktop-game.png new file mode 100644 index 0000000..7c19e22 Binary files /dev/null and b/.agent/evidence-v0.2.3/review-fixes/screenshots/desktop-game.png differ diff --git a/.agent/evidence-v0.2.3/review-fixes/screenshots/desktop-normal-results.png b/.agent/evidence-v0.2.3/review-fixes/screenshots/desktop-normal-results.png new file mode 100644 index 0000000..fa53c92 Binary files /dev/null and b/.agent/evidence-v0.2.3/review-fixes/screenshots/desktop-normal-results.png differ diff --git a/.agent/evidence-v0.2.3/review-fixes/screenshots/desktop-progress-1.png b/.agent/evidence-v0.2.3/review-fixes/screenshots/desktop-progress-1.png new file mode 100644 index 0000000..ef8031b Binary files /dev/null and b/.agent/evidence-v0.2.3/review-fixes/screenshots/desktop-progress-1.png differ diff --git a/.agent/evidence-v0.2.3/review-fixes/screenshots/desktop-progress-2.png b/.agent/evidence-v0.2.3/review-fixes/screenshots/desktop-progress-2.png new file mode 100644 index 0000000..e2b4352 Binary files /dev/null and b/.agent/evidence-v0.2.3/review-fixes/screenshots/desktop-progress-2.png differ diff --git a/.agent/evidence-v0.2.3/review-fixes/screenshots/desktop-progress-3.png b/.agent/evidence-v0.2.3/review-fixes/screenshots/desktop-progress-3.png new file mode 100644 index 0000000..f0651da Binary files /dev/null and b/.agent/evidence-v0.2.3/review-fixes/screenshots/desktop-progress-3.png differ diff --git a/.agent/evidence-v0.2.3/review-fixes/screenshots/desktop-start.png b/.agent/evidence-v0.2.3/review-fixes/screenshots/desktop-start.png new file mode 100644 index 0000000..3e1863d Binary files /dev/null and b/.agent/evidence-v0.2.3/review-fixes/screenshots/desktop-start.png differ diff --git a/.agent/evidence-v0.2.3/review-fixes/screenshots/mobile-early-exit.png b/.agent/evidence-v0.2.3/review-fixes/screenshots/mobile-early-exit.png new file mode 100644 index 0000000..122ee5d Binary files /dev/null and b/.agent/evidence-v0.2.3/review-fixes/screenshots/mobile-early-exit.png differ diff --git a/.agent/evidence-v0.2.3/review-fixes/screenshots/mobile-game.png b/.agent/evidence-v0.2.3/review-fixes/screenshots/mobile-game.png new file mode 100644 index 0000000..6e743eb Binary files /dev/null and b/.agent/evidence-v0.2.3/review-fixes/screenshots/mobile-game.png differ diff --git a/.agent/evidence-v0.2.3/review-fixes/screenshots/mobile-normal-results.png b/.agent/evidence-v0.2.3/review-fixes/screenshots/mobile-normal-results.png new file mode 100644 index 0000000..46bdd67 Binary files /dev/null and b/.agent/evidence-v0.2.3/review-fixes/screenshots/mobile-normal-results.png differ diff --git a/.agent/evidence-v0.2.3/review-fixes/screenshots/mobile-progress-1.png b/.agent/evidence-v0.2.3/review-fixes/screenshots/mobile-progress-1.png new file mode 100644 index 0000000..c6c3af6 Binary files /dev/null and b/.agent/evidence-v0.2.3/review-fixes/screenshots/mobile-progress-1.png differ diff --git a/.agent/evidence-v0.2.3/review-fixes/screenshots/mobile-progress-2.png b/.agent/evidence-v0.2.3/review-fixes/screenshots/mobile-progress-2.png new file mode 100644 index 0000000..19e468c Binary files /dev/null and b/.agent/evidence-v0.2.3/review-fixes/screenshots/mobile-progress-2.png differ diff --git a/.agent/evidence-v0.2.3/review-fixes/screenshots/mobile-progress-3.png b/.agent/evidence-v0.2.3/review-fixes/screenshots/mobile-progress-3.png new file mode 100644 index 0000000..1801343 Binary files /dev/null and b/.agent/evidence-v0.2.3/review-fixes/screenshots/mobile-progress-3.png differ diff --git a/.agent/evidence-v0.2.3/review-fixes/screenshots/mobile-start.png b/.agent/evidence-v0.2.3/review-fixes/screenshots/mobile-start.png new file mode 100644 index 0000000..93c1298 Binary files /dev/null and b/.agent/evidence-v0.2.3/review-fixes/screenshots/mobile-start.png differ diff --git a/.agent/evidence-v0.2.3/review-fixes/source-reverification.json b/.agent/evidence-v0.2.3/review-fixes/source-reverification.json new file mode 100644 index 0000000..062f7c0 --- /dev/null +++ b/.agent/evidence-v0.2.3/review-fixes/source-reverification.json @@ -0,0 +1,55 @@ +{ + "status": "passed", + "approvedSources": 8, + "method": "verify_sources + validate_bundle; no conversion", + "files": [ + { + "environmentId": "street", + "sha256": "0ddb0be7eb3427f781c8268bcbc74b8ad7e1fbf75b9f6966e65274dbe85f3d9d", + "bytes": 3414104, + "directMediaDurationSeconds": 264.254694 + }, + { + "environmentId": "mall", + "sha256": "bb066e130e5d665db57cb5f88e820d053c724d8f777b275213998d2074c6529a", + "bytes": 1666896, + "directMediaDurationSeconds": 60.05551 + }, + { + "environmentId": "theater", + "sha256": "05c3ece7c088f34700b7610f791c0ad848a24c77be2c32fd1503a78356739a43", + "bytes": 1485015, + "directMediaDurationSeconds": 176.901224 + }, + { + "environmentId": "department", + "sha256": "261fda28722fba623483a90b32e7a2ec388c59887f56a5247156b53f1ffb6ccd", + "bytes": 2445024, + "directMediaDurationSeconds": 292.872 + }, + { + "environmentId": "market", + "sha256": "fc0075dce8ad05b56460c9f18754c27b2021f21f1c780a595ccda648d33c941d", + "bytes": 622200, + "directMediaDurationSeconds": 76.696961 + }, + { + "environmentId": "subway", + "sha256": "41fcf064cde53cef1528fe98721347851e60c070d8ff9f213f354025cf272d4c", + "bytes": 3343901, + "directMediaDurationSeconds": 425.024 + }, + { + "environmentId": "cafe", + "sha256": "6360791fdcee1f64638f0fc9abd6d2c7a1aa75fd3d2b80033170a02d025099dc", + "bytes": 19947952, + "directMediaDurationSeconds": 1200.000998 + }, + { + "environmentId": "rain", + "sha256": "ef0511593b1bb0ba47d5c5dafd83eb07ba854b5a65fd5d41b8c76a1b3ff2c22a", + "bytes": 91187572, + "directMediaDurationSeconds": 1800.0 + } + ] +} diff --git a/.agent/evidence-v0.2.3/review-fixes/verified-code-sha256.json b/.agent/evidence-v0.2.3/review-fixes/verified-code-sha256.json new file mode 100644 index 0000000..66f4365 --- /dev/null +++ b/.agent/evidence-v0.2.3/review-fixes/verified-code-sha256.json @@ -0,0 +1,14 @@ +{ + "src/App.tsx": "d05fbcf62b6a6ef3d923e858ccee6234bacc9733f24beee025fc493bf6430587", + "src/styles.css": "bd1eb826fc167c31580174153d1d8658cfc1c1a9285b236d05aa414a145b535a", + "scripts/check-build.mjs": "69fe129d7ec87110135f8758ba918c84f1db786e7d22b0644e02a293458f92f3", + "scripts/ambience_audio.py": "fe0dee8e3f4bb92af8113b85fa78aa0b080d8ed137b60f3206939956c40de84a", + "tests/App.test.tsx": "06ae088c98b6b85d7b7cafdbe80c7d70c437044e47905c21428073928b05d4ce", + "tests/build.test.ts": "75950dc672975c69ca25318d13a1df43d3ba9795825325d099c20d805df4bb1b", + "tests/ambience.test.ts": "a22f3c0e2bddd094864e82bf892cba51a65a12621c39a45cbfd0b5e58a0aa718", + "tests/python/test_ambience_audio.py": "63da0eb3394d644c40f7e10c08a3f629c6bf7968ab9afab3fc5d262780c1bc70", + "tests/browser/review-fixes.spec.ts": "683daaca67f6186b066a0d27f1e7d8bab99a290b93a70679e9baf1c567c1efae", + ".agent/AMBIENCE-SOURCES-v0.2.3.json": "e4d400b32344a0a45debc807c058e4c8bfa30d3cf947e75ef81dc40beddbbc8b", + "public/ambience/manifest.json": "54581c0c1c6cf3eb3761ad87a8fd5e3ef455dca26f5150a47f48758c01692c4a", + "public/ambience/AMBIENCE_NOTICES.md": "b0329e057acc56f825a733f727cf01c22d23c1eb226726c0c177832e7ee2e98d" +} diff --git a/.agent/evidence-v0.2.3/secret-scan.json b/.agent/evidence-v0.2.3/secret-scan.json new file mode 100644 index 0000000..a8c9bea --- /dev/null +++ b/.agent/evidence-v0.2.3/secret-scan.json @@ -0,0 +1,6 @@ +{ + "textFilesScanned": 279, + "findingCount": 0, + "findings": [], + "scope": "tracked and nonignored worktree text; values never logged" +} diff --git a/.agent/evidence-v0.2.3/source-downloads.log b/.agent/evidence-v0.2.3/source-downloads.log new file mode 100644 index 0000000..46de33c --- /dev/null +++ b/.agent/evidence-v0.2.3/source-downloads.log @@ -0,0 +1,13 @@ +https://upload.wikimedia.org/wikipedia/commons/5/54/Cafe_ambiance.ogg + % Total % Received % Xferd Average Speed Time Time Time Current + Dload Upload Total Spent Left Speed + 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 0 2256 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 +curl: (22) The requested URL returned error: 429 +Warning: Problem : HTTP error. Will retry in 600 seconds. 3 retries left. + 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 0 19.0M 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 62 19.0M 62 11.8M 0 0 8482k 0 0:00:02 0:00:01 0:00:01 8494k 100 19.0M 100 19.0M 0 0 11.3M 0 0:00:01 0:00:01 --:--:-- 11.3M +exit=0 +https://upload.wikimedia.org/wikipedia/commons/8/8c/Urban_Street_on_a_Rainy_Afternoon.flac + % Total % Received % Xferd Average Speed Time Time Time Current + Dload Upload Total Spent Left Speed + 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 4 86.9M 4 3801k 0 0 5086k 0 0:00:17 --:--:-- 0:00:17 5082k 37 86.9M 37 32.8M 0 0 18.7M 0 0:00:04 0:00:01 0:00:03 18.7M 71 86.9M 71 61.9M 0 0 22.5M 0 0:00:03 0:00:02 0:00:01 22.5M 100 86.9M 100 86.9M 0 0 24.1M 0 0:00:03 0:00:03 --:--:-- 24.1M +exit=0 diff --git a/.agent/evidence-v0.2.3/source-integrity.json b/.agent/evidence-v0.2.3/source-integrity.json new file mode 100644 index 0000000..c23c1c1 --- /dev/null +++ b/.agent/evidence-v0.2.3/source-integrity.json @@ -0,0 +1,646 @@ +[ + { + "file": "cafe.ogg", + "bytes": 19947952, + "sha256": "6360791fdcee1f64638f0fc9abd6d2c7a1aa75fd3d2b80033170a02d025099dc", + "fullDecodeExitCode": 0, + "fullDecodeErrors": "", + "probe": { + "streams": [ + { + "index": 0, + "codec_name": "vorbis", + "codec_long_name": "Vorbis", + "codec_type": "audio", + "codec_tag_string": "[0][0][0][0]", + "codec_tag": "0x0000", + "sample_fmt": "fltp", + "sample_rate": "44100", + "channels": 2, + "channel_layout": "stereo", + "bits_per_sample": 0, + "initial_padding": 0, + "r_frame_rate": "0/0", + "avg_frame_rate": "0/0", + "time_base": "1/44100", + "start_pts": 0, + "start_time": "0.000000", + "duration_ts": 52920044, + "duration": "1200.000998", + "bit_rate": "160000", + "extradata_size": 4317, + "disposition": { + "default": 0, + "dub": 0, + "original": 0, + "comment": 0, + "lyrics": 0, + "karaoke": 0, + "forced": 0, + "hearing_impaired": 0, + "visual_impaired": 0, + "clean_effects": 0, + "attached_pic": 0, + "timed_thumbnails": 0, + "non_diegetic": 0, + "captions": 0, + "descriptions": 0, + "metadata": 0, + "dependent": 0, + "still_image": 0 + }, + "tags": { + "TITLE": "Cafe ambiance" + } + } + ], + "format": { + "filename": "/tmp/findword-ambience-sources/cafe.ogg", + "nb_streams": 1, + "nb_programs": 0, + "format_name": "ogg", + "format_long_name": "Ogg", + "start_time": "0.000000", + "duration": "1200.000998", + "size": "19947952", + "bit_rate": "132986", + "probe_score": 100 + } + } + }, + { + "file": "department.mp3", + "bytes": 2445024, + "sha256": "261fda28722fba623483a90b32e7a2ec388c59887f56a5247156b53f1ffb6ccd", + "fullDecodeExitCode": 0, + "fullDecodeErrors": "", + "probe": { + "streams": [ + { + "index": 0, + "codec_name": "mp3", + "codec_long_name": "MP3 (MPEG audio layer 3)", + "codec_type": "audio", + "codec_tag_string": "[0][0][0][0]", + "codec_tag": "0x0000", + "sample_fmt": "fltp", + "sample_rate": "24000", + "channels": 2, + "channel_layout": "stereo", + "bits_per_sample": 0, + "initial_padding": 0, + "r_frame_rate": "0/0", + "avg_frame_rate": "0/0", + "time_base": "1/14112000", + "start_pts": 649740, + "start_time": "0.046042", + "duration_ts": 4133009664, + "duration": "292.872000", + "bit_rate": "66788", + "disposition": { + "default": 0, + "dub": 0, + "original": 0, + "comment": 0, + "lyrics": 0, + "karaoke": 0, + "forced": 0, + "hearing_impaired": 0, + "visual_impaired": 0, + "clean_effects": 0, + "attached_pic": 0, + "timed_thumbnails": 0, + "non_diegetic": 0, + "captions": 0, + "descriptions": 0, + "metadata": 0, + "dependent": 0, + "still_image": 0 + }, + "tags": { + "encoder": "LAME3.99r" + }, + "side_data_list": [ + { + "side_data_type": "Replay Gain" + } + ] + } + ], + "format": { + "filename": "/tmp/findword-ambience-sources/department.mp3", + "nb_streams": 1, + "nb_programs": 0, + "format_name": "mp3", + "format_long_name": "MP2/3 (MPEG audio layer 2/3)", + "start_time": "0.046042", + "duration": "292.872000", + "size": "2445024", + "bit_rate": "66787", + "probe_score": 51 + } + } + }, + { + "file": "mall.ogg", + "bytes": 1666896, + "sha256": "bb066e130e5d665db57cb5f88e820d053c724d8f777b275213998d2074c6529a", + "fullDecodeExitCode": 0, + "fullDecodeErrors": "", + "probe": { + "streams": [ + { + "index": 0, + "codec_type": "data", + "codec_tag_string": "[0][0][0][0]", + "codec_tag": "0x0000", + "r_frame_rate": "0/0", + "avg_frame_rate": "0/0", + "time_base": "1/1000000", + "start_pts": 0, + "start_time": "0.000000", + "duration_ts": 60055510, + "duration": "60.055510", + "disposition": { + "default": 0, + "dub": 0, + "original": 0, + "comment": 0, + "lyrics": 0, + "karaoke": 0, + "forced": 0, + "hearing_impaired": 0, + "visual_impaired": 0, + "clean_effects": 0, + "attached_pic": 0, + "timed_thumbnails": 0, + "non_diegetic": 0, + "captions": 0, + "descriptions": 0, + "metadata": 0, + "dependent": 0, + "still_image": 0 + } + }, + { + "index": 1, + "codec_name": "vorbis", + "codec_long_name": "Vorbis", + "codec_type": "audio", + "codec_tag_string": "[0][0][0][0]", + "codec_tag": "0x0000", + "sample_fmt": "fltp", + "sample_rate": "44100", + "channels": 2, + "channel_layout": "stereo", + "bits_per_sample": 0, + "initial_padding": 0, + "r_frame_rate": "0/0", + "avg_frame_rate": "0/0", + "time_base": "1/44100", + "start_pts": 0, + "start_time": "0.000000", + "duration_ts": 2648448, + "duration": "60.055510", + "bit_rate": "256000", + "extradata_size": 3953, + "disposition": { + "default": 0, + "dub": 0, + "original": 0, + "comment": 0, + "lyrics": 0, + "karaoke": 0, + "forced": 0, + "hearing_impaired": 0, + "visual_impaired": 0, + "clean_effects": 0, + "attached_pic": 0, + "timed_thumbnails": 0, + "non_diegetic": 0, + "captions": 0, + "descriptions": 0, + "metadata": 0, + "dependent": 0, + "still_image": 0 + }, + "tags": { + "TITLE": "1 minute at the alexa mall in Berlin", + "ARTIST": "Thore", + "ENCODER": "ffmpeg2theora-0.29", + "SOURCE_OSHASH": "85badedb0aef2037" + } + } + ], + "format": { + "filename": "/tmp/findword-ambience-sources/mall.ogg", + "nb_streams": 2, + "nb_programs": 0, + "format_name": "ogg", + "format_long_name": "Ogg", + "start_time": "0.000000", + "duration": "60.055510", + "size": "1666896", + "bit_rate": "222047", + "probe_score": 100 + } + } + }, + { + "file": "market.ogg", + "bytes": 622200, + "sha256": "fc0075dce8ad05b56460c9f18754c27b2021f21f1c780a595ccda648d33c941d", + "fullDecodeExitCode": 0, + "fullDecodeErrors": "", + "probe": { + "streams": [ + { + "index": 0, + "codec_name": "vorbis", + "codec_long_name": "Vorbis", + "codec_type": "audio", + "codec_tag_string": "[0][0][0][0]", + "codec_tag": "0x0000", + "sample_fmt": "fltp", + "sample_rate": "44100", + "channels": 1, + "channel_layout": "mono", + "bits_per_sample": 0, + "initial_padding": 0, + "r_frame_rate": "0/0", + "avg_frame_rate": "0/0", + "time_base": "1/44100", + "start_pts": 1984, + "start_time": "0.044989", + "duration_ts": 3382336, + "duration": "76.696961", + "bit_rate": "80000", + "extradata_size": 3251, + "disposition": { + "default": 0, + "dub": 0, + "original": 0, + "comment": 0, + "lyrics": 0, + "karaoke": 0, + "forced": 0, + "hearing_impaired": 0, + "visual_impaired": 0, + "clean_effects": 0, + "attached_pic": 0, + "timed_thumbnails": 0, + "non_diegetic": 0, + "captions": 0, + "descriptions": 0, + "metadata": 0, + "dependent": 0, + "still_image": 0 + }, + "tags": { + "creation_time": "2016-12-25 11:56:02", + "language": "und", + "handler_name": "Core Media Audio", + "encoder": "Lavc56.60.100 libvorbis", + "major_brand": "M4A ", + "minor_version": "0", + "compatible_brands": "M4A mp42isom", + "iTunSMPB": " 00000000 00000840 000003DC 00000000003397E4 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000" + } + } + ], + "format": { + "filename": "/tmp/findword-ambience-sources/market.ogg", + "nb_streams": 1, + "nb_programs": 0, + "format_name": "ogg", + "format_long_name": "Ogg", + "start_time": "0.044989", + "duration": "76.696961", + "size": "622200", + "bit_rate": "64899", + "probe_score": 100 + } + } + }, + { + "file": "rain.flac", + "bytes": 91187572, + "sha256": "ef0511593b1bb0ba47d5c5dafd83eb07ba854b5a65fd5d41b8c76a1b3ff2c22a", + "fullDecodeExitCode": 0, + "fullDecodeErrors": "", + "probe": { + "streams": [ + { + "index": 0, + "codec_name": "flac", + "codec_long_name": "FLAC (Free Lossless Audio Codec)", + "codec_type": "audio", + "codec_tag_string": "[0][0][0][0]", + "codec_tag": "0x0000", + "sample_fmt": "s16", + "sample_rate": "48000", + "channels": 2, + "channel_layout": "stereo", + "bits_per_sample": 0, + "initial_padding": 0, + "r_frame_rate": "0/0", + "avg_frame_rate": "0/0", + "time_base": "1/48000", + "start_pts": 0, + "start_time": "0.000000", + "duration_ts": 86400000, + "duration": "1800.000000", + "bits_per_raw_sample": "16", + "extradata_size": 34, + "disposition": { + "default": 0, + "dub": 0, + "original": 0, + "comment": 0, + "lyrics": 0, + "karaoke": 0, + "forced": 0, + "hearing_impaired": 0, + "visual_impaired": 0, + "clean_effects": 0, + "attached_pic": 0, + "timed_thumbnails": 0, + "non_diegetic": 0, + "captions": 0, + "descriptions": 0, + "metadata": 0, + "dependent": 0, + "still_image": 0 + } + } + ], + "format": { + "filename": "/tmp/findword-ambience-sources/rain.flac", + "nb_streams": 1, + "nb_programs": 0, + "format_name": "flac", + "format_long_name": "raw FLAC", + "start_time": "0.000000", + "duration": "1800.000000", + "size": "91187572", + "bit_rate": "405278", + "probe_score": 100 + } + } + }, + { + "file": "street.ogg", + "bytes": 3414104, + "sha256": "0ddb0be7eb3427f781c8268bcbc74b8ad7e1fbf75b9f6966e65274dbe85f3d9d", + "fullDecodeExitCode": 0, + "fullDecodeErrors": "", + "probe": { + "streams": [ + { + "index": 0, + "codec_type": "data", + "codec_tag_string": "[0][0][0][0]", + "codec_tag": "0x0000", + "r_frame_rate": "0/0", + "avg_frame_rate": "0/0", + "time_base": "1/1000000", + "start_pts": 0, + "start_time": "0.000000", + "duration_ts": 264254694, + "duration": "264.254694", + "disposition": { + "default": 0, + "dub": 0, + "original": 0, + "comment": 0, + "lyrics": 0, + "karaoke": 0, + "forced": 0, + "hearing_impaired": 0, + "visual_impaired": 0, + "clean_effects": 0, + "attached_pic": 0, + "timed_thumbnails": 0, + "non_diegetic": 0, + "captions": 0, + "descriptions": 0, + "metadata": 0, + "dependent": 0, + "still_image": 0 + } + }, + { + "index": 1, + "codec_name": "vorbis", + "codec_long_name": "Vorbis", + "codec_type": "audio", + "codec_tag_string": "[0][0][0][0]", + "codec_tag": "0x0000", + "sample_fmt": "fltp", + "sample_rate": "44100", + "channels": 1, + "channel_layout": "mono", + "bits_per_sample": 0, + "initial_padding": 0, + "r_frame_rate": "0/0", + "avg_frame_rate": "0/0", + "time_base": "1/44100", + "start_pts": 0, + "start_time": "0.000000", + "duration_ts": 11653632, + "duration": "264.254694", + "bit_rate": "140000", + "extradata_size": 4012, + "disposition": { + "default": 0, + "dub": 0, + "original": 0, + "comment": 0, + "lyrics": 0, + "karaoke": 0, + "forced": 0, + "hearing_impaired": 0, + "visual_impaired": 0, + "clean_effects": 0, + "attached_pic": 0, + "timed_thumbnails": 0, + "non_diegetic": 0, + "captions": 0, + "descriptions": 0, + "metadata": 0, + "dependent": 0, + "still_image": 0 + }, + "tags": { + "TITLE": "Sunday, 4th May 2008 5.05pm - sounds outside my window", + "ARTIST": "Cori Samuel", + "ENCODER": "ffmpeg2theora-0.29", + "SOURCE_OSHASH": "e07024c6d547bc24" + } + } + ], + "format": { + "filename": "/tmp/findword-ambience-sources/street.ogg", + "nb_streams": 2, + "nb_programs": 0, + "format_name": "ogg", + "format_long_name": "Ogg", + "start_time": "0.000000", + "duration": "264.254694", + "size": "3414104", + "bit_rate": "103357", + "probe_score": 100 + } + } + }, + { + "file": "subway.ogg", + "bytes": 3343901, + "sha256": "41fcf064cde53cef1528fe98721347851e60c070d8ff9f213f354025cf272d4c", + "fullDecodeExitCode": 0, + "fullDecodeErrors": "", + "probe": { + "streams": [ + { + "index": 0, + "codec_name": "vorbis", + "codec_long_name": "Vorbis", + "codec_type": "audio", + "codec_tag_string": "[0][0][0][0]", + "codec_tag": "0x0000", + "sample_fmt": "fltp", + "sample_rate": "48000", + "channels": 1, + "channel_layout": "mono", + "bits_per_sample": 0, + "initial_padding": 0, + "r_frame_rate": "0/0", + "avg_frame_rate": "0/0", + "time_base": "1/48000", + "start_pts": 0, + "start_time": "0.000000", + "duration_ts": 20401152, + "duration": "425.024000", + "bit_rate": "80000", + "extradata_size": 3251, + "disposition": { + "default": 0, + "dub": 0, + "original": 0, + "comment": 0, + "lyrics": 0, + "karaoke": 0, + "forced": 0, + "hearing_impaired": 0, + "visual_impaired": 0, + "clean_effects": 0, + "attached_pic": 0, + "timed_thumbnails": 0, + "non_diegetic": 0, + "captions": 0, + "descriptions": 0, + "metadata": 0, + "dependent": 0, + "still_image": 0 + }, + "tags": { + "creation_time": "2025-09-13T22:33:26.000000Z", + "language": "und", + "handler_name": "Core Media Audio", + "vendor_id": "[0][0][0][0]", + "encoder": "Lavc58.134.100 libvorbis", + "major_brand": "M4A ", + "minor_version": "0", + "compatible_brands": "M4A isommp42", + "voice-memo-uuid": "31441CA3-4690-4A04-B42D-172D9914CCCE" + } + } + ], + "format": { + "filename": "/tmp/findword-ambience-sources/subway.ogg", + "nb_streams": 1, + "nb_programs": 0, + "format_name": "ogg", + "format_long_name": "Ogg", + "start_time": "0.000000", + "duration": "425.024000", + "size": "3343901", + "bit_rate": "62940", + "probe_score": 100 + } + } + }, + { + "file": "theater.mp3", + "bytes": 1485015, + "sha256": "05c3ece7c088f34700b7610f791c0ad848a24c77be2c32fd1503a78356739a43", + "fullDecodeExitCode": 0, + "fullDecodeErrors": "", + "probe": { + "streams": [ + { + "index": 0, + "codec_name": "mp3", + "codec_long_name": "MP3 (MPEG audio layer 3)", + "codec_type": "audio", + "codec_tag_string": "[0][0][0][0]", + "codec_tag": "0x0000", + "sample_fmt": "fltp", + "sample_rate": "44100", + "channels": 1, + "channel_layout": "mono", + "bits_per_sample": 0, + "initial_padding": 0, + "r_frame_rate": "0/0", + "avg_frame_rate": "0/0", + "time_base": "1/14112000", + "start_pts": 353600, + "start_time": "0.025057", + "duration_ts": 2496430080, + "duration": "176.901224", + "bit_rate": "67157", + "disposition": { + "default": 0, + "dub": 0, + "original": 0, + "comment": 0, + "lyrics": 0, + "karaoke": 0, + "forced": 0, + "hearing_impaired": 0, + "visual_impaired": 0, + "clean_effects": 0, + "attached_pic": 0, + "timed_thumbnails": 0, + "non_diegetic": 0, + "captions": 0, + "descriptions": 0, + "metadata": 0, + "dependent": 0, + "still_image": 0 + }, + "tags": { + "encoder": "LAME3.100" + }, + "side_data_list": [ + { + "side_data_type": "Replay Gain" + } + ] + } + ], + "format": { + "filename": "/tmp/findword-ambience-sources/theater.mp3", + "nb_streams": 1, + "nb_programs": 0, + "format_name": "mp3", + "format_long_name": "MP2/3 (MPEG audio layer 2/3)", + "start_time": "0.025057", + "duration": "176.901224", + "size": "1485015", + "bit_rate": "67156", + "probe_score": 51 + } + } + } +] diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..d784c87 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,3 @@ +# 테스트 러너가 남긴 원문 로그의 공백까지 증거로 보존한다. 이 경로에서는 +# Git의 whitespace 검사를 끄되 제품 소스·문서의 검사는 그대로 유지한다. +.agent/evidence-v0.2.3/** -whitespace diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..93172a4 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,83 @@ +# Find-Word 변경 이력 + +## 0.2.3 — 2026-10-14 (로컬 구현, 배포 미실행) + +- 라운드를 정확히 3문항으로 변경하고 한 단계의 난이도를 유지한다. 시작 단계 1~5 선택, + 정상 완료 후 다음 단계 새 라운드, 5단계 재도전을 제공한다. 혼합 모드는 선택/입력을 모두 포함한다. +- SNR 직접 제어: −12~+12 dB, 1 dB 간격, 범위/NaN 정규화. 재생 중 변경은 다음 청취부터 적용, + 이후 문항/라운드에 유지하고 홈 복귀 시 단계 기본값으로 초기화한다. 양/0/음수의 의미를 설명한다. +- 중도 종료는 fetch·Web Audio·타이머를 즉시 취소하고 응답/정답 수를 보여 준 뒤 홈으로 연결한다. + 무응답을 오답으로 세지 않고 지연 콜백·중복 답변을 차단한다. +- 절차적 배경 합성을 제거하고 실제 현장 녹음 8개를 same-origin WAV로 번들한다. + 각 12초·24kHz mono PCM16·50ms fade·안전 선형 정규화·고유 SHA-256, 원본은 번들하지 않는다. +- PD/CC0/CC BY 4.0/CC BY-SA 4.0 원본을 추적하는 machine-readable manifest와 브라우저 배포 고지. + 시장 파생본의 ShareAlike와 지하철 credit/변경 고지 유지. 원본/다운로드 URL·저작자·변환·해시·실측값 기록. +- 녹음을 fetch/decode/loop하며 RMS .03 정규화 후 상대 gain을 적용한다. 공통 peak 감쇠로 SNR을 + 유지하면서 clipping headroom을 확보한다. 404/decode/timeout/abort는 재시도 가능한 한국어 안내를 제공한다. +- 회귀 수정: 세 문항 표본에 맞게 전체 콘텐츠 도달성 검사 확대; 콘텐츠의 Node 직접 import 경로 보존; + 재생 중 SNR 변경이 실제 청취 이력을 덮어쓰지 않도록 결과에 청취 시작값 기록. +- 추가 회귀 수정: 3문항에서도 순환 환경이 여덟 장소에 도달하도록 섞고, 결과의 잘못된 플레이 방법 앵커를 제거한다. + 세 문항의 문항별 보너스 상한(20점)과 라운드 합계 상한(30점)을 안내하고 새 단계/SNR 컨트롤의 44px 터치 영역을 보장한다. + 개발/preview에서 HTML Accept가 있는 누락 WAV도 SPA fallback 대신 404로 응답한다. + 모바일 시작 단계 선택값의 잘림을 막도록 중복 SNR을 별도 제어에 모았다. + 내장 SVG favicon으로 Chrome의 기본 favicon.ico 404 콘솔 오류를 제거한다. +- 기존 10 mechanic·100문장·101 neural WAV, 채점·점수·IME·재청취·음량·접근성·개인정보 미수집을 보존한다. +- package/lock/HTML/UI/manifest/문서를 0.2.3으로 정렬하고 음원 query 버전을 갱신한다. + `Designed by OZ at Heat-T Medical Inc.`와 v0.1/v0.1.1 역사 evidence는 보존한다. +- strict vertical-slice TDD RED/GREEN, Python 변환 계약, 빌드 자산/notice 검증, + sandboxed system Chrome desktop/mobile의 실제 WAV decode/playback·스크린샷·axe·네트워크 검사를 수행한다. + 정확한 실행 결과와 추가 회귀는 `.agent/RESULT-v0.2.3.md`에 기록한다. +- Nginx 현장음 404와 원자 배포/rollback 인계 문서를 갱신한다. commit/push/merge/tag/배포는 Neo 인수 이후 별도 작업이다. + +### v0.2.3 독립 리뷰 수정 + +- 진행 막대를 현재 문항 1/3·2/3·3/3으로 정정하고 접근성 값 및 Chrome 실제 채움 픽셀을 검사한다. +- 보너스 문구를 문항별 최대 20점 / 라운드 합계 0+10+20=30점으로 정정한다. 1단계 만점 330점과 함께 검증한다. +- 무응답 정답률은 `— / 응답 없음`, 응답 없는 단계는 `미진행`; 중도 종료와 현재 단계 완료 제목을 구분한다. +- 320px·360px에서 모드 설명과 결과의 한국어 어절 분리·넘침을 방지한다. README 현재 증거 경로를 고치고 일본어 테스트 제목을 한국어로 바꾼다. +- 음성 manifest/폴더를 함께 축약해도 실패하도록 콘텐츠 기반 정확한 101개 목록, 개수 및 dist 추가/누락 파일을 검사한다. +- 현장음 승인 계획/manifest의 임시 경로를 불변 원본 해시·bytes·검증 상태 및 정확한 직접 미디어 길이로 교체한다. +- 현장음 생성 전 여덟 원본의 승인 해시·bytes를 전수 확인한다. 잘못된 원본은 첫 변환 전에 실패한다. +- 같은 파일시스템 staging에서 8 WAV·manifest·notice 전부 검증 후 Linux 원자 디렉터리 교환. stale 파일 제거, + symlink 출력 거부, 변환·쓰기·검증·교환 실패/중단 시 이전 디렉터리 보존을 테스트한다. +- 고지를 `/ambience/AMBIENCE_NOTICES.md`로 옮겨 함께 발행하고 각 항목의 creator/primary URL/direct URL/ + license URL/outputLicense/변경 설명을 빌드에서도 강제한다. UI 링크와 권리·배포·재현 문서를 갱신한다. +- 101 voice + 8 ambience WAV 바이트와 모든 이전 evidence를 보존한다. 이번 리뷰의 RED/GREEN과 전체 실행 결과는 + `.agent/evidence-v0.2.3/review-fixes/` 및 `.agent/RESULT-v0.2.3.md`를 참조한다. 사람의 청취 인수는 미실행이다. + +### v0.2.3 최종 privacy excerpt refinement + +- `selectedSegmentStartSeconds`를 생성기의 불변 입력으로 유지하며 현재 선택을 + **mall 36–48초, market 24–36초, cafe 0–12초**로 고정한다. + 원본 해시·bytes·길이를 확인한 뒤 하드닝된 생성기로 8 WAV·manifest·notice를 원자 재생성했다. + 101 voice와 다섯 unaffected ambience 및 mall WAV는 바이트 동일하며 market/cafe만 변경했다. +- release test를 먼저 실패시켜 정확한 세 시작점, `requiredEmptyPassed=true`, VAD 설정, + `humanListeningAcceptance=false`와 `legalPrivacyClearance=false`를 강제한 뒤 새 WAV를 검사했다. +- 정확한 최종 WAV의 faster-whisper 1.2.1 tiny multilingual CPU int8, beam_size=5, best_of=5, + 기본 VAD, condition_on_previous_text=true 결과는 세 환경 모두 segment 0개, + duration_after_vad=0.0으로 지정된 VAD gate를 통과했다. 설정 조절이나 segment 삭제는 없다. +- 이전 market 60초/cafe 180초 실행은 segment 3개/1개로 실패했다. 당시 `requiredEmptyPassed=false` + 보고서와 모든 screening 파일을 `privacy-screening/prior-attempt-market60-cafe180/`에 + 읽기 전용·해시 고정 사본으로 보존한다. 이전 실패를 성공으로 다시 기록하지 않는다. +- no-VAD 환각 가능 text 증거도 그대로 보존한다. 이는 이전 파생본의 결과이고 지정 VAD gate를 + 대체하거나 뒤집지 않으며 말소리/음악의 부재도 증명하지 않는다. 독립적인 사람 청취 인증과 + 법적/privacy clearance는 미실행이지만, 제품 소유자 Oz가 2026-10-14 제공된 최종 WAV 8개 + 검수 묶음을 기준으로 **현재 자산 그대로 릴리스 진행을 승인**했다. +- 기존 Ogg sample-trim fallback·원자 교환·출처/고지 검증을 유지한다. + 새 RED/GREEN·전체 검증은 `.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/`, + 현재 결과는 `.agent/RESULT-v0.2.3.md` 마지막 절에 있다. Git commit/push/merge/tag/deploy는 하지 않았다. + +## 0.1.1 — 2026-10-14 + +- Microsoft Edge online TTS `ko-KR-HyunsuMultilingualNeural`, edge-tts 7.3.1, + rate −6%, pitch −4Hz로 안내 1개·목표 100개를 새로 생성하고 24kHz mono PCM16으로 변환했다. +- pinned venv, bounded retry/timeout, 원자 자산 교환, provider/도구/출력물의 권리 구분과 provenance를 추가했다. +- query cache-busting, 시스템 Chrome sandbox 기본 활성화, 화면·음량·한국어 제목과 SNR 설명의 검증을 보강했다. +- 원본 기록: [.agent/RESULT-v0.1.1.md](.agent/RESULT-v0.1.1.md), `.agent/evidence-v0.1.1/`. + +## 0.1.0 — 2026-10-14 (당시 UI 표기 v0.1) + +- 반응형 시작/게임/결과, 열 문항·다섯 단계, 객관식/주관식/혼합, 10 mechanic·100문장. +- 점수·연속 정답·재청취·IME 보호·접근성·동시 재생/취소/실패 복구, 여덟 합성 배경. +- 정적 SPA, 개인정보 저장·외부 런타임 요청 없음, 정확한 credit 및 private 프로젝트 권리 고지. +- 원본 기록: [.agent/RESULT.md](.agent/RESULT.md), `.agent/evidence/`. diff --git a/LICENSE b/LICENSE index 835d2c7..13b53d3 100644 --- a/LICENSE +++ b/LICENSE @@ -1,4 +1,4 @@ -Find-Word v0.1.1 +Find-Word v0.2.3 Private / proprietary. All rights reserved. No license is granted to use, copy, modify, publish, distribute, sublicense, @@ -12,3 +12,7 @@ This project does not claim exclusive rights to generated speech. Provider terms and any third-party rights remain applicable to generated audio; the project notice does not grant or warrant rights in that output. See docs/AUDIO_PROVENANCE.md. + +Third-party field recordings retain the licenses and modification notices in +public/ambience/AMBIENCE_NOTICES.md (shipped as ambience/AMBIENCE_NOTICES.md). The market +derivative remains CC BY-SA 4.0; no additional restrictions apply to that audio. diff --git a/README.md b/README.md index 548f81a..2e1c8d2 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# 단어를 맞춰라 · Find-Word v0.1.1 +# 단어를 맞춰라 · Find-Word v0.2.3 소음 속에 숨은 한국어 단어를 듣고 찾는 반응형 웹 게임입니다. @@ -34,12 +34,15 @@ npm run dev ## 플레이 - 골고루 풀기, 보기에서 선택, 직접 입력 중 선택합니다. -- 8개 환경을 순환하거나 하나를 지정합니다. +- 8개 실제 현장 녹음 환경 중 하나를 지정하거나 라운드마다 섞어 세 곳을 방문합니다. - 에스의 안내가 배경에 묻힌 뒤 목표 문장이 나옵니다. 재생 후 질문에 답합니다. -- 10문제 동안 2문제마다 난이도가 올라갑니다: **SNR +6, +3, 0, −3, −6 dB**. +- 시작 난이도 1~5를 고르고 정확히 **3문항**을 같은 단계에서 풉니다. 단계 기본값은 **SNR +6, +3, 0, −3, −6 dB**입니다. +- 목표 음성 SNR을 **−12~+12 dB, 1 dB 간격**으로 직접 조절할 수 있습니다. 재생 중 변경은 다음 재생·재청취와 남은 문제부터 적용합니다. 양수는 음성이 배경보다 크고, 0은 같고, 음수는 더 작다는 뜻입니다. -- 다시 듣기는 감점하지 않습니다. 정답은 `단계 × 100점`, 연속 정답은 최대 40점의 보너스를 받습니다. -- 결과에서 점수·정답률·최고 연속 정답·단계별 결과를 확인하고 다시 시작할 수 있습니다. +- 다시 듣기는 감점하지 않습니다. 정답은 `단계 × 100점`, 연속 정답 보너스는 문항별 최대 20점, 라운드 합계 최대 30점입니다 (0 + 10 + 20점, 1단계 만점 330점). +- 정상 결과에서 다음 단계의 새 3문항을 바로 시작합니다. 5단계에서는 같은 단계 재도전과 홈 복귀를 제공합니다. 수동 SNR은 다음 라운드에도 유지되고, 홈 복귀 시 선택한 시작 단계의 기본값으로 돌아갑니다. +- 언제든 **문제 풀이 종료**를 누르면 즉시 오디오를 취소하고 **응답 수·정답 수**를 보여 줍니다. 무응답은 오답으로 세지 않고 정답률은 `— / 응답 없음`, 답하지 않은 단계는 `미진행`으로 표시합니다. 결과에서 **처음 화면으로** 돌아갑니다. +- 결과의 SNR은 실제 마지막 청취값을 기록합니다. 점수·정답률·최고 연속 정답·단계별 결과를 확인합니다. - 새로고침하면 기록이 사라집니다. 결과를 브라우저나 서버에 저장하지 않습니다. 10개 유형 × 10개 단어의 100개 목표 문장을 저장했습니다. 각 세션은 유형과 @@ -54,14 +57,17 @@ npm run dev ```bash npm run lint npm test +python3 -m unittest discover -s tests/python -v npm run build +npm audit npm run preview ``` `lint`는 ESLint와 TypeScript 검사, `test`는 unit/component/자산/빌드 검증기 -테스트를 실행합니다. `build`는 `dist/`를 만들고 음성 101개가 원본 해시 그대로 -포함되었는지 확인합니다. 빌드에는 음성 합성 도구가 필요하지 않습니다. -런타임 MIT notice가 `dist/`에 전문 그대로 포함되는지도 검증합니다. +테스트를 실행합니다. `build`는 `dist/`를 만들고 음성 101개와 현장음 8개가 manifest 해시 그대로 +포함되었는지 확인합니다. 앱 콘텐츠의 예상 101개 목록과 실제 파일 집합을 독립 비교해 +manifest와 폴더를 함께 줄이거나 파일을 추가한 경우도 거부합니다. 빌드에는 음성 합성 도구가 필요하지 않습니다. +런타임 MIT notice와 현장음 attribution/license notice가 `dist/`에 전문 그대로 포함되는지도 검증합니다. 실제 오디오·360px/1280px 화면·키보드·접근성·오류 재시도 검증: @@ -78,22 +84,21 @@ Chromium sandbox는 기본으로 켭니다. sandbox를 지원하지 않는 격 빈 값이나 미설정은 sandbox를 유지합니다. `CHROME_PATH` 지정은 sandbox를 끄지 않습니다. 브라우저 테스트는 기존 `dist/`를 사용하므로 소스 변경 후 먼저 빌드하세요. -실제 음성 재생이 끝나기를 기다려 약 2–3분이 걸립니다. 로컬 4173 포트를 -테스트 중에만 열고 종료합니다. 스크린샷과 101개 WAV의 query URL·해시·디코드 -결과는 `test-results/`에 저장합니다. 인수 기록은 실행별 새 evidence 경로에 -복사하여 `.agent/evidence-v0.1.1/`의 과거 결과를 보존합니다. +실제 음성 재생이 끝나기를 기다려 몇 분이 걸립니다. 로컬 4173 포트를 +테스트 중에만 열고 종료합니다. 스크린샷과 109개 WAV의 query URL·해시·디코드 +결과는 `test-results/`에 저장합니다. 현재 리뷰 인수 기록은 +`.agent/evidence-v0.2.3/review-fixes/`에 보존합니다. 기존 v0.1/v0.1.1 및 v0.2.3 증거는 덮어쓰지 않습니다. ## 음성과 문서 한국어 WAV 101개는 직접 쓴 문장을 Microsoft Edge online TTS의 -`ko-KR-HyunsuMultilingualNeural`로 새로 생성했습니다. edge-tts **7.3.1**, +`ko-KR-HyunsuMultilingualNeural`로 v0.1.1에서 생성했으며 WAV 바이트는 그대로 보존했습니다. edge-tts **7.3.1**, rate `-6%`, pitch `-4Hz`이며 FFmpeg로 **24kHz mono PCM16**으로 변환합니다. -생성 시 네트워크가 필요하며 앱은 저장된 WAV만 재생합니다. 환경음은 브라우저에서 -고정 seed로 합성합니다. 생성 음성의 독점 권리를 주장하지 않습니다. +생성 시 네트워크가 필요하며 앱은 저장된 WAV만 재생합니다. 환경음은 공개 라이선스의 실제 현장 녹음 8개를 각 12초로 변환해 번들합니다. 생성 음성의 독점 권리를 주장하지 않습니다. -intro와 목표 WAV는 모두 `/audio/파일명.wav?v=0.1.1`로 요청합니다. +intro와 목표 WAV는 모두 `/audio/파일명.wav?v=0.2.3`로 요청합니다. `src/audio/assets.ts`의 자산 버전 한 곳을 사용하며, 같은 파일명으로 음성을 -교체할 때 이 값을 갱신해 기존 7일 캐시와 구분합니다. 제품 버전은 0.1.1입니다. +교체할 때 이 값을 갱신해 기존 7일 캐시와 구분합니다. 배경은 `/ambience/환경.wav?v=0.2.3`입니다. 제품 버전은 0.2.3입니다. Linux에서 Python 3.11 이상과 FFmpeg를 준비한 뒤 다음 명령을 사용합니다. 클라이언트 버전을 고정해도 원격 모델 변경으로 동일 바이트 재생성은 보장하지 않습니다. @@ -108,9 +113,28 @@ npm run audio:generate 고정 venv의 Python이 101개 모두 임시 생성·검증하고 디렉터리를 원자 교체합니다. 요청별 60초 제한과 최대 3회 시도를 적용하며, 실패 시 기존 자산을 보존합니다. 청취 샘플: [안내](public/audio/intro.wav), [행운의 사과](public/audio/luck-apple.wav). + +현장음의 현재 privacy screening 구간은 mall 36–48초, market 24–36초, cafe 0–12초입니다. +정확한 최종 WAV의 tiny-model VAD 검사에서 세 구간 모두 segment 0개로 `requiredEmptyPassed=true`입니다. +이전 실패와 no-VAD 환각 가능 text 증거는 보존했으며 no-VAD 결과는 지정 VAD gate를 대체하지 않습니다. +빈 결과도 말소리·음악의 부재를 증명하지 않습니다. 독립적인 사람 청취 인증과 법적/privacy clearance는 수행하지 않았지만, +제품 소유자 Oz가 2026-10-14 제공된 8개 최종 WAV 검수 묶음을 기준으로 **현재 자산 그대로 릴리스를 진행하도록 승인**했습니다. +설정·해시·한계와 보존 경로는 [오디오 provenance](docs/AUDIO_PROVENANCE.md#최종-privacy-excerpt-refinement)를 참조하세요. + 생성 방법, 도구 라이선스, 합성 음질의 한계는 [AUDIO_PROVENANCE.md](docs/AUDIO_PROVENANCE.md)를 참고하세요. 실제 음량은 출력 장치에 따라 달라지며 표기 dB는 디지털 상대값입니다. +현장음 원본은 `/tmp/findword-ambience-sources`에서만 보관하고 배포하지 않습니다. +`python3 scripts/ambience_audio.py`는 승인 계획의 `expectedSourceSha256`·`sourceBytes`를 전수 확인한 뒤에만 변환합니다. +직접 미디어 길이는 `directMediaDurationSeconds`, 검증 상태는 `sourceVerification`에 보존합니다. +8 WAV·manifest·고지를 같은 파일시스템에서 staging/검증한 뒤 Linux `renameat2(RENAME_EXCHANGE)`로 +폴더 전체를 교체합니다. symlink 출력은 거부하며 commit 전 실패/중단은 이전 폴더를 보존합니다. +PD·CC0·CC BY 4.0·CC BY-SA 4.0의 정확한 출처·저작자·변환·해시는 +[현장음 manifest](public/ambience/manifest.json), [배포 고지](public/ambience/AMBIENCE_NOTICES.md)에 있습니다. +시장 파생본은 CC BY-SA 4.0을 유지합니다. 외부 링크는 출처 확인용이며 앱은 이를 요청하지 않습니다. + +- [변경 이력](CHANGELOG.md) +- [v0.2.3 구현·검증 결과](.agent/RESULT-v0.2.3.md) - [설계와 상태 전이](docs/ARCHITECTURE.md) - [Neo를 위한 정적 배포 안내](docs/DEPLOYMENT.md) - [v0.1.1 RED/GREEN 및 실제 검증 결과](.agent/RESULT-v0.1.1.md) diff --git a/docs/ARCHITECTURE.md b/docs/ARCHITECTURE.md index 2948a08..fe02066 100644 --- a/docs/ARCHITECTURE.md +++ b/docs/ARCHITECTURE.md @@ -1,8 +1,8 @@ -# Find-Word v0.1.1 설계 +# Find-Word v0.2.3 설계 ## 데이터와 출제 -`src/content.ts`는 패턴, 질문, 단어, 오답 규칙, 배경 프리셋, 상대 dB를 서로 다른 +`src/content.ts`는 패턴, 질문, 단어, 오답 규칙, 현장음 URL, 상대 dB를 서로 다른 배열로 보관한다. `renderSentence`가 각 패턴의 `{word}`를 정답으로, `{distractor1}`·`{distractor2}`를 해당 보기의 오답으로 채운다. 같은 함수를 음성 생성기도 사용하며 런타임 문장과 WAV의 대응은 manifest 테스트가 검증한다. @@ -29,8 +29,9 @@ 목표 반복 횟수, 취소·조건·방향 단서와 질문 의도를 검증한다. `src/game.ts`의 `createQuestions`는 seed 기반 PRNG와 Fisher–Yates로 -유형·단어·정답 위치를 섞는다. 한 세션에서 유형과 정답 단어는 각각 한 번씩 -나온다. 100개 문장 조합에 응답 방식·환경·난이도를 독립적으로 결합한다. +유형·단어·정답 위치를 섞는다. 한 라운드는 3문항이며 유형과 정답 단어가 중복되지 않는다. 시작 단계는 1~5로 +정규화하며 세 문항에 같은 level/db를 적용한다. 혼합 모드는 선택/입력/선택이다. +환경 순환은 seed로 여덟 곳을 섞어 세 곳을 선택한다. 100개 문장 조합에 응답 방식·환경·난이도를 독립적으로 결합한다. 오답의 `rule`은 `RULE_DIFFICULTY`에 연결된다. 음절 교체 1, 초성 교체 2, 모음 교체 3, 받침 교체 4는 편집상 예상 혼동 순서이며 검증된 청각 척도가 @@ -49,9 +50,23 @@ stateDiagram-v2 answer --> loading: 다시 듣기 answer --> feedback: ANSWER feedback --> ready: NEXT (다음 문제) - feedback --> results: NEXT (마지막 문제) + feedback --> results: NEXT (세 번째 문제) + ready --> results: EXIT + loading --> results: EXIT + playing --> results: EXIT + answer --> results: EXIT + feedback --> results: EXIT ``` +정상 결과는 다음 단계(최대 5)의 새 라운드로 연결되며 중도 종료는 응답 수·정답 수를 +표시한 뒤 홈으로 연결된다. 무응답 정답률은 `— / 응답 없음`, 응답하지 않은 단계는 `미진행`으로 표시한다. +중도 종료 제목과 현재 단계 완료 제목을 구분한다. 진행 막대는 답변 수가 아닌 현재 문항의 1/3, 2/3, 3/3이다. +결과 단계는 모든 지연 이벤트를 무시한다. +SNR은 −12~+12 dB 정수로 제한하고 NaN/Infinity는 단계 기본값으로 복구한다. +수동 SNR은 재생 도중 현재 gain을 바꾸지 않고 현재 재청취/남은 문항/다음 라운드에 +적용한다. `heardDb`는 실제 재생 시작값을 보존해 결과를 정확히 기록한다. 홈은 +수동 SNR·답·입력·IME·토큰을 초기화하고 시작 단계·모드·환경·전체 음량은 유지한다. + 허용되지 않은 이벤트는 동일 상태를 반환한다. 재생 전/중에는 채점할 수 없고, 피드백 이후의 중복 답변·다음 클릭도 한 번만 반영된다. UI에서도 버튼 비활성화와 동기 ref 잠금을 함께 사용한다. 세션 토큰으로 처음 화면 복귀·unmount 뒤 완료된 @@ -63,7 +78,7 @@ Promise를 무시한다. 질문과 보기는 재생 완료 후 DOM에 생성되 입력을 HTML로 해석하지 않는다. 점수는 정답 시 `100 × 단계 + 10 × min(연속 정답 - 1, 4)`이다. 오답은 0점, -현재 연속 정답을 초기화한다. 최고 연속 정답과 난이도별 정답 수는 유지한다. +현재 연속 정답을 초기화한다. 기존 공식의 cap은 40점이며 세 문항 라운드에서는 문항별 최대 20점, 라운드 합계 최대 30점(0 + 10 + 20)이다. 1단계 세 정답은 330점이다. 최고 연속 정답과 난이도별 정답 수는 유지한다. ## 오디오 @@ -73,26 +88,28 @@ Promise를 무시한다. 질문과 보기는 재생 완료 후 DOM에 생성되 [AUDIO_PROVENANCE](AUDIO_PROVENANCE.md)에 있으며 앱은 provider에 연결하지 않는다. `src/audio/dsp.ts`는 순수 수치 함수이며 장치가 없어도 테스트할 수 있다. -정수 seed 잡음에 저역 통과 필터, 사인파, 진폭 변조를 조합하고 양 끝을 페이드한다. -8개 프리셋은 실제 현장 녹음이 아니라 환경을 추상적으로 표현한 합성 신호다. +8개 현장 녹음 WAV를 디코드해 재생한다. 각 12초, 24kHz mono PCM16이며 양끝 +50ms fade로 루프 접합 클릭을 줄인다. 절차적 잡음 합성 코드는 제거했다. `src/audio/engine.ts`는 클릭 이벤트에서 AudioContext 생성·resume을 호출한 뒤 같은 출처의 WAV를 로드한다. mono PCM을 decode하고 음성과 배경의 전체 버퍼 -RMS를 0.03으로 정규화한다. `gain = 10^(dB/20)`으로 목표 gain을 지정한다. +RMS를 0.03으로 정규화한다. `gain = 10^(dB/20)`으로 목표/배경 비율을 지정한다. 정규화한 세 신호의 최대 +피크 합을 계산해 모든 경로를 공통 감쇠하므로 합계 peak ≤ 0.8이고 SNR이 유지된다. 시간별·주파수별 청감이나 물리적 dB SPL을 보장하는 수치는 아니다. `src/audio/assets.ts`는 음성 자산 버전과 URL 생성을 한 곳에서 관리한다. -intro와 목표 100개 모두 `?v=0.1.1`을 붙여 동일 파일명에 남은 이전 캐시를 +intro·목표 100개·현장음 8개 모두 `?v=0.2.3`을 붙여 동일 파일명에 남은 이전 캐시를 피한다. 파일을 다시 생성하면 제품 버전 유지 여부와 관계없이 자산 버전을 갱신한다. 버전 확인을 위한 외부 요청이나 런타임 manifest 요청은 없다. ```text -배경 BufferSource → 배경 Gain (1, 시작/끝 fade) ─┐ -목표 BufferSource → 음성 Gain (10^(dB/20)) ─────┼→ master Gain → destination -안내 BufferSource → 안내 Gain (1.8 → 0.12) ─────┘ +배경 BufferSource → 배경 Gain (공통 감쇠, 시작/끝 fade) ─┐ +목표 BufferSource → 음성 Gain (공통 감쇠 × 10^(dB/20)) ─────┼→ master Gain → destination +안내 BufferSource → 안내 Gain (공통 감쇠 × 1.8 → 0.12) ─────┘ ``` -첫 문제에서는 웃음과 안내 음성을 낮추어 배경에 묻히게 한 후 목표 문장을 +배경 소스는 `loop=true`이며 목표 ended에서 즉시 stop/disconnect한다. +각 라운드의 첫 문제에서는 웃음과 안내 음성을 낮추어 배경에 묻히게 한 후 목표 문장을 재생한다. 이후에는 목표만 재생한다. 안내 도중 실패했으면 재시도 시 안내도 다시 재생한다. 기본 master는 35%이며 음량 조절은 두 신호의 비율을 유지한다. @@ -116,7 +133,7 @@ reduced motion에서는 파형이 움직이지 않는다. 오류는 role=alert ## 검증 경계 Vitest는 실제 RED/GREEN으로 데이터·채점·상태·오디오 그래프·화면을 검증한다. -Playwright는 production build와 실제 Chrome AudioContext로 두 크기의 10문제 -완주·재청취·오류 복구·axe 검사를 수행한다. 테스트 자동화는 한국어 발음의 +Playwright는 production build와 실제 Chrome AudioContext로 두 크기의 3문항 +완주·다음 단계·SNR·중도 종료·재청취·오류 복구·axe 검사를 수행한다. 테스트 자동화는 한국어 발음의 자연스러움, 실제 사용자의 청각 난이도, 모바일 Safari의 장치별 정책까지 증명하지 않으므로 인수 시 직접 청취를 추가한다. diff --git a/docs/AUDIO_PROVENANCE.md b/docs/AUDIO_PROVENANCE.md index cb87347..a1c94af 100644 --- a/docs/AUDIO_PROVENANCE.md +++ b/docs/AUDIO_PROVENANCE.md @@ -1,4 +1,4 @@ -# Find-Word v0.1.1 오디오 출처와 재현 +# Find-Word v0.2.3 오디오 출처와 재현 ## 포함 자산과 생성 설정 @@ -6,7 +6,7 @@ | --- | --- | --- | --- | | `public/audio/intro.wav` | Microsoft Edge online TTS neural 음성 | `src/content.ts`의 INTRO | 24kHz mono PCM16 WAV | | 목표 음성 100개 | 같은 provider·voice | 10 패턴 × 10 단어, `renderSentence` | 같은 WAV | -| 8개 배경 환경 | 직접 작성한 결정론적 DSP | `ENVIRONMENTS`, 고정 seed | 브라우저 메모리에서 합성 | +| 8개 배경 환경 | 공개 라이선스 실제 현장 녹음 | `public/ambience/manifest.json` | 12초·24kHz mono PCM16 WAV | | 화면 파형·S 캐릭터 | 직접 작성한 CSS | `App.tsx`, `styles.css` | CSS | voice는 **`ko-KR-HyunsuMultilingualNeural`**, rate는 **`-6%`**, pitch는 @@ -69,8 +69,8 @@ MP3를 24kHz mono signed 16-bit little-endian PCM으로 디코드한다. 파일 생성기와 독립 자산 테스트는 101개 파일의 원문·집합·SHA-256·bytes·duration, 24kHz mono PCM16, 1–20초 길이, RMS > 100/32768, full-scale 미도달, -총 48MiB 미만을 검사한다. 런타임 RMS 0.03과 최대 +6dB에서도 peak < 0.8을 -요구한다. 기존 앱은 Web Audio에서 배경·음성을 RMS 정규화한 뒤 상대 SNR을 적용한다. +총 48MiB 미만을 검사한다. 기존 음성 단독 검사는 RMS 0.03과 +6dB에서 peak < 0.8을 +요구한다. 0.2.3의 사용자 최대 +12dB 혼합은 세 경로 공통 감쇠로 별도 검증한다. 앱은 Web Audio에서 배경·음성을 RMS 정규화한 뒤 상대 SNR을 적용한다. 물리적 음압이나 주파수별 청감을 보정한 값은 아니다. ## 도구 라이선스와 서비스 조건 @@ -99,5 +99,132 @@ MP3를 24kHz mono signed 16-bit little-endian PCM으로 디코드한다. 파일 자동 검증은 PCM 신호·무결성·재생 흐름을 확인한다. 한국어 발음, 유사 자모의 구분, 웃음의 자연스러움과 실제 사용자의 난이도는 청취 평가가 필요하다. -대표 샘플과 게임 내 소음 혼합 상태를 직접 들어 인수 판단한다. 배경은 장소를 -추상화한 합성 신호다. 이 게임의 수치는 임상 검증·치료·청력 판정용이 아니다. +대표 샘플과 게임 내 소음 혼합 상태를 직접 들어 인수 판단한다. 배경은 실제 현장 녹음의 짧은 구간이다. 이 게임의 수치는 임상 검증·치료·청력 판정용이 아니다. + + +## v0.2.3 현장 녹음 파생본 + +원본 선정 계약은 [.agent/AMBIENCE-SOURCES-v0.2.3.json](../.agent/AMBIENCE-SOURCES-v0.2.3.json), +배포 바이트의 출처·직접 URL·저작자·라이선스·변환·SHA-256·bytes·duration·RMS·peak는 +[manifest](../public/ambience/manifest.json), 정확한 attribution과 변경 고지는 +[AMBIENCE_NOTICES](../public/ambience/AMBIENCE_NOTICES.md)에 있다. 이 고지는 dist에도 포함되고 UI에서 링크한다. +여덟 원본 모두 서로 다른 현장 녹음이며 NC/ND 자산을 사용하지 않는다. 원본은 저장소/빌드에 포함하지 않는다. + +| 환경 | 저작자 | 라이선스 | 원본 구간(초) | +| --- | --- | --- | --- | +| 길거리 | cori (Cori Samuel) | PD-author | 35–47 | +| 쇼핑몰 | thore (Thore) | PD-author | 36–48 | +| 극장 | ElevatorFan2020 | CC0 1.0 | 45–57 | +| 백화점 | icmusic | CC0 1.0 | 90–102 | +| 시장 | Marie Flutre | CC BY-SA 4.0 | 24–36 | +| 지하철 | PascalHD | CC BY 4.0 | 65–77 | +| 카페 | Marble Toast | CC0 1.0 | 0–12 | +| 비 오는 거리 | Extemporalist | CC0 1.0 | 180–192 | + +Commons primary 페이지/API와 Freesound primary 페이지의 라이선스 근거를 evidence에 보존한다. +Freesound 두 원본은 지정된 preview MP3이다. 프로젝트의 비공개 라이선스를 제3자 녹음에 +적용하지 않으며, 시장 파생 WAV는 **CC BY-SA 4.0**으로 계속 공개·수정·재배포할 수 있다. +지하철은 **CC BY 4.0**의 PascalHD credit·변경 고지·라이선스 링크를 유지한다. + +재현: 검증한 원본 8개를 `/tmp/findword-ambience-sources`에 놓고 +`python3 scripts/ambience_audio.py`를 실행한다. 계획의 파일별 `selectedSegmentStartSeconds`에서 12초를 선택하고, +FFmpeg로 mono 24kHz float PCM 디코드 후 양끝 50ms 선형 fade, RMS 목표 .08, +최대 증폭 4배/peak .85 중 가장 작은 선형 gain을 적용한다. 마지막은 표준 44-byte +WAV 헤더의 PCM16이다. 시간 변형·절차적 합성·원본 음성 대체는 없다. +원본 SHA-256과 실측 FFmpeg 버전을 함께 기록하므로 같은 원본/도구로 재현 가능하다. + +런타임은 음성/배경 각각 RMS .03 후 상대 gain `10^(dB/20)`을 적용한다. −12~+12 dB +범위에서도 세 경로의 최악 피크 합을 공통 감쇠하여 최대 .8로 제한한다. 양끝 fade가 +있는 배경을 loop하고 목표 끝에서 정리한다. 전체 버퍼 RMS 기준이며 짧은 시간창별 +SNR이나 실제 음압을 보증하지 않는다. 원본 녹음의 우연한 사람 말소리는 환경의 일부다. +자동 검사로 음악·개인 대화의 완전한 부재를 인증할 수 없으므로 사람의 최종 청취 검토가 필요하다. + +기존 neural WAV 101개의 원문·해시는 v0.1.1 그대로다. 음성 manifest의 version은 +배포 버전 0.2.3, `generatedForVersion`은 0.1.1이며 원래 생성 시각·도구 정보는 보존한다. + + +### 리뷰 후 출처 고정과 원자 발행 + +승인 계획의 `expectedSourceSha256`와 `sourceBytes`는 불변 입력이다. 생성기는 로컬 경로나 +현재 파일에서 이 승인값을 새로 기록하지 않으며, 여덟 원본의 해시·크기를 **첫 변환 전**에 모두 검사한다. +한 원본이라도 다르거나 누락되면 실패한다. `sourceVerification`은 검증 상태·일자·방법·보존된 증거를 가리킨다. +임시 경로를 담던 `verifiedLocalSource` 필드는 제거했다. + +`directMediaDurationSeconds`는 **directUrl에서 받은 바로 그 바이트**의 ffprobe `format.duration`이다. +Freesound 항목은 preview MP3의 길이이며 primary 페이지 원본 길이 또는 반올림한 표시 길이가 아니다. +배포 manifest의 `duration`과 `conversion.durationSeconds`는 파생 WAV의 길이(12초), +`selectedSegmentStartSeconds`는 파일별 불변 승인 시작점이며 생성기는 별도 hardcoded map 없이 이 값을 읽는다. +`conversion.startSeconds`는 같은 값이어야 한다. 시작점은 유한한 0 이상 수이고, 시작점+12초가 +`directMediaDurationSeconds` 이하여야 한다. 누락·음수·NaN·Infinity·문자열·bool·범위 초과는 첫 변환 전에 거부한다. 원본 전체 디코드와 실제 수치는 +[보존된 source-integrity.json](../.agent/evidence-v0.2.3/source-integrity.json)에 있다. + +생성기는 출력 폴더와 같은 부모의 `.ambience-stage-*/ready`에서 8 WAV·manifest·`AMBIENCE_NOTICES.md`를 +완성한다. 정확한 파일 집합, 고유 해시, 원본 계획, PCM 형식·길이·fade·RMS·peak, +항목별 저작자/primary URL/direct URL/라이선스 링크/outputLicense/변경 설명을 다시 검사한다. +존재하는 symlink 및 dangling symlink 출력을 모두 거부한다. Linux `renameat2(RENAME_EXCHANGE)` 한 번이 교체의 +commit 지점이며, 최초 생성은 같은 파일시스템의 rename 한 번이다. 지원하지 않는 환경에서는 실패한다. +파일별 overlay를 하지 않으므로 오래된 파일이 남지 않고 고지도 음원과 같은 디렉터리로 교체된다. + +commit 전 변환·쓰기·검증·교환 실패 또는 중단은 이전 디렉터리를 보존한다. syscall 이후에는 완성된 새 디렉터리가 +공개된 상태다. SIGKILL 등 강제 종료는 숨은 임시 디렉터리를 남길 수 있지만 부분 배포는 만들지 않는다. +전원 손실에 대한 디스크 내구성이나 여러 HTTP 요청에 걸친 snapshot 격리를 주장하지 않는다. +앞선 독립 리뷰에서는 기존 109 WAV를 재생성하지 않았다. 이후 아래 privacy refinement에서 +전체 현장음 bundle을 원자 재생성했으며 mall/market/cafe 3개만 바이트가 바뀌었다. +**사람의 현장음 청취 인수는 미실행**이다. + + +### 최종 privacy excerpt refinement + +현재 선택은 **mall 36–48초, market 24–36초, cafe 0–12초**다. Neo가 동일한 +`scripts/ambience_audio.convert` 경로와 아래 ASR 설정으로 해시 고정 원본을 재검사해 제시한 +market/cafe 후보를 사용했다. 제공받은 재검사 설명은 +[selection-context.json](../.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/selection-context.json)에 +별도로 기록했으며, 원본 후보 결과를 최종 WAV 검사 결과로 대신하지 않았다. + +승인 원본 8개의 SHA-256·bytes·ffprobe 길이를 먼저 대조하고 하드닝된 생성기로 +8 WAV·manifest·notice 전체를 staging/검증/원자 교환했다. +[생성 실측 기록](../.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/regeneration.json)에 +현재 해시·RMS·peak·변환이 있다. 이번 재시도는 market/cafe 두 WAV만 변경했다. +**101개 voice, 다섯 unaffected ambience, 기존 mall 36초 WAV는 모두 바이트 동일**하다. + +일부 Ogg 구간은 FFmpeg timestamp/seek 때문에 12초보다 몇 프레임 짧게 출력된다. +짧은 결과일 때만 처음부터 디코드한 24kHz PCM의 `round(start × 24000)`부터 정확한 288,000개 +sample을 선택하고 출력 PTS를 sample 수로 재설정한다. silent padding이나 time stretching은 없다. +정말 원본이 짧으면 여전히 실패하며 `conversion.seekMethod`가 실제 경로를 기록한다. + +[final-asr.json](../.agent/evidence-v0.2.3/privacy-screening/final-asr.json)은 정확한 현재 8 WAV를 +로컬 **faster-whisper 1.2.1, tiny multilingual, CPU int8, beam_size=5, best_of=5, +기본 Silero VAD 활성화, condition_on_previous_text=true**로 검사한 원문이다. +모델 revision `d90ca5fe260221311c53c58e660288d3deb8d356`, 모델/VAD 파일 해시, +라이브러리 버전·전체 설정·각 입력 해시·반환 segment/info를 저장했다. +이전 실패 실행과 모든 decoder/VAD 인자가 같은지 스크립트가 대조한다. +**mall/market/cafe 각각 segment 0개, duration_after_vad=0.0, requiredEmptyPassed=true**다. +다른 다섯 WAV도 segment 0개다. threshold 조절이나 반환 segment 삭제는 하지 않았다. +테스트는 지정 시작점·true gate·VAD 설정·실제 WAV/manifest 해시와 아래 false 인수값을 함께 강제한다. + +**humanListeningAcceptance=false, legalPrivacyClearance=false**를 유지한다. +Tiny-model ASR은 screening signal일 뿐이며 빈 결과는 말소리·음악·개인 대화가 없음을 증명하지 않는다. +출력 text/language도 환각일 수 있고 충실한 전사나 화자 식별로 주장하지 않는다. +독립적인 사람 청취 인증은 수행하지 않았다. 다만 제품 소유자 Oz는 2026-10-14 제공된 +최종 WAV 8개 청취 검수 묶음과 명시된 자동 검사 한계를 기준으로 현재 자산 그대로 릴리스를 +진행하도록 승인했다. 이 승인은 제3자의 법적/privacy clearance를 대신하지 않는다. + +이전 market 60–72초/cafe 180–192초 실행은 market 3개/cafe 1개 segment를 반환하여 +**requiredEmptyPassed=false**였으며 release acceptance 실패였다. +그 실행의 모든 screening 파일은 읽기 전용 +[prior-attempt-market60-cafe180](../.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/) +아래 바이트 그대로 보존했다. [당시 final-asr.json](../.agent/evidence-v0.2.3/privacy-screening/prior-attempt-market60-cafe180/final-asr.json)을 +성공으로 덮어쓰지 않았고 회귀 테스트가 이전 실패 상태와 모든 보존 파일 해시를 검사한다. + +[기존 no-VAD 증거](../.agent/evidence-v0.2.3/privacy-screening/no-vad-asr.json)도 바이트 그대로 남겼다. +이 결과는 mall 36초/market 60초/cafe 180초에서 환각일 수 있는 candidate text를 냈으며, +새 market/cafe WAV의 검사 결과가 아니다. **no-VAD 결과는 지정된 VAD gate를 대체하거나 뒤집지 않는다.** +두 방법 모두 말소리/음악의 부재를 증명하지 않으며 사람의 청취 인수나 법적/privacy clearance를 제공하지 않는다. +Neo의 [이전 후보 scan](../.agent/evidence-v0.2.3/privacy-screening/candidate-scan-original.json), +[이전 파생본 ASR](../.agent/evidence-v0.2.3/privacy-screening/prior-derivatives-asr-original.json), +[당시 provenance](../.agent/evidence-v0.2.3/privacy-screening/earlier-asr-provenance.json)도 변경하지 않았다. +raw JSON에 없던 설정이나 입력 연결을 사후에 있었던 것으로 주장하지 않는다. + +새 RED → GREEN, 전체 검증과 보존 기록은 +[retry-market24-cafe0](../.agent/evidence-v0.2.3/privacy-screening/retry-market24-cafe0/), +현재 검증 요약은 [RESULT](../.agent/RESULT-v0.2.3.md)의 마지막 절에 있다. diff --git a/docs/DEPLOYMENT.md b/docs/DEPLOYMENT.md index d580ea0..7683a50 100644 --- a/docs/DEPLOYMENT.md +++ b/docs/DEPLOYMENT.md @@ -1,4 +1,4 @@ -# Find-Word v0.1.1 정적 배포 인계 +# Find-Word v0.2.3 정적 배포 인계 이 문서는 **Neo가 검토 후 수행할 절차**다. Codex는 서버, DNS, 인증정보에 접근하지 않았고 배포·서비스 생성·Git commit/push도 하지 않았다. @@ -7,8 +7,9 @@ Node.js 최소 **22.22.2** (`>=22.22.2`)의 지원 LTS 환경에서 `npm ci`, `npm run lint`, `npm test`, `npm run build`를 실행한다. `dist/` 전체를 하나의 릴리스로 전달한다. -`dist/audio/`의 24kHz neural WAV 101개와 version 0.1.1 manifest가 반드시 포함되어야 한다. 런타임은 -Nginx 정적 파일만 필요하며 Node 서버·TTS 엔진·DB·환경변수·API 키는 필요 없다. +`dist/audio/`의 24kHz neural WAV 101개와 version 0.2.3 manifest가 반드시 포함되어야 한다. +`dist/ambience/`의 고유 현장 WAV 8개·manifest와 `dist/ambience/AMBIENCE_NOTICES.md`도 필수다. +런타임은 Nginx 정적 파일만 필요하며 Node 서버·TTS 엔진·DB·환경변수·API 키는 필요 없다. 잠긴 jsdom 계열 의존성 때문에 24.x는 24.15.0 이상, 26.x는 26.0.0 이상이어야 한다. 브라우저 검증의 Chromium sandbox는 기본 활성화다. sandbox를 지원하지 않는 격리된 개발 환경에서만 `PLAYWRIGHT_NO_SANDBOX=1`로 명시적으로 끈다. @@ -55,6 +56,12 @@ server { expires 7d; } + # 현장음도 누락 시 SPA HTML로 대체하지 않는다. + location /ambience/ { + try_files $uri =404; + expires 7d; + } + # SPA의 직접 진입·새로고침을 index.html로 받되 HTML은 재검증한다. location / { try_files $uri $uri/ /index.html; @@ -67,9 +74,9 @@ server { 1. 서버에 적용하기 전 `nginx -t`, 기존 서비스 충돌, 파일 읽기 권한을 확인한다. 2. TLS/HTTPS와 DNS를 운영자가 확인한다. 실제 도메인에서 시작 후 음성이 들리는지 확인한다. -3. `audio/intro.wav?v=0.1.1`와 목표 WAV의 같은 버전 query가 정상 응답하고 +3. `audio/intro.wav?v=0.2.3`와 목표 WAV의 같은 버전 query가 정상 응답하고 존재하지 않는 오디오는 query가 있어도 404인지 확인한다. -4. 모바일 Safari/Chrome, 데스크톱에서 음량·중단·다시 듣기·10문제 완주를 직접 확인한다. +4. 모바일 Safari/Chrome, 데스크톱에서 음량·중단·다시 듣기·3문항 완주·다음 난이도·시작 단계·SNR 변경·중도 종료를 직접 확인한다. 5. 원자적으로 릴리스 디렉터리를 전환하고 이전 디렉터리를 보관해 되돌릴 수 있게 한다. 오프라인 캐시를 제공하는 PWA는 아니다. 정적 자산의 최초 로드에는 해당 서버 @@ -77,3 +84,26 @@ server { 같은 파일명으로 WAV를 교체할 때 `src/audio/assets.ts`의 `AUDIO_ASSET_VERSION`도 갱신한다. 제품 버전을 유지하는 음성 수정에서도 새 자산 버전이 필요하다. 이 query는 로컬 정적 파일 요청에만 사용하며 런타임 외부 요청을 추가하지 않는다. + + +## 0.2.3 독립 인수와 릴리스 (Neo 수행, 이 작업에서는 미실행) + +1. `.agent/RESULT-v0.2.3.md`와 RED/GREEN 원문, 원본/배포 해시, 라이선스 고지를 검토한다. +2. sandboxed system Chrome desktop/mobile suite와 `npm audit`를 다시 실행한다. +3. 검토 완료 후 feature branch push, main fast-forward, annotated `v0.2.3` tag, + fresh-clone readback으로 commit과 자산 해시를 확인한다. +4. commit-addressed release 디렉터리로 dist를 복사하고 current 심볼릭 링크를 원자 전환한다. + 이전 release는 rollback 대상으로 보존한다. +5. 공개 HTTPS에서 title/UI 0.2.3, WAV MIME·SHA-256·cache-busting query, 누락 자산 404, + 시작 단계·3문항 완료→다음 단계·SNR·중도 종료를 실제 Chrome으로 재검증한다. + +이 문서의 Nginx 설정은 인계 예시이며 실행 증거가 아니다. 이번 작업은 localhost의 +production preview만 사용하며 Git commit/push/merge/tag, 외부 배포, secrets 사용은 하지 않는다. + + +v0.2.3 리뷰 검증은 `.agent/evidence-v0.2.3/review-fixes/`에 별도로 보존한다. +`check-build`는 앱 콘텐츠로 구성한 **정확히 101개**의 음성 파일명과 dist 파일 집합을 독립 대조하므로, +manifest와 디렉터리를 함께 축약하거나 추가 WAV를 넣어도 실패한다. 현장음은 승인 계획의 출처 수치와 +각 notice 항목의 저작자·primary URL·direct URL·라이선스 링크·outputLicense·변경 고지까지 검사한다. +현장음 notice의 배포 URL은 `/ambience/AMBIENCE_NOTICES.md`다. 고지는 음원/manifest와 함께 +원자 교체하는 같은 디렉터리 안에 있으며, 기존 루트의 notice 사본은 제거했다. diff --git a/docs/WORDS.md b/docs/WORDS.md index ea2c1ea..43b4f74 100644 --- a/docs/WORDS.md +++ b/docs/WORDS.md @@ -1,4 +1,4 @@ -# 단어와 오답 변형 +# Find-Word v0.2.3 단어와 오답 변형 임의의 한글 조합을 자동 생성하지 않고 사전에 있는 표제어만 고른다. 다음의 짧은 의미 구분은 앱 작성자가 작성한 설명이며 사전의 정의·예문·음성을 @@ -38,3 +38,5 @@ 기록한다. 각 묶음의 세 오답은 서로 다른 규칙과 순위를 가진다. 이 순서는 출제 메타데이터이며 청감·발음·청력에 대한 실측 난이도나 임상 척도가 아니다. 새 단어를 넣을 때는 표제어·의미·변형 규칙을 검토하고 이 목록을 갱신한다. + +0.2.3은 기존 10가지 mechanic·100문장을 보존하며 한 라운드에서 서로 다른 세 문항을 고른다. diff --git a/index.html b/index.html index 5a79403..2aff56e 100644 --- a/index.html +++ b/index.html @@ -4,13 +4,15 @@ + + - 단어를 맞춰라 · Find-Word v0.1.1 + 단어를 맞춰라 · Find-Word v0.2.3
diff --git a/package-lock.json b/package-lock.json index c9806c7..d7c151c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "find-word", - "version": "0.1.1", + "version": "0.2.3", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "find-word", - "version": "0.1.1", + "version": "0.2.3", "dependencies": { "react": "^19.3.0", "react-dom": "^19.3.0" diff --git a/package.json b/package.json index ab1f7ef..f69e52b 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "find-word", "private": true, - "version": "0.1.1", + "version": "0.2.3", "type": "module", "engines": { "node": ">=22.22.2" diff --git a/public/ambience/AMBIENCE_NOTICES.md b/public/ambience/AMBIENCE_NOTICES.md new file mode 100644 index 0000000..c0df8f4 --- /dev/null +++ b/public/ambience/AMBIENCE_NOTICES.md @@ -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. diff --git a/public/ambience/cafe.wav b/public/ambience/cafe.wav new file mode 100644 index 0000000..00c2299 Binary files /dev/null and b/public/ambience/cafe.wav differ diff --git a/public/ambience/department.wav b/public/ambience/department.wav new file mode 100644 index 0000000..87f2e5c Binary files /dev/null and b/public/ambience/department.wav differ diff --git a/public/ambience/mall.wav b/public/ambience/mall.wav new file mode 100644 index 0000000..119b3df Binary files /dev/null and b/public/ambience/mall.wav differ diff --git a/public/ambience/manifest.json b/public/ambience/manifest.json new file mode 100644 index 0000000..f27c9bc --- /dev/null +++ b/public/ambience/manifest.json @@ -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" + } + } + ] +} diff --git a/public/ambience/market.wav b/public/ambience/market.wav new file mode 100644 index 0000000..db32fb8 Binary files /dev/null and b/public/ambience/market.wav differ diff --git a/public/ambience/rain.wav b/public/ambience/rain.wav new file mode 100644 index 0000000..495fe8b Binary files /dev/null and b/public/ambience/rain.wav differ diff --git a/public/ambience/street.wav b/public/ambience/street.wav new file mode 100644 index 0000000..17beeaa Binary files /dev/null and b/public/ambience/street.wav differ diff --git a/public/ambience/subway.wav b/public/ambience/subway.wav new file mode 100644 index 0000000..d206083 Binary files /dev/null and b/public/ambience/subway.wav differ diff --git a/public/ambience/theater.wav b/public/ambience/theater.wav new file mode 100644 index 0000000..bef47c1 Binary files /dev/null and b/public/ambience/theater.wav differ diff --git a/public/audio/manifest.json b/public/audio/manifest.json index d53cb79..a77bd4a 100644 --- a/public/audio/manifest.json +++ b/public/audio/manifest.json @@ -1,5 +1,5 @@ { - "version": "0.1.1", + "version": "0.2.3", "provider": "Microsoft Edge online TTS", "voice": "ko-KR-HyunsuMultilingualNeural", "rate": "-6%", @@ -929,5 +929,7 @@ "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." } diff --git a/scripts/ambience_audio.py b/scripts/ambience_audio.py new file mode 100644 index 0000000..13f7a61 --- /dev/null +++ b/scripts/ambience_audio.py @@ -0,0 +1,257 @@ +"""Find-Word v0.2.3 현장 녹음 파생본과 기계 판독 provenance를 만든다. + +원본은 명시적으로 받은 /tmp 캐시에만 두고 네트워크를 호출하지 않는다. +FFmpeg는 구간 선택·다운믹스·리샘플만 담당하며 fade와 선형 gain은 여기서 +결정한다. 원본/출력 해시와 실제 변환 설정으로 다른 사람이 결과를 추적한다. +""" +from array import array +from datetime import datetime, timezone +import ctypes +import hashlib +import json +import math +import os +from pathlib import Path +import shutil +import subprocess +import sys +import tempfile +import wave + +ROOT = Path(__file__).resolve().parent.parent +# 환경 목록만 고정한다. 구간 시작점은 승인 계획의 불변 provenance에서만 읽는다. +ENVIRONMENT_IDS = frozenset(("street", "mall", "theater", "department", "market", "subway", "cafe", "rain")) +EXCERPT_SECONDS = 12 +SAMPLE_RATE = 24000 +FADE_SECONDS = 0.05 + + +def digest(path): + """큰 원본도 메모리에 전부 적재하지 않고 SHA-256을 계산한다.""" + with Path(path).open("rb") as stream: + return hashlib.file_digest(stream, "sha256").hexdigest() + + +def convert(source, destination, start, duration=EXCERPT_SECONDS): + """실제 PCM에 짧은 양끝 fade와 공통 gain을 적용해 24kHz mono PCM16으로 쓴다. + + start/duration은 원본의 초 단위 구간이다. RMS 목표 .08, peak .85, + 최대 증폭 4배 중 가장 작은 gain으로 과증폭을 막고 파형의 비율을 보존한다. + """ + if not 8 <= duration <= 20 or not math.isfinite(start) or start < 0: + raise ValueError("현장음 구간은 8~20초, 시작점은 0 이상이어야 합니다.") + output_options = ["-t", str(duration), "-ar", str(SAMPLE_RATE), "-ac", "1", "-f", "f32le", "pipe:1"] + seek_method = "input seek" + decoded = subprocess.run([ + "ffmpeg", "-v", "error", "-ss", str(start), "-i", str(source), *output_options, + ], check=True, capture_output=True, timeout=90).stdout + if len(decoded) < duration * SAMPLE_RATE * 4: + # 일부 Ogg seek/timestamp 조합은 몇 프레임이 짧아진다. 처음부터 디코드하여 + # 승인 초를 24kHz sample 경계로 선택한다. PCM 추가·패딩·시간 변형은 하지 않는다. + # 출력 PTS를 sample 수로 다시 매겨 원본 PTS 불연속이 -t 길이를 줄이지 않게 한다. + seek_method = "full decode then sample trim" + first_frame = round(start * SAMPLE_RATE) + last_frame = first_frame + round(duration * SAMPLE_RATE) + selection = f"aresample={SAMPLE_RATE},atrim=start_sample={first_frame}:end_sample={last_frame},asetpts=N/SR/TB" + decoded = subprocess.run([ + "ffmpeg", "-v", "error", "-i", str(source), "-af", selection, *output_options, + ], check=True, capture_output=True, timeout=90).stdout + samples = array("f", decoded) + if sys.byteorder != "little": + samples.byteswap() + if len(samples) != duration * SAMPLE_RATE or not all(math.isfinite(x) for x in samples): + raise ValueError("원본 구간이 잘렸거나 PCM이 올바르지 않습니다.") + # 경계의 DC도 함께 0으로 내려 루프 접합점의 불연속 클릭을 막는다. + fade_frames = round(FADE_SECONDS * SAMPLE_RATE) + faded = [x * min(1, i / fade_frames, (len(samples) - 1 - i) / fade_frames) + for i, x in enumerate(samples)] + rms = math.sqrt(sum(x*x for x in faded) / len(faded)) + peak = max(abs(x) for x in faded) + if rms < 0.001: + raise ValueError("무음 또는 지나치게 작은 현장 녹음입니다.") + gain = min(0.08 / rms, 0.85 / peak, 4) + pcm = array("h", (round(x * gain * 32767) for x in faded)) + measured_rms = math.sqrt(sum(x*x for x in pcm) / len(pcm)) / 32768 + measured_peak = max(abs(x) for x in pcm) / 32768 + if sys.byteorder != "little": + pcm.byteswap() + with wave.open(str(destination), "wb") as stream: + stream.setparams((1, 2, SAMPLE_RATE, 0, "NONE", "not compressed")) + stream.writeframes(pcm.tobytes()) + return {"sha256": digest(destination), "bytes": Path(destination).stat().st_size, + "duration": len(samples) / SAMPLE_RATE, "rms": measured_rms, "peak": measured_peak, + "conversion": {"startSeconds": start, "durationSeconds": duration, + "seekMethod": seek_method, + "fadeSeconds": FADE_SECONDS, "sampleRate": SAMPLE_RATE, + "channels": 1, "encoding": "PCM16 little-endian", "linearGain": gain, + "targetRms": 0.08, "peakLimit": 0.85, "maxGain": 4, + "operations": "excerpt, downmix, resample, linear end fades, bounded linear normalization, WAV encoding"}} + + +def source_path(directory, environment): + """승인된 환경의 직접 미디어 확장자를 사용한다.""" + extension = ".mp3" if environment in ("theater", "department") else ".flac" if environment == "rain" else ".ogg" + return Path(directory) / (environment + extension) + + +def validate_plan(plan): + """선택 구간은 직접 미디어 길이 안의 유한한 수여야 하며 보정하거나 추정하지 않는다.""" + assets = plan["assets"] + if len(assets) != 8 or {a["environmentId"] for a in assets} != ENVIRONMENT_IDS: + raise ValueError("정확한 승인 원본 8개가 필요합니다.") + for asset in assets: + start = asset.get("selectedSegmentStartSeconds") + duration = asset.get("directMediaDurationSeconds") + if (any(type(value) not in (int, float) or not math.isfinite(value) for value in (start, duration)) + or start < 0 or duration <= 0 or start + EXCERPT_SECONDS > duration): + raise ValueError(f"{asset['environmentId']}: 승인 구간은 직접 미디어 길이 안의 12초여야 합니다.") + + +def verify_sources(plan, directory): + """여덟 원본 모두의 불변 승인값을 확인한 뒤에만 첫 변환을 허용한다.""" + validate_plan(plan) + assets = plan["assets"] + for asset in assets: + source = source_path(directory, asset["environmentId"]) + if (not source.is_file() or source.is_symlink() + or source.stat().st_size != asset.get("sourceBytes") + or digest(source) != asset.get("expectedSourceSha256")): + raise ValueError(f"{asset['environmentId']}: 승인 원본 SHA-256/bytes 불일치") + + +def render_notice(files): + """각 항목 자체에 저작자·두 URL·원본/파생 라이선스·변경 고지를 완결한다.""" + lines = ["# 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.", ""] + for entry in files: + conversion = entry["conversion"] + start = conversion["startSeconds"] + end = start + conversion["durationSeconds"] + lines += [f"## {entry['displayName']} — {entry['environmentId']}", "", entry["attribution"], "", + f"Creator: {entry['creator']}", f"Source: {entry['pageUrl']}", + f"Download: {entry['directUrl']}", f"License: {entry['license']} — {entry['licenseUrl']}", + f"Output license: {entry['outputLicense']}", + f"Changes: {conversion['operations']}; source seconds {start}–{end}.", ""] + return "\n".join(lines) + + +def validate_bundle(directory, plan): + """공개 전 staged 파일을 다시 읽어 manifest 자기 보고와 실제 PCM을 대조한다.""" + try: + validate_plan(plan) + expected = {f"{name}.wav" for name in ENVIRONMENT_IDS} | {"manifest.json", "AMBIENCE_NOTICES.md"} + if {p.name for p in directory.iterdir()} != expected or any( + p.is_symlink() or not p.is_file() for p in directory.iterdir()): + raise ValueError("현장음 파일 누락·추가·symlink") + manifest = json.loads((directory / "manifest.json").read_text()) + entries = manifest["files"] + if (manifest["version"] != "0.2.3" or len(entries) != 8 + or {e["environmentId"] for e in entries} != ENVIRONMENT_IDS + or len({e["sha256"] for e in entries}) != 8): + raise ValueError("고유한 승인 현장음 8개가 필요합니다.") + approved = {a["environmentId"]: a for a in plan["assets"]} + for entry in entries: + environment = entry["environmentId"] + asset = approved[environment] + if (any(entry.get(key) != value for key, value in asset.items()) + or entry["file"] != f"{environment}.wav" + or entry["sourceSha256"] != asset["expectedSourceSha256"] + or entry["outputLicense"] != asset["license"] + or not entry["conversion"]["operations"].strip()): + raise ValueError("승인 출처 또는 파생본 메타데이터 불일치") + path = directory / entry["file"] + if path.stat().st_size != entry["bytes"] or digest(path) != entry["sha256"]: + raise ValueError("현장음 해시/bytes 불일치") + with wave.open(str(path), "rb") as stream: + if (stream.getframerate(), stream.getnchannels(), stream.getsampwidth(), stream.getcomptype()) != (SAMPLE_RATE, 1, 2, "NONE"): + raise ValueError("24kHz mono PCM16이 아닙니다.") + frames = stream.getnframes() + raw = stream.readframes(frames) + samples = array("h", raw) + if sys.byteorder != "little": samples.byteswap() + if (frames != EXCERPT_SECONDS * SAMPLE_RATE or len(raw) != frames * 2 or path.stat().st_size != len(raw) + 44 + or samples[0] != 0 or samples[-1] != 0): + raise ValueError("12초 PCM 또는 fade 경계 불일치") + rms = math.sqrt(sum(x*x for x in samples) / frames) / 32768 + peak = max(abs(x) for x in samples) / 32768 + if (rms <= 0.003 or peak > 0.85 or not math.isclose(rms, entry["rms"], abs_tol=1e-12) + or not math.isclose(peak, entry["peak"], abs_tol=1e-12) + or entry["duration"] != frames / SAMPLE_RATE + or entry["conversion"]["startSeconds"] != asset["selectedSegmentStartSeconds"] + or entry["conversion"]["durationSeconds"] != EXCERPT_SECONDS + or entry["conversion"]["fadeSeconds"] != FADE_SECONDS): + raise ValueError("현장음 실측값/변환 불일치") + if (directory / "AMBIENCE_NOTICES.md").read_text() != render_notice(entries): + raise ValueError("항목별 출처/변경 고지 불일치") + except (KeyError, TypeError, json.JSONDecodeError, wave.Error, EOFError) as error: + raise ValueError("현장음 bundle 검증 실패") from error + + +def atomic_publish(staged, output): + """Linux의 단일 renameat2 교환이 commit 지점이다. 실패 시 기존 이름은 유지된다. + + 성공 전에는 기존 디렉터리를 건드리지 않는다. 성공 후에는 완성된 새 디렉터리만 + 그 이름에 보이며 이전 트리는 staging에 남는다. 두 번 rename하는 fallback은 없다. + """ + if output.is_symlink() or (output.exists() and not output.is_dir()): + raise ValueError("현장음 출력은 symlink가 아닌 디렉터리여야 합니다.") + if not output.exists(): + os.rename(staged, output) + return + libc = ctypes.CDLL(None, use_errno=True) + exchange = getattr(libc, "renameat2", None) + if exchange is None: + raise OSError("renameat2 원자 교환을 지원하지 않습니다; 이전 디렉터리 보존") + exchange.argtypes = [ctypes.c_int, ctypes.c_char_p, ctypes.c_int, ctypes.c_char_p, ctypes.c_uint] + exchange.restype = ctypes.c_int + if exchange(-100, os.fsencode(staged), -100, os.fsencode(output), 2) != 0: + raise OSError(ctypes.get_errno(), "원자 교환 실패; 이전 디렉터리 보존") + + +def generate(plan, source_directory, output, *, converter=None): + """모든 원본과 파생본/manifest/notice를 검증한 뒤 디렉터리 전체를 공개한다.""" + output = Path(output) + if output.is_symlink() or (output.exists() and not output.is_dir()): + raise ValueError("현장음 출력은 symlink가 아닌 디렉터리여야 합니다.") + verify_sources(plan, source_directory) + converter = converter or convert + ffmpeg = subprocess.check_output(["ffmpeg", "-version"], text=True).splitlines()[0] + output.parent.mkdir(parents=True, exist_ok=True) + # 같은 부모 아래 만들어 EXDEV를 피한다. 기존 파일을 overlay하지 않으므로 stale 파일도 사라진다. + working = Path(tempfile.mkdtemp(prefix=".ambience-stage-", dir=output.parent)) + ready = working / "ready" + ready.mkdir() + files = [] + try: + for asset in plan["assets"]: + environment = asset["environmentId"] + name = environment + ".wav" + info = converter(source_path(source_directory, environment), ready / name, asset["selectedSegmentStartSeconds"]) + entry = dict(asset) + entry.update({"file": name, "sourceSha256": asset["expectedSourceSha256"], + "outputLicense": asset["license"], "verificationDateUtc": "2026-10-14", **info}) + files.append(entry) + manifest = {"version": "0.2.3", "generatedAtUtc": datetime.now(timezone.utc).isoformat(), + "toolVersions": {"ffmpeg": ffmpeg}, "sampleRate": SAMPLE_RATE, + "channels": 1, "encoding": "PCM16", "files": files} + (ready / "manifest.json").write_text(json.dumps(manifest, ensure_ascii=False, indent=2) + "\n") + (ready / "AMBIENCE_NOTICES.md").write_text(render_notice(files)) + validate_bundle(ready, plan) + atomic_publish(ready, output) + return manifest + finally: + # commit 뒤 정리 실패를 발행 실패로 오인하지 않는다. SIGKILL은 숨은 stage를 남길 수 있으나 + # 공개 이름은 syscall 전의 전체 이전 트리 또는 syscall 후의 전체 새 트리다. + shutil.rmtree(working, ignore_errors=True) + + +def main(): + plan = json.loads((ROOT / ".agent/AMBIENCE-SOURCES-v0.2.3.json").read_text()) + manifest = generate(plan, Path("/tmp/findword-ambience-sources"), ROOT / "public/ambience") + print(json.dumps({"files": len(manifest["files"]), "bytes": sum(f["bytes"] for f in manifest["files"])}, indent=2)) + + +if __name__ == "__main__": + main() diff --git a/scripts/check-build.mjs b/scripts/check-build.mjs index 6d333f5..d23be14 100644 --- a/scripts/check-build.mjs +++ b/scripts/check-build.mjs @@ -1,7 +1,8 @@ -import { readFileSync } from "node:fs"; +import { readFileSync, readdirSync } from "node:fs"; import { createHash } from "node:crypto"; import { resolve } from "node:path"; import { pathToFileURL } from "node:url"; +import { ENVIRONMENTS, PATTERNS, WORDS } from "../src/content.ts"; // 빌드가 성공해도 public 파일이 빠지면 게임은 실행 중 실패한다. 따라서 배포 // 폴더 자체의 파일 해시를 원본 manifest와 비교하는 계약을 빌드 마지막에 둔다. @@ -36,11 +37,128 @@ export function verifyBuild(directory) { ); if (JSON.stringify(manifest) !== JSON.stringify(builtManifest)) throw new Error("빌드 음성 목록이 원본과 다릅니다."); + // manifest끼리 일치해도 함께 축약될 수 있으므로 앱 콘텐츠에서 독립 재구성한다. + const expectedVoice = [ + "intro.wav", + ...PATTERNS.flatMap((pattern) => + WORDS.map((word) => `${pattern.id}-${word.id}.wav`), + ), + ].sort(); + if ( + expectedVoice.length !== 101 || + manifest.files.length !== 101 || + JSON.stringify(manifest.files.map((entry) => entry.file).sort()) !== + JSON.stringify(expectedVoice) + ) + throw new Error("음성은 정확한 예상 목록 101개가 필요합니다."); + if ( + JSON.stringify(readdirSync(resolve(directory, "audio")).sort()) !== + JSON.stringify([...expectedVoice, "manifest.json"].sort()) + ) + throw new Error("빌드 음성 파일 누락 또는 추가 파일"); for (const entry of manifest.files) { const bytes = readFileSync(resolve(directory, "audio", entry.file)); if (createHash("sha256").update(bytes).digest("hex") !== entry.sha256) throw new Error(`빌드 자산 해시 불일치: ${entry.file}`); } + // 현장음은 별도 라이선스가 있는 독립 자산이다. 누락뿐 아니라 큰 원본이 + // 잘못 섞여 배포되는 경우도 디렉터리 파일 집합을 엄격히 비교해 차단한다. + try { + const source = readFileSync("public/ambience/manifest.json", "utf8"); + if ( + readFileSync(resolve(directory, "ambience/manifest.json"), "utf8") !== + source + ) + throw new Error("manifest 불일치"); + const ambience = JSON.parse(source); + const plan = JSON.parse( + readFileSync(".agent/AMBIENCE-SOURCES-v0.2.3.json", "utf8"), + ); + if ( + JSON.stringify( + ambience.files.map((entry) => entry.environmentId).sort(), + ) !== JSON.stringify(ENVIRONMENTS.map((entry) => entry.id).sort()) + ) + throw new Error("현장음 예상 환경 목록 불일치"); + if ( + ambience.files.length !== 8 || + new Set(ambience.files.map((e) => e.sha256)).size !== 8 + ) + throw new Error("고유 녹음 8개가 필요합니다."); + const expected = [ + ...ambience.files.map((e) => e.file), + "manifest.json", + "AMBIENCE_NOTICES.md", + ].sort(); + if ( + JSON.stringify(readdirSync(resolve(directory, "ambience")).sort()) !== + JSON.stringify(expected) + ) + throw new Error("누락 또는 원본 파일 혼입"); + const notice = readFileSync("public/ambience/AMBIENCE_NOTICES.md", "utf8"); + if ( + readFileSync( + resolve(directory, "ambience/AMBIENCE_NOTICES.md"), + "utf8", + ) !== notice + ) + throw new Error("고지 불일치"); + for (const entry of ambience.files) { + const bytes = readFileSync(resolve(directory, "ambience", entry.file)); + if ( + bytes.length !== entry.bytes || + createHash("sha256").update(bytes).digest("hex") !== entry.sha256 + ) + throw new Error(`자산 해시 불일치: ${entry.file}`); + const approved = plan.assets.find( + (asset) => asset.environmentId === entry.environmentId, + ); + if ( + !approved || + Object.entries(approved).some( + ([key, value]) => + JSON.stringify(entry[key]) !== JSON.stringify(value), + ) || + entry.file !== `${entry.environmentId}.wav` || + entry.sourceSha256 !== approved.expectedSourceSha256 || + entry.outputLicense !== approved.license || + !Number.isFinite(approved.selectedSegmentStartSeconds) || + approved.selectedSegmentStartSeconds < 0 || + !Number.isFinite(approved.directMediaDurationSeconds) || + approved.selectedSegmentStartSeconds + 12 > + approved.directMediaDurationSeconds || + entry.conversion?.startSeconds !== + approved.selectedSegmentStartSeconds || + entry.conversion?.durationSeconds !== 12 || + entry.duration !== 12 || + typeof entry.conversion?.operations !== "string" || + !entry.conversion.operations.trim() + ) + throw new Error(`승인 출처/변경 메타데이터 불일치: ${entry.file}`); + // 다른 항목에 같은 라이선스 URL이 있어도 이 항목의 누락을 가리지 못한다. + const sections = notice + .split("## ") + .filter((section) => + section.startsWith(`${entry.displayName} — ${entry.environmentId}\n`), + ); + const lines = sections[0]?.split("\n") ?? []; + if ( + sections.length !== 1 || + ![ + entry.attribution, + `Creator: ${entry.creator}`, + `Source: ${entry.pageUrl}`, + `Download: ${entry.directUrl}`, + `License: ${entry.license} — ${entry.licenseUrl}`, + `Output license: ${entry.outputLicense}`, + `Changes: ${entry.conversion.operations}; source seconds ${entry.conversion.startSeconds}–${entry.conversion.startSeconds + entry.conversion.durationSeconds}.`, + ].every((line) => lines.includes(line)) + ) + throw new Error(`출처 고지 누락: ${entry.file}`); + } + } catch (cause) { + throw new Error("현장음 자산/manifest/notice 누락 또는 불일치", { cause }); + } return manifest.files.length; } if ( @@ -48,6 +166,6 @@ if ( import.meta.url === pathToFileURL(resolve(process.argv[1])).href ) { console.log( - `빌드 음성 자산 ${verifyBuild("dist")}개 및 런타임 notice 전문 확인`, + `빌드 음성 자산 ${verifyBuild("dist")}개 + 현장음 8개 및 런타임/현장음 notice 확인`, ); } diff --git a/src/App.tsx b/src/App.tsx index 3f6d473..7799ae7 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -6,6 +6,10 @@ import { gameReducer, initialGame, normalizeAnswer, + normalizeSnr, + ROUND_SIZE, + SNR_MIN, + SNR_MAX, summarize, type Action, type GameState, @@ -57,6 +61,7 @@ function formatSnr(db: number) { return `SNR ${db > 0 ? "+" : ""}${db} dB`; } +// 부호를 읽기 어려운 사용자도 음성/배경 관계를 이해하도록 문장으로 풀어 쓴다. function describeSnr(db: number) { if (db === 0) return "음성과 배경의 크기가 같아요."; return `음성이 배경보다 ${Math.abs(db)} dB ${db > 0 ? "커요" : "작아요"}.`; @@ -66,10 +71,17 @@ export default function App({ audio, seed }: AppProps) { const [engine] = useState(() => audio ?? new AudioEngine()); const [mode, setMode] = useState("mixed"); const [environment, setEnvironment] = useState("rotate"); + // 시작 단계는 홈 설정, snrOverride는 사용자가 직접 바꾼 라운드 간 SNR이다. + // null이면 각 새 단계의 기본값을 사용하므로 자동 진행과 수동 선택을 구분한다. + const [startingLevel, setStartingLevel] = useState(1); + const [snrOverride, setSnrOverride] = useState(null); + // 홈에서도 전체 음량을 유지하지만 답/입력은 현재 라운드의 메모리에만 둔다. const [volume, setVolume] = useState(35); const [game, setGame] = useState(null); const [input, setInput] = useState(""); + // 고정 seed의 테스트와 재도전 모두에서 새 문제 조합을 만들기 위한 라운드 번호다. const [attempt, setAttempt] = useState(0); + // token은 오래된 완료를 무시하고 playing은 같은 클릭 흐름의 중복 재생을 막는다. const token = useRef(0); const playing = useRef(false); const introDone = useRef(false); @@ -78,6 +90,7 @@ export default function App({ audio, seed }: AppProps) { const composing = useRef(false); const focusTarget = useRef(null); const startButton = useRef(null); + // 함수형 갱신으로 같은 클릭 안의 초기화와 PLAY도 순서대로 reducer에 전달한다. const dispatch = (action: Action) => setGame((previous) => previous ? gameReducer(previous, action) : previous, @@ -103,6 +116,7 @@ export default function App({ audio, seed }: AppProps) { focusTarget.current?.focus(); }, [game?.phase, game?.index]); + // token은 엔진 취소가 지연되는 장치에서도 오래된 콜백이 새 화면을 바꾸지 못하게 한다. const run = async (question: Question) => { if (playing.current) return; // 다시 듣기로 입력 DOM이 사라질 때 compositionend가 생략되는 브라우저도 @@ -131,12 +145,15 @@ export default function App({ audio, seed }: AppProps) { } }; - const begin = () => { + // 다음 단계도 사용자 클릭에서 즉시 새 세 문항을 재생한다. 모든 입력 수명은 새로 시작한다. + const begin = (level = startingLevel) => { const questions = createQuestions( (seed ?? Date.now()) + attempt, mode, environment, - ); + level, + ).map((q) => ({ ...q, db: snrOverride ?? q.db })); + setAttempt((a) => a + 1); introDone.current = false; composing.current = false; setInput(""); @@ -144,6 +161,7 @@ export default function App({ audio, seed }: AppProps) { // 사용자 클릭 호출 스택에서 엔진을 열어 자동 재생 정책을 준수한다. void run(questions[0]!); }; + // 종료 결과를 읽은 뒤 홈으로 복귀할 때 수동 SNR만 지우고 명시적 홈 설정은 보존한다. const home = () => { token.current++; playing.current = false; @@ -151,9 +169,18 @@ export default function App({ audio, seed }: AppProps) { composing.current = false; setGame(null); setInput(""); - setAttempt((a) => a + 1); + setSnrOverride(null); requestAnimationFrame(() => startButton.current?.focus()); }; + // 종료를 먼저 무효화한 뒤 엔진을 정지해야 동기/비동기 완료 경합도 차단된다. + const exitRound = () => { + token.current++; + playing.current = false; + engine.stop(); + composing.current = false; + dispatch({ type: "EXIT" }); + }; + // 문항 전환은 청취를 강제하지 않는다. 준비된 사용자가 다음 소리를 시작한다. const next = () => { composing.current = false; setInput(""); @@ -163,6 +190,38 @@ export default function App({ audio, seed }: AppProps) { const result = game ? summarize(game) : null; const busy = game?.phase === "loading" || game?.phase === "playing"; + // 현재 재생의 gain은 바꾸지 않는다. 다음 재청취/미응답 문항/새 라운드에 적용한다. + const selectedSnr = + snrOverride ?? LEVELS[(question?.level ?? startingLevel) - 1]!.db; + const snrControl = ( +
+ + { + const db = normalizeSnr( + Number(event.target.value), + LEVELS[(question?.level ?? startingLevel) - 1]!.db, + ); + setSnrOverride(db); + dispatch({ type: "SNR", db }); + }} + /> + {formatSnr(selectedSnr)} +

+ {describeSnr(selectedSnr)} 범위 −12~+12 dB · 1 dB 간격. 양수는 음성이 더 + 크게, 0은 같게, 음수는 더 작게 들려요. 변경은 다음 재생·재청취부터 + 적용돼요. +

+
+ ); + // 상태와 엔진 연결은 공유하고 각 화면에는 컨트롤 하나만 배치한다. // 위치가 바뀌어도 기존 접근성 이름·label 연결·사용자가 정한 음량을 유지한다. const volumeControl = ( @@ -200,18 +259,18 @@ export default function App({ audio, seed }: AppProps) {

단어를 맞춰라

- v0.1.1 + v0.2.3
- {game ? ( - - ) : ( + ) : !game ? ( 플레이 방법 - )} + ) : null} 소리에 집중하는 시간
@@ -236,7 +295,7 @@ export default function App({ audio, seed }: AppProps) { 조금 더 귀 기울여, 오늘의 행운을 찾아보세요.

- 10개의 질문 + 한 라운드 {ROUND_SIZE}개의 질문 5단계 도전 나만의 속도로
@@ -270,9 +329,11 @@ export default function App({ audio, seed }: AppProps) { 01

나의 소리 탐험 준비

-

편한 방식으로 시작하세요. 난이도는 조금씩 높아져요.

+

+ 한 단계에서 세 문제를 풀고, 완료 후 다음 단계에 도전해요. +

- 약 3–5분 + 라운드당 약 1–2분
@@ -348,13 +409,36 @@ export default function App({ audio, seed }: AppProps) {
+
+ + +
+ {snrControl} {volumeControl}

편안한 작은 음량으로 시작해 보세요.

-
@@ -368,8 +452,7 @@ export default function App({ audio, seed }: AppProps) {

먼저, 귀 기울이기

에스의 안내와 소음 속 문장을 들어요. -
- 처음에는 또렷하게, 점점 더 작게. +
한 라운드 동안 같은 난이도로 들어요.

@@ -385,7 +468,7 @@ export default function App({ audio, seed }: AppProps) { 03

나의 발견 돌아보기

- 열 문제 뒤 나의 결과를 확인해요. + 세 문제 뒤 나의 결과를 확인해요.
놓쳤다면 언제든 다시 들어도 좋아요.

@@ -395,15 +478,26 @@ export default function App({ audio, seed }: AppProps) { ) : game.phase === "results" && result ? (
- 열 번의 귀 기울임, 하나의 발견 + + {game.endedEarly + ? "지금까지의 소리 탐험" + : "세 번의 귀 기울임, 하나의 발견"} +

- 오늘의 소리 탐험을 마쳤어요. + {game.endedEarly + ? "문제 풀이를 중간에 종료했어요." + : `${question!.level}단계 문제 풀이를 마쳤어요.`}

- 작은 소리에 집중한 당신, 다음 탐험에서도 만나요. + {game.endedEarly + ? "답한 문제만 모아 결과를 보여 드려요." + : "이번 단계의 결과를 확인하고 다음 도전을 이어 가세요."} +

+

+ 응답 {result.answered}문항 · 정답 {result.correct}문항

@@ -411,8 +505,13 @@ export default function App({ audio, seed }: AppProps) { 총 점수
- {result.accuracy}% - 정답률 · {result.correct}/10 + {result.answered ? `${result.accuracy}%` : "—"} + + 정답률 ·{" "} + {result.answered + ? `${result.correct}/${result.answered}` + : "응답 없음"} +
@@ -435,18 +534,44 @@ export default function App({ audio, seed }: AppProps) { {row.level}단계 - {formatSnr(LEVELS[row.level - 1]!.db)} + {[ + ...new Set( + game.answers + .filter((a) => a.level === row.level) + .map((a) => a.db), + ), + ] + .map(formatSnr) + .join(", ") || formatSnr(LEVELS[row.level - 1]!.db)} - {row.correct} / {row.total} + {row.total ? `${row.correct} / ${row.total}` : "미진행"} ))} -

단계 × 100점 + 연속 정답 보너스 (최대 40점)

- + )} +
) : question && result ? ( @@ -454,13 +579,15 @@ export default function App({ audio, seed }: AppProps) {
나의 소리 탐험 - 문제 {String(game.index + 1).padStart(2, "0")} / 10 + 문제 {String(game.index + 1).padStart(2, "0")} /{" "} + {game.questions.length}