Files
2026-10-14 10:01:46 +00:00

1254 lines
42 KiB
JSON

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