{ "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 } }